详细描述AES算法中的字节代换、行移位、列混合、轮密钥加、密钥扩展、逆字节代换、逆行移位、逆列混合、逆轮密钥加的原理和过程、所用的式子、所用的数学算法
时间: 2023-10-05 17:13:16 浏览: 92
1. 字节代换(SubBytes):将每个字节替换为一个固定的字节,该操作是AES算法的第一步。AES中使用的字节代换表是一个16×16的矩阵,其中每个元素代表了一个字节的代换值。字节代换操作使用的数学算法是有限域上的乘法和加法。
2. 行移位(ShiftRows):将每一行循环左移一个不同的位数,第1行不移动,第2行左移1位,第3行左移2位,第4行左移3位。这个操作使得每一列中的字节都发生了移动,从而增加了混淆程度。
3. 列混合(MixColumns):该操作对每一列进行线性变换,使用的是一个固定的矩阵。该矩阵是由固定的多项式构成的,使用的数学算法是有限域上的乘法和加法。
4. 轮密钥加(AddRoundKey):该操作将当前状态矩阵和轮密钥进行异或运算,以增加加密的随机性。轮密钥由密钥扩展算法生成。
5. 密钥扩展(KeyExpansion):该算法从初始密钥中生成多个轮密钥。该算法使用的是逐步变换的方式,每个轮密钥都是由前一个轮密钥生成的,直到达到所需的轮数为止。
6. 逆字节代换(InvSubBytes):与字节代换相反,将每个字节替换为一个固定的字节。AES中使用的逆字节代换表是一个16×16的矩阵,其中每个元素代表了一个字节的逆代换值。
7. 逆行移位(InvShiftRows):与行移位相反,将每一行循环右移一个不同的位数,第1行不移动,第2行右移1位,第3行右移2位,第4行右移3位。
8. 逆列混合(InvMixColumns):与列混合相反,该操作对每一列进行线性变换,使用的是一个固定的矩阵的逆矩阵。该矩阵是由固定的多项式构成的,使用的数学算法是有限域上的乘法和加法。
以上操作中,字节代换、行移位、列混合、轮密钥加、逆字节代换、逆行移位、逆列混合、逆轮密钥加都是AES算法中的基本操作,这些操作的组合和重复使用构成了AES算法的加密和解密过程。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)