DES算法实现过程分析_第1页
DES算法实现过程分析_第2页
DES算法实现过程分析_第3页
DES算法实现过程分析_第4页
DES算法实现过程分析_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DES算法实现过程分析 内容: 1.    处理密钥: 1.1  从用户处获得64位密钥.(每第8位为校验位,为使密 钥有正确的奇偶校验,每个密钥要有奇数个”1”位.(本文如未特指,均指二进制位) 1.2    具体过程: 1.2.1    对密钥实施变换,使得变换以后的密钥的各个 位与原密钥位对应关系如下表所示:          表一为忽略校验位以后情况 1

2、60;     2     3     4     5     6     7     8      9    10   

3、0;11    12    13    14    15    16    17     18    19    20    21    22 

4、60;  23    24    25     26    27    28 57    49    41    33    25    17   &

5、#160; 9     1     58    50    42    34    26    18    10     2     59  

6、0; 51    43    35    27    19    11     3     60    52    44    36 29   

7、60;30    31    32    33    34    35    36     37    38    39    40    41 &#

8、160;  42    43    44     45    46    47    48    49    50    51    52   

9、60; 53    54    55    56 63    55    47    39    31    23    15     7     6

10、2    54    46    38    30    22    14     6     61    53    45    37 &

11、#160;  29    21    13     5     28    20    12     4 1.2.2  把变换后的密钥等分成两部分,前28位记为C0, 后28位记为D0. 1.2.3  计算子密钥(共16个), 从

12、i=1开始。 1.2.3.1 分别对Ci-1,Di-1作循环左移来生成 Ci,Di.(共16次)。每次循环左移位数         如下表所示: 循环次数    1    2    3    4    5    6    7

13、60;   8     9    10    11    12    13    14    15    16 左移位数    1    1  

14、60; 2    2    2    2    2    2     1     2     2     2     2  

15、60;  2     2     1 1.2.3.2 串联Ci,Di,得到一个56位数,然后对此数 作如下变换以产生48位子密钥Ki。         变换过程如下: 1      2     3     4  

16、;   5     6     7     8      9    10    11    12    13    14    1

17、5    16    17     18    19    20    21    22    23    24 14    17    11 

18、60;  24     1     5     3    28     15     6    21    10    23    19&#

19、160;   12     4     26     8    16     7    27    20    13     2 25   

20、 26    27    28    29    30    31    32     33    34    35    36    37 

21、;   38    39    40     41    42    43    44    45    46    47    48 41  

22、60; 52    31    37    47    55    30    40     51    45    33    48    44&#

23、160;   49    39    56     34    53    46    42    50    36    29    32 1.2.3.3 &

24、#160;  按以上方法计算出16个子密钥。 2对64位数据块的处理: 21 把数据分成64位的数据块,不够64位的以适当的方 式填补。 22对数据块作变换。 bit    goes to bit    bit    goes to bit 58      1       

25、60;     57     33 50      2             49     34 42      3       

26、;      41     35 34      4             33     36 26      5      &

27、#160;      25     37 18      6             17     38 10      7     

28、60;        9     39 2       8              1     40 60      9  &#

29、160;          59     41 52     10             51     42 44     11   &#

30、160;         43     43 36     12             35     44 28     13    &#

31、160;        27     45 20     14             19     46 12     15     &#

32、160;       11     47 4      16              3     48 62     17    

33、0;        61     49 54     18             53     50 46     19     

34、0;       45     51 38     20             37     52 30     21      

35、0;      29     53 22     22             21     54 14     23       

36、0;     13     55 6      24              5     56 64     25       

37、      63     57 56     26             55     58 48     27        

38、     47     59 40     28             39     60 32     29         

39、    31     61 24     30             23     62 16     31          

40、   15     63 8      32              7     64  23 将变换后的数据块等分成前后两部分,前32位记为 L0,后32位记为R0。 24 用16个子密钥对数据加密。 241 根据下面的扩冲函

41、数E,扩展32位的成48位 bit    goes to bit    bit    goes to bit    bit     goes to bit    bit    goes to bit 32   

42、   1              8     13             16      25        

43、60;    24     37 1       2              9     14             

44、;17      26             25     38 2       3             10    

45、60;15             18      27             26     39 3       4    &

46、#160;        11     16             19      28             27   &#

47、160; 40 4       5             12     17             20      29   

48、          28     41 5       6             13     18        &

49、#160;    21      30             29     42 4       7             1

50、2     19             20      31             28     43 5      

51、0;8             13     20             21      32            

52、 29     44 6       9             14     21             22    

53、0; 33             30     45 7      10             15     22    &#

54、160;        23      34             31     46 8      11          &

55、#160;  16     23             24      35             32     47 9   

56、0;  12             17     24             25      36          

57、;    1     48 242 用ERi-1与Ki作异或运算。 243 把所得的48位数分成8个6位数。1-6位为B1, 7-12位为B2,43-48位为B8。 244 用S密箱里的值替换Bj。从j=1开始。S密箱里 的值为4位数,共8个S密箱 2441 取出Bj的第1和第6位串联起来成一个2位 数,记为m.。m即是S密箱里用来替换            

58、;Bj的数所在的列数。 2442 取出Bj的第2至第5位串联起来成一个4位 数,记为n。n即是S密箱里用来替换            Bj的数所在的行数。 2443 用S密箱里的值Sj m n替换Bj。8个 S密箱如下所示: - S-BOXES1 Binary    d1d6 =>    00    01

59、0;   10    11 / d2.d5 /    Dec   0     1     2     3 0000       0       

60、60; 14     0     4    15 0001       1          4    15     1    12 0010

61、0;      2         13     7    14     8 0011       3          1 &#

62、160;   4     8     2 0100       4          2    14    13     4 0101   

63、    5         15     2     6     9 0110       6         11   

64、0;13     2     1 0111       7          8     1    11     7 1000     &#

65、160; 8          3    10    15     5 1001       9         10     6 

66、0;  12    11 1010      10          6    12     9     3 1011      11    

67、;     12    11     7    14 1100      12          5     9     3   

68、 10 1101      13          9     5    10     0 1110      14         

69、60;0     3     5     6 1111      15          7     8     0    13 - S-BOXES2

70、 binary    d1d6 =>    00    01    10    11 / d2.d5 /    dec   0     1     2   

71、0; 3 0000       0         15     3     0    13 0001       1        

72、60; 1    13    14     8 0010       2          8     4     7    10 0011 

73、;      3         14     7    11     1 0100       4          6 

74、60;  15    10     3 0101       5         11     2     4    15 0110     

75、;  6          3     8    13     4 0111       7          4    14&#

76、160;    1     2 1000       8          9    12     5    11 1001       9

77、          7     0     8     6 1010      10          2     1  

78、;  12     7 1011      11         13    10     6    12 1100      12     

79、;    12     6     9     0 1101      13          0     9     3  &#

80、160;  5 1110      14          5    11     2    14 1111      15         

81、;10     5    15     9 - S-BOXES3 binary    d1d6 =>    00    01    10    11 / d2.d5 /    dec&

82、#160;  0     1     2     3 0000       0         10    13    13     1 0

83、001       1          0     7     6    10 0010       2         

84、60;9     0     4    13 0011       3         14     9     9     0 0100 

85、      4          6     3     8     6 0101       5          3

86、     4    15     9 0110       6         15     6     3     8 0111 

87、0;     7          5    10     0     7 1000       8          1 

88、60;   2    11     4 1001       9         13     8     1    15 1010    

89、  10         12     5     2    14 1011      11          7    14  

90、  12     3 1100      12         11    12     5    11 1101      13     

91、     4    11    10     5 1110      14          2    15    14     

92、2 1111      15          8     1     7    12 - S-BOXES4 binary    d1d6 =>    00    

93、01    10    11 / d2.d5 /    dec   0     1     2     3 0000       0      

94、60;   7    13    10     3 0001       1         13     8     6    15 00

95、10       2         14    11     9     0 0011       3          3&#

96、160;    5     0     6 0100       4          0     6    12    10 0101  

97、     5          6    15    11     1 0110       6          9  

98、0;  0     7    13 0111       7         10     3    13     8 1000     &

99、#160; 8          1     4    15     9 1001       9          2     

100、7     1     4 1010      10          8     2     3     5 1011      

101、;11          5    12    14    11 1100      12         11     1    

102、0;5    12 1101      13         12    10     2     7 1110      14       

103、;   4    14     8     2 1111      15         15     9     4    14 - S-

104、BOXES5 binary    d1d6 =>    00    01    10    11 / d2.d5 /    dec   0     1     2  

105、0;  3 0000       0          2    14     4    11 0001       1       

106、60; 12    11     2     8 0010       2          4     2     1    12 001

107、1       3          1    12    11     7 0100       4          7

108、60;    4    10     1 0101       5         10     7    13    14 0110    

109、;   6         11    13     7     2 0111       7          6    

110、60;1     8    13 1000       8          8     5    15     6 1001      &

111、#160;9          5     0     9    15 1010      10          3    15  

112、60; 12     0 1011      11         15    10     5     9 1100      12    

113、0;    13     3     6    10 1101      13          0     9     3   

114、  4 1110      14         14     8     0     5 1111      15        

115、0; 9     6    14     3 - S-BOXES6 binary    d1d6 =>    00    01    10    11 / d2.d5 /   

116、0;dec   0     1     2     3 0000       0         12    10     9   

117、0; 4 0001       1          1    15    14     3 0010       2        

118、60;10     4    15     2 0011       3         15     2     5    12 0100 

119、0;     4          9     7     2     9 0101       5          2

120、0;   12     8     5 0110       6          6     9    12    15 0111   &

121、#160;   7          8     5     3    10 1000       8          0   

122、  6     7    11 1001       9         13     1     0    14 1010     

123、60;10          3    13     4     1 1011      11          4    14  

124、0; 10     7 1100      12         14     0     1     6 1101      13    

125、      7    11    13     0 1110      14          5     3    11   &

126、#160; 8 1111      15         11     8     6    13 - S-BOXES7 binary    d1d6 =>    00   

127、 01    10    11 / d2.d5 /    dec    0    1     2     3 0000       0     

128、60;    4    13     1     6 0001       1         11     0     4   

129、 11 0010       2          2    11    11    13 0011       3         14&

130、#160;    7    13     8 0100       4         15     4    12     1 0101  

131、0;    5          0     9     3     4 0110       6          8 

132、0;   1     7    10 0111       7         13    10    14     7 1000     

133、  8          3    14    10     9 1001       9         12     3 &#

134、160;  15     5 1010      10          9     5     6     0 1011      11  

135、;        7    12     8    15 1100      12          5     2     0&

136、#160;   14 1101      13         10    15     5     2 1110      14       

137、60;  6     8     9     3 1111      15          1     6     2    1

138、2 - S-BOXES8 binary    d1d6 =>    00    01    10    11 / d2.d5 /    dec   0     1     2 

139、0;   3 0000       0         13     1     7     2 0001       1     

140、0;    2    15    11     1 0010       2          8    13     4    

141、14 0011       3          4     8     1     7 0100       4        

142、  6    10     9     4 0101       5         15     3    12    10 0110       6  

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论