关于DES雪崩效应的扩展(原创)
2005-04-18 18:05
453 查看
众所周知(对密码学有一点研究的),DES是每8位明文进行一次加密的。。而DES在每8位明文的加密中有着很好的雪崩效应(就是对明文或者密钥改变1bit都会引起密文的巨大不同)。但是这也决定了DES对大量明文同时加密时雪崩效应不明显。现举一例:
用密钥infosecu加密这一段密文:HuaZhong University is so good a university ranked 5th in china
得出的密文为:?K?-MíV?iA?B¥6?<a?DP¢WMd?PF?r|óq??éêg?YaùzJ?HPìò6üì'?81?+?
现把明文中的"good"改成"geod"得出密文
?K?-MíV?iA?B¥6?<a?DP¢Wq??.?óq??éêg?YaùzJ?HPìò6üì'?81?+?
两者比较一下
"good" ?K?-MíV?iA?B¥6?<a?DP¢WMd?PF?r|óq??éêg?YaùzJ?HPìò6üì'?81?+?
"goed" ?K?-MíV?iA?B¥6?<a?DP¢Wq??.?óq??éêg?YaùzJ?HPìò6üì'?81?+?
可以看到,密文绝大部分没有改变,也就是DES的雪崩效应只发生在goed所在的8位密文中,而对总体密文雪崩效应不强。。现对算法加强使其对总体密文都具有很好的雪崩效应。。原理如下
以64个字符的明文为例,每8个一组进行第一次DES加密,得到8组共64字节密文,现对密文进行如下分组
取出每组的第一个字符重新构成一个8各字符的分组,然后把每组的第二个字符取出同样构成8个字符的分组
这样,我们得到了密文的新的8组分组,而每组当中各有一个字符来源于原来的8个分组当中。再对新8组分别进行DES加密。也就是说,对明文的1bit的改动,导致原始某一分组的8个字节改动,而上述分组方法又把8个字节的改动平均分配到新8组中的改动,从而导致新8组经过再一次DES加密后产生的64个字符全部发生改变(建基于DES对8字符的极好雪崩效应)。。同样用上一例说明改动效果
"good" ?zsí??±f/?VCa?°?T?]]é×_]¢S7g?V?°O?§?ê?Y?W¢E?éfWO?ò?P"?°§Q.
"goed" B?a?T2èê?PèR?5?t?CbC[L?R??S'÷??8????OìT6+èe§v?°wL??§??^ü
可以看到,只改动一个字符,全部64个字符的密文均发生了改变,用同样的方法,我们可以把雪崩效应扩展到对更多的明文字符都产生很好的雪崩效应。
用密钥infosecu加密这一段密文:HuaZhong University is so good a university ranked 5th in china
得出的密文为:?K?-MíV?iA?B¥6?<a?DP¢WMd?PF?r|óq??éêg?YaùzJ?HPìò6üì'?81?+?
现把明文中的"good"改成"geod"得出密文
?K?-MíV?iA?B¥6?<a?DP¢Wq??.?óq??éêg?YaùzJ?HPìò6üì'?81?+?
两者比较一下
"good" ?K?-MíV?iA?B¥6?<a?DP¢WMd?PF?r|óq??éêg?YaùzJ?HPìò6üì'?81?+?
"goed" ?K?-MíV?iA?B¥6?<a?DP¢Wq??.?óq??éêg?YaùzJ?HPìò6üì'?81?+?
可以看到,密文绝大部分没有改变,也就是DES的雪崩效应只发生在goed所在的8位密文中,而对总体密文雪崩效应不强。。现对算法加强使其对总体密文都具有很好的雪崩效应。。原理如下
以64个字符的明文为例,每8个一组进行第一次DES加密,得到8组共64字节密文,现对密文进行如下分组
取出每组的第一个字符重新构成一个8各字符的分组,然后把每组的第二个字符取出同样构成8个字符的分组
这样,我们得到了密文的新的8组分组,而每组当中各有一个字符来源于原来的8个分组当中。再对新8组分别进行DES加密。也就是说,对明文的1bit的改动,导致原始某一分组的8个字节改动,而上述分组方法又把8个字节的改动平均分配到新8组中的改动,从而导致新8组经过再一次DES加密后产生的64个字符全部发生改变(建基于DES对8字符的极好雪崩效应)。。同样用上一例说明改动效果
"good" ?zsí??±f/?VCa?°?T?]]é×_]¢S7g?V?°O?§?ê?Y?W¢E?éfWO?ò?P"?°§Q.
"goed" B?a?T2èê?PèR?5?t?CbC[L?R??S'÷??8????OìT6+èe§v?°wL??§??^ü
可以看到,只改动一个字符,全部64个字符的密文均发生了改变,用同样的方法,我们可以把雪崩效应扩展到对更多的明文字符都产生很好的雪崩效应。
相关文章推荐
- (原创)关于C语言类型扩展的隐患
- (原创)关于继承实例化的说明(c#)
- 关于Yii2中redis扩展的使用
- 关于唯c技术论坛被黑事件后的感想(原创)
- 关于逆元(证明扩展欧几里得定理)
- [原创].关于编写Nios II的延时函数的一点心得
- 【原创】关于java对象需要重写equals方法,hashcode方法,toString方法 ,compareto()方法的说明
- 【CSON原创】关于旋转矩形的碰撞检测
- iOS 关于NSString的部分扩展 部分总结
- 【转】关于“ORA-01653: 表 SYS.AUD$ 无法通过 128 (在表空间 SYSTEM 中) 扩展”的错误
- 关于电机驱动扩展板 L293D 马达板Arduino
- [个人原创]关于java中对象排序的一些探讨(一)
- 既然在 关于动态写入表格问题的扩展 中提到了iFrame,咱就不能不说说iFrame高度自适应问题
- 关于扩展功能新增Markdown编辑器说明
- 关于puppet的扩展APACHE2 + PASSENGER
- 关于php扩展编程如何返回数组的问题
- 扩展kmp——原创
- 【原创】MultiBitSet-BitSet扩展
- 关于生产库的表空间是否自动扩展的看法?
- 关于程序员30岁困惑的一点个人思考【原创】