RSA算法深入剖析
Posted Nullan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA算法深入剖析相关的知识,希望对你有一定的参考价值。
数论基础
欧拉函数
小于n的正整数中与n互质的数的数目
若 n = pq ,p和q是质数,则 φ ( n ) = φ ( q ) ∗ φ ( p ) = ( q − 1 ) ∗ ( p − 1 ) \\varphi(n) = \\varphi(q)*\\varphi(p) = (q-1)*(p-1) φ(n)=φ(q)∗φ(p)=(q−1)∗(p−1)
同余
同余:如果两个整数除以同一个整数m的余数相同,则二者关于m同余
即
a
÷
m
…
…
n
a\\div m……n
a÷m……n且
b
÷
m
…
…
n
b\\div m……n
b÷m……n
同理,若整数a和b满足a-b能被整数m整除,则两者关于m同余
即
a
≡
b
(
m
o
d
m
)
a\\equiv b\\;(\\;mod\\ m)
a≡b(mod m)
欧拉定理
欧拉定理:对于两个互质的正整数a和b,有
a
φ
(
n
)
≡
1
(
m
o
d
b
)
a^ {\\varphi(n)}\\equiv 1(mod\\;b)
aφ(n)≡1(modb)
即
(
a
φ
(
n
)
−
1
)
÷
b
…
…
0
(a^ {\\varphi(n)}- 1)\\div b ……0
(aφ(n)−1)÷b……0
证明
看解密公式
c
d
÷
n
…
…
m
c^d\\div n……m
cd÷n……m
∵
m
<
n
\\because m<n
∵m<n
∴
m
÷
n
…
…
m
\\therefore m\\div n……m
∴m÷n……m
∴
c
d
≡
m
(
m
o
d
n
)
\\therefore c^d\\equiv m\\;(mod\\;n)
∴cd≡m(modn)
看加密公式
∵
m
e
÷
n
=
j
…
…
c
\\because m^e\\div n=j……c
∵me÷n=j……c
∴
c
=
m
e
−
j
∗
n
\\therefore c= m^e -j*n
∴c=me−j∗n
得到
c
c
c的一个代数式,将
c
c
c代入上面的同余式
(
m
e
−
j
∗
n
)
d
≡
m
(
m
o
d
n
)
(m^e -j*n)^d\\equiv m\\;(mod\\;n)
(me−j∗n)d≡m(modn)
二项式定理展开得
m
e
d
+
m
e
(
d
−
1
)
∗
(
−
j
n
)
+
m
e
(
d
−
2
)
∗
(
−
j
n
)
2
+
…
…
+
m
2
e
∗
(
−
j
n
)
d
−
2
+
m
e
∗
(
−
j
n
)
d
−
1
+
(
−
j
n
)
d
≡
m
(
m
o
d
n
)
m^{ed}+m^{e{(d-1)}}*(-jn)+m^{e{(d-2)}}*(-jn)^2+……+m^{2e}*(-jn)^{d-2}+m^e*(-jn)^{d-1}+(-jn)^d \\equiv m\\;(mod\\;n)
med+me(d−1)∗(−jn)+me(d−2)∗(−jn)2+……+m2e∗(−jn)d−2+me∗(−jn)d−1+(−jn)d≡m(modn)
除了第一项每一项都包含因数n,而n的倍数除以n的余数为0,所以上面的式子可以简化为
m
e
d
≡
m
(
m
o
d
n
)
m^{ed} \\equiv m\\;(mod\\;n)
med≡m(modn)
∵
e
∗
d
÷
φ
(
n
)
=
k
…
…
1
\\because e*d\\div\\varphi(n)=k……1
∵e∗d÷φ(n)=k……1
∴
e
∗
d
=
k
∗
φ
(
n
)
+
1
\\therefore e*d = k*\\varphi(n)+1
∴e∗d=k∗φ(n)+1
代入同余式
m
k
∗
φ
(
n
)
+
1
≡
m
(
m
o
d
n
)
m^{k*\\varphi(n)+1} \\equiv m\\;(mod\\;n)
mk∗φ(n)+1≡m(modn)
此时,只要证明这个同余式成立就能证明通过解密能求出原文
分类讨论
m
m
m和
n
n
n互质和
m
m
m和
n
n
n不互质的情况讨论
情况1:
m
m
m和
n
n
n互质,由欧拉定理得
m
φ
(
n
)
≡
1
(
m
o
d
n
)
m^ {\\varphi(n)}\\equiv 1(mod\\;n)
mφ(n)≡1(modn)
m
φ
(
n
)
m
o
d
n
=
1
m
o
d
n
m^ {\\varphi(n)}\\;mod\\ n = 1\\;mod\\;n
mφ(n)mod n=1modn
k个式子相乘
m
k
φ
(
n
)
m
o
d
n
=
1
m
o
d
n
m^ {k\\varphi(n)}\\;mod\\ n = 1\\;mod\\;n
mkφ(n)mod n=1modn
将m个同余式相加
m
k
φ
(
n
)
+
1
m
o
d
n
=
m
m
o
d
n
m^ {k\\varphi(n)+1}\\;mod\\ n = m\\;mod\\;n
mkφ(n)+1mod n=mmodn
即
m
k
φ
(
p
)
φ
(
q
)
≡
1
(
m
o
d
n
)
m^ {k\\varphi(p)\\varphi(q)}\\equiv 1(mod\\;n)
mkφ(p)φ(q)≡1(modn)
情况1证毕
情况2:
m
m
m和
n
n
n不互质
∵
n
=
p
∗
q
,
m
<
n
,
p
q
互
质
\\because n = p*q,m<n,pq互质
∵n=p∗q,m<n,pq互质
∴
m
必
定
是
,
且
仅
是
p
或
q
中
某
一
个
的
倍
数
\\therefore m必定是,且仅是p或q中某一个的倍数
∴m必定是,且仅是p或q中某一个的倍数
设
m
是
p
的
倍
数
,
记
m
=
h
∗
p
设m是p的倍数,记m = h*p
设m是p的倍数,