AES算法
AES—-advanced encryption standard
Rijndael算法被选为AES算法
AES明文分组长度可以是,128位,192位,256位。
AES数学基础
- 加法:多项式洗漱按位模加
- 乘法:两个多项式相乘,然后模m(x)
- 乘法逆元
- 乘法的计算机实现(X乘法,xtime()),xtime()运算可以方便在计算机上实现乘法运算
加密过程
1、最初的子密钥加---明文分组与种子密钥按位进行异或运算
2、前9轮加密操作
1、字节代换---查询S盒表。
S盒的设计原理是将字节非线性的变换为另一个字节:
1、求乘法逆
2、仿射变换
2、行移位变换---对矩阵中的每行,规定第一行循环左移0个字节,第二行循环左移1个字节,第三行循环左移2个字节,第四行循环左移3个字节。
3、列混淆变换---把每列都乘以固定的多项式
4、子密钥加---与第一步相同,结果与该轮子密钥异或运算
3、第10轮加密操作---与前9轮相同,唯一缺少混淆变换
AES不是对合运算,因此解密与加密算法不同
解密过程
1、行位移求逆 2、字节代换求逆 3、列混淆求逆