1. 引言
中国剩余定理(Chinese Remainder Theorem,CRT),又名孙子定理,最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:
有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。
《孙子算经》中首次提到了同余方程组问题,以及以上具体问题的解法,因此在中文数学文献中也会将中国剩余定理称为孙子定理。
孙子定理是初等数论中的一个重要定理,凝结着中国古代数学家的智慧,在加密、秘密共享、数字签名等领域都有重要应用。
假设希望求解以下方程组:
x
≡
2
(
m
o
d
5
)
x \equiv 2 \pmod{5}
x≡2(mod5)
x
≡
3
(
m
o
d
7
)
x \equiv 3 \pmod{7}
x≡3(mod7)
若有一个解
y
y
y,则
y
+
35
y+35
y+35 也是其解。因此,只需寻找模
35
35
35 的解。通过穷举可以发现其唯一解为:
x
≡
17
(
m
o
d
35
)
x \equiv 17 \pmod{35}
x≡17(mod35)。
对于任意类似的方程组,中国剩余定理告诉我们总是存在一个模某一特定模数的唯一解,并描述了如何高效地找到该解。
中国剩余定理:设
p
,
q
p, q
p,q coprime互质。则方程组:
x
≡
a
(
m
o
d
p
)
x \equiv a \pmod{p}
x≡a(modp)
x
≡
b
(
m
o
d
q
)
x \equiv b \pmod{q}
x≡b(modq)
在模
p
q
pq
pq 意义下对
x
x
x 有唯一解。
反之亦成立:给定
x
∈
Z
p
q
x \in \mathbb{Z}_{pq}
x∈Zpq,可以将
x
x
x 分别对
p
p
p 和
q
q
q 取模,得到上述形式的两个方程。
证明:
令
p
1
=
p
−
1
(
m
o
d
q
)
p_1 = p^{-1} \pmod{q}
p1=p−1(modq) 和
q
1
=
q
−
1
(
m
o
d
p
)
q_1 = q^{-1} \pmod{p}
q1=q−1(modp)。由于
p
,
q
p, q
p,q 互质,这样的逆元必然存在。声明,如果
y
y
y 是满足以下关系的整数:
y
≡
a
⋅
q
⋅
q
1
+
b
⋅
p
⋅
p
1
(
m
o
d
p
q
)
y \equiv a \cdot q \cdot q_1 + b \cdot p \cdot p_1 \pmod{pq}
y≡a⋅q⋅q1+b⋅p⋅p1(modpq)
则
y
y
y 同时满足以下两个方程:
- 模 p p p 意义下,有 y ≡ a ⋅ q ⋅ q 1 ≡ a ( m o d p ) y \equiv a \cdot q \cdot q_1 \equiv a \pmod{p} y≡a⋅q⋅q1≡a(modp),因为 q ⋅ q 1 ≡ 1 ( m o d p ) q \cdot q_1 \equiv 1 \pmod{p} q⋅q1≡1(modp)。
- 模 q q q 意义下,类似地可得 y ≡ b ( m o d q ) y \equiv b \pmod{q} y≡b(modq)。
因此, y y y 是 x x x 的解。
接下来,证明在模 p q pq pq 意义下没有其他解:
- 若 z ≡ a ( m o d p ) z \equiv a \pmod{p} z≡a(modp),则 z − y z-y z−y 是 p p p 的倍数;
- 若 z ≡ b ( m o d q ) z \equiv b \pmod{q} z≡b(modq),则 z − y z-y z−y 也是 q q q 的倍数。
- 由于 p , q p, q p,q 互质,得 z − y z-y z−y 是 p q pq pq 的倍数,即 z ≡ y ( m o d p q ) z \equiv y \pmod{pq} z≡y(modpq)。∎
该定理表明,可以用一个 Z p \mathbb{Z}_p Zp 和一个 Z q \mathbb{Z}_q Zq 的元素表示 Z p q \mathbb{Z}_{pq} Zpq 的一个元素,反之亦然。换句话说, Z p q \mathbb{Z}_{pq} Zpq 和 Z p × Z q \mathbb{Z}_p \times \mathbb{Z}_q Zp×Zq 之间存在双射。如:
- 可以将 17 ∈ Z 35 17 \in \mathbb{Z}_{35} 17∈Z35 表示为 ( 2 , 3 ) ∈ Z 5 × Z 7 (2, 3) \in \mathbb{Z}_5 \times \mathbb{Z}_7 (2,3)∈Z5×Z7。
- 也可以将 1 ∈ Z p q 1 \in \mathbb{Z}_{pq} 1∈Zpq 表示为 ( 1 , 1 ) ∈ Z p × Z q (1, 1) \in \mathbb{Z}_p \times \mathbb{Z}_q (1,1)∈Zp×Zq。
事实上,这种对应关系不仅仅是重新标记。假设 x , y ∈ Z p q x, y \in \mathbb{Z}_{pq} x,y∈Zpq 分别对应于 ( a , b ) , ( c , d ) ∈ Z p × Z q (a, b), (c, d) \in \mathbb{Z}_p \times \mathbb{Z}_q (a,b),(c,d)∈Zp×Zq。通过简单推导可知, x + y x+y x+y 对应于 ( a + c , b + d ) (a+c, b+d) (a+c,b+d),而 x y xy xy 对应于 ( a c , b d ) (ac, bd) (ac,bd)。
2. 中国剩余定理应用
中国剩余定理应用场景可为:
- 若需要对 x ∈ Z p q x \in \mathbb{Z}_{pq} x∈Zpq 执行大量计算(如 RSA 签名和解密),可以先将 x x x 转换为 ( a , b ) ∈ Z p × Z q (a, b) \in \mathbb{Z}_p \times \mathbb{Z}_q (a,b)∈Zp×Zq,在 a a a 和 b b b 上完成所有计算后再转换回去。
- 这通常更高效,因为对于许多算法,输入大小翻倍会导致运行时间超过翻倍。
如:
- 计算 17 × 17 ( m o d 35 ) 17 \times 17 \pmod{35} 17×17(mod35),可以在 Z 5 × Z 7 \mathbb{Z}_5 \times \mathbb{Z}_7 Z5×Z7 中计算 ( 2 × 2 , 3 × 3 ) = ( 4 , 2 ) (2 \times 2, 3 \times 3) = (4, 2) (2×2,3×3)=(4,2),然后通过中国剩余定理找到 ( 4 , 2 ) (4, 2) (4,2) 对应的值是 9 ( m o d 35 ) 9 \pmod{35} 9(mod35)。
3. 通常形式的中国剩余定理
通常形式的中国剩余定理为:
- 令
m
1
,
…
,
m
n
m_1, \dots, m_n
m1,…,mn 两两互质(即当
i
≠
j
i \neq j
i=j 时
gcd
(
m
i
,
m
j
)
=
1
\gcd(m_i, m_j) = 1
gcd(mi,mj)=1)。则
n
n
n 个方程组成的系统:
x ≡ a 1 ( m o d m 1 ) x \equiv a_1 \pmod{m_1} x≡a1(modm1)
⋯ \cdots ⋯
x ≡ a n ( m o d m n ) x \equiv a_n \pmod{m_n} x≡an(modmn)
在模 M = m 1 ⋯ m n M = m_1 \cdots m_n M=m1⋯mn 意义下对 x x x 有唯一解。
证明:这可以从前面的中国剩余定理形式通过归纳法轻松得出,或者可以直接写出解:
定义
b
i
=
M
/
m
i
b_i = M / m_i
bi=M/mi(即除
m
i
m_i
mi 外所有模数的乘积),以及
b
i
′
=
b
i
−
1
(
m
o
d
m
i
)
b_i' = b_i^{-1} \pmod{m_i}
bi′=bi−1(modmi)。通过类似的推导,可得
x
≡
∑
i
=
1
n
a
i
b
i
b
i
′
(
m
o
d
M
)
x \equiv \sum_{i=1}^n a_i b_i b_i' \pmod{M}
x≡i=1∑naibibi′(modM)
是唯一解。∎
3.1 Prime Powers First
通常形式的中国剩余定理的一个重要推论是:
- 在研究一般模算术时,可以首先研究模素数幂的情况,然后应用中国剩余定理将结果推广。
对于任意整数
n
n
n,将其分解为素数因子
n
=
p
1
k
1
⋯
p
m
k
m
n = p_1^{k_1} \cdots p_m^{k_m}
n=p1k1⋯pmkm,然后用中国剩余定理得到:
Z
n
=
Z
p
1
k
1
×
⋯
×
Z
p
m
k
m
\mathbb{Z}_n = \mathbb{Z}_{p_1^{k_1}} \times \cdots \times \mathbb{Z}_{p_m^{k_m}}
Zn=Zp1k1×⋯×Zpmkm
在证明
Z
p
k
\mathbb{Z}_{p^k}
Zpk 中的statement声明时,从
Z
p
\mathbb{Z}_p
Zp 开始,逐步递归到
Z
p
k
\mathbb{Z}_{p^k}
Zpk。因此,最重要的情况是研究
Z
p
\mathbb{Z}_p
Zp。
参考资料
[1] The Chinese Remainder Theorem
[2] 百度百科 孙子定理
2796

被折叠的 条评论
为什么被折叠?



