AES算法

AES—-advanced encryption standard

Rijndael算法被选为AES算法

AES明文分组长度可以是,128位,192位,256位。

AES数学基础

  • 加法:多项式洗漱按位模加
  • 乘法:两个多项式相乘,然后模m(x)
  • 乘法逆元
  • 乘法的计算机实现(X乘法,xtime()),xtime()运算可以方便在计算机上实现乘法运算

加密过程

  1. 1、最初的子密钥加---明文分组与种子密钥按位进行异或运算
  2. 2、前9轮加密操作
  3. 1、字节代换---查询S盒表。
  4. S盒的设计原理是将字节非线性的变换为另一个字节:
  5. 1、求乘法逆
  6. 2、仿射变换
  7. 2、行移位变换---对矩阵中的每行,规定第一行循环左移0个字节,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节。
  8. 3、列混淆变换---把每列都乘以固定的多项式
  9. 4、子密钥加---与第一步相同,结果与该轮子密钥异或运算
  10. 3、第10轮加密操作---与前9轮相同,唯一缺少混淆变换

AES不是对合运算,因此解密与加密算法不同

解密过程

1、行位移求逆 2、字节代换求逆 3、列混淆求逆