目录 · N16 乘法群、生成元与单位根
学习手册/密码学与安全/数学基础
N16密码学与安全 · 数学基础6 分钟更新于 2026-08-21

乘法群、生成元与单位根

区分有限域与非零元素乘法群,理解生成元、元素的阶和有限域单位根。

关键词乘法群 · 循环群 · 生成元 · 单位根

建议先了解

  • 素域 Fₚ
  • 幂运算

1. 从有限域中去掉 0

Fp\mathbb F_p 中,0 没有乘法逆元,因此不能进入乘法群。去掉 0 后得到

Fp=Fp{0}.\mathbb F_p^*=\mathbb F_p\setminus\{0\}.

它包含

{1,2,,p1},\{1,2,\dots,p-1\},

所以群的阶,也就是元素个数,为

Fp=p1.|\mathbb F_p^*|=p-1.

群运算是模 pp 的乘法。


2. 元素的阶

对群中元素 aa,使

ad=1a^d=1

成立的最小正整数 dd,称为 aa 的阶(Order),记作

ord(a)=d.\operatorname{ord}(a)=d.

例如在 F7\mathbb F_7^* 中考察 2:

212,qquad224,qquad231(mod7).2^1\equiv2,qquad 2^2\equiv4,qquad 2^3\equiv1\pmod7.

因此

ord(2)=3.\operatorname{ord}(2)=3.

“元素的阶”和“群的阶”不是同一个概念:前者是幂回到单位元所需的最小次数,后者是群中元素的数量。


3. 生成元与循环群

如果某个元素 gg 的幂可以遍历群中的所有元素,则 gg 称为生成元(Generator),群称为循环群(Cyclic Group)。

可写成

Fp=g.\mathbb F_p^*=\langle g\rangle.

F7\mathbb F_7^* 中取 g=3g=3

301,313,322,336,344,355(mod7).\begin{aligned} 3^0&\equiv1,\\ 3^1&\equiv3,\\ 3^2&\equiv2,\\ 3^3&\equiv6,\\ 3^4&\equiv4,\\ 3^5&\equiv5 \pmod7. \end{aligned}

结果遍历 {1,2,3,4,5,6}\{1,2,3,4,5,6\},所以 3 是模 7 的一个生成元,且

ord(3)=6.\operatorname{ord}(3)=6.

有限域非零元素乘法群是循环群,但这一结论的完整证明需要更多群论与多项式知识,当前笔记只记录结论和可验证例子。


4. 单位根

若元素 ω\omega 满足

ωn=1,\omega^n=1,

则称它为一个 nn 次单位根(Root of Unity)。

如果 ω\omega 的阶恰好等于 nn,则称它为原始 nn 次单位根(Primitive nn-th Root of Unity)。

这两个条件不能混淆:ωn=1\omega^n=1 只说明 ord(ω)\operatorname{ord}(\omega) 整除 nn,不一定等于 nn


5. 在有限域中构造单位根

ggFp\mathbb F_p^* 的生成元,并且

n(p1).n\mid(p-1).

ω=g(p1)/n.\omega=g^{(p-1)/n}.

ωn=gp1=1.\omega^n =g^{p-1} =1.

因为 gg 的阶为 p1p-1,这个构造得到的 ω\omega 的阶恰好为 nn

这里必须同时满足:

  • gg 是整个乘法群的生成元;
  • nn 整除 p1p-1

如果任意选择一个非零元素代替生成元,得到的元素阶可能小于 nn


6. 具体例子:F17\mathbb F_{17} 中的 4 次单位根

F17\mathbb F_{17}^* 的阶为 16,而

416.4\mid16.

取一个生成元 g=3g=3,构造

ω=316/4=3413(mod17).\omega=3^{16/4}=3^4\equiv13\pmod{17}.

验证:

132161(mod17),13^2\equiv16\equiv-1\pmod{17},

所以

1341(mod17).13^4\equiv1\pmod{17}.

同时 132≢1(mod17)13^2\not\equiv1\pmod{17},因此 13 的阶不是 1 或 2,而是 4。它是原始 4 次单位根。


7. Python 验证生成元的幂

p = 7
g = 3

values = [pow(g, k, p) for k in range(p - 1)]
print(values)

预期输出会按某种顺序遍历 1166 的全部非零剩余类。

这个例子不能替代“任意有限域非零元素乘法群都是循环群”的一般证明。


8. 自测

  1. 为什么 00 不属于 Fp\mathbb F_p^*
  2. 群的阶和元素的阶有什么区别?
  3. ωn=1\omega^n=1 是否一定说明 ω\omega 的阶为 nn
  4. 构造原始 nn 次单位根时,为什么需要 n(p1)n\mid(p-1)
参考答案
  1. 0 没有乘法逆元。
  2. 群的阶是元素总数;元素的阶是其幂第一次回到单位元的正指数。
  3. 不一定,只能说明元素的阶整除 nn
  4. Fp\mathbb F_p^* 的阶为 p1p-1,阶为 nn 的循环子群需要与这个群阶相容。

上一篇:素域 Fp\mathbb F_p
下一篇:从单位根到 NTT