详细描述AES算法中的字节代换、行移位、列混合、轮密钥加、密钥扩展、逆字节代换、逆行移位、逆列混合、逆轮密钥加的原理和过程、所用的式子、所用的数学算法
时间: 2023-10-09 22:17:02 浏览: 79
AES算法是一种对称密钥加密算法,它使用相同的密钥进行加密和解密。它的核心是将明文分成一系列的块,每个块的大小为128位,然后通过多轮的处理,将明文转化为密文。下面是AES算法中常用的几种加密步骤:
1. 字节代换(SubBytes):对每个块中的字节进行一个固定的替换,使用的是一个固定的S盒,将一个8位的输入映射到一个8位的输出。这个S盒是由一些乘法和加法运算得到的。
2. 行移位(ShiftRows):对每个块的行进行循环位移,第一行不变,第二行左移一位,第三行左移两位,第四行左移三位。这个操作使得每个字节的位置发生了改变。
3. 列混合(MixColumns):对每个块的列进行一个混合变换,使用的是一个固定的矩阵,将每一列看作一个4位的多项式,然后对这个多项式进行一系列的乘法和加法运算,得到一个新的多项式。
4. 轮密钥加(AddRoundKey):对每个块进行一个异或操作,使用的是一个轮密钥,这个轮密钥是从密钥扩展算法中得到的,每个轮密钥的长度都是128位。
5. 密钥扩展(KeyExpansion):从一个128位的密钥中生成一系列的轮密钥,每个轮密钥的长度都是128位,使用的是一些固定的运算和变换,包括一个字循环、一个字代换、一个Rcon运算等。
6. 逆字节代换(InvSubBytes):对每个块中的字节进行一个逆代换操作,使用的是一个逆S盒,将一个8位的输入映射到一个8位的输出。
7. 逆行移位(InvShiftRows):对每个块的行进行一个逆循环位移,第一行不变,第二行右移一位,第三行右移两位,第四行右移三位。
8. 逆列混合(InvMixColumns):对每个块的列进行一个逆混合变换,使用的是一个固定的矩阵,将每一列看作一个4位的多项式,然后对这个多项式进行一系列的乘法和加法运算,得到一个新的多项式。
对于每个块,AES算法会依次执行这些步骤,每轮的处理会使用一个不同的轮密钥。经过多轮的处理,最终得到的密文就是加密后的结果。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)