有关DES的一个实例

有关DES的一个实例

才开始学密码学,这个题目能把DES的整个流程(一轮)过一遍 增加记忆 毕竟新手 有错误 望与我联系校正

整个DES 密码(一轮)的流程简单来是把明文64bit分为左右32bit来进行迭代的 初始记为 LE0和RE0   秘钥Ki为64bit(64bit中8位作为奇偶校验位8、16、24、32、40、48、56、64位是校验位, 使得每个**都有奇数个1

由 加密过程可知 

LE= REi-1   

RE= LEi-1 ⊕ F(REi-1,Ki)

其中 F函数包括了 E(扩展)、⊕、S盒(其中唯一的多表代替 其他的作用都是线性变换)、P(置换)

(a) 放弃秘钥中的奇偶校验位,秘钥长度为56bit 经过置换选择1(表b) 分为28bit的C0和D

有关DES的一个实例

那么 

C0:1111 0000 1100 1100 1010 1010 0000

                                                  D0 : 1010 1010 1100 1100 1111 0000 0000

每轮迭代中 Ci-1和Di-1分别要进行循环左移(或旋转)一位或两位 每轮移位见下表(d)

有关DES的一个实例

所以C0和D0经过循环左移为:

C1 :1110 0001 1001 1001 0101 0100 0001

D1: 0101 0101 1001 1001 1110 0000 0001

在经过置换选择2 表(c):

有关DES的一个实例

即得最后第一轮的子秘钥K1

二进制表示:0000 1011 0000 0010 0110 0111 1001 1011 0100 1001 1010 0101

             十六进制表示: 0 B 0 2 6 7 9 B 4 9 A 5 

(b) 64bit的明文经过初始转换IP 被重新排列(即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位)

有关DES的一个实例

L0 : 1100 1100 0000 0000 1100 1100 1111 1111

R0  :1111 0000 1010 1010 1111 0000 1010 1010

(c) 扩充置换E如下表(扩展之后为48bit):

有关DES的一个实例

E(R0)=011110 100001 010101 010101 011110 100001 010101 010101

(d) A=E(R0K1 所以 

A = 011100 010001 011100 110010 111000 010101 110011 110000 

(e) 代换运算(S盒):对每个盒,6bit输入中的第1和第6bit组成的二进制数确定行,中间4位二进制数来确定列,相应行、列位置的十进制数的4bit二进制数表示为输出。

有关DES的一个实例

DES的 S-Box

有关DES的一个实例

有关DES的一个实例

结果如下:

有关DES的一个实例

(f) 将 (e)的结果连接起来得到一个32bit的结果B

B : 0000 1100 0010 0001 0110 1101 0101 0000

(g)经过置换运算P得:

有关DES的一个实例

P(B) = 1001 0010 0001 1100 0010 0000 1001 1100

(h) R1 = P(B) ⊕ L0 所以

                                   R1= 0101 1110 0001 1100 1100 1100 0110 0011

(i) L= R= 1111 0000 1010 1010 1111 0000 1010 1010  连接L1R1 即可得密文

最后这个密文 原版答案上给出的是 [MEYE82] 不是很理解为什么是这个答案 但是以上过程 望知道的人指点一下 

参考详见:https://wenku.baidu.com/view/bf73cb3af01dc281e43af013.html