RSA由Ron Rivest、Adi Shamir和Leonard Adleman于1977年提出,当时他们三人都在MIT。RSA取自他们三人姓氏开头字母拼在一起组成的。
RSA是Diffie-Hellman公钥加密的实现,其安全性部分依赖于大整数分解的困难。之所以说“部分依赖于”,是因为至今还没证明RSA的安全性完全依赖于大整数分解。
1.公钥和密钥的生成
(1)随意两个大素数p和q,计算 n=p*q ;
(2)根据gcd(d, (p-1)*(q-1))=1 计算 d;
加密密钥(e,n),解密密钥(d,n),由n分解为p、q是困难的。
2.加密与解密
加密:,其中M是消息,E( )是加密函数,C是加密后的密文。
3.证明
证明需要用到欧拉定理,先引出几个概念。
(1)欧拉函数φ(n),是指小于n且与n互素的整数的个数。特别地,有φ(1)=1,对素数p有φ(p)=p-1 。
(2)欧拉定理:对任意互素的a和n,有。关于欧拉定理详细证明,请参看其他书籍。
RSA解密的证明:
4. 参考文献
[1]R.Rivest,A.Shamir,andL.Adleman. "Amethodforobtainingdigitalsignaturesandpublic-keycryptosystems".CommunicationsoftheACM,vol.21,no.2,pp.120–126,1978.