DES加密算法及实现肖大伟重庆邮电大学计算机应用专业一课程设计目的1使同学们掌握DES加密算法的加解密过程,从该算法的设计思路中得到一定的启发.2利用编程工具实现DES加密解密算法,提高同学们的实际动手能力.二DES加密算法简绍美国国家标准局(NBS)于1997年公布了一个由IBM公司研制的一种加密算法,并且确定为非机要部门使用的数据加密标准,简称DES(DataEncryptonStandard)。自公布之日起,DES算法作为国际上商用保密通信和计算机通信的最常用算法,一直活跃在国际保密通信的舞台上,扮演了十分突出的角色。DES是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,她仍然发挥着余热^_^.三DES算法加解密过程明文:m1m2…m64密文:e1e2…e64密钥:e1e2…e64DES加密(16次迭代)三DES算法加解密过程3.1密钥生成-等分密钥K=K1K2…K63K64通过等分密钥表(表1,表2)划分密钥A(0)=K57K49…K36B(0)=K63K55…K43.1密钥生成-密钥移位A(0)=K57K49…K36B(0)=K63K55…K4密钥移位表(表3)A(i)=⊙A(i-1)(i=0,..16)B(i)=⊙B(i-1)(i=0,..16)合并A(i),B(i)C(i)=A(i)∪B(i)=C1C2…C56密钥选取表选取密钥生成第i组密钥K(i)=C14C17C11…C29C32循环16次三DES算法加解密过程-IP置换明文:M=m1m2…m64IP置换(通过IP置换表)L0(MIp前32位)R0(MIp后32位)Mip=m58m50…m15m7三DES算法加解密过程-16次跌代L0R0R2=L1f(R0,K1)L1=R0fk1++表示不进位的加法运算.三DES算法加解密过程-f变换R0=r1r2…r32E变换扩充为48位E=r32r1…r31K1E1(6b)E2(6b)E8(6b)…E7(6b)S1S2…S7S8合并为32比特P变换f(R0,K1)三DES算法加解密过程-S盒变换b1b2b3b4b5b6Si(S盒)t1t2t3t4输入b1,b2,b3,b4,b5,b6中,计算出x=b1*2+b6,y=b5+b4*2+b3*4+b2*8,再从Si表中查出x行,y列的值Sxy。将Sxy化为二进制,即得Si盒的输出。三DES算法在C++语言下的实现四总结以及课后作业本节课程主要介绍了DES算法加密和解密的过程及其在C++语言下的实现.1DES的C++程序使其能对任意长度的字符串加解密.2需要加密的明文中含有中文怎么转换?