|
线性混合层保证了在多个轮回后的高度扩散。非线性层使用 S 盒的并行应用,该应用程序有期望的(因此是最佳的)最差非线性特性。S 盒是非线性的。依我看来,这就 DES 和 Rijndael 之间的密钥概念差异。密钥加法层是对中间 State 的轮回密钥 (Round Key) 的简单 EXOR,如以下所注。
Rijndael算法
加密算法
Rijndael算法是一个由可变数据块长和可变密钥长的迭代分组加密算法,数据块长和密钥长可分别为128,192或256比特。
数据块要经过多次数据变换操作,每一次变换操作产生一个中间结果,这个中间结果叫做状态。状态可表示为二维字节数组,它有4行,Nb列,且Nb等于数据块长除32。如表2-3所示。
a0,0
a0,1
a0,2
a0,3
a0,4
a0,5
a1,0
a1,1
a1,2
a1,3
a1,4
a1,5
a2,0
a2,1
a2,2
a2,3
a2,4
a2,5
a3,0
a3,1
a3,2
a3,3
a3,4
a3,5
数据块按a0,0 , a1,0 , a2,0 , a3,0 , a0,1 , a1,1 , a2,1 , a3,1 , a0,2…的顺序映射为状态中的字节。在加密操作结束时,密文按同样的顺序从状态中抽取。
密钥也可类似地表示为二维字节数组,它有4行,Nk列,且Nk等于密钥块长除32。算法变换的圈数Nr由Nb和Nk共同决定,具体值列在表2-4中。
表3-2 Nb和Nk决定的Nr的值
|