目 录
1.引言.......................................................................................................4
2.定义.......................................................................................................4
2.1 术语和缩写词表..............................................................................................4
2.2 算法参数、符号和函数..................................................................................5
3.符号和惯例 ..........................................................................................6
3.1 输入和输出......................................................................................................6
3.2 字节(Bytes)......................................................................................................6
3.3 字节数组..........................................................................................................7
3.4 状态(State).......................................................................................................8
3.5 将状态看作列数组..........................................................................................9
4.数学基础...............................................................................................9
4.1 加法..................................................................................................................9
4.2 乘法..................................................................................................................9
4.2.1 乘 x........................................................................................................................10
4.3 系数在 GF(2
8
)中的多项式 ...........................................................................10
5.算法说明.............................................................................................12
5.1 加密................................................................................................................13
5.1.1 字节替代(SubBytes( ))变换 .................................................................................13
5.1.2 行移位(ShiftRows( ))变换....................................................................................15
5.1.3 列混合(MixColumns( ))变换 ...............................................................................16
5.1.4 轮密钥加(AddRoundKey( ))变换 ........................................................................16
5.2 密钥扩展........................................................................................................17
5.3 解密................................................................................................................18
5.3.1 逆行移位(InvShiftRows( ))变换 ..........................................................................19
5.3.2 逆字节替代(InvSubBytes( ))变换........................................................................20
5.3.3 逆列混合(InvMixColumns( ))变换 ......................................................................20
5.3.4 轮密钥加(InvMixColumns( ))变换的逆变换 ......................................................21
5.3.5 等价的解密变换...................................................................................................21
6.实现方面的问题 ................................................................................22
6.1 密钥长度要求................................................................................................22
6.2 密钥限制........................................................................................................22
6.3 密钥长度,分组大小和轮数的参数化........................................................23
6.4 针对不同平台的实现建议............................................................................23