这里我们首先假设通信双方,Sharon和Christopher已经完成了秘钥交换,秘钥k是双方已知的,开始进行如下通信:
![技术分享](https://pic3.zhimg.com/3c0f9b579b7ea46002da756afe9e206a_b.png)
那么通信过程中一共产生的消息是三组明密文对
![技术分享](http://zhihu.com/equation?tex=%5Cleft%28+%7B%7Bp_1%7D%2C%7Bc_1%7D%7D+%5Cright%29)
,
![技术分享](http://zhihu.com/equation?tex=%5Cleft%28+%7B%7Bp_2%7D%2C%7Bc_2%7D%7D+%5Cright%29)
和
- 唯密文攻击:只知道密文,也就是
,那只能通过统计特性分析其中有什么规律了
- 已知明文攻击:得到了一些给定的明文和对应的密文,在这里可以是
的任意非空子集。
- 选择明文攻击:除了上面的基础,攻击者还可以任意创造一条明文比如“Excited”,并得到其加密后的密文。比如用一定的手段渗透Sharon的系统,但是不能直接攻破秘钥,于是只能以她的身份发“Excited”,然后用抓包或者别的方法得到她发送出来的加密的消息。
- 选择密文攻击:除了已知明文攻击的基础,攻击者还可以任意制造或者选择一些密文,并得到其解密后的明文。比如用一定的手段在通信过程中伪造消息替换真实消息,然后窃取Sharon获得并解密的结果,有可能正好发现随手伪造的密文解密结果是有意义的,比如naive。
- 选择文本攻击:可以制造任意明文/密文并得到对应的密文/明文,就是上面两者的结合。
以上攻击强度自上至下由弱到强。选择密文攻击和选择明文攻击的不同之处就是加解密方向不同。实际上这些攻击都是Cryptanalyze,使用哪一种取决于攻击者(cryptanalyst)掌握的资源和手段。