正在连接内容文件

附录12 - 模 n 的原根

一、 阶与阶的性质

在正式引入原根之前,我们需要先了解一个元素在模 nn 乘法下的“生命周期”。

1. 前置引理

引理:给定 aa 和 nn,ad≡1(modn)a^d \equiv 1 \pmod n 有正整数解,当且仅当 gcd⁡(a,n)=1\gcd(a, n) = 1

证明必要性:
存在 d>0 使得 ad≡1(modn)  ⟹  gcd⁡(a,n)=1\text{存在 } d \gt 0 \text{ 使得 } a^d \equiv 1 \pmod n \implies \gcd(a, n) = 1
反证法,假设 gcd⁡(a,n)>1\gcd(a, n) > 1,设 p>0p \gt 0 是 aa 和 nn 的一个公约数
因为 ad≡1(modn)a^d \equiv 1 \pmod n,存在整数 kk 使得 ad=nk+1a^d = nk + 1
ad−nk=1a^d - nk = 1
因为 p∣ap \mid a 于是 p∣adp \mid a^d,又有 p∣np \mid n 于是 p∣nkp \mid nk。所以 p∣ad−nkp \mid a^d - nk
于是 p∣1p \mid 1。但一个大于 00 的数 pp 是不可能整除 11 的,这就推出了矛盾。
因此必有 gcd⁡(a,n)=1\gcd(a, n) = 1。

证明充分性:
gcd⁡(a,n)=1  ⟹  存在 d>0 使得 ad≡1(modn)\gcd(a, n) = 1 \implies \text{存在 } d \gt 0 \text{ 使得 } a^d \equiv 1 \pmod n
考虑下面 n+1n + 1 个 aa 的正整数次方:
a1,a2,a3,a4,…,an+1a^1, a^2, a^3, a^4, \dots, a^{n+1}
我们将这些数全部对 nn 取模(即求除以 nn 的余数)。
运用抽屉原理,一个数除以 nn 的余数,只能是 0,1,2,…,n−10, 1, 2, \dots, n-1 这 nn 个数字中的某一个。把上面 n+1n+1 个余数分配给这 nn 个数,必然至少有两项余数相同。假设这两项分别是 aia^i 和 aja^j,并且我们规定 1≤i<j1 \le i \lt j。
于是,我们可以写出同余式:
ai≡aj(modn)a^i \equiv a^j \pmod n
也就是:
n∣(aj−ai)n \mid (a^j - a^i)
提取公因式 aia^i,得到:
n∣ai⋅(aj−i−1)n \mid a^i \cdot (a^{j-i} - 1)
已知 aa 与 nn 互素,那么 aia^i 也与 nn 互素。根据欧几里得引理:如果一个整数 nn 整除两个数的乘积 X⋅YX \cdot Y,且 nn 与 XX 互素,那么 nn 必然整除 YY。于是必然有:
n∣(aj−i−1)n \mid (a^{j-i} - 1)
转换回同余式的写法就是:
aj−i≡1(modn)a^{j-i} \equiv 1 \pmod n
令 d=j−id = j - i,于是就得到了:
ad≡1(modn)a^d \equiv 1 \pmod n

2. 模 nn 的阶

『模 nn 的阶』:设 aa 与 nn 互素(即 gcd⁡(a,n)=1\gcd(a, n) = 1)。
使得同余式 ad≡1(modn)a^d \equiv 1 \pmod n 成立的最小正整数 dd,称为 aa 模 nn 的阶,记作 ordn(a)\text{ord}_n(a)。

3. 阶的性质

设 aa 在模 nn 下的阶是 dd。令 ⟨a⟩={1,a,a2,⋯ ,ad−1}\langle a \rangle = \left\{1, a, a^2, \cdots, a^{d-1}\right\},⟨a⟩\langle a \rangle 称为由 aa 生成的循环子群(Cyclic Subgroup generated by aa),有下列性质:

  1. 1,a,a2,⋯ ,ad−11, a, a^2, \cdots, a^{d-1} 这 dd 个数在模 nn 下彼此不同,并且都与 nn 互素。
  2. ⟨a⟩\langle a \rangle 对模 nn 乘法封闭:里面任意两个数相乘仍在 ⟨a⟩\langle a \rangle 中。
  3. ⟨a⟩\langle a \rangle 中每个元素都存在乘法逆元
  4. 将 ⟨a⟩\langle a \rangle 中每个元素都乘以 ai(i≥0)a^i (i \ge 0),得到的集合仍然是 ⟨a⟩\langle a \rangle
  5. 如果整数 kk 使得 ak≡1(modn)a^k \equiv 1 \pmod n,那么必有 d∣kd \mid k(阶的整除性质)

证明性质 1 (⟨a⟩\langle a \rangle 中数都与 nn 互素):

因为 aa 与 nn 互素,aka^k 必定也与 nn 互素,设 aka^k 除以 nn 的余数是 rr,我们要证明 rr 也与 nn 互素。假设 rr 与 nn 不互素,即它们有一个大于 11 的公约数 pp,由于 p∣rp \mid r 且 p∣nqp \mid nq,必有 p∣(nq+r)p \mid (nq + r),即 p∣akp \mid a^k,于是 aka^k 和 nn 存在 pp 这个公约数,与 aka^k 必定也与 nn 互素

证明性质 1 (1,a,a2,⋯ ,ad−11, a, a^2, \cdots, a^{d-1} 彼此不同):

假设集合 ⟨a⟩\langle a \rangle 中存在两个相同的元素。也就是说,存在 0≤j<i≤d−10 \le j < i \le d-1,使得:
ai≡aj(modn)a^i \equiv a^j \pmod n
根据同余的定义,这等价于:
n∣(ai−aj)  ⟹  n∣aj(ai−j−1)n \mid (a^i - a^j) \implies n \mid a^j(a^{i-j} - 1)
由于 gcd⁡(aj,n)=1\gcd(a^j, n) = 1,根据欧几里得引理,nn 必须整除后面那一项:
n∣(ai−j−1)  ⟹  ai−j≡1(modn)n \mid (a^{i-j} - 1) \implies a^{i-j} \equiv 1 \pmod n
此时,我们来看指数 i−ji-j。因为 0≤j<i≤d−10 \le j < i \le d-1,所以 i−ji-j 是一个正整数,且满足:
0<i−j≤d−1<d0 < i - j \le d - 1 < d
我们竟然找到了一个比 dd 更小的正整数 i−ji-j,使得 aa 的该次幂模 nn 等于 11。但这直接违背了“dd 是满足该条件的最小正整数(即阶)”的定义。矛盾产生!因此,假设不成立,这 dd 个数在模 nn 下必然两两不同。

证明性质 2、3:

任意整数 kk,用 dd 作带余除法:k=dn+r(0≤r≤d−1)k = d n + r (0 \le r \le d - 1),于是
ak=adn+r=(ad)n⋅ar≡1n⋅ar≡ar(modp)a^k = a^{d n + r} = {(a^d)}^n\cdot a^r \equiv 1^n\cdot a^r \equiv a^r \pmod p
这就证明了 aa 的任意整数次方都在 ⟨a⟩\langle a \rangle 中,即 ⟨a⟩\langle a \rangle 对模乘法封闭,即性质2。
因为 ak≡ara^k \equiv a^r,(ak)−1≡(ar)−1{(a^k)}^{-1} \equiv {(a^r)}^{-1},而 ar⋅ad−r≡ad≡1a^r \cdot a^{d - r} \equiv a^d \equiv 1,所以 ad−ra^{d-r} 就是 aka^k 的乘法逆元,性质3得证。

证明性质 4:

将 ⟨a⟩\langle a \rangle 中每个元素都乘以 ak(k≥0)a^k (k \ge 0),变为了:
{ak,ak+1,⋯ ,ak+d−1}\left\{a^k, a^{k + 1}, \cdots, a^{k + d - 1}\right\}
因为 k,k+1,⋯ ,k+d−1k, k + 1, \cdots, k + d - 1 是连续的 dd 个整数,它们除以 dd 的余数必定取遍 0,1,⋯ ,d−10, 1, \cdots, d - 1 这 dd 个整数。因为 ak≡ara^k \equiv a^r ( rr 是 kk 除以 dd 的余数),所以 {ak,ak+1,⋯ ,ak+d−1}\left\{a^k, a^{k + 1}, \cdots, a^{k + d - 1}\right\} 就是 {a0,a1,⋯ ,ad−1}\left\{a^0, a^1, \cdots, a^{d - 1}\right\},也就是 ⟨a⟩\langle a \rangle。

证明性质 5:

如果整数 kk 使得 ak≡1(modn)a^k \equiv 1 \pmod n,那么必有 d∣kd \mid k(阶的整除性质)
利用带余除法,用 kk 除以 dd:k=dq+r(0≤r≤d−1)k = d q + r (0 \le r \le d - 1)
ak≡adn+r≡(ad)n⋅ar≡1n⋅ar≡ar≡1a^k \equiv a^{d n + r} \equiv {(a^d)}^{n}\cdot a^r \equiv 1^n \cdot a^r \equiv a^r \equiv 1
如果 dd 不整除 kk,即 r>0r \gt 0,那么 rr 就是一个满足 ar≡1a^r \equiv 1 的比 dd 更小的正整数,和 dd 是最小矛盾。
因此必有 r=0r = 0,即 d∣kd \mid k。

4. 欧拉定理

设 aa 在模 nn 下的阶是 dd。前面我们已经研究过,1,a,a2,⋯ ,ad−11, a, a^2, \cdots, a^{d-1} 这 dd 个数在模 nn 下彼此不同,并且都与 nn 互素,我们知道,0,1,⋯ ,n−10, 1, \cdots, n-1 中和 nn 互素的数一共有 φ(n)\varphi(n) 个( φ(n)\varphi(n) 是欧拉函数,见「附录10」),所以 aa 的阶 dd 最多只能是 φ(n)\varphi(n)。
那么 dd 能否取到 φ(n)\varphi(n) 呢?这是下一节要研究的问题。我们现在先证明阶的另一个重要性质:

『欧拉定理』:若 gcd⁡(a,n)=1\gcd(a, n) = 1,则 aφ(n)≡1(modn)a^{\varphi(n)} \equiv 1 \pmod n

「注1」:根据上面已经证明的「性质5」,欧拉定理如果成立,那么任何数 aa 的阶如果存在(即 aa 与 nn 互素时),都有 ordn(a)∣φ(n)\text{ord}_n(a) \mid \varphi(n)

「注2」:如果欧拉定理成立,对于任意的素数 pp,因为 φ(p)=p−1\varphi(p) = p - 1,那么 aφ(n)=ap−1≡1(modp)a^{\varphi(n)} = a^{p - 1} \equiv 1 \pmod p,ap≡a(modp)a^p \equiv a \pmod p,这正是「附录7」中的费马小定理。可见费马小定理是欧拉定理的特例。

现在证明欧拉定理:
在 11 到 n−1n-1 中,找出所有与 nn 互素的整数,共有 φ(n)\varphi(n) 个,设它们为
r1,r2,…,rφ(n)r_1, r_2, \dots, r_{\varphi(n)}。考虑序列:
ar1,ar2,…,arφ(n)a r_1, a r_2, \dots, a r_{\varphi(n)}。
首先,它们两两模 nn 不同余。
反证法:若 ari≡arj(modn)a r_i \equiv a r_j \pmod n,则 n∣a(ri−rj)n \mid a(r_i - r_j)。因为 gcd⁡(a,n)=1\gcd(a, n) = 1,由欧几里得引理,必有 n∣(ri−rj)n \mid (r_i - r_j)。但 ∣ri−rj∣<n\vert{}r_i - r_j\vert{} < n,故 ri=rjr_i = r_j。
其次,因为 aa 和 rir_i 都与 nn 互素,所以 aria r_i 也与 nn 互素。
因此,ar1,…,arφ(n)a r_1, \dots, a r_{\varphi(n)} 模 nn 的结果,其实就是 r1,…,rφ(n)r_1, \dots, r_{\varphi(n)} 的一个重新排列。将它们全部乘起来:
(ar1)⋅(ar2)…(arφ(n))≡r1⋅r2…rφ(n)(modn)(a r_1) \cdot (a r_2) \dots (a r_{\varphi(n)}) \equiv r_1 \cdot r_2 \dots r_{\varphi(n)} \pmod n
提取 aa,得到
aφ(n)(r1…rφ(n))≡(r1…rφ(n))(modn)a^{\varphi(n)} (r_1 \dots r_{\varphi(n)}) \equiv (r_1 \dots r_{\varphi(n)}) \pmod n
因为每个 rir_i 都与 nn 互素,它们的乘积也与 nn 互素。由欧几里得引理(或者由前面「性质3」模乘法逆元存在),我们可以将乘积从同余式两边约去,得到 aφ(n)≡1(modn)a^{\varphi(n)} \equiv 1 \pmod n。证明完毕。

二、 模 nn 的原根

1. 原根的定义

既然 ordn(a)\text{ord}_n(a) 最大只能是 φ(n)\varphi(n),那么有没有可能达到这个上限呢?
『原根』:如果一个整数 gg 满足 gcd⁡(g,n)=1\gcd(g, n) = 1,且 ordn(g)=φ(n)\text{ord}_n(g) = \varphi(n),我们就称 gg 为模 nn 的原根。

2. 原根的周期性与生成性

根据前面「阶的性质1」,如果 gg 是 nn 的原根,那么 g,g2,⋯ ,gφ(n)g, g^2, \cdots, g^{\varphi(n)} 恰好生成了 1⋯n1 \cdots n 中所有与 nn 互素的 φ(n)\varphi(n) 个数

3. 原根的存在性和个数

并非所有数字都有原根(高斯在《算数研究》中证明了,只有 2,4,pk,2pk2, 4, p^k, 2p^k 有原根,其中 pp 为奇素数)。我们不深入讨论存在性,这小节只证明:如果一个数 nn 存在原根,那么它一定恰好有 φ(φ(n))\varphi(\varphi(n)) 个不同的原根。

证明:既然存在一个原根 gg,那么所有与 nn 互素的数都可以写成 gkg^k (1≤k≤φ(n)1 \le k \le \varphi(n))。
我们考察 gkg^k 的阶。设 gkg^k 的阶为 dd,则 (gk)d≡1(modn)  ⟹  gkd≡1(modn)(g^k)^d \equiv 1 \pmod n \implies g^{kd} \equiv 1 \pmod n。
由「阶的性质5」,φ(n)∣kd\varphi(n) \mid kd。要让 dd 最小,dd 必须等于 φ(n)gcd⁡(k,φ(n))\frac{\varphi(n)}{\gcd(k, \varphi(n))}。
gkg^k 要成为原根,必须满足其阶 d=φ(n)d = \varphi(n),这当且仅当 gcd⁡(k,φ(n))=1\gcd(k, \varphi(n)) = 1。
在 11 到 φ(n)\varphi(n) 之间,与 φ(n)\varphi(n) 互素的 kk 恰好有 φ(φ(n))\varphi(\varphi(n)) 个。证明完毕。

4. 求原根的方法

要找模 nn 的原根,穷举法是最直接的:
首先找出 1⋯n1\cdots n 中所有和 nn 互素的数(φ(n)\varphi(n)个),逐个尝试。
假设 gg 是其中之一,如何快速判断 gg 是否为原根?只要保证 gk≢1(modn)g^k \not\equiv 1 \pmod n 对所有 (k=φ(n) 的真因数)(k = \varphi(n)\text{ 的真因数}) 都成立即可(这说明让 gk≡1g^k \equiv 1 的只能是 φ(n)\varphi(n))。我们找出 φ(n)\varphi(n) 的所有素因数 q1,q2,…,qkq_1, q_2, \dots, q_k。
因为整除传递性,只需要验证那几个“最大的真因数”(即 φ(n)/qi\varphi(n)/q_i),就能把所有更小的真因数一网打尽。即:
如果对于每一个素因数 qiq_i,都有 gφ(n)/qi≢1(modn)g^{\varphi(n)/q_i} \not\equiv 1 \pmod n,那么 gg 的阶不可能是 φ(n)\varphi(n) 的任何真因数,因此必定是 φ(n)\varphi(n),gg 就是原根。

三、 素数 pp 的原根存在性

前面提到过,形如 2,4,pk,2pk2, 4, p^k, 2p^k 的数有原根(其中 pp 为奇素数),我们现在证明简化的版本,即 『任意素数都有原根』。

证明:设 pp 为素数,φ(p)=p−1\varphi(p) = p - 1。

原根的“候选人”为 11 到 p−1p - 1 这 p−1p - 1 个数。

我们对所有“候选人”按照它的阶分组,设阶恰好为 dd 的元素的个数为 ψ(d)\psi(d)。其中 dd 是 φ(p)\varphi(p) (即 p−1p - 1 ) 的因数并且 1≤d≤p−11 \le d \le p - 1

如果 ψ(d)>0\psi(d) > 0,意味着至少存在一个元素 aa,其阶为 dd。

那么 a1,a2,…,ada^1, a^2, \dots, a^d 这 dd 个数两两不同余(「阶的性质1」),并且它们代入 xdx^d 都有 (ak)d=(ad)k≡1k≡1(modp)(a^k)^d = (a^d)^k \equiv 1^k \equiv 1 \pmod p。也就是说它们是方程 xd≡1(modp)x^d \equiv 1 \pmod p 的 dd 个不同的根。

我们知道在模素数 pp 的多项式环中,次数为 dd 的多项式最多只有 dd 个根。这说明方程 xd≡1(modp)x^d \equiv 1 \pmod p 的所有根恰好就是这 dd 个数!(注:这段推理严格依赖 pp 是素数,只有 pp 是素数,0,1,⋯ ,p−10, 1, \cdots, p - 1 才在模 pp 运算下构成一个数域,各种多项式定理才能用于模 pp 下的多项式,包括这里判断根的个数所依赖的多项式的因式定理。详见「附录6」)。

另一方面,我们知道如果一个“候选人”的阶为 dd,它必须是 xd≡1(modp)x^d \equiv 1 \pmod p 的根。所以实际阶为 dd 的元素也只能从 a1,a2,…,ada^1, a^2, \dots, a^d 中选,它们是这些根中不存在更小的 d′d' 使得 xd′≡1(modp)x^{d'} \equiv 1 \pmod p 的元素。

既然阶为 dd 的元素只能从 a1,a2,…,ada^1, a^2, \dots, a^d 这 dd 个数中产生,我们现在就来考察这里面的任意一个元素 aka^k(其中 1≤k≤d1 \le k \le d),看看它的阶到底是多少。

设 aka^k 模 pp 的真实阶为 mm。根据阶的定义,这意味着 (ak)m≡1(modp)(a^k)^m \equiv 1 \pmod p,也就是 akm≡1(modp)a^{km} \equiv 1 \pmod p。

由前面证明过的「阶的性质5(整除性)」,既然 aa 的阶是 dd,且 akm≡1(modp)a^{km} \equiv 1 \pmod p,那么必定有:

d∣kmd \mid km

我们将这个整除关系化简。设 kk 和 dd 的最大公约数为 g=gcd⁡(k,d)g = \gcd(k, d)。将 dd 和 kk 同时除以 gg,得到:

dg∣kg⋅m\frac{d}{g} \mid \frac{k}{g} \cdot m

因为 dg\frac{d}{g} 和 kg\frac{k}{g} 已经互素,根据欧几里得引理,dg\frac{d}{g} 必定能整除 mm。

要想让 mm 成为满足条件的最小正整数(这就是阶的定义),mm 必须等于 dg\frac{d}{g}。

所以,元素 aka^k 的真实阶 m=dgcd⁡(k,d)m = \frac{d}{\gcd(k, d)}。

我们要找的是阶恰好等于 dd 的元素,这就要求:dgcd⁡(k,d)=d\frac{d}{\gcd(k, d)} = d。

显然,这当且仅当 gcd⁡(k,d)=1\gcd(k, d) = 1 时才成立。

这意味着,在 a1,a2,…,ada^1, a^2, \dots, a^d 这 dd 个元素中,只有那些指数 kk 与 dd 互素的元素 aka^k,它的阶才是 dd。在 11 到 dd 之间,与 dd 互素的整数个数,恰好就是欧拉函数的定义,即 φ(d)\varphi(d) 个!

至此我们得出一个严密的结论:只要假设 ψ(d)>0\psi(d) > 0(即至少存在一个阶为 dd 的元素),那么阶为 dd 的元素就必定恰好有 φ(d)\varphi(d) 个。

也就是说,对于任何 dd,ψ(d)\psi(d) 要么等于 00,要么等于 φ(d)\varphi(d)。

最后,我们把所有因数 dd 统合起来。因为 11 到 p−1p-1 这 p−1p-1 个数字中,每一个数都有唯一的一个阶 dd,且由前面欧拉定理的推论「注1」可知,dd 必定是 p−1p-1 的因数。所以,如果我们把所有数字按阶来统计,总数必然等于 p−1p-1:

∑d∣p−1ψ(d)=p−1\sum_{d \mid p-1} \psi(d) = p - 1

另一方面,根据「附录10」中的欧拉函数的因数和性质,有下面的公式:

∑d∣p−1φ(d)=p−1\sum_{d \mid p-1} \varphi(d) = p - 1

对比这两个式子:因为每一个 ψ(d)\psi(d) 要么是 00,要么是 φ(d)\varphi(d)。如果存在哪怕一个 dd 使得 ψ(d)=0\psi(d) = 0,那么上面那个式子的总和就会严格小于下面那个式子的总和,这就不可能等于 p−1p-1 了!因此,唯一的可能是:所有的 ψ(d)\psi(d) 都不能等于 0,必须统统等于 φ(d)\varphi(d)。特别地,对于因数 d=p−1d = p - 1,必定有:

ψ(p−1)=φ(p−1)>0\psi(p-1) = \varphi(p-1) > 0

这意味着,阶恰好为 p−1p-1 的元素必然存在。根据原根的定义,这就完美证明了模 pp 的原根必定存在!证明完毕。