DES算法实验报告

上传人:枫** 文档编号:511752209 上传时间:2024-01-25 格式:DOC 页数:11 大小:69.50KB
返回 下载 相关 举报
DES算法实验报告_第1页
第1页 / 共11页
DES算法实验报告_第2页
第2页 / 共11页
DES算法实验报告_第3页
第3页 / 共11页
DES算法实验报告_第4页
第4页 / 共11页
DES算法实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《DES算法实验报告》由会员分享,可在线阅读,更多相关《DES算法实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、 实验报告 / :xxxx学号:0XXXXX班级:XXXXXXX日期:2013/11/*题目:DES算法实验一、实验环境1硬件配置:处理器:Inter(R) Core(TM) i5-2430M CPU 2.40GHz (4 CPUs) ,2.4GHz存:2048MB RAM2使用软件:(1) 操作系统:win7 旗舰版(2) 软件工具:Microsoft Visual c+ 6.0二、实验涉与的相关概念或基本原理DES是一个分组密码算法,使用64位密钥(除去8位奇偶校验,实际密钥长度为56位)对64比特的数据分组(二进制数据)加密,产生64位密文数据。DES是一个对称密码体制,加密和解密使用同

2、意密钥,解密和加密使用同一算法(这样,在硬件与软件设计时有利于加密单元的重用)。DES的所有的性均依赖于密钥。DES的加密过程可分为加密处理,加密变换和子密钥生成几个部分组成。1.加密处理过程 (1)初始置换IP。加密处理首先要对64位的明文按表1所示的初始换位表IP进行变换。表中的数值表示输入位被置换后的新位置。(2)加密处理。上述换位处理的输出,中间要经过16轮加密变换。初始置换的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮加密变换。其中,经过i轮处理后的点左右32位分别为Li和Ri则可做如下定义: Li=Ri-

3、1Ri=Li-1F(Ri-1,K) 其中,F为F变换(3)最后换位。进行16轮的加密变换之后,将L16和R16合成64位的数据,再按照表2所示的最后换位表进行IP-1的换位,得到64位的密文,这就是DES算法加密的结果。2.加密变换过程 64位的密钥先由置换选择1减少至56六位,进行循环左移,然后通过置换选择2减少至48位。而通过扩展运算将32位按表3扩展换位表扩展为48位的右半部分通过异或操作和48位的密钥结合,并分成6位的8个分组,通过8个S-盒将这48位替代成新的32位数据。按此进行,输出32位,再按照表4 换位表P进行变换,这样就完成了F(R,K)的变换。3.子密钥生成过程 密钥通常表

4、示为64位的自然数,首先通过压缩换位Key_Exchange去掉每个字节的第8位,用作奇偶校验。因此,密钥去掉第8、16、2464位减至56位,所以实际密钥长度为56位。而每轮要生成48位的子密钥。输入的64位密钥,首先通过压缩换位得到56位的密钥,每层分成两部分,一部分28位为C0,一部分为D0。C0和D0依次进行循环左移操作生成了C1和D1,将C1和D1合成56位,再通过压缩换位Compression输出48位的子密钥K1,再将C1和D1进行循环左移和Compression压缩换位,得到子密钥K2以此类推,得到16个子密钥。密钥压缩换位表如表5表6所示。在产生子密钥的过程中左移次数如表7所

5、示。4.解密处理过程 从密文到明文的解密过程可采用与加密完全一样的算法。不过解密要用加密的逆变换,就是把上面的最后换位表和初始换位表完全倒过来变换。三、实验容流程图:主要代码:初始置换unsigned char Initial =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

6、, 45, 37, 29, 21, 13, 5,63, 55, 47, 39, 31, 23, 15, 7;逆初始置换unsigned char Final =40, 8, 48, 16, 56, 24, 64, 32,39, 7, 47, 15, 55, 23, 63, 31,38, 6, 46, 14, 54, 22, 62, 30,37, 5, 45, 13, 53, 21, 61, 29,36, 4, 44, 12, 52, 20, 60, 28,35, 3, 43, 11, 51, 19, 59, 27,34, 2, 42, 10, 50, 18, 58, 26,33, 1, 41,

7、 9, 49, 17, 57, 25;扩展变换Eunsigned char Expansion =32, 1, 2, 3, 4, 5,4, 5, 6, 7, 8, 9,8, 9, 10, 11, 12, 13,12, 13, 14, 15, 16, 17,16, 17, 18, 19, 20, 21,20, 21, 22, 23, 24, 25,24, 25, 26, 27, 28, 29,28, 29, 30, 31, 32, 1;P_盒置换unsigned char P_Box=16, 7, 20, 21, 29, 12, 28, 17,1, 15, 23, 26, 5, 18, 31,

8、30,2, 8, 24, 14, 32, 27, 3, 9,19, 13, 30, 6, 22, 11, 4, 25;S盒置换unsigned char S_Box8416 =/* S1 */ 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9,0, 7,0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9,5, 3, 8,4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7,3, 10, 5, 0,15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3,14, 10, 0, 6

9、, 13,/* S2 */ 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0,5, 10,3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9,11, 5,0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9,3, 2, 15,13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12,0, 5, 14, 9,/* S3 */10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4,2, 8,13, 7, 0, 9, 3, 4,

10、 6, 10, 2, 8, 5, 14, 12,11, 15, 1,13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12,5, 10, 14, 7,1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3,11, 5, 2, 12,/* S4 */ 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4,15,13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10,14, 9 ,10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5,2, 8

11、, 4,3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11,12, 7, 2, 14,/* S5 */2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14,9,14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9,8, 6,4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6,3, 0, 14,11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9,10, 4, 5, 3,/* S6 */12, 1, 10, 15, 9, 2,

12、 6, 8, 0, 13, 3, 4, 14, 7,5, 11,10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0,11, 3, 8, 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4,10, 1, 13, 11, 6,4, 3, 2, 12, 9, 5, 15, 10, 11, 14,1, 7, 6, 0, 8, 13,/* S7 */4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6,1, 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15,8,

13、6,1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5,9, 2, 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14,2, 3, 12,/* S8 */13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0,12, 7,1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0,14, 9, 2,7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13,15, 3, 5, 8,2, 1, 14, 7, 4, 10, 8, 13, 15

14、, 12, 9,0, 3, 5, 6, 11;置换选择1unsigned char Key_Exchange56 =57, 49, 41, 33, 25, 17, 9,1, 58, 50, 42, 34, 26, 18,10, 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, 45, 37, 29,21, 13, 5, 28, 20, 12, 4;置换选择2unsigned char Compression =14

15、, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10,23, 19, 12, 4, 26, 9, 16, 7, 27, 20, 13, 2,41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48,44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32;循环左移位数unsigned char Key_Move=1 , 1 , 2 , 2 , 2 , 2 , 2 , 2 , 1 , 2 , 2 , 2 , 2 , 2 , 2 , 1;产生子密钥int Key_Process(bool key64,bool Sub_Key1648 ) int round

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号