密码学实验报告-DES.doc

密码学实验报告-DES.doc

ID:56490456

大小:66.00 KB

页数:6页

时间:2020-06-25

密码学实验报告-DES.doc_第1页
密码学实验报告-DES.doc_第2页
密码学实验报告-DES.doc_第3页
密码学实验报告-DES.doc_第4页
密码学实验报告-DES.doc_第5页
资源描述:

《密码学实验报告-DES.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、密码学应用与实践课程实验报告实验1:实现DES密码体制一、实验目的1.编写程序实现DES的加、解密:1)编程构造DES的密钥;2)应用上述获得的密钥将一段英文或文件进行加、解密。2.用DES算法实现口令的安全二、实验内容1.DES原理DES综合运用了置换,代换,移位多种密码技术,是一种乘积密码。在算法结构上采用迭代结构,从而使其结构清晰,调理清楚,算法为对合运算,便于实现,运行速度快。DES使用了初始置换IP和IP-1各一次(相应的置换看算法描述图表)置换P16次,安排使用这3个置换的目的是把数据彻底打乱重排。选择置换E一方面把数据打乱重排,另一方面把32位输入扩展为48位,算法中除了S

2、-盒是非线性变换外,其余变换均为显示变换,所以保密的关键是选择S-盒。符合以下3条准则:(1)对任何一个S-盒而言,没有任何线性方程式等价于此S-盒的输出输入关系,即是S-盒是非线性函数。(2)改变s-盒的任何一位输入,都会导致两位以上的输出改变,即满足"雪崩效应"。(3)当固定某一个位的输入时,S-盒的4个出位之间,其中0和1的个数之差小。这个准则的本质是数据压缩,把四位输入压缩为4位输出。选择S-盒函数的输入中任意改变数位,其输出至少变化两位。因为算法中使用了16次迭代,大大提高了保密性。2.DES算法由加密、解密和子密钥的生成三部分组成1)加密DES算法处理的数据对象是一组64比特

3、的明文串。设该明文串为m=m1m2…m64(mi=0或1)。明文串经过64比特的密钥K来加密,最后生成长度为64比特的密文E。其加密过程图示如下:1)子密钥的生成64比特的密钥生成16个48比特的子密钥。其生成过程见图:1)解密DES的解密过程和DES的加密过程完全类似,只不过将16圈的子密钥序列K1,K2……K16的顺序倒过来。即第一圈用第16个子密钥K16,第二圈用K15,其余类推。第一圈:加密后的结果L=R15,R=L15⊕f(R15,K16)⊕f(R15,K16)=L15同理R15=L14⊕f(R14,K15),L15=R14。同理类推:得L=R0,R=L0。1.密钥生成(1)取

4、得密钥从用户处取得一个64位(本文如未特指,均指二进制位))长的密码key,去除64位密码中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥.(2)等分密钥(3)密钥移位DES算法的密钥是经过16次迭代得到一组密钥的,把在1.1.2步中生成的A,B视为迭代的起始密钥.比如在第1次迭代时密钥循环左移1位,第3次迭代时密钥循环左移2位.第9次迭代时密钥循环左移1位,第14次迭代时密钥循环左移2位.第一次迭代:A(1)=ǿ(1)AB(1)=ǿ(1)B第i次迭代:A(i)=ǿ(i)A(i-1)B(i)=ǿ(i)B(i-1)(4)密钥的选取在(3)步中

5、第i次迭代生成的两个28位长的密钥为把合并按照表4所示k的第一位为56位密钥的第14位,k的第2位为56位密钥的第17位,...,依此类推,k的最后一位最后一位是56位密钥的第32位。生成与进行第i次迭代加密的数据进行按位异或的48位使用密钥:(5)迭代DES算法密钥生成需要进行16次迭代,在完成16次迭代前,循环执行(3)(4)步.最终形成16套加密密钥:key[0],key[1],key[2],….key[14],key[15].1.数据的加密操作(1)取得数据把明文数据分成64位的数据块,不够64位的数据块以适当的方式补足。(2)数据扩展第一次迭代以上步生成的newData作为输入

6、数据,第i(i>1)次迭代以第i-1次的64位输出数据为输入数据,把64位数据按位置等分成左右两部分:保持left不变,把扩展后的48位right与第i次迭代生成的48位加密密钥进行按位异或操作形成一个新的48位的right.(3)数据压缩在1.2.3步中形成了48位的right值,需要把48位的right值转换成32位的right值.把right视为由8个6位二进制块组成,a,b….h都是6位,强制转换成10进制整数的值都不大于64,a,b…h转成10进制整数后,在对应的表中根据转换后整数值取得对应位置的替代值,每6位用一个4位替换这样就完成了从48位向32位数据的转换.有些资料中介绍

7、6位转4位的实现方法与本文所采用的不同,但殊途同归,最终的结果是相同的。(4)数据换位把1.2.4步形成的32位right根据表8进行转换:数据的原第16位换到第一位,原第7位换到第二位,...,依此类推,最后得到新的32位数据.(1)交换数据把right和left按位异或后的值赋给right,然后将本轮输入的原始right值赋给left.(2)迭代DES算法需要进行16次迭代,在完成16次迭代前,把第i-1次得到的的left和ri

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

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

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