Skip to main content

同余

参考资料

引入

同余 是数论的「分类工具」——把所有整数按 除以 mm 的余数 归类。它把整数的乘法结构搬到了有限集 {0,1,,m1}\set{0,1,\dots,m-1} 上,成为现代密码学(RSA、椭圆曲线)的核心。

同余的定义

整数 a,ba,b,正整数 mm,若 m(ab)m\mid(a-b),称 aa 同余于 bbmm,记为:

ab(modm)a\equiv b\pmod m

等价表述:aabb 除以 mm 余数相同

性质

等价关系

mm 同余满足 自反、对称、传递,是 Z\mathbb{Z} 上的 等价关系

运算保持

ab,cd(modm)a\equiv b,c\equiv d\pmod m

a±cb±d,acbd(modm)a\pm c\equiv b\pm d,\quad ac\equiv bd\pmod m akbk(modm)(kN)a^k\equiv b^k\pmod m\,(k\in\mathbb{N})

除法不自动成立

acbc(modm)ab(modm)ac\equiv bc\pmod m\nRightarrow a\equiv b\pmod m

正确除法:

acbc(modm)ab(modmgcd(c,m))ac\equiv bc\pmod m\Rightarrow a\equiv b\pmod{\frac{m}{\gcd(c,m)}}

特别地,若 gcd(c,m)=1\gcd(c,m)=1,则可正常约去。

剩余类

mm 的所有同余类构成 剩余类环 Zm={[0],[1],,[m1]}\mathbb{Z}_m=\set{[0],[1],\dots,[m-1]}

完全剩余系

mm 个整数,模 mm 两两不同余。最常用的是 {0,1,,m1}\set{0,1,\dots,m-1}

既约剩余系

完全剩余系中与 mm 互素的部分。其大小为 欧拉函数 φ(m)\varphi(m)

欧拉函数

φ(m)\varphi(m) 表示 {1,2,,m}\set{1,2,\dots,m} 中与 mm 互素的整数个数。

公式

φ(m)=mpm(11p)\varphi(m)=m\prod_{p\mid m}\left(1-\frac{1}{p}\right)

其中 pp 取遍 mm 的素因子。

性质

  • φ(p)=p1\varphi(p)=p-1pp 为素数)。
  • φ(pk)=pkpk1\varphi(p^k)=p^k-p^{k-1}
  • 积性gcd(a,b)=1φ(ab)=φ(a)φ(b)\gcd(a,b)=1\Rightarrow\varphi(ab)=\varphi(a)\varphi(b)

详见 积性函数

三大定理

费马小定理

pp 是素数,gcd(a,p)=1\gcd(a,p)=1

ap11(modp)a^{p-1}\equiv 1\pmod p

更一般地,apa(modp)a^p\equiv a\pmod p 对任意 aa 成立。

欧拉定理

费马小定理的推广。设 gcd(a,m)=1\gcd(a,m)=1

aφ(m)1(modm)a^{\varphi(m)}\equiv 1\pmod m
tip

欧拉定理的实用价值:求 aNmodma^N\bmod m 时,可以把指数对 φ(m)\varphi(m) 取模,大大降阶。这是 RSA 加密的数学基础。

威尔逊定理

pp 是素数     \iff

(p1)!1(modp)(p-1)!\equiv -1\pmod p

线性同余方程

形式:

axb(modm)ax\equiv b\pmod m

解的存在性:有解     gcd(a,m)b\iff\gcd(a,m)\mid b

解的个数:若有解,模 mm 意义下恰有 gcd(a,m)\gcd(a,m) 个解。

求解:用 扩展欧几里得a1modma^{-1}\bmod m(要求 gcd(a,m)=1\gcd(a,m)=1),然后 xa1b(modm)x\equiv a^{-1}b\pmod m

中国剩余定理(CRT)

m1,m2,,mkm_1,m_2,\dots,m_k 两两互素,方程组:

{xa1(modm1)xa2(modm2)xak(modmk)\begin{cases} x\equiv a_1\pmod{m_1} \\ x\equiv a_2\pmod{m_2} \\ \vdots \\ x\equiv a_k\pmod{m_k} \end{cases}

在模 M=m1m2mkM=m_1m_2\cdots m_k 意义下有 唯一解

构造解

Mi=M/miM_i=M/m_iMi1M_i^{-1}MiM_imim_i 的逆元,则:

xi=1kaiMiMi1(modM)x\equiv\sum_{i=1}^{k}a_iM_iM_i^{-1}\pmod M
Example

xx 使 x2(mod3),x3(mod5),x2(mod7)x\equiv 2\pmod 3,\,x\equiv 3\pmod 5,\,x\equiv 2\pmod 7

M=105M=105M1=35,M2=21,M3=15M_1=35,M_2=21,M_3=15

求逆元:352(mod3)35\equiv 2\pmod 3212(mod3)2^{-1}\equiv 2\pmod 3211(mod5)21\equiv 1\pmod 5,逆元为 11151(mod7)15\equiv 1\pmod 7,逆元为 11

x2352+3211+2151140+63+3023323(mod105)x\equiv 2\cdot 35\cdot 2+3\cdot 21\cdot 1+2\cdot 15\cdot 1\equiv 140+63+30\equiv 233\equiv 23\pmod{105}

快速幂

anmodma^n\bmod m 时,用 二进制分解 nn

an=a2k1a2k2a^n=a^{2^{k_1}}\cdot a^{2^{k_2}}\cdots

边乘边取模,复杂度 O(logn)O(\log n)。这是 RSA、ECDSA 等密码算法的基础操作。