欧拉函数
一、欧拉函数的定义
对于一个正整数 n n n ,欧拉函数 ϕ ( n ) \phi(n) ϕ(n) (或记作 φ ( n ) \varphi(n) φ(n)) 被定义为在区间 [ 1 , n ] [1, n] [1,n] 内与 n n n 互素 的正整数的个数。
- 互素(coprime 或 relatively prime)指的是两个整数的最大公素为 1。
- 例如:
- ϕ ( 1 ) = 1 \phi(1) = 1 ϕ(1)=1,因为只考虑 1 这个数本身,它和自己“互素”( gcd ( 1 , 1 ) = 1 \gcd(1, 1) = 1 gcd(1,1)=1)。
- ϕ ( 12 ) = 4 \phi(12) = 4 ϕ(12)=4,因为在 { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 } \{1,2,3,4,5,6,7,8,9,10,11,12\} {1,2,3,4,5,6,7,8,9,10,11,12} 中,与 12 互素的数是 { 1 , 5 , 7 , 11 } \{1, 5, 7, 11\} {1,5,7,11},共有 4 个。
欧拉函数在数论、群论及密码学等领域都具有重要场景应用。
二、欧拉函数的基本性质
-
如果 p p p 为素数,则 ϕ ( p ) = p − 1 \phi(p) = p - 1 ϕ(p)=p−1。
- 因为与一个素数 p p p 互素的数就是 [ 1 , p − 1 ] [1, p-1] [1,p−1] 中的所有数。
-
如果 p p p 为素数且 k k k 为正整数,则 ϕ ( p k ) = p k − p k − 1 \phi(p^k) = p^k - p^{k-1} ϕ(pk)=pk−pk−1。
- 为什么是这样?在 [ 1 , p k ] [1, p^k] [1,pk] 中,能被 p p p 整除的数举有 p k − 1 p^{k-1} pk−1 个,而互素的就剩下 p k − p k − 1 p^k - p^{k-1} pk−pk−1 个。
-
乘法性质(Multiplicative)
- 如果
m
m
m 和
n
n
n 互素(
gcd
(
m
,
n
)
=
1
\gcd(m, n) = 1
gcd(m,n)=1),则
ϕ ( m n ) = ϕ ( m ) × ϕ ( n ) . \phi(mn) = \phi(m) \times \phi(n). ϕ(mn)=ϕ(m)×ϕ(n).
- 如果
m
m
m 和
n
n
n 互素(
gcd
(
m
,
n
)
=
1
\gcd(m, n) = 1
gcd(m,n)=1),则
-
一般计算方法
- 对于任意正整数
n
n
n,如果它的素因导数为:
n = p 1 a 1 × p 2 a 2 × ⋯ × p k a k , n = p_1^{a_1} \times p_2^{a_2} \times \cdots \times p_k^{a_k}, n=p1a1×p2a2×⋯×pkak,
则
ϕ ( n ) = n × ( 1 − 1 p 1 ) × ( 1 − 1 p 2 ) × ⋯ × ( 1 − 1 p k ) . \phi(n) = n \times \left(1 - \frac{1}{p_1}\right) \times \left(1 - \frac{1}{p_2}\right) \times \cdots \times \left(1 - \frac{1}{p_k}\right). ϕ(n)=n×(1−p11)×(1−p21)×⋯×(1−pk1).
- 对于任意正整数
n
n
n,如果它的素因导数为:
三、欧拉定理与费马小定理的关系
-
欧拉定理(Euler’s Theorem)
如果 gcd ( a , n ) = 1 \gcd(a, n) = 1 gcd(a,n)=1,则
a ϕ ( n ) ≡ 1 ( m o d n ) . a^{\phi(n)} \equiv 1 \pmod{n}. aϕ(n)≡1(modn). -
费马小定理(Fermat’s Little Theorem)
当 n = p n = p n=p 为素数时,欧拉定理简化为
a p − 1 ≡ 1 ( m o d p ) . a^{p-1} \equiv 1 \pmod{p}. ap−1≡1(modp).
可见,费马小定理是欧拉定理的一个特例。
欧拉定理在计算大数模运算时提供了有力工具,如果知道 ϕ ( n ) \phi(n) ϕ(n),我们可以用 m o d ϕ ( n ) \mod{\phi(n)} modϕ(n) 方式来简化指数的大小。
四、应用场景案例:RSA 密码中的运用
RSA 密码算法是现代公钥密码体制的典范之一,它的安全性很大程度上依赖数论知识,欧拉函数在其中执行“核心公式”的作用。
1. 步骤概述
- 选择两个大素数 p p p 与 q q q。
- 计算 n = p × q n = p \times q n=p×q。
- 计算
ϕ
(
n
)
\phi(n)
ϕ(n)。对于素数
p
p
p 和
q
q
q,
ϕ ( n ) = ϕ ( p × q ) = ϕ ( p ) × ϕ ( q ) = ( p − 1 ) × ( q − 1 ) . \phi(n) = \phi(p \times q) = \phi(p) \times \phi(q) = (p-1) \times (q-1). ϕ(n)=ϕ(p×q)=ϕ(p)×ϕ(q)=(p−1)×(q−1). - 选择一个与 ϕ ( n ) \phi(n) ϕ(n) 互素的整数 e e e(例如小素数)。
- 计算
d
d
d,使得
e × d ≡ 1 ( m o d ϕ ( n ) ) . e \times d \equiv 1 \pmod{\phi(n)}. e×d≡1(modϕ(n)). - 公钥为 ( e , n ) (e, n) (e,n),私钥为 ( d , n ) (d, n) (d,n)。
2. 具体数值举例
- 选取素数:以 p = 11 , q = 13 p = 11, q = 13 p=11,q=13 为例。
- 计算
n
n
n:
n = 11 × 13 = 143. n = 11 \times 13 = 143. n=11×13=143. - 计算
ϕ
(
n
)
\phi(n)
ϕ(n):
ϕ ( 143 ) = ϕ ( 11 × 13 ) = ( 11 − 1 ) × ( 13 − 1 ) = 10 × 12 = 120. \phi(143) = \phi(11 \times 13) = (11-1) \times (13-1) = 10 \times 12 = 120. ϕ(143)=ϕ(11×13)=(11−1)×(13−1)=10×12=120. - 选择 e e e:在 [ 1 , 120 ] [1, 120] [1,120] 内选一个与 120 互素的小素数,比如 e = 7 e = 7 e=7 ( gcd ( 7 , 120 ) = 1 \gcd(7, 120) = 1 gcd(7,120)=1)。
- 求
d
d
d:我们需要解为
7 × d ≡ 1 ( m o d 120 ) . 7 \times d \equiv 1 \pmod{120}. 7×d≡1(mod120).
通过扩展欧几里得算法求,可得 d = 103 d = 103 d=103,因为
7 × 103 = 721 ≡ 1 ( m o d 120 ) . 7 \times 103 = 721 \equiv 1 \pmod{120}. 7×103=721≡1(mod120). - 因此,公钥 ( e , n ) = ( 7 , 143 ) (e, n) = (7, 143) (e,n)=(7,143),私钥 ( d , n ) = ( 103 , 143 ) (d, n) = (103, 143) (d,n)=(103,143)。
3. 加密解密过程中的欧拉函数贡献
- 加密:如果需要加密一条消息
M
M
M,将其转化为数值,并得到密文
C
C
C:
C ≡ M e ( m o d n ) . C \equiv M^e \pmod{n}. C≡Me(modn). - 解密:利用私钥
(
d
,
n
)
(d, n)
(d,n),解密得
M ≡ C d ( m o d n ) . M \equiv C^d \pmod{n}. M≡Cd(modn). - 为什么解密能恢复原文?这依赖于欧拉定理:
( M e ) d = M e d ≡ M 1 + k ϕ ( n ) ≡ M ( m o d n ) , (M^e)^d = M^{ed} \equiv M^{1 + k\phi(n)} \equiv M \pmod{n}, (Me)d=Med≡M1+kϕ(n)≡M(modn),
其中 e d ≡ 1 ( m o d ϕ ( n ) ) ed \equiv 1 \pmod{\phi(n)} ed≡1(modϕ(n))。
五、总结
-
欧拉函数 ϕ ( n ) \phi(n) ϕ(n) 的要点
- 定义: [ 1 , n ] [1,n] [1,n] 中与 n n n 互素的整数个数。
- 关键性质:对于素数或素数带的形式有显式计算公式,且具有乘法性。
- 应用范围:数论、同余运算、密码学(如 RSA),对大数的指数运算起到简化与支撑作用。
-
典型应用场景
- 计算同余幂时,利用欧拉定理简化指数