现代密码学复习的一些重点记忆内容
一、引言
放张经典的图,然后这个图其实一直都死记硬背,其实他可以很形象,是攻击强度从弱到强。后面引用一个知乎大佬的解答@顾凌峰,感觉特别清晰,这里膜了orz
以对称加密体系为例说明(实际对于非对称加密体系也是同理)
实际在我们的网络安全模型中一般假设所有的加密算法都是公开的,密码体系的安全性依赖于秘钥的安全性,秘钥只有发送方和接收方知道,一旦第三方得知这个秘钥,那他们的通信就被攻破了。
单说选择明文攻击和选择密文攻击你可能体会不深,所以我把攻击强度不同的五种攻击方式都写出来对比一下你就可以明白这二者有何不同。
这里我们首先假设通信双方,Sharon和Christopher已经完成了秘钥交换,秘钥k是双方已知的,开始进行如下通信:
那么通信过程中一共产生的消息是三组明密文对(p1,c1),(p2,c2)和(p3,c3)
唯密文攻击:只知道密文,也就是c1,c2,c3,那只能通过统计特性分析其中有什么规律了
已知明文攻击:得到了一些给定的明文和对应的密文,在这里可以是{(p1,c1),(p2,c2),(p3,c3)}的任意非空子集。
选择明文攻击:除了上面的基础,攻击者还可以任意创造一条明文比如“Excited”,并得到其加密后的密文。比如用一定的手段渗透Sharon的系统,但是不能直接攻破秘钥,于是只能以她的身份发“Excited”,然后用抓包或者别的方法得到她发送出来的加密的消息。
选择密文攻击:除了已知明文攻击的基础,攻击者还可以任意制造或者选择一些密文,并得到其解密后的明文。比如用一定的手段在通信过程中伪造消息替换真实消息,然后窃取Sharon获得并解密的结果,有可能正好发现随手伪造的密文解密结果是有意义的,比如naive。选择文本攻击:可以制造任意明文/密文并得到对应的密文/明文,就是上面两者的结合。
以上攻击强度自上至下由弱到强。选择密文攻击和选择明文攻击的不同之处就是加解密方向不同。实际上这些攻击都是Cryptanalyze,使用哪一种取决于攻击者(cryptanalyst)掌握的资源和手段。
很惭愧,只做了一些微小的工作。
References
[1] Stallings, William, et al. "Cryptography and Network Security Principles and Practice." (2001).
作者:顾凌峰
链接:https://www.zhihu.com/question/34624915/answer/85854651
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
二、关于扩散和混淆
扩散(diffusion)和混淆(confusion)是C.E.Shannon提出的设计密码体制的两种基本方法,其目的是为了抵抗对手对密码体制的统计分析.在分组密码的设计中,充分利用扩散和混淆,可以有效地抵抗对手从密文的统计特性推测明文或密钥.扩散和混淆是现代分组密码的设计基础.
所谓扩散就是让明文中的每一位影响密文中的许多位,或者说让密文中的每一位受明文中的许多位的影响.这样可以隐蔽明文的统计特性.当然,理想的情况是让明文中的每一位影响密文中的所有位,或者说让密文中的每一位受明文中所有位的影响.
所谓混淆就是将密文与密钥之间的统计关系变得尽可能复杂,使得对手即使获取了关于密文的一些统计特性,也无法推测密钥.使用复杂的非线性代替变换可以达到比较好的混淆效果,而简单的线性代替变换得到的混淆效果则不理想.可以用"揉面团"来形象地比喻扩散和混淆.当然,这个"揉面团"的过程应该是可逆的.乘积和迭代有助于实现扩散和混淆.选择某些较简单的受密钥控制的密码变换,通过乘积和迭代可以取得比较好的扩散和混淆的效果.