DES详解

来源:互联网 发布:win7 内存优化 编辑:程序博客网 时间:2024/06/07 18:17

DES入口参数

DES基本原则
DES设计中使用了分组密码设计的两个原则:混淆(confusion)和扩散(diffusion),其目的是抗击敌手对密码系统的统计分析。混淆是使密文的统计特性与密钥的取值之间的关系尽可能复杂化,以使密钥和明文以及密文之间的依赖性对密码分析者来说是无法利用的。扩散的作用就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中,以便在大量的密文中消除明文的统计结构,并且使每一位密钥的影响尽可能迅速地扩展到较多的密文位中,以防对密钥进行逐段破译。

DES与3DES的区别和联系
3DES(即Triple DES)是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。

  该方法使用两个密钥,执行三次DES算法,加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。  
  3DES加密过程为:C=Ek3(Dk2(Ek1(P)))
  3DES解密过程为:P=Dk1(EK2(Dk3(C)))
  
  采用两个密钥进行三重加密的好处有:
①两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要,若采用总长为168bit的三个密钥,会产生不必要的开销。
②加密时采用加密-解密-加密,而不是加密-加密-加密的形式,这样有效的实现了与现有DES系统的向后兼容问题。因为当K1=K2时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。
③三重DES具有足够的安全性,目前还没有关于攻破3DES的报道。

本来想找一下c源码实现的,可是初始化很多置换表看不懂原理,于是又详细了解了一下其算法实现的具体原理和细节,也学习和收获了颇多,想了想其实也没有必要在纠结学习其具体代码实现了。

Des算法实现的细节非常繁杂,其实掌握与否根据个人兴趣;但是其基本原理和概念非常简单明确,总的来说无非几个处理原则:置换表的置换(包括仅仅位置的打乱置换、压缩置换、扩展置换,总共3种:压缩或者扩展的置换就是置换的过程当中舍弃或者重复一些元素)、迭代(对于同一算法函数的多次执行)、异或、移位、循环移位等;

有兴趣的,具体细节可详见:http://www.docin.com/p-1384648741.html

原创粉丝点击