这个就是当时老师上课给的例子,让我们自己再摸索摸索其中的原理,但是寻思了良久就是不太明白哈。如有高手请简单说说。例子如下:

示例:给定素数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

请高手赐教!对第四第五步略有不解。

                                                                                            【责任编辑:一米线