DES课程设计报告

DES课程设计报告

ID:41887356

大小:722.55 KB

页数:39页

时间:2019-09-04

DES课程设计报告_第1页
DES课程设计报告_第2页
DES课程设计报告_第3页
DES课程设计报告_第4页
DES课程设计报告_第5页
资源描述:

《DES课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、院学告学术报大技计南学设海科程息课亠=口DES算法加密与解密的设计与实现课程名称:应用密码学学生姓名:学生学号:专业班级:任课教师:吴汉伟2013年06月05日目录一,DES简介2二,DES加密原理2三,DES解密原理错误!未定义书签。四,DES模块分析错误!未定义书签。1,DES轮密钥生成错误!未定义书签。1」轮密钥生成流程图错误!未定义书签。1.2置换选择141.3循环左移51.4置换选择262,初始置换63,拓展置换E64,异或函数一75,选择压缩变换S盒代替76,置换运算P错误!未定义书签。7,异或函数二错误!未定义书签。8,逆初始置换错误!未定义书签。五,程序分模

2、块实现111,明文输入112,子密钥产生123,十六轮加密的实现错误!未定义书签。4,密文输出错误!未定义书签。5解密的实现错误!未定义书签。六,DES算法的安全性错误!未定义书签。七,DES的应用错误!未定义书签。八,课程报告总结错误!未定义书签。九,附录14一,DES简介DES是DataEncryptionStandard(数据加密标准)的缩写。它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准,二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色[10]0DES是一个分组加密算法,它以64位为分组对数据加

3、密。同时DES也是一个对称算法:加密和解密用的是同一个算法。它的密匙长度是56位(因为每个第8位都用作奇偶校验),密匙可以是任意的56位的数,而且可以任意时候改变。其中有极少量的数被认为是弱密匙,但是很容易避开他们。所以保密性依赖于密钥。二,DES加密原理:DES对64(bit)位的明文分组M进行操作,M经过一个初始置换IP置换成mO,将明文分成左半部分和右半部分mO=(LO,R0),各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密匙结合。经过16轮后,左,右半部分合在一起经过一个末置换,这样就完成了[12]。在每一轮中,密匙位移位,然后

4、再从密匙的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作替代成新的32位数据,在将其置换换一次。这四步运算构成了函数f。然后,通过另一个异或运算,函数f的输出与左半部分结合,其结果成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次,就实现了。K,l>K,a>KH>IK)三,DES解密原理在经过所有的代替、置换、异或盒循环之后,你也许认为解密算法与加密算法完全不同。恰恰相反,经过精心选择的各种操作,获得了一个非常有用的性质:加密和解密使用相同的算法。DES加密和解密唯一的不同是密匙的次序相反。如果各轮加密密匙分别是KI,

5、K2,K3….K16那么解密密匙就是K16,K15,K14…K1。四,模块分析1,DES轮密钥的生成1.1轮密钥牛成流程图如下图所示:64位密钥Co(28位)D.<28位)循环左移

6、第环左移

7、*Cx(28位)6(28位)11■■■:(56位術环左移1第环左移1Ct(28位)Dj(28ft)11置换迭轻1

8、(56位循环左移:1191■110231194122513261427r1528161密V!表的II気逻辑严址换选择2

9、■木t)(48(?)1.2置换选择1将输入的64位密钥根据PC_1表进行置换。intTransform_l(charkey[64],chartemp[56

10、J){inti;intPC_1[56]={56,48,40,32,24,16,8,0,57,49,41,33,25,17,1,1,58,50,42,34,26,1&10,2,59,51,43,35,62,54,46,3&30,22,14,6,61,53,45,37,29,21,13,5,60,52,44,36,28,20,12,4,27,19,11,3};for(i=0;i<56;i++)temp[i]=key[PC_l[i]];return0;}1.3循环左移经置换选择1变换后输出的56位密钥被分成两个28位的值C()和D0o每个循环中Cm和Dm分别经过循环左移,这些经过

11、移位的值再作为下一循环的输入。根据循环左移表可知,移位只有一位或者两位,所以用if进行判断来执行左移。intRing_shift_left(chardata[56],inttime){intMove_Time[16]={1,122,2,2,2,2,1,2,2,2,2,2,2,1};//循环左移位数chartemp[56];inti,j;if(Move_Time[time]==2){temp[261=data[0];temp[27]=data[l];temp[54]=data[28J;temp[55]=data[29

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

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

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