老师在课堂上对AES的讲解可以说是一言带过。
简单而言,在我看来AES加密算法的特点为AES设计有三个密钥长度:128,192,256位,相对而言,AES的128密钥比DES的56密钥强1021倍。而其加密过程简单而言就是:轮变化、圈数和密钥扩展。
AES每一个圈变换由以下三个层组成:
非线性层——进行Subbyte变换;
线性混合层——进行ShiftRow和MixColumn运算;
密钥加层——进行AddRoundKey运算。
Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。
ShiftRow是一个字节换位。它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的。
MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。
AddroundKey运算(密钥加层运算)是将圈密钥状态中的对应字节按位“异或”。
因为自己对AES的了解也就那么多。写篇博文做个笔记,仅此而已。