参考了很多博客,主要解决RSA算法的计算过程。
原博客出自这里,RSA算法原理——(3)RSA加解密过程及公式论证_猪哥66的博客-CSDN博客_rsa加密过程和解密过程
有详细的证明过程,包括一些数论的知识,个人只整理了RSA如何计算及RSA加解密,其他的细节参考原博
六步生成密钥
1.随机选择两个不相等的质数p和q
p = 61
q = 53
2.计算p和q的乘积n
n = 61×53 = 3233
3. 计算n的欧拉函数φ(n)(这儿用到了欧拉定理)
φ(n) = φ((p1-1)*(p2-1)) = φ(p1-1)φ(p2-1)
φ(3233) = φ(60x52) = φ(60)φ(52)
4.随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质 ,假设选择了17
5.计算出d,使得ed % φ(n) = 1(如何解出d需要用到辗转相除法),得到d为2753
6.形成公钥(e, n) =(17, 3223) ,私钥 (d, n) = (2753, 3223)
用公钥加密,假设选择A,ASCII为65,即m=65
加密的过程:
m^e≡c(modn)
即 65 ^ 17≡c(3233)
得到c = 2790
解密的过程:
c^d≡m(modn)
即2790 ^ 2753 ≡ m(mod3233)
得到m = 65