选择素数: p=47 和 q=71,并选取e=79,求出RSA算法的公钥和私钥。
答:n = 47×71 = 3337 ; φ(n) = 46×70 = 3220 ;
下面利用扩展的欧几里得算法
私钥d满足:79d – 3220k = 1 ①
将3220对79取模得到的余数60代替3220,变为79d - 60k = 1 ②
将79对60取模得到的余数19代替79,变为19d – 60k = 1 ③
将60对19取模得到的余数3代替60,变为19d - 3k = 1 ④
将19对3取模得到的余数1代替19,变为d - 3k = 1 ⑤
令k=0,代入⑤式中,得d=1 ;
将d=1代入④式,得k=6 ;
将k=6代入③式,得d=19 ;
将d=19代入②式,得k=25 ;
将k=25代入①式,得d=1019 ;
所以,公钥为(3337,79),私钥为(3337,1019)。
(2)假设消息为 m = 3268826879666683,利用上述公钥和私钥,分别实现对m的加密和解密。
答:【加密过程】
根据m<n的要求,将m分成326 , 882 , 687 , 966 , 668 , 003六组。
C1 = 326^79(mod 3337) = 2192 ;
C2 = 882^79(mod 3337) = 2533 ;
C3 = 687^79(mod 3337) = 2091 ;
C4 = 966^79(mod 3337) = 2276 ;
C5 = 668^79(mod 3337) = 2423 ;
C6 = 3^79(mod 3337) = 158 ;
所以最终的密文C = 21922533209122762423158
【解密过程】
M1 = 326^1019(mod 3337) = 163 ;
M2 = 882^1019(mod 3337) = 1097 ;
M3 = 687^1019(mod 3337) = 1592 ;
M4 = 966^1019(mod 3337) = 151 ;
M5 = 668^1019(mod 3337) = 2677 ;
M6 = 3^1019(mod 3337) = 2140 ;
所以最终的明文M = 1631097159215126772140