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] 下一页 |