rsa算法

Rsa加密算法如下:

算法原理:

RSA公钥密码体制的原理是:根据数论,寻找两个大素数是相对简单的,但是对它们的乘积进行因式分解是极其困难的,所以乘积可以作为加密密钥公开。

算法描述:

RSA算法详细描述如下:?

(1)任意选择两个不同的大素数P和Q计算乘积。

(2)任意选择一个大整数E,整数E可以作为加密密钥(注意:E的选取非常容易,比如大于P和Q的素数都可以)。

(3)所确定的解密密钥d是任意整数;所以,如果知道e的和,就很容易算出d?;

(4)公开整数N和E,保密D?[5];

(5)明文m (m

(6)将密文C解密成明文M,解密算法如下

但是,只从n和e(注意:不是p和q)计算d是不可能的。因此,任何人都可以加密明文,但只有授权用户(知道D)才能解密密文。

安全

RSA的安全性依赖于大数分解,但是否等价于大数分解,理论上没有证明,理论上也没有证明。RSA的难度相当于大数分解的难度。因为没有证据证明破解RSA需要大数分解。假设有一种算法不需要分解大数,那么肯定可以修改成大数分解算法,也就是RSA的一大缺陷就是理论上无法把握其安全性能,而密码学中大多数人更倾向于因式分解不是NPC问题。