前言:仅个人小记。 注意到 RSA 中并不要求消息 m 要和模数 n 互素,而 RSA 所依赖的“费马定理,欧拉定理”,仿佛都要要求 m 须和模数 n 互素。这里给出针对 RSA 中 n 为两个素数乘积时的具体解释,实际上应归属于广义的欧拉定理,这里暂不讨论广义的欧拉定理。同时,根据本文的推导逻辑(不做讨论),容易直觉上知道 RSA 中 n 不应该是多个素数的乘积,而只能是2个素数的乘积。(因为 m 中可以缺不止一个素数,而RSA的正确性要求当 m和n 不互素的时候,m 中最多只能缺一个素数)
前要知识
- 普通版的欧拉定理
a
φ
(
m
)
%
m
≡
1
,
其
中
a
⊥
m
,
φ
(
⋅
)
是
欧
拉
函
数
{a}^{\varphi(m)} \%m\equiv1,其中a\perp m, \varphi(\cdot)是欧拉函数
aφ(m)%m≡1,其中a⊥m,φ(⋅)是欧拉函数公式图片展示如下,
- n=pq,其中 p,q 为素数,则若 m ⊥ n m\perp n m⊥n ,则必然 m = k p m=kp m=kp 或者 m = k q m=kq m=kq,m 只可能是这两种形式之一。
- n=pq,其中 p,q 为素数,则 φ ( n ) = φ ( p ) φ ( q ) \varphi(n)=\varphi(p)\varphi(q) φ(n)=φ(p)φ(q)
RSA 使用要求
c
≡
m
e
(
m
o
d
n
)
c\equiv m^e\ (mod \ n)
c≡me (mod n)
e
d
≡
1
(
m
o
d
φ
(
n
)
)
ed\equiv1 (mod\ \varphi(n))
ed≡1(mod φ(n))
m
∈
{
0
,
1
,
.
.
.
,
n
−
1
}
m\in \{0,1,...,n-1\}
m∈{0,1,...,n−1}
注意:不要求
m
⊥
n
m\perp n
m⊥n.
RSA 成立的根基在于 m e d = m k φ ( n ) + 1 ≡ m ( m o d n ) m^{ed}=m^{k\varphi(n)+1}\equiv m(mod\ n) med=mkφ(n)+1≡m(mod n)恒成立。
显然,当 m ⊥ n m\perp n m⊥n时,上式直接满足欧拉定理。
当
m
⊥̸
n
m\not\perp n
m⊥n 时,这是本文讨论的重点,讨论如下:
这里只结合 RSA 这个特殊环境讨论,只考虑
n
=
p
q
,
其
中
p
、
q
为
两
个
素
数
n=pq, 其中p、q为两个素数
n=pq,其中p、q为两个素数
即我们要证明
m
φ
(
n
)
+
1
=
m
,
m
⊥
n
,
n
=
p
q
,
其
中
p
,
q
为
素
数
m^{\varphi(n)+1}=m, m\perp n,n=pq,其中 p,q 为素数
mφ(n)+1=m,m⊥n,n=pq,其中p,q为素数
由前要知识 2 知道,必然 m 的形式只可能为
m
=
k
p
或
者
m
=
k
q
,
k
为
常
数
m=kp 或者 m=kq,k 为常数
m=kp或者m=kq,k为常数,我们只讨论
m
=
k
p
m=kp
m=kp(另一种情况的讨论完全一致)。
因为 p、q 是素数,容易知道
k
p
⊥
q
kp\perp q
kp⊥q。进而根据上述普通版欧拉定理知道,必然有
( k p ) φ ( q ) ≡ 1 ( m o d q ) (kp)^{\varphi(q)}\equiv 1 (mod \ q) (kp)φ(q)≡1(mod q)故而得到
( ( k p ) φ ( q ) ) φ ( p ) ≡ 1 ( m o d q ) ((kp)^{\varphi(q)})^{\varphi(p)}\equiv 1(mod \ q) ((kp)φ(q))φ(p)≡1(mod q)进而有
(
k
p
)
φ
(
n
)
=
(
k
p
)
φ
(
p
)
φ
(
q
)
≡
1
(
m
o
d
q
)
(kp)^{\varphi(n)}=(kp)^{\varphi(p)\varphi(q)}\equiv1(mod\ q)
(kp)φ(n)=(kp)φ(p)φ(q)≡1(mod q)
进而,
(
k
p
)
φ
(
n
)
=
s
q
+
1
,
s
为
某
个
整
数
(kp)^{\varphi(n)}=sq+1,s 为某个整数
(kp)φ(n)=sq+1,s为某个整数
注意,上面是等式,不是同余式。故而可以将其带入要证明的式子左侧,得到
( k p ) φ ( n ) + 1 = ( k p ) φ ( n ) ( k p ) = ( s q + 1 ) ( k p ) = s q k p + k p = s k q p + k p = s k n + k p ≡ k p ( m o d n ) (kp)^{\varphi(n)+1}=(kp)^{\varphi(n)}(kp)=(sq+1)(kp)=sqkp+kp=skqp+kp=skn+kp\equiv kp(mod\ n) (kp)φ(n)+1=(kp)φ(n)(kp)=(sq+1)(kp)=sqkp+kp=skqp+kp=skn+kp≡kp(mod n)
即
m
=
k
p
m=kp
m=kp,即
m
⊥̸
n
,
n
=
p
q
,
其
中
p
,
q
为
素
数
m\not \perp n, n=pq,其中 p,q 为素数
m⊥n,n=pq,其中p,q为素数,有
m
φ
(
n
)
+
1
≡
m
(
m
o
d
n
)
m^{\varphi(n)+1}\equiv m(mod\ n)
mφ(n)+1≡m(mod n)
证毕!