5

我在理解此处描述的 MixColumns 步骤时遇到问题。

我知道扩散,这一切都是有道理的,它指出每一列都被视为多项式并在 GF(2^8) 上乘以模。

但是..乘以 GF(2^8)。尽管域仍然是相同的,但由于 mod.... 而它是不可逆的,它必须是可逆的,因为这就是它的全部意义所在。

就第一位而言,我的方法是将 A、B、C 和 D 作为列的 4 个字节,将 A1、A2、...、A8 作为位,将 E、F、G 和 H 作为输出字节。我要设置

E = A1,B2,C3,D4,A5,B6,C7,D8
F = D1,A2,B3,C4,D5,A6,B7,C8
G = C1,D2,A3,B4,C5,D6,A7,B8
H = B1,C2,D3,A4,B5,C6,D7,A8

因此它是可逆的、一对一的、线性的和分布的

它后来指出,它可以被视为矩阵乘法,但由于矩阵的元素必须是字节并以字节输出,因此矩阵的每个元素必须是模 256,因此不可逆和非线性。

我理解错了吗?我在数学上苦苦挣扎,并试图了解需要做什么,以便将其转换为逻辑。

4

2 回答 2

6

MixColumns 可能是 AES 最难的部分,但对我来说,计算出数学并实际查看数字的来源让我很兴奋。我在我的博客文章“高级加密标准 (AES) 简图指南”中详细计算了它的数学。具体来说,看第 4 幕,第 16 场。我还在下一个场景 (17) 中将它的反面放在婴儿床单上。如果您还有其他问题,请随时在该帖子或此处发表评论。

于 2009-09-25T14:44:19.080 回答
4

MixColumns 中的乘法确实是可逆的,它不是模256。samiam.org/mix-column.html对 MixColumns 步骤有很好的解释,samiam.org /galois.html很好地解释了如何做AES有限域中的算术。

于 2009-06-17T03:45:28.940 回答