text: 密码学分析方法分类
  密码分析者破译或攻击密码的方法可以分为三类:穷举攻击法、统计分析攻击法和数学分析攻击法。
  穷举攻击法就是对所有可能的密钥或者明文的穷举。
  穷举攻击法又称为穷举破译法、强力或蛮力攻击。
  穷举攻击法的方法:①穷举密钥时,对截获到的密文尝试遍历所有可能的密钥,也就是依次用各种可能的密钥试译(尝试解密密文),直到获得有意义的明文,从而确定出正确的密钥和明文;
  ②穷举明文时,使用不变的密钥(例如,利用通过缴获得到的、对手已注入密钥的加密机)对所有可能的明文依次加密直到得出与截获到的密文一致的密文为止。
  从理论上说,只要拥有足够的资源(例如,拥有足够多的计算时间和存储容量),任何实用的密码都可以使用穷举攻击法破译。
  对抗穷举攻击最有效的对策是设法将密钥空间和明文空间、密文空间设计得足够大。
  通过增加密钥和明文、密文的长度(可通过在明文、密文中增加随机冗余信息等方式来实现)。
  2.统计分析攻击法
  统计分析攻击法就是指密码分析者根据明文、密文和密钥的统计规律来破译密码的方法。
  采用统计分析法进行攻击的方法是:密码破译者对截获的密文进行统计分析,找出其统计规律或特征,并与明文空间的统计特征进行对照比较,从中提取出密文与明文间的对应关系,最终确定密钥或明文。
  例如,许多古典密码都可以通过分析字母和字母组合的频率分布以及其他统计参数来破译。
  对抗统计分析攻击法最有效的对策是:设法使明文的统计特性不带入密文,扰乱密文的语言统计规律,即把密文和明文的统计特性扩散到整个密文,这样使得密文不呈现任何明文的统计特性,反而呈现出极大的随机性,从而使统计分析攻击法无法达到目的。
  现代密码设计的基本要求包含抵抗统计分析攻击。
  3.数学分析攻击法
  数学分析攻击法是指密码分析者针对加解密算法的数学基础和某些密码学特性,经过数学求解的方法来破译密码。
  数学攻击是对基于数学难题的各种密码算法的重大威胁。
  数学法也称为确定性攻击法或系统攻击法。
  采用数学分析法进行攻击的方法是:利用一个或几个已知量(例如,利用密文或者明文一密文对等信息)以数学关系式表示出所求未知量(如密钥等),然后计算出未知量。
  已知量和未知量的关系视加密和解密算法而定,寻求这种关系是确定性分析法的关键步骤。
  对抗数学分析攻击法的对策是设计和选用具有坚实数学基础和足够复杂的加密函数。
  一般地,密码分析者掌握的关于密码系统的知识越多,密码分析成功的可能性就越大。
  在假设密码分析者已知所用加密算法全部知识的情况下,根据密码分析者对明文、密文等数据资源的掌握程度,可以将针对加密系统的密码分析攻击分为以下五种类型。
  1)唯密文攻击
  在唯密文攻击中,密码分析者知道密码的具体算法,但仅能根据截获的、数量有限的密文进行分析、破译,以得出明文或密钥。
  由于密码分析者所能利用的数据资源仅为密文,这是对密码分析者最不利的情况。
  但同时这也是密码分析者在利用数据资源最少的情况下进行的难度最大的密码攻击。
  在唯密文攻击中,密码分析者的任务或目标是恢复尽可能多的明文,或者最好能推算出加密消息的密钥来,以便可以采用相同的密钥解密出其他被加密的消息。
  2)已知明文攻击
  已知明文攻击是指分析者除了有截获的密文外,还有一些已知的“明文一密文对”来破译分析。
  在已知明文攻击中,分析者的推出用来加密的密钥或许推导出某种算法,运用这种算法能够对用该密钥加密的任何新的信息进行解密。
  3)选择明文攻击
  选择明文攻击是指密码分析者不仅可得到一些“明文一密文对”,还有机会使用注入了未知密钥的加密机,通过自由选择被加密的明文来获取所期望的“明文一密文对”。
  这种状态对密码分析者十分有利,这时密码分析者能够选择特定的明文数据块去加密,并比较明文和对应的密文,以分析和发现更多的与密钥相关的信息。
  选择明文攻击是指分析者不只可得到一些“明文一密文对”,还可运用注入了未知密钥的加密机,经过自由选择被加密的明文来获取所希望的“明文一密文对”。
  这种状况对分析者非常有利,这时分析者能够选择特定的明文数据块去加密,并比较明文和对应的密文,以和发现更多的与密钥相关的信息。
  在选择明文攻击中,分析者也是推出用来加密的密钥或许推导出某种算法,该算法能够对用该密钥加密的任何新的信息进行解密。
  自适应选择明文攻击是选择明文攻击的特殊情况,是指分析者不只能够选择被加密的明文,而且还能根据以前加密的成果批改这个选择在选择明文攻击中,分析者能够选择一大块被加密的密文,以求得到更多的信息。
  而在自适应选择明文攻击中,能够选择较小的明文块,然后再根据榜首块的成果选择另一块明文,以此类推。
  4) 选择密文攻击
  选择密文攻击是指分析者除了具有有限数量的密文外,还有时机运用注入了不知道密钥的解密机,经过自由选择密文来获取所希望的“密文一明文对”。
  分析者的使命方针是推出密钥。
  这种分析主要是针对公钥分析体系尤其是用于攻击数字签名。
  因而,公钥分析体系抗选择密文攻击是公钥分析体系安全的必要条件。
  5) 选择文本攻击
  选择文本攻击是选择明文攻击和选择密文攻击的结合。
  分析者能够得知选择的明文和对应的密文,以及选择的猜测性密文和对应的已被破译的明文。
  上述五种攻击的目的都是为了确定系统所使用的密钥或者破译出密文。
  这五种攻击类型的攻击强度按次序递增,唯密文攻击是最困难,因为这种情况下密码分析者可以利用的信息最少,因此,唯密文攻击也是最弱的攻击。
  选择文本攻击是最强的一种攻击。
  如果一个密码系统能抵抗较高一级攻击强度的攻击,那么它肯定能抵抗其余几种较低安全强度的攻击。
  例如,如果一个密码系统能抵抗选择密文攻击,那么它肯定能抵抗其余三种攻击强度较低的攻击。
  现代密码学要求设计一个密码系统仅当它能经得起已知明文攻击时才是一个可行的算法,也就是说设计的密码体系至少要能够经受住第一种和第二种攻击的考验。
  此外,还有选择密钥攻击,这种攻击方式实际应用很少,它仅表示密码分析者具有不同密钥之间的关系,并不表示密码分析者能够选择密钥。
  另外,衡量密码系统攻击的复杂性主要考虑三个方面的因素:
  (1)数据复杂性:用作密码攻击所需要输入的数据量。
  (2)处理复杂性:完成攻击所需要花费的时间。
  (3)存储需求:进行攻击所需要的数据存储空间大小。
  攻击的复杂性取决于以上三个因素的最小复杂度,在实际实施攻击时往往要考虑这三种复杂性的折中,如存储需求越大,攻击可能越快。