毕业论文

打赏
当前位置: 毕业论文 > 自动化 >

基于VHDL语言的DES加密算法设计(4)

时间:2017-05-02 11:02来源:毕业论文
2.1.1 子密钥产生器 子密钥产生器的具体结构在图2中没有画出,但可以看到,每次迭代使用的密钥长度均为48bit,且16次迭代中使用的48bit密钥均不同。下面


2.1.1  子密钥产生器
子密钥产生器的具体结构在图2中没有画出,但可以看到,每次迭代使用的密钥长度均为48bit,且16次迭代中使用的48bit密钥均不同。下面说明如何从64bit的初始密钥得到16个互不相同的48bit子密钥。[11]
DES算法中输入的密钥长度为64bit,其中8bit用于奇偶校验,实际有效的密钥长度为56位。而16次迭代是在16个子密钥(48 bit)的控制下进行的。子密钥k(i),(i=1~16)的产生框图如图2-3所示。
 
64bit的初始密钥经过PCI置换选择后分为28bit的两组数据,分别存储于寄存器C和D中。PCI表如图4所示。其中,第8,16,32和64位在置换过程中被删除了,因而不出现在图2-4中。
 
各次迭代中,寄存器C和D分别将所存储的数据进行左循环移位置换,各次迭代的移位次数如表2-1所示。
表2-1   循环移位次数
第i次迭代    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
每次移位后,将寄存器C和D中所存储的数据合并为56bit,并进行置换选择II,通过置换后,56bit的数据将变为48bit。置换选择II表如表2-2所示。
至此,16个48bit的子密钥k(1)~k(16)已经生成,可应用于各次迭代运算中。下面,根据图2-2所示的DES算法流程图,分别介绍各步骤的运算规则。
表2-2   置换选择II表
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
2.1.2  初始置换IP
初始置换将64bit的明文按照表2-3 的顺序进行置换,得到一个乱序的64bit明文组,再将它分为左右两组各32bit的数据。初始置换将64bit明文置换为64bit数据,并分为左右两组,如表2-3所示。
表2-3   初始置换表
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 基于VHDL语言的DES加密算法设计(4):http://www.751com.cn/zidonghua/lunwen_6115.html
------分隔线----------------------------
推荐内容