当前位置:文档之家› 信息安全与保密DRS加密算法实验报告

信息安全与保密DRS加密算法实验报告

实验报告课程名称信息安全与保密实验项目名称实验二DES加密算法班级与班级代码08信管2班082511012实验室名称(或课室)实验大楼809 专业 2008信息管理与信息系统2班任课教师郑心炜学号:082511012**姓名:黄**机器号码:5组C(周三)实验日期:2011年3月30日广东商学院教务处制姓名黄** 实验报告成绩评语:指导教师(签名)年月日说明:指导教师评分后,实验报告交院(系)办公室保存。

实验二 DES加密算法一、实验目的1.理解对称加密算法的原理和特点2.理解DES和AES算法的加密原理二、实验环境Windows虚拟机、网络信息安全教学平台三、实验工具CIS工具箱——该实验使用加密解密工具。

四、实验原理对称密钥加密机制即对称密码体系,也称为单钥密码体系和传统密码体系。

对称密码体系通常分为两大类,一类是分组密码(如DES、AES 算法),另一类是序列密码(如RC4算法)。

对称密码体系加密和解密时所用的密钥是相同的或者是类似的,即由加密密钥可以很容易地推导出解密密钥,反之亦然。

同时在一个密码系统中,我们不能假定加密算法和解密算法是保密的,因此密钥必须保密。

发送信息的通道往往是不可靠的或者不安全的,所以在对称密码系统中,必须用不同于发送信息的另外一个安全信道来发送密钥。

图2-1-1描述了对称密码(传统密码)系统原理框架,其中M表示明文;C表示密文;E表示加密算法;D表示解密算法;K表示密钥;I表示密码分析员进行密码分析时掌握的相关信息;B表示密码分析员对明文M的分析和猜测。

五、实验步骤(1)打开windows虚拟机的网络信息安全教学平台的密码工具,输入八位十进制的密码和密钥。

密码是:51101249;密钥是:51101249. (2)DES的加密过程1.初始置换经过分组后的64位明文分组将按照初始置换表重新排列次序,进行初始置换,置换方法如下:初始置换表从左到右,从上到下读取,如第一行第一列为58,意味着将原明文分组的第58位置换到第1位,初始置换表的下一个数为50,意味着将原明文分组的第50位置换到第2位,依次类推,将原明文分组的64位全部置换完成2. 16轮循环经过了初始置换的64位明文数据在中间分成2部分,每部分32位,左半部分和右半部分分别记为L0和R0。

然后,L0和R0进入第一轮子加密过程。

R0经过一系列的置换得到32位输出,再与L0进行异或(XOR)运算。

其结果成为下一轮的R1,R0则成为下一轮的L1,如此连续运作16轮。

我们可以用下列两个式子来表示其运算过程:Ri = Li-1 XOR f(Ri-1,Ki)Li = Ri-1(i = 1,2, (16)3.扩展置换32位的右半部分明文数据首先要进行扩展置换,扩展置换将32位的输入数据扩展成为48位的输出数据,它有三个目的:第一,它产生了与子密钥同长度的数据以进行异或运算;第二,它提供了更长的结果,使得在以后的子加密过程中能进行压缩;第三,它产生雪崩效应(avalanche effect),这也是扩展置换最主要的目的,使得输入的一位将影响两个替换,所以输出对输入的依赖性将传播的更快(雪崩效应)。

扩展置换的置换方法与初始置换相同,只是置换表不同。

4.异或运算扩展置换的48位输出数据与相应的子密钥进行按位异或运算,关于子密钥的产生过程以后将详细讨论,按位异或运算的运算法则如下(其中⊕为异或运算符):5. S盒置换S盒置换是DES算法中最重要的部分,也是最关键的步骤,因为其他的运算都是线性的,易于分析,只有S盒代替是非线性的,它比DES中任何一步都提供了更好的安全性。

经过异或运算得到的48位输出数据要经过S盒置换,置换由8个盒完成,记为S盒。

每个S盒都有6位输入,4位输出。

6.直接置换S盒置换后的32位输出数据将进行直接置换,该置换把每个输入位映射到输出位,任意一位不能被映射两次,也不能略去,表2-1-4为直接置换表,该表的使用方法与初始置换相同。

7. 终结置换终结置换与初始置换相对应,它们都不影响DES的安全性,主要目的是为了更容易的将明文和密文数据以字节大小放入DES的f算法或者DES芯片中。

表2-1-5为终结置换表,这个表的使用方法与初始置换表相同。

六、实验结果图一图二64位密钥:00110101 00110001 00110001 00110000 0011000100110010 00110100 0011100156位密钥:00000000 00000000 11111111 11110010 00000100 00011000 00001111C1=00000000 00000000 11111111 1111D1=00100000 01000001 10000000 1111子密钥=01010000 00101100 10101100 01010110 00001000 01000000C1+1=00000000 00000001 11111111 1110D1+1=01000000 10000011 00000001 1110压缩矩阵1:00000000 00000000 11111111 11110010 00000100 00011000 00001111压缩矩阵2:010100000010110010101100010101100000100001000000图三C2+1=00000000 00000011 11111111 1100D2+1=10000001 00000110 00000011 1100子密钥=01010000 10101100 10100100 01000000 10000000 01010110C2和D2即图2的C1+1和D1+1.图四C3+1=00000000 00001111 11111111 0000D3+1=00000100 00011000 00001111 0001子密钥=11010000 10101100 00100110 11000101 10000100 10001000图五图六置换前:0011010100110001001100010011000000110001001100100011010000111001置换后:0000000011111111010000011001011100000000111111111000000000100000图七L1=00000000 11111111 01000001 10010111R1=00000000 11111111 10000000 00100000L1+1=00000000 11111111 10000000 00100000R1+1=10011011 10100011 10111010 10100110K1=01010000 00101100 10101100 01010110 00001000 01000000图八L1+1=00000000 11111111 10000000 00100000R1+1=10011011 10100011 10111010 10100110R1=00000000 11111111 10000000 00100000扩展型换位矩阵:000000000001011111111111110000000000000100000000扩展型换位后的R2=00000000 00010111 11111111 11000000 0000000100000000扩展型换位后的K1=01010000 00101100 10101100 01010110 00001000 01000000异或后的二进制:010100 000011 101101 010011 100101 100000 100101 000000S盒后的9B5CFB31=10011011 01011100 11111011 00110001将异或后的48位二进制分为8组6位数的。

第一组:010100。

S1盒输出是:6第二组:000011 S2盒输出是:13第三组:101101 S3盒输出是:9第四组:010011 S4盒输出是:7第五组:100101 S5盒输出是:12第六组:100000 S6盒输出是:9第七组:100101 S7盒输出是:13第八组:000000 S8盒输出是:13所以S盒压缩的32位数是:0110 1101 1001 0111 1100 1001 1101 1101 置换矩阵P:10011111010111001111101100110001最后,L1=00000000 11111111 01000001 10010111与10011111 01011100 11111011 00110001进行异或得到R2图九图十置换前:00000110 10011010 11010011 01111111 00111111 00011111 10100010 01000101置换后:10100111 11111101 11100011 10110001 10110101 10001001 00000111 00011100七、实验分析DES采用传统的换位和置换的方法进行加密,在56b密钥的控制下,将64b明文块变换为64b密文块,加密过程包括16轮的加密迭代,每轮都采用一种乘积密码方式(代替和移位)。

八、结论由64位明文51101249,经过64位密钥51101249加密后,最终得到16进制的64位密文,该密文为A7FDE3B1B589071C。

九、实验总结与心得体会由于本次实验是通过软件来实现的,真正涉及到详细过程的步骤比较少,在实验过程中不会遇到很大困难。

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

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

相关主题