密码分析与设计两者是对立且依存的。任何一种密码体制的设计,分析者均会想方设法从该体制中寻找“漏洞”与缺陷来攻击。现代分组密码体制更是这样。归纳起来,分析分组密码体制的方法主要有以下三种:
1.穷尽密钥搜索攻击
穷尽密钥搜索攻击可用在随意分组密码,且攻击的复杂度仅靠分组长度与密钥长度。
假设k为密钥长度,在唯密文攻击情况下,攻击者按次序用密钥空间里全部2个密钥对1个或多个截到的密文进行解密,一直到获得一个或以上有意义的明文块。在明文攻击已知的前提下,攻击者借密钥空间中的全部2个密钥加密一个已知的明文,比较加密的结果与此明文对应的已知密文,直到它们相等,然后再借其他已知明文或密文对来验证该密钥是否正确。
2.差分密码分析法
差分密码分析法是针对迭代分组密码的分析破译法。简单说,这是一个选择明文攻击。它和普通统计分析法的根本不同在于,是由分析明文对与相应密文对的差值之间的,合理的推测密钥的某些位。通常确定一个密钥会使两个明文的差值和对应密文的差值不同。而大量的分组密码的S盒设计又均为非线性,因此某些差异关系可能会含有一些密钥值的有关信息。
即使差分密码分析法还没有破译16轮的DES的实用方法,但借它破译轮数比较低的DES却是特别好的。
3.线性密码分析
它借助对非线性函数的线性近似来实现分析密钥的目标。即找分组密码算法中明文、密文与密钥的若干位间的线性关系,最终破译密码系统。