- 57
- 0
- 约1.13万字
- 约 21页
- 2019-05-09 发布于贵州
- 举报
重庆邮电大学密码学实验报告实现des算法的每轮输出doc
南京信息工程大学实验报告 实验名称实验日期得分指导教师------ 系计算机专业软件工程年XX班次3姓名唐一鑫学号24 一.实验目的 1.理解对称加密算法的原理和特点2.理解DES算法的加密原理 二.实验内容 第一阶段:初始置换IP。在第一轮迭代之前,需要加密的64位明文首先通过初始置换IP的作用,对输入分组实施置换。最后,按照置换顺序,DES将64位的置换结果分为左右两部分,第1位到第32位记为L0,第33位到第64位记为R0。 第二阶段:16次迭代变换。DES采用了典型的Feistel结构,是一个乘积结构的迭代密码算法。其算法的核心是算法所规定的16次迭代变换。DES算法的16才迭代变换具有相同的结构,每一次迭代变换都以前一次迭代变换的结果和用户密钥扩展得到的子密钥Ki作为输入;每一次迭代变换只变换了一半数据,它们将输入数据的右半部分经过函数f后将其输出,与输入数据的左半部分进行异或运算,并将得到的结果作为新的有半部分,原来的有半部分变成了新的左半部分。用下面的规则来表示这一过程:Li=Ri-1;Ri=Li-1⊕f(Ri-1,Ki);在最后一轮左与右半部分并未变换,而是直接将R16L16并在一起作为未置换的输入。 第三阶段:逆置换。他是初始置换IP的逆置换,记为IP-1。在对16次迭代的结果再使用逆置换IP-1后,得到的结果即可作为DES加密的密文Y输出,即Y=IP-1 三.流程图原理图 流程图 DES原理图 四.实验结果 五.实验总结 通过这次的实验我知道了des的基本原理虽然DES已经过时了,但是他的原理和思想并没有过时,学号DES有助于学好当下比较流行的AES源程序: #include#includeusingnamespacestd; conststaticcharIP[64]=//初始置换{ 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}; conststaticcharEP1[56]=//密钥置换{ 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}; conststaticcharLOOP[16]=//左移{ 1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}; conststaticcharEP2[48]=//选择子密钥{ 14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,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}; staticconstcharEC[48]=//放大换位{ 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}; conststaticcharSBox[8][4][16]=//8个S盒{{ //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,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},}},},},}, 南京信息工程大学实验报告实验名称实验日期得分指导教师 ------系计算机专业软件工程年XX班次3姓名唐(来自:写论文网:重庆邮
原创力文档

文档评论(0)