1.选择一对素数 p 和 q
2.n = p * q
3.f(n) = (p -1) * (q - 1)
4.找一个与f(n)互质的数加密秘钥e,且1<e<f(n)
5.计算解密秘钥d,d * e ≡ 1 mod f(n), ≡为互余符号,符号左边必须和符号右边同余,也就是两边模运算结果相同,即(d * e) mod f(n) = 1 mod f(n) = 1, (d * e) mod f(n) = 1, d*e = k*(f(n) + 1)
6.公钥(e, n),私钥(d, n)
7.设明文m,明文加密,密文c = m^e mod n
8.密文解密,明文m = c^d mod n
假设需要加密的明文信息为m=14,选择:e=3,p=5,q=11,试说明使用RSA算法的加密和解密过程及结果?
n=p*q=55
φ(n)=(p-1)*(q-1)=4*10=40
根据e*d≡1 mod φ(n)
又3*d mod 40=1
得出d=27
公钥(n,e)=(55,3)
得到密文c=m^e mod 55=14^3 mod 55=49
私钥(n,d)=(55,27)
得到明文m=c^d mod 55=49^27 mod 55=14
来源:https://www.jianshu.com/p/83d1bf4e7da8