RSA算法是一种非对称加密算法,适合进行数字签名和密钥交换运算。
这里总结下RSA算法的步骤:
一、选两个较大的质数p和q,p≠q,质数即除了1和其本身以外不被其它自然数所整除的数,且大于1。
比如选择p=3,q=5。
二、计算n的值,n=p×q。
n=p×q=3×5=15。
三、计算L的值,L=(p-1)(q-1),即求p和q的最小公倍数。
L=(p-1)(q-1)=2×4=8。
四、选择公钥e,使得1<e<L,即e大于1小于L。
这里我取的是7。
所以公钥为e=7。
五、计算解密秘钥,即私钥d,私钥与e和L的关系如下:edmodL=1(mod表示取余)。
代入得7dmod8=1,可解:
d=7,即49mod8,余数为1。
所以私钥为d=7。
另外将明文加密成密文和解密公式如下:
加密:
明文=密文(^d)modn
解密:
密文=明文(^e)modn