des加密算法

des加密算法

ID:26568395

大小:89.03 KB

页数:25页

时间:2018-11-27

des加密算法_第1页
des加密算法_第2页
des加密算法_第3页
des加密算法_第4页
des加密算法_第5页
资源描述:

《des加密算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二DES加密算法一、实验目的:理解对称加密算法的原理和特点以及DES和AES算法的加密原理。二、实验原理:在DES这个加密系统中,每次加密或解密的分组大小均为64位,所以DES没有密文扩充的问题。对大于64位的明文只要按每64位一组进行切割,而对小于64位的明文只要在后面补“0”即可,另一方面,DES所用的加密或解密密钥也是64位大小,但因其中有8个位是用来作奇偶校验的,所以64位中真正起密钥作用的只有56位,密钥过短也是DES最大的缺点。DES加密与解密所用的算法除了子密钥的顺序不同外,其他部分完全相同。算法过程:1.对输入的密钥进行变换。用户的64

2、bit密钥,其中第8,16,24,32,40,48,56,64位是校验位,使得每个密钥都有奇数个1。所以密钥事实上是56位。变换后得到56bit数据,将它分成两部分,C[0][28],D[0][28]。2.计算16个子密钥,计算方法C[i][28]D[i][28]为对前一个C[i-1][28],D[i-1][28]做循环左移操作。3.串联计算出来的C[i][28]D[i][28]得到56位,然后对它进行如下变换得到48位子密钥K[i][48]4.对64bit的明文输入进行换位变换。得到64位数据,将这数据前后分成两块L[0][32],R[0][32]。5.

3、加密过程,对R[i][32]进行扩展变换成48位数,记为E(R[i][32])。6.将E(R[i][32])与K[i][48]作异或运算,得到48位数,将48位数顺序分成8份,6位一份,B[8][6]。7.使用S[i]替换B[i][6]。过程如下:取出B[i][6]的第1位和第6位连成一个2位数m,m就是S[i]中对应的行数(0-3),取出B[i][6]的第2到第5位连成一个4位数n(0-15),n就是S[i]中对应的列数,用S[i][m][n]代替B[i][6]。S是4行16列的对应表,里面是4位的数,一共有8个S。8.将从B[i][6]经过S得到的8个

4、4位数连起来得到32位数。9.把R[i-1][32]的值赋给L[i],从5开始循环。直到K[16][48]结束。10.将最后的L,R合并成64位,然后进行如下转化得到最后的结果。这是对第4步的一个逆变化。11.解密过程同样,只需要把16个子密钥K[i][48]的顺序颠倒过来就行了。 输入8个字节流程图:8个字节转化成二进制64位输入密钥,设置成字节,并转化成64位初始置换将64位密钥通过置换选择1,输出56位密钥将文本段分为左右两个部分经过循环左移,置换选2,变换后输出48位密钥右部分(32位)位)左部分(32位)48位密钥扩展运算(48)位异或XOR()

5、左右交换,rount++选择压缩变换S盒代换Round<16置换运算P,输出32位逆初始置换DES加密结束,显示加密后的文本64位二进制转化成8字节三、实验设备:Windows虚拟机CIS工具箱——该实验使用加密解密工具验证实验结果四、实验步骤:用C语言编写DES算法代码,代码如下:#include#include//明文IP置换坐标intDataIP[]={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,

6、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};charpreData[8];//用户输入的明文charpreKey[8];//用户输入的密钥intData64[64];//8个明文通过十进制转二进制得到的64bit明文intKey64[64];//8个密钥通过十进制转二进制得到的64bit密钥intDataTemp[64];//Data64[]通过IP置换得到的64bit明文,用于得到L0和R0in

7、tL0[32],R0[32];intflagDorK=0;//标志位,如果是1的时候表示明文,是0的时候表示密文//此段全局变量服务于段雪琦所写所用函数//PC_1置换坐标表intPC_1[56]={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,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};//PC_2置换坐标表intPC_2[4

8、8]={14,17,11,24,1,5,3,28,15,6,21,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。