title | tags | |||||
---|---|---|---|---|---|---|
27. 有限域 |
|
这一讲,我们将介绍有限域(也称伽罗瓦域),它是包含有限个元素的域,经常出现在密码学和零知识证明的算法中。
有限域(Finite Field),也被称为伽罗瓦域(Galois Field,以现代群论创始人伽罗瓦命名),是包含有限个元素的域。我们通常用
性质1. 有限域的元素个数只能是素数
最常见的一类有限域是整数模
举个例子,有限域
+ | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0 |
· | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
再举个例子,有限域
+ | 0 | 1 | 2 |
---|---|---|---|
0 | 0 | 1 | 2 |
1 | 1 | 2 | 0 |
2 | 2 | 0 | 1 |
· | 0 | 1 | 2 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 1 | 2 |
2 | 0 | 2 | 1 |
下面介绍素域的一些性质:
性质2. 素域
举个例子,
性质3. 任何包含
这意味着我们可以利用素域
素域扩域是指阶为
构造方法: 假设
有限域
因为有限域
又因为每个系数都属于
举个例子,下面我们构造有限域
然后,我们构建商环
这个有限域中的元素可以表示为
本来是
我们可以用galois包在python中实现有限域。在下面的程序中,我们构造了一个
import galois
GF4 = galois.GF(4)
print("有限域 GF(4) 的性质", GF4.properties)
print("有限域 GF(4) 的元素", GF4.elements)
print("有限域 GF(4) 的加法表")
print(GF7.arithmetic_table("+"))
print("有限域 GF(4) 的乘法表")
print(GF7.arithmetic_table("*"))
## 输出示例
# 有限域 GF(4) 的性质 Galois Field:
# name: GF(2^2)
# characteristic: 2
# degree: 2
# order: 4
# irreducible_poly: x^2 + x + 1
# is_primitive_poly: True
# primitive_element: x
# 有限域 GF(4) 的元素 [0 1 2 3]
# 有限域 GF(4) 的加法表
# x + y | 0 1 2 3
# ------|------------
# 0 | 0 1 2 3
# 1 | 1 0 3 2
# 2 | 2 3 0 1
# 3 | 3 2 1 0
# 有限域 GF(4) 的乘法表
# x * y | 0 1 2 3
# ------|------------
# 0 | 0 0 0 0
# 1 | 0 1 2 3
# 2 | 0 2 3 1
# 3 | 0 3 1 2
这一讲,我们介绍了有限域,它是是密码学和零知识证明最常用的数学结构。有限域包括包括素域及其扩域:素域