rsa是1977年由罗纳德·李维斯特(ron rivest)、阿迪·萨莫尔(adi shamir)和伦纳德·阿德曼(leonard adleman)一起提出的。当时他们三人都在麻省理工学院工作。rsa就是他们三人姓氏开头字母拼在一起组成的。(推荐学习:php视频教程)
1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(clifford cocks)在一个内部文件中提出了一个相同的算法,但他的发现被列入机密,一直到1997年才被发表。
对极大整数做因数分解的难度决定了rsa算法的可靠性。换言之,对一极大整数做因数分解愈困难,rsa算法愈可靠。
假如有人找到一种快速因数分解的算法的话,那么用rsa加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的rsa钥匙才可能被强力方式解破。
到目前为止,世界上还没有任何可靠的攻击rsa算法的方式。只要其钥匙的长度足够长,用rsa加密的信息实际上是不能被解破的。
1983年麻省理工学院在美国为rsa算法申请了专利。这个专利2000年9月21日失效。由于该算法在申请专利前就已经被发表了,在世界上大多数其它地区这个专利权不被承认。
基本含义
rsa公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
在公开密钥密码体制中,加密密钥(即公开密钥)pk是公开信息,而解密密钥(即秘密密钥)sk是需要保密的。加密算法e和解密算法d也都是公开的。虽然解密密钥sk是由公开密钥pk决定的,由于无法计算出大数n的欧拉函数phi(n),所以不能根据pk计算出sk。
正是基于这种理论,1978年出现了著名的rsa算法,它通常是先生成一对rsa 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。
为提高保密强度,rsa密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的des或idea密钥加密,然后使用rsa密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
rsa算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。rsa是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,截止2017年被普遍认为是最优秀的公钥方案之一。
更多php相关技术文章,请访问php图文教程栏目进行学习!
以上就是rsa加密算法属于的详细内容。
