这个就是当时老师上课给的例子,让我们自己再摸索摸索其中的原理,但是寻思了良久就是不太明白哈。如有高手请简单说说。例子如下:
示例:给定素数p=3,q=7,用RSA公开密钥算法生成一对密钥,并对明文m=5进行加密。要求:需要有计算的过程,并且公钥与私钥不能相同。
解答:
(1)
p=3,q=7
(2)
n=p*q=21
(3)
欧拉函数 f(n)=(p-1)*(q-1)=12
(4)
寻找公钥d,满足0<d<f(n),并且d与f(n)=12互质,就是两个数没有除1之外的公约数。可以选择的d为3、5、7、11,这里我们选择5
(5)
寻找私钥e,满足(d*e)除以f(n)的余数为1,即d*e=1 mod f(n), 5*e=1 mod 12。满足条件的数有5、17、…,因为5*17=85,85除以12的余数为1,这里选择e=17
(6)
则公钥为(n,d)=(21,5),私钥为(n,e)=(21,17)
(7)
对明文m=5进行加密 (m^d) mod n = (5^5) mod 21 = 3125 mod 21 = 17.
(8)
对密文c=17进行解密,(c^e) mod n = (17^17) mod 21 = 5
请高手赐教!对第四第五步略有不解。
【责任编辑:一米线】
转载于:https://blog.51cto.com/longhaifei/1006094