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,都可以唯一地表示为有限个素数的乘积(不计素因数的排列顺序)
数学表达为:对于任意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算法利用了大数分解的困难性,请看一下Steps:
- 首先找到两个很大的素数 p 和 q
- 然后计算 n=p×q
- 最后利用欧拉定理构造公钥和私钥
- **(注意)**如果没有p和q(即无法分解n),这样就很难破解密文了(除非你有量子计算机)
感谢您的游览!在此,也祝福你可以学好数学!而且考试天天能满分!面试也能直接通过!(^_^)