分组密码


分组密码

AES

基本加解密

img

如上为图解。

AddRoundKey

每一块与密钥块或Keyschedule之后的密钥块进行异或运算。

SubBytes

通过替换表(S-Box)进行字节替换

ShiftRows

正向行移位第一行不变,第二行循环左移1位,第三行循环左移2位,第四行循环左移3位。

MixColumns

与特定矩阵进行左乘,此处乘法和加法有定义。

img

如上是加解密全过程。

实际上,交换逆向行移位和逆向字节代替并不影响结果;交换轮密钥加和逆向列混淆并不影响结果,关键在于可以把异或看成域上的多项式加法,其次多项式中乘法对加法具有分配律。

DES

基本加解密

img

加密

我们可以考虑一下每一轮的加密过程

$L_{i+1}=R_i$​

$R_{i+1}=L_i⊕F(R_i,K_i)$

那么在最后的 Permutation 之前,对应的密文为$(R_{n+1},L_{n+1})$。

解密

那么解密如何解密呢?首先我们可以把密文先进行逆置换,那么就可以得到最后一轮的输出。我们这时考虑每一轮

$R_i=L_{i+1}$

$L_i=R_{i+1}⊕F(L_{i+1},K_i)$

因此,$(L_0,R_0)$ 就是加密时第一次置换后的明文。我们只需要再执行逆置换就可以获得明文了。

可以看出,DES 加解密使用同一套逻辑,只是密钥使用的顺序不一致。


文章作者: Phoenix
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Phoenix !
  目录