【密码学原理】RSA算法

RSA*是一种分组密码,其明文和密文均是0至n-1之间的整数,通常n大小为1024位二进制数。

下面看RSA的具体算法

【密码学原理】RSA算法

例如

【密码学原理】RSA算法

由此可以得到d的可选集{23,137,...}

如果d=23,明文m=88,那么其加密和解密可有图所示

【密码学原理】RSA算法

在已知公钥(e,n)的时候,我们并不能唯一确定d的值,d的值为可选集中的一个(可以验算d=137的结果)

那么对于RSA算法,应该满足下列条件:

【密码学原理】RSA算法

第一点保证了加密和解密的正确性,第二点保证了计算的可行性,第三点保证了保密性。正因为在已知公钥(e,n)的前提下不能唯一确定d的值,才使得密文不可解密(除非拥有私钥d)。