2 · 环与域(Ring & Field)
群只关注一种运算;环和域同时有加法和乘法。密码学里「模质数 p 运算」的舒适环境,本质就是一个域。
群(一个集合配上一种可逆运算)只关注一种运算。但整数、多项式、模 p 剩余这些对象都同时有加法和乘法——要描述它们需要更丰富的结构:环和域。区块链与密码学里「模质数 p 运算」的舒适环境,本质就是一个域。
一、环(Ring)
集合配上两种运算(加、乘),满足:
- 对加法成阿贝尔群(有 0、有负元);
- 乘法满足结合律;
- 乘法对加法满足分配律 。
例子:整数 、多项式 、模 n 剩余 都是环。环里乘法不要求有逆元——这是环和域的分界点。
二、域(Field)
域是「最完美」的环:非零元素对乘法也成群(人人有乘法逆元)。于是加减乘除四则运算都能做。
| 结构 | 加法群 | 乘法 | 非零元有逆 |
|---|---|---|---|
| 环 | ✓ | 结合+分配 | 不一定 |
| 域 | ✓ | 结合+分配+交换 | ✓ |
例子:有理数 、实数 、复数 是无限域;(p 质)是最重要的有限域。
三、为什么 是域 ⟺ n 是质数
关键结论: 是域 当且仅当 n 是质数。
- n 质:每个非零元都与 n 互质,都有乘法逆元→ 是域,记 。
- n 合(如 6):,出现「零因子」(2 和 3 都非零但乘积为零),2 没有逆元→ 不是域。
这解释了为何密码学总选质数模数:只有质数才能保证「人人可除」,线性代数那套(解方程、求逆)才能在上面跑。
四、特征与
有限域的元素个数只能是 (质数幂)。 不是「模 」,而是用一个不可约多项式来构造(取系数在 上的多项式,模一个不可分解的多项式)。AES 用的 (256 个元素)就是这种。「特征为 2」意味着 ,加法就是异或,硅实现极快。
五、数字例题(步步算)
在 中求 的乘法逆元。
找 x 使 :逐个试,。所以 。验证: ✓。
再看合数反例: 中 2 的逆元? 永远凑不出 1→ 无逆元,所以 不是域。
六、Python 代码
p = 5
# 验证 F_p 里每个非零元都有逆元
for a in range(1, p):
inv = next(x for x in range(1, p) if (a*x) % p == 1)
print(f"{a}^(-1) = {inv} (mod {p})")
# 对比:Z_6 里 2、3、4 找不到逆元
n = 6
for a in range(1, n):
inv = [x for x in range(1, n) if (a*x) % n == 1]
print(f"Z_6: {a} 的逆元 = {inv or '无'}")
# F_{2^8} 特征 2:加法 = 异或
print("AES 域里 0xAB + 0xCD =", hex(0xAB ^ 0xCD))
七、动手想一想
- 里哪些元素有乘法逆元?(提示:与 n 的关系)
- 为什么有限域元素个数不能是 6?
- AES 用 而不用 ,为什么?
答案:(1) 与 n 互质的元素(共 个)。(2) 6=2×3 不是质数幂,不存在 6 元域。(3) 不是域(256 非质),很多元素无逆元,S 盒需要可逆变换,所以必须用真正的域 。
小结:环有加乘但不保证人人可除;域连除法也能做。密码学之所以执着于质数模数与有限域,就是为了要那个「人人有逆元」的完美性质。