运用Matlab现DES算法.docVIP

  • 12
  • 0
  • 约6.73千字
  • 约 16页
  • 2018-08-17 发布于江苏
  • 举报
运用Matlab现DES算法

DES加密 PAGE PAGE 1 运用Matlab实现DES算法 1、DES加密解密过程详解 2、DES算法理论图解 3、DES算法的应用误区 4、DES算法MATLAB程序实现演示 DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。   其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。   DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。 DES工作的基本原理是,其入口参数有三个:key、data。 key为加密解密使用的密钥,data为加密解密的数据。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。 一、DES加密解密过程详解 1-1、变换密钥 1.1.1 取得密钥 从输入密码中取得一个字符串长为7的密码,经过字符与二进制之间的转变,并加入偶校验位,组成64位密码。 1.1.2 等分密钥 去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥。分成均等的A,B两部分,每部分为28位,参照下表把输入密钥的位值填入相应的位置. 按照表所示A的第一位为输入的64位密钥的第57位,A的第2位为64位密钥的第49位,...,依此类推,A的最后一位最后一位是64位密钥的第36位。 密钥初始置换表: A:57,49,41,33,25,17,9,1,58,50,42,34,26,18, 10,2,59,51,43,35,27,19,11,3,60,52,44,36, B:63,55,47,39,31,23,15,7,62,54,46,38,30,22, 14,6,61,53,45,37,29,21,13,5,28,20,12,4 1.1.3 密钥移位 次数:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 左移:1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 DES算法的密钥是经过16次迭代得到一组密钥的,把在1.1.2步中生成的A,B视为迭代的起始密钥,上表显示在第几次迭代时密钥循环左移的位数。比如在第1次迭代时密钥循环左移1位,第3次迭代时密钥循环左移2位. 第9次迭代时密钥循环左移1位,第14次迭代时密钥循环左移2位. 1.1.4 密钥的选取 密钥56位到48位压缩置换表: 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32在1.1.3步中第i次迭代生成的两个28位长的密钥为 把合并以C(i)=A(i)B(i)。 按照上表所示k的第一位为56位密钥的第14位,k的第2位为56位密钥的第17位,...,依此类推,k的最后一位是56位密钥的第32位。生成与进行第i次迭代加密的数据进行按位异或的48位使用密钥: 1.1.5迭代 DES算法密钥生成需要进行16次迭代,在完成16次迭代前,循环执行1.1.3-1.1.4步.最终形成16套加密密钥:key[0] , key[1] , key[2] ,…. key[14] , key[15]。 1.2 数据的加密操作 1.2.1 取得数据 明文数据分成64位的数据块,不够64位的数据块以补“0”的方式填充。 1.2.2 初始换位   明文初始置换表: 58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,   62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,   57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3,   61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7, 按照上表所示把输入的64位数据的原第58位换到第一位,原第50位换到第二位,...,依此类推,最后的得到新的64位数据。 OldData newData 1.2.3 数据扩展 明文扩展置换表: 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13

文档评论(0)

1亿VIP精品文档

相关文档