资源描述:
《运用Matlab实现DES算法.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、运用Matlab实现DES算法1、DES加密解密过程详解2、DES算法理论图解3、DES算法的应用误区4、DES算法MATLAB程序实现演示DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。 DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data。key为加密解密使用的密钥,data为加密解密
2、的数据。实际运用中,密钥只用到了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的最后一位最
3、后一位是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,41.1.3密钥移位次数:12345678910111213141516左移:1122222212222221DES算法的密钥是经过16次迭代得到一组密钥的,把在1.1.2步中生成的A,B
4、视为迭代的起始密钥,上表显示在第几次迭代时密钥循环左移的位数。比如在第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位长的密
5、钥为把合并以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
6、初始换位 明文初始置换表: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位数据。OldDatanewData1.2
7、.3数据扩展明文扩展置换表:3212345456789891011121312131415161716171819202120212223242524252627282928293031321第一次迭代以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盒函数表:
8、S1: 14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7, 0,