运用Matlab实现DES算法.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运用Matlab实现DES算法.doc

运用Matlab实现DES算法算法理论图解DES算法的应用误区DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。   其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。   DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。 DES工作的基本原理是,其入口参数有三个:key、data。 key为加密解密使用的密钥,data为加密解密的数据。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥分成均等的A,B两部分,每部分为28位,参照把输入密钥的位值填入相应的位置. 按照表所示A的第一位为输入的64位密钥的第57位,A的第2位为64位密钥的第49位,...,依此类推,A的最后一位最后一位是64位密钥的第36位。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, 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 第一次迭代以1.2.2步中生成的newData作为输入数据,第i (i 1)次迭代以第i-1次的64位输出数据为输入数据,把64位数据按位置等分成左右两部分: 保持left不变,根据上表把right由32位扩展成48位 把扩展后的48位right与第i次迭代生成的48位加密密钥进行按位异或操作 形成一个新的48位的right. 1.2.4 数据压缩   选择函数S  S1:   14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,   0,15,7,4,14,2,13,1,10,6,12,11,9,5

文档评论(0)

gsgtshb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档