1. 有限域
有限域(Finite field,也称为伽罗瓦域 Galois field)是指元素个数有限,并且满足域的所有性质的代数结构。
“域”是一个集合,上面定义了加法、减法、乘法、除法(除了零元不能作除数),并满足熟悉的运算律(结合律、交换律、分配律等)。
简单说,有限域是一个“可以做四则运算”的有限集合。
关键特性
元素个数必须是某个质数 p的正整数次幂,即 pn个元素,记作 GF(pn)。
当 n=1时,就是最常见的“模素数”的域 Zp=GF(p)。
当 n>1时,结构更复杂,不是简单的“模运算”,而是由多项式模某个不可约多项式构造。
例如:
集合 {0,1,2}不可能构成域(因为 3 不是质数幂吗?其实是 3 个元素 → 3 是素数,所以可以 GF(3)—— 见后面“模 3”的例子。我举错了,3 是素数,所以 GF(3)存在)。
而集合元素个数是 4、8、9 等(质数幂)时,都可以构造有限域。
元素个数是 6 的域不存在,因为 6 不是质数幂。
2. 模素数
“模素数”是构造有限域最简单的一种情况。
假设 p是一个素数(比如 2, 3, 5, 7, 11, …),集合
{0,1,2,…,p−1}上面定义加法和乘法为普通整数运算后再除以 p取余数(称为模 p运算)。
为什么必须用素数?
因为如果不是素数,比如模 4 运算,集合 {0,1,2,3}中,元素 2 没有乘法逆元:在模 4 下,找不到一个整数 x使得 2×x≡1(mod4),这样就不能做除法,不满足域的条件。
用素数 p可以保证每个非零元都有模 p下的乘法逆元。
例子:模 5 的有限域 GF(5)
元素:{0,1,2,3,4}
加法:3+4=7≡2 (mod 5)
乘法:3×4=12≡2 (mod 5)
除法:3÷2的意思是 3×(2−1),而 2−1是使得 2×x≡1(mod5)的 x,这里 2×3=6≡1,所以 2−1=3,于是 3÷2=3×3=9≡4 (mod 5)。(可验证 4×2=8≡3,正确)
这样每个非零元 {1, 2, 3, 4} 都有逆元,所以它是一个域。
3. 有限域的一般构造
当 n=1:
GF(p)=Zp={0,1,…,p−1}运算为模 p加法和乘法。这是最常用的“模素数”域。
当 n>1:
例如 GF(4)有 4 个元素,它不能是 Z4(因为 4 不是素数)。
构造方法是用 GF(2)={0,1}上的二次不可约多项式,比如 x2+x+1。
设 α是一个根,则 GF(4)={0,1,α,α+1},运算规则由多项式运算模 α2+α+1=0得出。
总结回答
有限域是元素个数有限的域,元素个数必须是某个质数的幂 pn。
“模素数” 是有限域在 n=1时的特例,运算为模 p加法和乘法,其中 p是素数。这是构造有限域最简单的方法,也是大部分密码学、编码理论中使用的基础概念之一。
我们来一步步说清楚有限域的“求逆元” 的概念,很重要。
1. 在普通算术中
“倒数”就是乘法逆元。
比如 2 的倒数是 1/2或者 0.5,因为 2×0.5=1。
2. 在“模 5 算术”中
我们现在在有限域 GF(5)里,元素只有 {0,1,2,3,4},运算后都要除以 5 取余数。
“2 的乘法逆元”记作,意思是要找到一个整数 x(在这个集合中),使得
也就是
3. 我们来找这个 x
在集合 {0,1,2,3,4}中逐一试:
2×0=0→ 余 0,不是 1
2×1=2→ 余 2,不是 1
2×2=4→ 余 4,不是 1
2×3=6→ 6 除以 5 余 1,对! 因为 6mod5=1
2×4=8→ 8 除以 5 余 3,不是 1
所以 2−1=3(在模 5 下)。
4. 验证
“逆元”的作用是代替除法。
比如 3÷2在模 5 下的计算,我们不做除法,而是用乘法:
9mod5=4,所以结果是 4。
验证:4×2=8mod5=3,符合“3÷2=4”的预期(在模 5 下)。
5. 为什么一定要有逆元才能成“域”?
在域里,每个非零元素都要有乘法逆元,这样才能解方程 a×x=b(a=0)。
如果模 m不是素数,比如模 4 时,2 没有逆元(因为 2×0=0,2×1=2,2×2=0,2×3=2,结果总是 0 或 2,不会得到 1),所以 GF(4)不能是 Z4,必须用 GF(22)的另外结构。
总结:
在 GF(5)中,2−1就是满足的那个 x,也就是 3。