1. 什么是数论?#
数论是纯数学的一个分支,主要研究整数的性质。虽然很纯粹(说人话就是基本没什么大用),但是数论对于现代计算机科学和互联网安全有非常大的帮助。
2. 基础概念:整除与约数#
在数论中,我们主要关注整数集 Z={...,−2,−1,0,1,2,...}。
2.1 整除定义#
如果整数 a 除以整数 b (b=0) 的余数为 0,我们就说 b 整除 a,或者 a 能被 b 整除。
记作:
b∣a
这意味着存在一个整数 k,使得 a=bk。
2.2 基本性质#
- 传递性: 若 a∣b 且 b∣c,则 a∣c。
- 线性组合: 若 a∣b 且 a∣c,则对于任意整数 x,y,有 a∣(bx+cy)。
3. 素数与算术基本定理#
3.1 素数#
一个大于1的整数,如果除了1和它本身以外没有其他正因数,则称之为素数(也可以叫质数)。否则,称为合数。
- 前几个素数:2, 3, 5, 7, 11, 13, 17, 19…
- 注意: 1既不是素数也不是合数。
3.2 算术基本定理#
这是数论中最重要的定理之一。它指出:
任何一个大于1的整数都可以唯一地分解为素数的乘积。
数学表达为:对于任意 n>1 ,存在唯一的素数 p1<p2<⋯<pk 和正整数 a1,a2,…,ak,使得:
n=p1a1p2a2⋯pkak
示例:
12=22×3
600=23×31×52
这种分解是唯一的(不考虑顺序)。
4. 最大公约数与最小公倍数#
4.1 定义#
- 最大公约数: 两个或多个整数共有约数中最大的一个。记作 gcd(a,b) 或 (a,b)。
- 最小公倍数: 两个或多个整数共有倍数中最小的正整数。记作 lcm(a,b) 或 [a,b]。
4.2 欧几里得算法#
也称为“辗转相除法”,是求 GCD 最古老且高效的算法。
核心原理:gcd(a,b)=gcd(b,amodb)。
算法步骤示例:求 gcd(1071,462)
- 1071=462×2+147 (余数 147)
- 462=147×3+21 (余数 21)
- 147=21×7+0 (余数 0)
当余数为 0 时,除数即为最大公约数。
结果: gcd(1071,462)=21
4.3 裴蜀定理#
对于不全为 0 的整数 a,b,存在整数 x,y 使得:
ax+by=gcd(a,b)
这是求解线性同余方程的基础。
5. 同余运算#
同余是数论的“时钟算术”。
5.1 定义#
如果两个整数 a 和 b 除以正整数 n 所得的余数相同,则称 a 和 b 模 n 同余。
记作:
a≡b(modn)
等价定义:n∣(a−b)。
5.2 运算性质#
同余式可以像等式一样进行加、减、乘运算:
若 a≡b(modn) 且 c≡d(modn),则:
- a+c≡b+d(modn)
- a×c≡b×d(modn)
- ak≡bk(modn) (其中 k 为正整数)
示例:计算 13×15(mod12)
因为 13≡1(mod12)
15≡3(mod12)
所以 13×15≡1×3≡3(mod12)。
6. 数论中的真神定理#
6.1 费马小定理#
如果 p 是素数,且 a 是不可被 p 整除的整数,那么:
ap−1≡1(modp)
这个定理在素数测试和公钥加密中非常重要。
6.2 欧拉函数与欧拉定理#
- 欧拉函数 ϕ(n): 表示小于等于 n 且与 n 互质的正整数的个数。
- 欧拉定理: 若 gcd(a,n)=1,则:
aϕ(n)≡1(modn)
(注:费马小定理是欧拉定理在n为素数时的特例,因为对于素数p,ϕ(p)=p−1)
7. 现代应用: RSA加密算法#
RSA(Rivest-Shamir-Adleman)算法是1977年由美国麻省理工学院(MIT)的Rivest、Shamir和Adleman所提出的一种非对称加密算法。它广泛应用于互联网安全通信中,如SSL和TLS协议的证书加密等。
RSA算法利用了大数分解的困难性:
- 找到两个很大的素数 p 和 q。
- 计算 n=p×q。
- 利用欧拉定理构造公钥和私钥。
- 如果没有 p 和 q (即无法分解 n),很难破解密文。
所以数论不再只是数学家的口头禅,而是现代互联网安全的基石。#