贵州大学本科毕业论文(设计) 第 4 页
第二章 DES加密的详细描述
2.1 DES加密的计算部件及其过程
2.1.1 密钥的计算
DES的密钥是由一个64位的主密钥产生16轮48位的子密钥来对要加密的信息来加密的。DES的加密算法的密钥扩展需要用到两个缩减变换PC-1(置换选择1(PC-1))和PC-2以及一个循环左移变换。
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 57 29 21 13 5 28 20 12 4 图2-1置换选择1(PC-1)
上图2-1对输入的64位密钥进行缩减使其变为56位。这个过程实际上就是去除原密钥的第8,16,24,32,40,48,56,64位,再按照一定的次序进行排列。密钥中被缩减的位被用来作为奇偶校验位。通过PC-1的置换,密钥种子的第56位作为输出的第1位,而密钥种子的49位作为输出的第2位等等以此类推直到密钥种子的第4位作为输出的第56位位置。
循环序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 转动比特数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 图2-1 左移调度
贵州大学本科毕业论文(设计) 第 5 页
在PC-1置换以后对其输出的56位子密钥分为左28位和右28位,可将其分别记为A0和B0。A0和B0分别循环左移2位得到A1和B1,然后A1和B1分别循环左移1位得到A2和B2依次类推进行16次移位操作,并得到Ai和Bi(i=1,2,3??16)。然后将其作为置换选择(PC-2)的输入,在其移位的过程中,1、2、9、16左移的为数和上图2-1中“转动比特数”的值保持一致都为1位,其他位移动2位。
14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 2 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 图2-3 置换选择2(PC-2)
PC-2每次循环都将Ai和Bi(1??16)一起作为PC-2的16次置换的输入,通过PC-2置换得到16轮的48位子密钥记为Kn共16组。
如上图2-3通过PC-2的置换,Ai和Bi的第14位作为输出的第1位,第17位作为第2位等等以此类推,第32位作为输出的第56位。
通过PC-2置换后的输出就得到16轮的48位子密钥。到这里就得到了16轮的48位子密钥。
2.1.2初始置换IP
如下图2-4:初始置换(IP)是标准数据加密算法的第一个步骤。它是将64位的明文按照一定的规则进行重新排列,也叫置换。IP置换后的输出依然为64位的分组,其左边的32位组成L,右边的32位组成R。L和R是F函数的初始输入。其中R作为扩充E的初始输入,L作为置换P后面所要进行的左右异或的输入。
贵州大学本科毕业论文(设计) 第 6 页
58 50 42 34 26 18 10 2 52 44 36 28 20 12 4 60 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 49 41 33 25 17 9 1 57 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 55 47 39 31 23 15 7 63 图2-4 初始置换(IP)
2.1.3初始置换的逆IP-1
如下图2-4:逆初始置换IP-1是数据加密标准算法的最后一个步骤,即通过它可以得到数据加密标准加密后的最终结果。它的输入作为F函数的输出,加密过程中,数据通过初始置换,E扩展等一系列的包含F函数中的种种函数置换或缩减,或扩充,或移位得到的结果必须经过初始逆置换IP-1的变换才的出最终的加密信息。
40 8 48 16 56 24 64 32 图2-4 逆初始置换(IP-1)
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 9 49 17 57 25 贵州大学本科毕业论文(设计) 第 7 页
2.1.4 F函数运算的原理
F函数包括了:E扩展的置换选择,与密钥的异或,S盒的缩减选择,以及P置换选择和与上一轮的L(左)32位异或,从而形成了DES的16轮迭代中的每一轮。下图为F函数运算图:
32位
扩展\\置换 (E表) 48位 L[i] R[i] C[i] D[i] 左移 左右移移
K[i]48位 异或运算 置换\\压缩 (置换选择2) 48位
32位 置换(P) 替代\\选择 (S盒)
L[i+1] 异或运算 R[i+1] 图2-5 F函数运算
C[i+1] D[i+1]
相关推荐: