1 加密算法的分类
- 通信双方同时掌握一个密钥,加密解密都是由一个密钥完成的(即加密密钥等于解密密钥,加解密密钥可以相互推倒出来)。
- 双方通信前共同拟定一个密钥,不对第三方公开。
- 不具有个体原子性,一个密钥被共享,泄漏几率增大。
1.2 公私钥加解密算法
通信双方掌握不同的密钥,不同方向的加解密由不同的密钥完成。
2 DES加密算法
Data Encryption Standard
DES加密算法主要是通过先对密钥进行加密,再将加密后的密钥放入明文中再次加密,得到密文。加密过程要用到很多表格,这些表格是固定的。下先介绍这些表格的转换方法,再分别介绍密钥和明文的加密步骤。
2.1 转换方法
-
交换表:以交换表1为例,找到第57位的数字,将第1位数字置换成第57位上的数字,奇偶校验位直接省去不需要转换,位数就会减少8位
-
位移(位移轮数表):1位即左移1位,2位即左移2位
-
E盒(扩展表):表内有16个数字重复了,即位数增加了16位
-
S盒:$8\ast6$ 变成 $8\ast4$,即将第1位和第6位看作行,中间4位看做列,在 盒找到对应的数据,转换为二进制(4位)
-
P盒:直接置换,没有位数减少
2.2 对密钥K(64位)
-
密钥(明文)由16个数字组成,二进制转换为64位,0123456789ABCDEF表示0到16,二进制表示为0000到1111
-
先用64位转56位的交换表1($8\ast7$),将 $K$ 置换为 (56位),第8,16,24,32,40,48,56,64位(8的倍数)称为奇偶校验位,直接省去不需要转换,结果就只有56位了
-
再经过位移轮数表将 $c_0d_0$ 变为 $c_1d_1,\cdots,c_{16}d_{16}$,(56位)
-
再用56位转48位的交换表2($8\ast6$),分别将 $c_1d_1 \to k_1,\cdots,c_{16}d_{16} \to k_{16}$,(48位),奇偶校验位是7的倍数
交换表1:
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:
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位)加密:
- 先根据交换表 $I P(8 * 8)$ 将 $M$ 转换为 $L_{0} R_{0}$ (各32位)
- 计算出 $L_{16} R_{16}$: $$L_{n}=R_{(n-1)}, 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}$ - 再将 $L_{16} R_{16}$ 转换为 $R_{16} L_{16}$ (64位)
- 最后用交换表 $I P-1(8 * 8)$ 对 $R_{16} L_{16}$ 进行置换得到密文 交换表 $I P$ :
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:
Comments | NOTHING