des算法实验指导

des算法实验指导

ID:45755414

大小:117.38 KB

页数:14页

时间:2019-11-17

des算法实验指导_第1页
des算法实验指导_第2页
des算法实验指导_第3页
des算法实验指导_第4页
des算法实验指导_第5页
资源描述:

《des算法实验指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验1DES加密与解密算法的实现【实验目的】1、理解DES加密与解密的程序设计算法思想。2、编写DES加密与解密程序,实现对文件的加密与解密,加深对数据加密与解密的理解,掌握DES加密算法思想,提高网络安全的编程能力。【实验性质】综合与设计性实验【实验条件】计算机一台【实验要求】本实验内容多,要求两次完成。实验2要求:读懂代码,修改其小循环移位的错误;如何判断是否修改正确,参考课堂上所讲举例内容,即输入密码为:12345678,明文为:01083201,而结果和教师课堂举例的运行结果一致则修改止确,否则要继续修改。实验3要求:口己添加些代码,得

2、到明文加密一轮后的结果,即得到L1和R1。【实验导读】1、DES算法简介数据加密标准DES(DataEncryptionStandard)算法是一个分组加密算法,也是一个对称算法,加密和解密使用同一个算法,利用传统的换位、异或、置换等加密方法。DES算法以64位(8byte)为分组对数据加密,其中冇8位(第8、16、24、32、40、48、56和64位)用作奇偶校验位,另外的56位为真正的密钥,保密性依赖于密钥,加密和解密过程使用同一个密钥。2、加密过程设计DES首先对64位的明文数据分组进行操作,通过一个初始置换,将明文分纽等分成左、右两半部

3、分,然后进行16轮完全相同的运算,在每一轮运算中,对密钥位进行移位,再从56为密钥中选出48位;同时通过一个扩展置换将数据的右半部分扩展成48位,再通过界或操作与计算得到的48位子密钥结合,并通过8个S盒将这48位替代成新的32位数据,再将其置换一次。然示,通过另一个异或运算,将运算函数f的输出与左半部分结合,其结果成为新的右半部分,1LI的右半部分成为新的左半部分。将该操作m16次,便实现了DES的16轮运算。经过16轮后,左、右半部分合在一起,最后再通过一个逆初始置换(初始置换的逆置换),这样就完成DES加密算法。DES加密算法的具体过程描

4、述如F:1)、计算密钥KI对64位密钥而言,因为每个字节的第8位为校验位,故密钥由64位减至56位,而16个子密钥Ki(I值从1到16)是在DES算法中的每一轮运算中,从56位密钥产生出的不同的48位子密钥。产生方式如下:首先进行密钥置换,使得密钥的各个位与原密钥位对应关系表如下表所57,49,41,33,25,17,9,1,58,50,42,34,26,18,110,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,

5、45,37,29,21,13,5,28,20,12,4接着把经过置换后的56为密钥等分成两部分,其中前28位记为C[0],后28位记为D[0]o然后从i二1开始,分别对D[i-1]做循环左移来生成C[i],D[iK每次循坏左移位数,这两部分分别循坏左移1位或2位,如下表所示。循环次瓠12345678910111213141516■左移位数::1122222212222221然后串联C[i],D[i],就可以得到一个56位数,对此数做下表所示的压缩置换以产生48位子密钥Ki。14,17,11,24,1,5,3,28,15,6,21,10,23,1

6、9,12,4,26,8,16,7,27,20,13,241,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32通过以上方法就可以计算出16个了密钥Ki(T值从1到16)o2)、加密数据块把要加密的数据块分成64位的数据块,不满64位的以适当的方式填补至64位。在第一轮运算Z前,先对数据块作初始置换IP(初始置换是简单的比特移位),即设有一个比特的信息块m=mlm2-m64,(其中,mi={l,2},1=1,2,…,64),则IP(m)=m58m50・・・m7。

7、初始置换如卜表所示。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,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再将査换后的数据块等分成两部分,前面32位记为L[O],后面32位记为R[O]。然后运算函数f根据如表7-5所示的扩展置换(也叫E盒置换),把32位的输入扩展成48位

8、,并与密钥Ki作异或运算,再把所得的48位分成8组,每组6位,使用一个数组来储存,设广6位为B[l],7~12位为B⑵,・・・43~48位为B⑻。下表

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

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

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