算法原理
1 密钥生成
(1)寻找质数p,q
(2)计算公共模数 n = p ∗ q n=p*q n=p∗q
(3)计算欧拉函数 φ ( n ) = ( p − 1 ) ( q − 1 ) φ(n)=(p-1)(q-1) φ(n)=(p−1)(q−1)
(4)计算公钥e, 1 < e < φ ( n ) 1<e<φ(n) 1<e<φ(n),e必须与 φ ( n ) φ(n) φ(n)互质
(5)计算私钥d, e ∗ d ≡ 1 m o d φ ( n ) e*d ≡ 1\quad mod\quad φ(n) e∗d≡1modφ(n)
2 RSA加密
C = M e m o d n C=M^{e} \quad mod\quad n C=Memodn
3 RSA解密
M = C d m o d n M=C^{d} \quad mod\quad n M=Cdmodn
例题1
设RSA密码中e=5,n=35,C=15,求明文M。
解:由穷举法得,p=5,q=7,即得到n=35,因此
φ
(
35
)
=
(
5
−
1
)
∗
(
7
−
1
)
=
24
φ(35)=(5-1)*(7-1)=24
φ(35)=(5−1)∗(7−1)=24 。
由
e
∗
d
≡
1
m
o
d
φ
(
n
)
e*d ≡ 1\quad mod\quad φ(n)
e∗d≡1modφ(n) 得
5
∗
d
≡
1
m
o
d
24
5*d ≡ 1\quad mod\quad 24
5∗d≡1mod24,因此 d=5 。
由
M
=
C
d
m
o
d
n
M=C^{d} \quad mod\quad n
M=Cdmodn 得
M
=
1
5
d
m
o
d
35
M=15^{d} \quad mod\quad 35
M=15dmod35 ,因此M=15。
计算原理
(
a
∗
b
)
m
o
d
m
=
[
(
a
m
o
d
m
)
(
b
m
o
d
m
)
]
m
o
d
m
(a*b)\quad mod \quad m=[(a \quad mod\quad m)(b \quad mod \quad m)] \quad mod \quad m
(a∗b)modm=[(amodm)(bmodm)]modm
例题2
已知 p=7, q=11, e=13, C= 15, 求 d 和 M .
计算过程