打印本文 打印本文 关闭窗口 关闭窗口
经典加密算法在VB中的实现(4)- DES
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3213  更新时间:2009/4/23 16:40:18  文章录入:mintao  责任编辑:mintao
sp;    39     60
32     29             31     61
24     30             23     62
16     31             15     63
8      32              7     64  

2.3 将变换后的数据块等分成前后两部分,前32位记为L[0],后32位记为R[0]。

2.4 用16个子密钥对数据加密。
2.4.1 根据下面的扩冲函数E,扩展32位的成48位

bit    goes to bit    bit    goes to bit    bit    goes to bit    bit  
   goes to bit
32      1              8     13             16     25             24  
   37
1       2              9     14             17     26             25  
   38
2       3             10     15             18     27             26  
   39
3       4             11     16             19     28             27  
   40
4       5             12     17             20     29             28  
   41
5       6             13     18             21     30             29  
   42
4       7             12     19             20     31             28  
   43
5       8             13     20             21     32             29  
   44
6       9             14     21             22     33             30  
   45
7      10             15     22             23     34             31  
   46
8      11             16     23             24     35             32  
   47
9      12             17     24             25     36              1  
   48

2.4.2 用E{R[i-1]}与K[i]作异或运算。
2.4.3 把所得的48位数分成8个6位数。1-6位为B[1],7-12位为B[2],……43-4
8位为B[8]。
2.4.4 用S密箱里的值替换B[j]。从j=1开始。S密箱里的值为4位数,共8个S密

2.4.4.1 取出B[j]的第1和第6位串联起来成一个2位数,记为m.。m即是S密箱
里用来替换
           B[j]的数所在的列数。
2.4.4.2 取出B[j]的第2至第5位串联起来成一个4位数,记为n。n即是S密箱里
用来替换
           B[j]的数所在的行数。
2.4.4.3 用S密箱里的值S[j][ m][ n]替换B[j]。8个S密箱如下所示:

--------
S-BOXES1

Binary    d1d6 =>    00    01    10    11
\/ d2..d5 \/    Dec   0     1     2     3
0000       0         14     0     4    15
0001       1          4    15     1    12
0010       2         13     7    14     8
0011       3          1     4     8     2
0100       4          2    14    13     4
0101       5         15     2     6     9
0110       6         11    13     2     1
0111       7          8     1    11     7
1000       8          3    10    15     5
1001       9         10     6    12    11
1010      10          6    12     9     3
1011      11         12    11     7    14
1100      12          5     9     3    10
1101      13          9     5    10     0
1110      14          0     3     5     6
1111      15          7     8     0    13

--------
S-BOXES2

binary    d1d6 =>    00    01    10    11
\/ d2..d5 \/    dec   0     1     2     3
0000       0         15     3     0    13
0001       1          1    13    14     8
0010       2          8     4     7    10
0011       3         14     7    11     1
0100       4          6    15    10     3
0101       5         11     2    

上一页  [1] [2] [3] [4] [5]  下一页

打印本文 打印本文 关闭窗口 关闭窗口