DES数据加密标准

一种对称公私钥加密算法

1 加密算法的分类

  1. 对称加解密算法
    (1)通信双方同时掌握一个密钥,加密解密都是由一个密钥完成的(即加密密钥等于解密密钥,加解密密钥可以相互推倒出来)。
    (2)双方通信前共同拟定一个密钥,不对第三方公开。
    (3)不具有个体原子性,一个密钥被共享,泄漏几率增大

  2. 公私钥加解密算法
    通信双方掌握不同的密钥,不同方向的加解密由不同的密钥完成。

2 DES加密算法

Data Encryption Standard
DES加密算法主要是通过先对密钥进行加密,再将加密后的密钥放入明文中再次加密,得到密文。加密过程要用到很多表格,这些表格是固定的。下先介绍这些表格的转换方法,再分别介绍密钥和明文的加密步骤。

2.1 转换方法

  1. 交换表:以交换表1为例,找到第57位的数字,将第1位数字置换成第57位上的数字,奇偶校验位直接省去不需要转换,位数就会减少8位
  2. 位移(位移轮数表):1位即左移1位,2位即左移2位
  3. E盒(扩展表):表内有16个数字重复了,即位数增加了16位
  4. S盒:$8\ast6$变成$8\ast4$,即将第1位和第6位看作行,中间4位看做列,在 盒找到对应的数据,转换为二进制(4位)
  5. P盒:直接置换,没有位数减少

2.2 对密钥K(64位)

  1. 密钥(明文)由16个数字组成,二进制转换为64位,0123456789ABCDEF表示0到16,二进制表示为0000到1111

  2. 先用64位转56位的交换表1($8\ast7$),将$K$置换为
    (56位),第8,16,24,32,40,48,56,64位(8的倍数)称为奇偶校验位,直接省去不需要转换,结果就只有56位了

  3. 再经过位移轮数表将$c_0d_0$变为$c_1d_1,\cdots,c_{16}d_{16}$(56位)

  4. 再用56位转48位的交换表2($8\ast6$),分别将$c_1d_1 \to k_1,\cdots,c_{16}d_{16} \to k_{16}$(48位),奇偶校验位是7的倍数

交换表1:

1
2
3
4
5
6
7
8
57  49  41  33  25  17  9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4

位移轮数表:

交换表2:

1
2
3
4
5
6
7
8
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.3 对明文(64位)加密:

  1. 先根据交换表$IP(8\ast8$) 将$M$转换为$L_0R_0$(各32位)
  2. 计算出$L_{16}R_{16}$:$L_n=R_{\left(n-1\right)},R_n=L_{(n-1)}\oplus P\left(S\left(E\left(R_{(n-1)}\oplus k_n\right)\right)\right)$
    (1)利用$E$盒将32位的 扩展为48位的$R_{(n-1)}(1,\cdots 16)$
    (2)$R_{(n-1)}$(48位)与$k_n$(48位)做异或运算$R_{(n-1)}\oplus k_n$,即$E\left(R_{(n-1)}\oplus k_n\right)$(48位)
    (3)通过$S$盒将其转换为32位,即$S\left(E\left(R_{(n-1)}\oplus k_n\right)\right)$(32位)
    (4)再经过$P$盒进行置换,即$P\left(S\left(E\left(R_{(n-1)}\oplus k_n\right)\right)\right)$(32位)
    (5)再与$L_{n-1}$(32位)做异或运算得到$R_n$
  3. 再将$L_{16}R_{16}$转换为$R_{16}L_{16}$(64位)
  4. 最后用交换表$IP-1(8\ast8)$对$R_{16}L_{16}$进行置换得到密文
    交换表$IP$:
    1
    2
    3
    4
    5
    6
    7
    8
    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
    59 51 43 35 27 19 11 3
    61 53 45 37 29 21 13 5
    63 55 47 39 31 23 15 7

$E$盒:

$S$盒:

$P$盒:

交换表$IP-1$:

3 参考链接

  1. 道客巴巴
  2. DES加解密算法
-------------------本文结束 感谢您的阅读-------------------
0%