密码分析的目的是恢复出明文,找到密钥,甚至是二者兼得。根据柯克霍夫斯原理,我们假定,作为密码分析者, 完全了解算法的内部工作原理。另一个基本的假设是能够接触到密文—若非如此,我们为什么还费心费力地进行加密呢?如果仅仅知道算法和密文,那么必须实施“仅密文”攻击。
如果能够访问到已知的明文,那么成功的机会可能会提升。也就是说,知道一些明文并且能够观察到所对应的密文。这些匹配的明文密文对也许能提供关于密钥的一些信息。当然,如果所有的明文都是可知的,那么恢复密钥不再有任何意义。但是,情况往往是仅能够接触(或者猜测出)部分明文信息。例如,许多类型的数据都包含特定的具备典型特征的信息头(电子邮件文本就是一个非常好的例子),如果这些数据信息被加密,黑客就很可能猜测得到与一些密文信息相对应的若干明文信息。
往往更令人吃惊的是, 实际上能够选择明文来加密,以观察和分析所生成的密文。不用大惊小怪,这就是所谓的“选择明文”攻击。有些安全协议可以加密要发送的任何信息,并且能够返回相应的密文。另外,有限程度地访问加密系统的情况也是可能存在的,这样就给她加密自己选择的明文提供了可能性。
对于攻击者来说,潜在的更有利的一种情况是“自适应选择明文”攻击。在这种场景下, 选择明文,观察相应的结果密文,再基于观察到的密文选择下一个明文。在某种情况下,这能够使密码分析工作的难度大幅度地降低。
“相关密钥攻击”在某些应用场景中也不可小觑。这种攻击的思想是:当密钥以某种特定的方式相关联时,就据此去寻找系统中的安全弱点。
密码技术专家们有时候会担心存在其他类型的攻击手段,这时候他们往往会觉得有必要再发表一些学术文章以寻求验证。任何情况下,只有当尚未发现有效的捷径攻击手段时 ,这种攻击仅适用于公钥密码系统,不适用于对密码系统方可被认为是安全的。
正如前面我们所看到的,密钥空间的尺寸必须足够大,才能防止攻击者去尝试所有可能的密钥(发起穷举式密钥检索攻击)。前向检索攻击给出的暗示是:对于公开密钥加密,我们必须也确保明文消息的空间足够大,以使攻击者不能够通过简单地加密所有可能的明文消息串来发起此类攻击行为。