1、假设p=5,q=7,e=5,m=2.计算d,公钥,私钥。
方法一:
n=p*q=5*7=35
Φ(n)=(p-1)*(q-1)=4*6=24
由公式:e d mod Φ(n)=== 1
带入数字得:5 d mod 24 ===1
把上诉公式看成:5x+24y = 1
拆分:
24 = 5*4+4
5 = 4*1+1
4 = 24 - 5*4*1
1 = 5 - (24-5*4)*1 = 5-24+5*4 = 5*4+5-24=5(4+1)-24 = 5*5-24
5*5-24=1 与 5x+24y = 1 格式相等。则 x=d=5
公钥(n,e)=(35,5) 私钥(n,d)=(35,5)
方法二:
公式:Φ(n) * k + 1 =ed k:为系数,且从1开始,例如:(1,2,3,4,5........)
公式推出:(Φ(n) * k + 1 )/ e = d
假设k=1时:
24*k+1/ 5 = d
d = 5
若 k=1 时除不尽的话那就将 k =2 带入计算,还是不行则取 k =3,依次类推。直到(Φ(n) * k + 1 )/ e = d 能除尽没有余数为止
2、用RSA算法加密时,已经公钥是(e=7,n=20),私钥是(e=3,n=20),用公钥对消息M=3加密,得到的密文是_____?
n=20
d=7 公钥
e=3 私钥
对M=3 进行加密
M'=M^d%n (M的d次方,然后除以n取余数)
M'=3^7%20=2187%20=7 加密后等于7
对M'=7进行解密
M=M'^e%n=7^3%20=343%20=3 解密后又变成3了