密码学中的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<n是一个整数)加密成密文c,加密算法
(6)将密文c解密为明文m,解密算法为
然而只根据n和e(注意:不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密
安全性
RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,也并没有从理论上证明破译。
RSA的难度与大数分解难度等价。因为没有证明破解RSA就一定需要做大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法,即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题