RSA解密正确性证明
先描述一下RSA密码体制:
RSA密码体制:
大素数 p , q p,q p,q,模数 n = p q n=pq n=pq,加密指数 b b b,解密指数 a a a,满足 a b ≡ 1 ( m o d ϕ ( n ) ) ab\equiv1 \pmod{\phi(n)} ab≡1(modϕ(n))。
加密: c = m b m o d n c=m^{b}\bmod{n} c=mbmodn;
解密: m = c a m o d n m=c^{a}\bmod{n} m=camodn。
本篇是证明RSA解密确实能够得到明文 m m m。
当 m ∈ Z n ∗ m\in \mathbb{Z}_{n}^{*} m∈Zn∗时
此时,
g
c
d
(
m
,
n
)
=
1
gcd(m,n)=1
gcd(m,n)=1;解密公式为
c
a
≡
m
a
b
≡
m
t
ϕ
(
n
)
+
1
(
m
o
d
n
)
c^{a}\equiv m^{ab}\equiv m^{t\phi(n)+1}\pmod{n}
ca≡mab≡mtϕ(n)+1(modn)
由欧拉定理得到
m
t
ϕ
(
n
)
+
1
≡
m
(
m
o
d
n
)
m^{t\phi(n)+1}\equiv m\pmod{n}
mtϕ(n)+1≡m(modn)
所以解密得到的是明文。
当 m ∉ Z n ∗ m\not \in \mathbb{Z}_{n}^{*} m∈Zn∗时
此时,由于 g c d ( m , n ) ≠ 1 gcd(m,n)\ne 1 gcd(m,n)=1,所以欧拉定理不能用。
我们分析:
n
=
p
q
n=pq
n=pq,且
p
,
q
p,q
p,q都是素数,若
m
,
n
m,n
m,n不互素,则必有
p
∣
m
p|m
p∣m或者
q
∣
m
q|m
q∣m。不失一般性,设
p
∣
m
p|m
p∣m,则
g
c
d
(
q
,
m
)
=
1
gcd(q,m)=1
gcd(q,m)=1,否则
n
∣
m
n|m
n∣m。由
ϕ
(
n
)
=
(
p
−
1
)
(
q
−
1
)
\phi(n)=(p-1)(q-1)
ϕ(n)=(p−1)(q−1)和欧拉定理有
m
ϕ
(
n
)
≡
1
(
m
o
d
q
)
m^{\phi(n)}\equiv 1\pmod{q}
mϕ(n)≡1(modq)
令
a
b
=
t
ϕ
(
n
)
+
1
ab=t\phi(n)+1
ab=tϕ(n)+1,则:
m
t
ϕ
(
n
)
≡
1
(
m
o
d
q
)
m^{t\phi(n)}\equiv 1\pmod{q}
mtϕ(n)≡1(modq)
即存在
k
k
k,满足
m
t
ϕ
(
n
)
=
k
q
+
1
m
t
ϕ
(
n
)
+
1
=
m
k
q
+
m
m
t
ϕ
(
n
)
+
1
=
l
p
k
q
+
m
m^{t\phi(n)}=kq+1\\ m^{t\phi(n)+1}=mkq+m\\ m^{t\phi(n)+1}=lpkq+m
mtϕ(n)=kq+1mtϕ(n)+1=mkq+mmtϕ(n)+1=lpkq+m
所以有
m
t
ϕ
(
n
)
+
1
≡
m
(
m
o
d
n
)
m^{t\phi(n)+1}\equiv m\pmod{n}
mtϕ(n)+1≡m(modn)
证毕!
拓展
证明还可以根据如下事实: x 1 ≡ x 2 ( m o d p q ) x_{1}\equiv x_{2}\pmod{pq} x1≡x2(modpq)当且仅当 x 1 ≡ x 2 ( m o d p ) x_{1}\equiv x_{2}\pmod{p} x1≡x2(modp)且 x 1 ≡ x 2 ( m o d q ) x_{1}\equiv x_{2}\pmod{q} x1≡x2(modq)。
证:当 p ∣ m p|m p∣m, m a b ≡ m ( m o d q ) m^{ab}\equiv m\pmod{q} mab≡m(modq)且 m a b ≡ m ≡ 0 ( m o d p ) m^{ab}\equiv m\equiv 0 \pmod{p} mab≡m≡0(modp),所以有 m a b ≡ m ( m o d n ) m^{ab}\equiv m\pmod{n} mab≡m(modn)。