作者:顾凌峰
链接:https://www.zhihu.com/question/34624915/answer/85854651
来源:知乎

这里我们首先假设通信双方,Sharon和Christopher已经完成了秘钥交换,秘钥k是双方已知的,开始进行如下通信:

那么通信过程中一共产生的消息是三组明密文对\left( {{p_1},{c_1}} \right)\left( {{p_2},{c_2}} \right)\left( {{p_3},{c_3}} \right)

  • 唯密文攻击:只知道密文,也就是c_1,c_2,c_3,那只能通过统计特性分析其中有什么规律了
  • 已知明文攻击:得到了一些给定的明文和对应的密文,在这里可以是\left\{ {\left( {{p_1},{c_1}} \right),\left( {{p_2},{c_2}} \right),\left( {{p_3},{c_3}} \right)} \right\}的任意非空子集。
  • 选择明文攻击:除了上面的基础,攻击者还可以任意创造一条明文比如“Excited”,并得到其加密后的密文。比如用一定的手段渗透Sharon的系统,但是不能直接攻破秘钥,于是只能以她的身份发“Excited”,然后用抓包或者别的方法得到她发送出来的加密的消息。
  • 选择密文攻击:除了已知明文攻击的基础,攻击者还可以任意制造或者选择一些密文,并得到其解密后的明文。比如用一定的手段在通信过程中伪造消息替换真实消息,然后窃取Sharon获得并解密的结果,有可能正好发现随手伪造的密文解密结果是有意义的,比如naive。
  • 选择文本攻击:可以制造任意明文/密文并得到对应的密文/明文,就是上面两者的结合。

以上攻击强度自上至下由弱到强。选择密文攻击和选择明文攻击的不同之处就是加解密方向不同。实际上这些攻击都是Cryptanalyze,使用哪一种取决于攻击者(cryptanalyst)掌握的资源和手段。
posted on 2016-04-21 19:52  block2016  阅读(1131)  评论(0编辑  收藏  举报