当前位置:文档之家› DES实验报告

DES实验报告

实验报告
课程名称电子商务安全
实验项目名称实验二DES加密算法
班级与班级代码07电商1班072511031
实验室名称(或课室)实验大楼809 专业 2007电子商务1班
任课教师
学号:072511031
姓名:
机器号码:3组F(周二)
实验日期:2010年10月19 日
广东商学院教务处制
姓名汪江实验报告成绩
评语:
指导教师(签名)
年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

实验二 DES加密算法
实验目的
1、理解对称加密算法的原理和特点。

2、理解DES和AES算法的加密原理。

实验原理
DES是一种分组加密算法,所谓分组加密算法就是对一定大小的明文或密文来做加密或解密动作。

而在DES这个加密系统中,每次加密或解密的分组大小均为64位,所以DES没有密文扩充的问题。

对大于64位的明文只要按每64位一组进行切割,而对小于64位的明文只要在后面补“0”即可。

另一方面,DES所用的加密或解密密钥也是64位大小,但因其中有8个位是用来作奇偶校验的,所以64位中真正起密钥作用的只有56位,密钥过短也是DES最大的缺点。

DES加密与解密所用的算法除了子密钥的顺序不同外,其他部分完全相同。

实验设备
Windows虚拟机
CIS工具箱——该实验使用加密解密工具。

实验步骤
step 1:输入明文数据和密钥是一样的,都为本人的学号后8位(51103119)。

明文和密钥要求键盘输入8个字符,在系统里换算成asc码就变成16进制的16个字符实验结果。

如图1所示。

图1
step 2:点击“密钥生成演示”,可以得到第一次迭代后的64位密钥、
56位密钥、Ci 、Di 、Ci+1、Di+1、子密钥。

如图2所示。

图2
64位密钥的二进制矩阵如下: 56位压缩密钥的二进制矩阵如下:
Ci 的二进制矩阵如下: Di 的二进制矩阵如下:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
1
1
1
1
0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0
1
1
Ci+1的二进制矩阵如下: Di+1的二进制矩阵如下:
子密钥的二进制矩阵如下:
压缩矩阵1和压缩矩阵2的二进制矩阵如下:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
1
1
1
1
1
1
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
1
1
1
1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
1
1
1
1
1
0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
1
1
1
1
1
0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0
1
Step 3:再点击“下一个”,得到第二次迭代结果,如图3所示。

图3
Ci+1的二进制矩阵 Di+1的二进制矩阵
子密钥的二进制矩阵
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1
1
1
1
0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
1
1
1
1
0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0
1
Step 4:再点击“下一个”,得到第三次迭代结果。

如图4所示。

图4
Ci+1的二进制矩阵 Di+1的二进制矩阵
子密钥的二进制矩阵
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
1
1
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1
1
1
1
1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0
1
经过16次迭代后,得到如图5所示的结果。

图5
Step 5:密钥生成演示完毕,点击“初始置换”,得到结果如图6所示。

图6
置换前的二进制矩阵: 置换后的二进制矩阵:
0 0 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0
1
1
1
1
Step 6:点击“下一轮”进行第一轮迭代,结果如图7所示。

图7
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
1
Li 的二进制矩阵 Ri 的二进制矩阵
Li+1的二进制矩阵 Ri+1的二进制矩阵
Ki 的二进制矩阵
Step 7:点击“F(Ri,Ki)”,得到F函数,结果如图8所示。

图8
扩展型换位矩阵的Ri:扩展型换位后的Ki:
0 0 0 0
0 0 0 0
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0
0 0 0 0 1 0
1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1
0 0 0 0 0 0
1 0 0 0 0 1 0 0 0 0 0 0
异或后的503B53A408E0的二进制: S 盒后的B24ADF39二进制:
“换位”表示置换矩阵P
Step 8:经过16轮迭代后,得到结果如图9所示。

图9
0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0
1 0 1 1 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1
1
16 7
20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
Step 9:点击“终结置换”,得到最终的密文结果。

如图10所示。

图10
实验分析
DES采用传统的换位和置换的方法进行加密,在56b密钥的控制下,将64b明文块变换为64b密文块,加密过程包括16轮的加密迭代,每轮都采用一种乘积密码方式(代替和移位)。

结论
由64位明文51103119,经过64位密钥51103119加密后,最终得到16进制的64位密文,该密文为7952400804754D53
实验总结与心得体会
由于本次实验是通过软件来实现的,真正涉及到详细过程的步骤比较少,在实验过程中不会遇到很大困难。

但是这个实验要充分了解其原理,我想这才是做这个实验的真正目的,而不是单纯地只按照软件的操作步骤来完成这个实验。

在这个实验中,我觉得比较难的就是,要将明文和密钥经过初始变换和十六轮加密变换等一系列变换后才能得到张结置换,其中的变换步骤比较多,而且比较复杂,还要将十六进制转化为二进制,工作量比较大。

由本次DES算法实验我们可以看到:DES算法中只用到64位密钥中的其中56位,而第8、16、24、......64位8个位并未参与DES 运算,这一点,向我们提出了一个应用上的要求,即DES的安全性
是基于除了8,16,24,......64位外的其余56位的组合变化256才得以保证的。

因此,在实际应用中,我们应避开使用第8,16,24, (64)
位作为有效数据位,而使用其它的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。

如果不了解这一点,把密钥Key的8,16,24,..... 64位作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患。

相关主题