对于伽罗瓦域 GF(2^8),多项式的格式为 a7x^7+a6x^6+...+a0。
对于 AES,不可约多项式是 x^8+x^4+x^3+x+1。
显然,GF(2^8) 的最大幂是 x^7,但为什么不可约多项式的最大幂是 x^8?
不可约多项式的最大幂将如何影响 GF 的逆结果?
我可以将不可约多项式的最大幂设置为 x^9 吗?
对于伽罗瓦域 GF(2^8),多项式的格式为 a7x^7+a6x^6+...+a0。
对于 AES,不可约多项式是 x^8+x^4+x^3+x+1。
显然,GF(2^8) 的最大幂是 x^7,但为什么不可约多项式的最大幂是 x^8?
不可约多项式的最大幂将如何影响 GF 的逆结果?
我可以将不可约多项式的最大幂设置为 x^9 吗?
要理解为什么 GF(2⁸) 的模数必须是 8 阶(即以 8 作为其最大指数),您必须知道如何使用 GF(2) 中的系数执行多项式除法,这意味着您必须知道如何执行一般的多项式除法。我会假设你知道如何做这些事情。如果你不知道怎么做,网上有很多教程可以学习。
请记住,如果r = a mod m
,则意味着存在q
这样的情况a = q m + r
。要进行有效的 GF(2⁸) 算术,我们需要保证r
对于任何a
and是 GF(2⁸) 的元素q
(即使a
andq
不需要是 GF(2⁸) 的元素)。此外,如果我们从 GF(2⁸) 中选择右边,我们需要确保它可以是GF(2⁸) 的任何元素。r
a
所以我们必须选择一个模数(the m
)来保证这些。我们通过选择一个m
正好为 8 的顺序来做到这一点。
如果除法的分子 (the a
in a = q m + r
) 是 8 阶或更高阶,我们可以找到一些东西放入商 (the q
) 中,当它乘以 x⁸ 时,可以抵消更高阶。但是我们不能将商放入可以乘以 x⁸ 来给出阶数小于8 的项,因此余数 (the r
) 可以是不超过 7 的任何阶数。
让我们尝试几个模数(或除数)为 x⁸+x⁴+x³+x+1 的多项式除法示例,看看我的意思。首先让我们计算 x⁸+1 mod x⁸+x⁴+x³+x+1:
1 <- quotient
┌──────────────
x⁸+x⁴+x³+x+1 │ x⁸ +1
-(x⁸+x⁴+x³+x+1)
───────────────
x⁴+x³+x <- remainder
所以 x⁸+1 mod x⁸+x⁴+x³+x+1 = x⁴+x³+x。
接下来让我们计算 x¹²+x⁹+x⁷+x⁵+x² mod x⁸+x⁴+x³+x+1。
x⁴ +x +1 <- quotient
┌──────────────────────────────
x⁸+x⁴+x³+x+1 │ x¹²+x⁹ +x⁷+x⁵ +x²
-(x¹² +x⁸+x⁷+x⁵+x⁴ )
───────────────────────────
x⁹+x⁸ +x⁴ +x²
-(x⁹ +x⁵+x⁴ +x²+x)
─────────────────────────
x⁸ +x⁵ +x
-(x⁸ +x⁴+x³ +x+1)
────────────────────────
x⁵+x⁴+x³ +1 <- remainder
所以 x¹²+x⁹+x⁷+x⁵+x² mod x⁸+x⁴+x³+x+1 = x⁵+x⁴+x³+1,其阶数 < 8。
最后,让我们尝试一个更高的顺序:x¹⁰⁰+x⁹⁶⁺x⁹⁵+x⁹³+x⁸⁸+x⁸⁷+x⁸⁵+x⁸⁴+x mod x⁸+x⁴+x³+x+1怎么样?
x⁹² +x⁸⁴ <- quotient
┌────────────────────────────────────────
x⁸+x⁴+x³+x+1 │ x¹⁰⁰+x⁹⁶⁺x⁹⁵+x⁹³ +x⁸⁸+x⁸⁷+x⁸⁵+x⁸⁴+x
-(x¹⁰⁰+x⁹⁶+x⁹⁵+x⁹³+x⁹² )
─────────────────────────────────────────
x⁹²+x⁸⁸+x⁸⁷+x⁸⁵+x⁸⁴+x
-(x⁹²+x⁸⁸+x⁸⁷+x⁸⁵+x⁸⁴ )
────────────────────────
x <- remainder
所以x¹⁰⁰+x⁹⁶⁺x⁹⁵+x⁹³+x⁸⁸+x⁸⁷+x⁸⁵+x⁸⁴+x mod x⁸+x⁴+x³+x+1 = x。请注意,我仔细选择了分子,以免计算时间过长。如果您想要一些痛苦,请尝试手动执行 x¹⁰⁰ mod x⁸+x⁴+x³+x+1。