RSA加密算法(RSA algorithm)是1977年由在麻省理工学院工作的罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的,RSA正是他们三人姓氏首字母拼在一起组成的。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。
RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA算法的具体描述如下:
当然要想理解RSA加密算法原理还得去理解互质、欧拉函数、欧拉定理、模反元素等数学知识,感兴趣自行研究。
RSA加密算法在很多计算机语言以及系统中都已被实现,Java同样也已实现了RSA加密算法,比如用Java生成RSA加密算法的公钥和私钥效果如下图:
另外还有相关加密和解密方法,需要完整代码可以关注公众号发送“RSA”关键字获取。
参考:RSA算法
历史上的今天:
展开阅读全文
上一篇: 加密算法简介