欧拉定理详解

0 前言

欧拉定理(Euler Theorem),也称费马-欧拉定理或欧拉函数定理,是一个非常重要的函数,是现代加密学广泛使用的一个公式,比如著名的RSA算法就是基于欧拉定理。欧拉定理的内容是关于正整数同余的计算恒等式,表示为: a φ ( n ) ≡ 1 ( m o d   n ) a^{φ(n)} \equiv1 (\mathrm{mod} \ n) aφ(n)1(mod n)其中, a a a n n n 均为正整数,且两者互质。这个公式有哪些神奇之处,为什么会受到如此重视和广泛应用,公式的具体含义是什么,在实际中如何使用,本文就这些问题进行详细解释。

1 基本概念

首先,欧拉定理讨论的内容是整数的操作(整数集合记为: N \mathbb{N} N),尤其是正整数( N + \mathbb{N^+} N+)相关的。因此,为了更好地理解欧拉定理,让我们先了解数论的一些基本概念。

1.1 余数 (Reminder)

我们从小学开始就学习过了余数,其本质就是整数相除时,无法除尽的部分。其数学定义如下:

余数定义:若整数 m , n , k , r m, n, k, r m,n,k,r 满足 m = k × n + r m = k \times n + r m=k×n+r,且 n ≠ 0 , 0 ≤ r < n n \neq 0,0 \leq r < n n=00r<n,则称 r r r m m m n n n 的余数。

举例来说, 13 = 2 ∗ 5 + 3 13 = 2 * 5 + 3 13=25+3,其中3就是13除以5的余数。我们也可以换一种方式来表达 r = m − ⌊ b a ⌋ n r=m-\lfloor {b \over a} \rfloor n r=mabn,其中 ⌊ x ⌋ \lfloor {x} \rfloor x 表示对是 x x x 取下界操作(如3.5取3),所以 ⌊ b a ⌋ \lfloor {b \over a} \rfloor ab 表示取 a 除以 b 的商的整数部分。我们定义 mod 作为取余操作的函数,如 r = m r = m r=m mod n n n,当 r = 0 r = 0 r=0 时,称 m m m 可以被 n n n 整除,记作 a ∣ b a|b ab

注:对浮点数 x x x取正,通常使用取边界符号: ⌊ x ⌋ \lfloor x \rfloor x ⌈ x ⌉ \lceil x \rceil x。其中, ⌊ x ⌋ \lfloor x \rfloor x 用于取浮点数 x x x的整数下界,即离 x x x 最近的一个比它小的整数,而 ⌈ x ⌉ \lceil x \rceil x 用于取整数上界,即离它最近的一个比它大的整数。举例来说,如 x = 1.5 x=1.5 x=1.5时,其上限为2,下界为1,记为: ⌊ 1.5 ⌋ = 1 \lfloor 1.5 \rfloor=1 1.5=1 ⌈ 1.5 ⌉ = 2 \lceil 1.5 \rceil=2 1.5=2。当 x x x 为负数时,如 x = − 1.5 x=-1.5 x=1.5 ⌊ − 1.5 ⌋ = − 2 \lfloor -1.5 \rfloor=-2 1.5=2 ⌈ − 1.5 ⌉ = − 1 \lceil -1.5 \rceil=-1 1.5=1。看上去是反过来了,但是实际上根据定义,下界是取比 x x x 小的最近的整数,因为比 − 1.5 -1.5 1.5 小的最近的整数是 − 2 -2 2,所以 ⌊ − 1.5 ⌋ = − 2 \lfloor -1.5 \rfloor=-2 1.5=2,上界亦然。

1.2 质数 (Prime)

质数也叫素数,定义为只能被1和其自身整数的正整数,如 2,3,5,7,11,13 等。质数是一类非常特别的数据,相关研究非常多,如著名的哥德巴赫猜想的内容就是“任何一个大于2的偶数是否都可以表示为两个质数的和”,如20=13+7,36=13+23等(目前数学界还无法证明,但使用计算机做了大量的验证却又找不到反例),或黎曼猜想(比较复杂有兴趣请自行百度)等。

1.3 公约数 (Common Divider)

若正整数 a , b a,b a,b 都可以被 c c c 整除,则 c c c a , b a,b a,b 的公约数,记作 a , b ∣ c a,b|c a,bc。如6是24和36的公约数。 a , b a,b a,b的公约数可以有多个,其中最大公约数记作 g c d ( a , b ) gcd(a,b) gcd(a,b) 或简化形式 ( a , b ) (a,b) (a,b)

1.4 互质 (Relatively Prime)

a , b a,b a,b 均为正整数且两者的公约数只有1,则称两个数互质,记为: ( a , b ) = 1 (a,b)=1 (a,b)=1。举例来说, ( 5 , 6 ) = 1 (5,6)=1 (5,6)=1, ( 15 , 13 ) = 1 (15, 13)=1 (15,13)=1。需要注意几点:

  • 互质的两个数不需要都是素数,因为都是素数肯定素质,就毫无意义了;
  • 互质的两个数可以有偶数 ( 7 , 8 ) = 1 (7,8)=1 (7,8)=1
  • 互质的两个数可以均是合数,如 ( 15 , 8 ) = 1 (15,8)=1 (15,8)=1

1.5 同余 (Congruence Modulo)

给定一个正整数 m m m,如果两个整数 a a a b b b 满足 a − b a-b ab 能够被 m m m 整除,即 a − b m = ⌊ a − b m ⌋ {a-b \over m} =\lfloor {a-b \over m} \rfloor mab=mab,那么就称 a a a b b b m m m 同余,简称为 m m m 同余,记作 a ≡ b   ( mod  m ) a ≡ b \ (\textrm{mod} \ m) ab (mod m),其中符号 ≡ ≡ 表示同余,对模 m m m 同余是整数的一个重要等价关系。根据这个定义,我们可以知道欧拉定理是一个关于同余的定理。

2 欧拉函数 φ ( n ) φ(n) φ(n)

2.1 定义

∀ \forall n ∈ N + n \in \mathbb{N^+} nN+ φ ( n ) = ∣ A ∣ φ(n)=|A| φ(n)=A,where A = { m ∣ 1 ≤ m < n A=\{m | 1 \leq m < n A={m1m<n, ( m , n ) = 1 } (m, n)=1\} (m,n)=1}

注: ∣ S ∣ | S | S 表示集合S元素的个数。

解释:给定一个正整数 n n n,欧拉函数就是求在 [ 1 , n ) [1, n) [1,n) 区间上,与 n n n 互质的整数的个数。举例来说,设 m = 8 m=8 m=8,则与8互质的正整数集合 A = 1 , 3 , 5 , 7 A={1, 3, 5, 7} A=1,3,5,7,此集合共有4个元素,所以 φ ( 8 ) = 4 φ(8)=4 φ(8)=4。注: φ φ φ 读作 fài。

2.2 性质

欧拉函数的定义域与值域有一一对应关系,即已知 m m m 可以求出唯一的 φ ( m ) \varphi(m) φ(m),但是反过来不可能,如已知 φ ( m ) = 4 φ(m)=4 φ(m)=4,除了8,结果还可以是其他值,如10(此时 A = [ 1 , 3 , 7 , 9 ] A=[1,3,7,9] A=[1,3,7,9])。所以欧拉函数的逆函数的解有多个值,尤其是当 φ ( m ) φ(m) φ(m) 的值很大时,有更多的解。这个性质很重要,在密码学中有相关的应用。

2.3 计算

有了这个函数以后怎么计算,我们分情况讨论:

  • 情况1: n = 1 n = 1 n=1,则 φ ( n ) = 1 \varphi(n) = 1 φ(n)=1,因为1与自身互质;
  • 情况2: n n n 是质数,则 φ ( n ) = n − 1 \varphi(n) = n - 1 φ(n)=n1, 因为任何一个质数与比自身小的数都只有1这个公约数;
  • 情况3: n = p k n = p^k n=pk,其中 p > 1 , k ≥ 1 p>1, k \geq 1 p>1,k1 且均为正整数,则 φ ( n ) = φ ( p k ) = ( p − 1 ) ∗ p k − 1 \varphi(n) =\varphi(p^k)= (p-1)*p^{k-1} φ(n)=φ(pk)=(p1)pk1
  • 情况4: n = p q n=pq n=pq,其中 p , q p,q p,q均为质数,则 φ ( n ) = φ ( p q ) = φ ( p ) φ ( q ) \varphi(n)=\varphi(pq)=\varphi(p)\varphi(q) φ(n)=φ(pq)=φ(p)φ(q)

关于情况4,我们可以简单证明:
由于 p , q p, q p,q 是质数,所以与 p q pq pq 不互质的数只有两种情况:
1: p p p 的整数倍: p , 2 p , 3 p , . . . , ( q − 1 ) p p, 2p, 3p, ..., (q-1)p p,2p,3p,...,(q1)p,共 q − 1 q-1 q1 个;
2: q q q 的整数倍: q , 2 q , 3 q , . . . , ( p − 1 ) q q, 2q, 3q, ..., (p-1)q q,2q,3q,...,(p1)q,共 p − 1 p-1 p1 个;
所以在区间 [ 1 , p q ) [1, pq) [1,pq) 上,与 q p qp qp 互质的正整数个数 = = = p q pq pq 小的正整数个数 − p - p p 的倍数 − q -q q 的倍数
即, φ ( p q ) = ( p q − 1 ) − ( q − 1 ) − ( p − 1 ) = p q − p − q + 1 = ( p − 1 ) ( q − 1 ) \varphi(pq) =(pq-1) - (q-1)-(p-1)=pq - p - q + 1 = (p-1)(q-1) φ(pq)=(pq1)(q1)(p1)=pqpq+1=(p1)(q1)
证毕。

2.4 计算扩展

我们对情况4进行扩展,可以得到更为一般的欧拉函数的计算方法:

已知 n , p n,p n,p 均为正整数,若 n = ∏ p ∣ n , 1 ≤ p < n p a p − 1 n=\prod_{p|n,1\leq p < n} p ^{a_p - 1} n=pn,1p<npap1则: φ ( n ) = ∏ ( p − 1 ) p a p − 1 … … ( E q . 1 ) \varphi(n) = \prod (p - 1 ) p^{a_p - 1} ……(Eq.1) φ(n)=(p1)pap1(Eq.1)也可以表示为: φ ( n ) = n ∏ ( p − 1 p ) … … ( E q . 2 ) \varphi(n) =n\prod(p-{1 \over p})……(Eq.2) φ(n)=n(pp1)(Eq.2)

举例说明,设 n = 72 n=72 n=72,则 φ ( n ) = φ ( 72 ) = φ ( 8 ∗ 9 ) = φ ( 2 3 ∗ 3 2 ) \varphi(n)=\varphi(72)=\varphi(8*9)=\varphi(2^3*3^2) φ(n)=φ(72)=φ(89)=φ(2332)。此时,我们可以使用以上两个公式分别计算:
使用 E q . 1 Eq.1 Eq.1 可得: φ ( 2 3 ∗ 3 2 ) = ( 2 − 1 ) 2 3 − 1 ∗ ( 3 − 1 ) 3 2 − 1 = 4 ∗ 6 = 24 \varphi(2^3*3^2)=(2-1) 2^{3-1} * (3-1)3^{2-1}=4*6=24 φ(2332)=(21)231(31)321=46=24
使用 E q . 2 Eq.2 Eq.2 可得: φ ( 2 3 ∗ 3 2 ) = 72 ∗ ( 1 − 1 2 ) ( 1 − 1 3 ) = 72 ∗ 1 2 ∗ 2 3 = 24 \varphi(2^3*3^2)=72*(1- {1 \over 2}) (1 - {1 \over 3}) =72 * {1\over 2} * {2 \over 3} =24 φ(2332)=72(121)(131)=722132=24

使用两种公式计算结果一致。
注1: p ∣ n p|n pn 表示 n n n 能被 p p p 整除。
注2: a p a_p ap 表示的是最大次方,如8可以写成 2 3 2^3 23,此时 a p a_p ap 3 3 3,但是不可以写成 2 2 ∗ 2 1 2^2 * 2^1 2221

3 欧拉公式

3.1 定义

对任意两个正整数 a , n a, n a,n,若两者素质,则: a φ ( n ) ≡ 1 ( m o d   n ) a^{φ(n)} \equiv 1 (\mathrm{mod} \ n) aφ(n)1(mod n)
注:作为对比,费马小定理( a p − 1 ≡ 1 ( m o d   p ) a^{p-1} \equiv 1 (\mathrm{mod} \ p) ap11(mod p),其中 p p p 为质数),实际上就是欧拉公式的特殊情况。

3.2 证明

设与 n n n 互质的正整数集合 Z n = { x 1 , x 2 … … x φ ( n ) } Z_n=\{x_1,x_2……x_{φ(n)}\} Zn={x1,x2xφ(n)},共 φ ( n ) φ(n) φ(n)个元素。
再设集合 S = { m 1 , m 2 , … , m φ ( n ) } S=\{m_1, m_2,…,m_{φ(n)}\} S={m1,m2,,mφ(n)},其中 m i = a ∗ x 1 ; ( m o d   n ) m_i=a * x_1;(\mathrm{mod} \ n) mi=ax1(mod n),即整数 a a a 与每个质数的乘积后对 n n n 求余;
则有: Z n = S Z_n= S Zn=S

为什么 Z n = S Z_n=S Zn=S
① 因为 a a a n n n 互质,所以对任意 m i = a ∗ x i   m o d   n m_i = a * x_i \ mod \ n mi=axi mod n,都有 m i m_i mi n n n 互质;
② 当 i ≠ j i \neq j i=j 时, x i ≠ x j x_i \neq x_j xi=xj,所以 x i ( m o d   n ) ≠ x j ( m o d   n ) x_i (\mathrm{mod} \ n) \neq x_j (\mathrm{mod} \ n) xi(mod n)=xj(mod n),由 a , n a, n a,n 互质可得 a ∗ x i ( m o d   n ) ≠ a ∗ x j ( m o d   n ) a * x_i (\mathrm{mod} \ n) \neq a * x_j (\mathrm{mod} \ n) axi(mod n)=axj(mod n)
由①和②联立可得,一个任意两元素均不相同且都与 n n n互质的集合,因为这样的集合是唯一的,所以 Z n Z_n Zn S S S相同。

P Z n = ∏ 1 φ ( n ) x i , P S = ∏ 1 φ ( n ) m i P_{Z_n} = \prod_1^{\varphi(n)} x_i, P_S= \prod_1^{\varphi(n)} m_i PZn=1φ(n)xi,PS=1φ(n)mi,因为 Z n = S Z_n= S Zn=S, 所以 P Z n = P S P_{Z_n} =P_S PZn=PS

a φ ( n ) ∗ P Z n   m o d   n a^{\varphi(n)}*P_{Z_n} \ \mathrm{mod} \ n aφ(n)PZn mod n
= ( a φ ( n ) ∗ x 1 ∗ x 2 ∗ . . . ∗ x φ ( n ) )   m o d   n =(a^{\varphi(n)}*x_1*x_2*...*x_{\varphi{(n)}} ) \ \mathrm{mod} \ n =(aφ(n)x1x2...xφ(n)) mod n
= ( a x 1 ∗ a x 2 ∗ . . . ∗ a x φ ( n ) )   m o d   n =(ax_1*ax_2*...*ax_{\varphi{(n)}}) \ \mathrm{mod} \ n =(ax1ax2...axφ(n)) mod n # 将a的指数展开并分配至每个x
= ( a x 1   m o d   n ) ∗ ( a x 2   m o d   n ) ∗ . . . ∗ ( a x φ ( n )   m o d   n )   m o d   n =(ax_1 \ \mathrm{mod} \ n)*(ax_2 \ \mathrm{mod} \ n)*...*(ax_{\varphi{(n)}} \ \mathrm{mod} \ n) \ \mathrm{mod} \ n =(ax1 mod n)(ax2 mod n)...(axφ(n) mod n) mod n
= ( m 1 ∗ m 2 ∗ . . . ∗ m φ ( n ) )   m o d   n =(m_1 * m_2*...*m_{\varphi{(n)}}) \ \mathrm{mod} \ n =(m1m2...mφ(n)) mod n
= P S   m o d   n = P Z n   m o d   n =P_S \ \mathrm{mod} \ n =P_{Z_n} \ \mathrm{mod} \ n =PS mod n=PZn mod n

a φ ( n ) ∗ P Z n   m o d   n = P Z n   m o d   n a^{\varphi(n)}*P_{Z_n} \ \mathrm{mod} \ n=P_{Z_n} \ \mathrm{mod} \ n aφ(n)PZn mod n=PZn mod n根据余数性质,两边可以同时消去 P Z n P_{Z_n} PZn,可得: a φ ( n )   m o d   n = 1   m o d   n a^{\varphi(n)} \ \mathrm{mod} \ n=1 \ \mathrm{mod} \ n aφ(n) mod n=1 mod n最终可得: a φ ( n )   ≡ 1   ( m o d   n ) a^{\varphi(n)} \ \mathrm \equiv 1 \ (\mathrm{mod} \ n) aφ(n) 1 (mod n)证毕。

4 总结

本文首先介绍了欧拉函数的基础知识,然后介绍了欧拉函数,欧拉定理及其证明。欧拉定理是一个重要的定理,在很多领域都有应用,其中最为著名的是在信息安全领域,获得了2015年的图灵奖的非对称公私钥加密算法RSA,就是基于欧拉定理。

5 参考资料

[1] 余数定理,郝老师,2020/05/03.
[2] 欧拉定理,百度百科。

  • 42
    点赞
  • 187
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值