一. RSA算法
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA算法是第一个能同时用于加密和数字签名的算法。
二. 算法原理:
1. 密钥对的生成:
(1)选取两个大素数p和q, 且p!=q。
(2)计算乘积n=p*q,Φ(n)=(p-1)(q-1),其中Φ(n)为n的欧拉函数。
(3)随机选取整数e(1<e<Φ(n)),满足e与Φ(n)的最大公约数为1,即两者互素。
(4)计算d