时间来到了1976年,两位美国计算机学家威特菲尔德·迪菲(whitfield
diffie)和马丁·赫尔曼(martin
hellman),首次证明可以在不直接传递密钥的情况下,完成解密。
这被称为“diffie-hellman密钥交换算法”
。
dh算法的出现有着划时代的意义:从这一刻起,启示人们加密和解密可以使用不同的规则,只要规则之间存在某种对应关系即可。
这种新的模式也被称为“非对称加密算法”
:
(1)乙方生成两把密钥,公钥和私钥。
公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。
公钥加密的信息只有私钥解得开,只要私钥不泄漏,通信就是安全的。
就在dh算法发明后一年,1977年,罗纳德·李维斯特(ron
rivest)、阿迪·萨莫尔(adi
shamir)和伦纳德·阿德曼(leonard
adleman)在麻省理工学院一起提出了rsa算法,rsa就是他们三人姓氏开头字母拼在一起组成的。
新诞生的rsa算法特性比dh算法更为强大,因为dh算法仅用于密钥分配,而rsa算法可以进行信息加密,也可以用于数字签名。
另外,rsa算法的密钥越长,破解的难度以指数倍增长。
因为其强大的性能,可以毫不夸张地说,只要有计算机网络的地方,就有rsa算法。
rsa算法是这样工作的?
第一步,随机选择两个不相等的质数p和q。
第二步,计算p和q的乘积n。
n的长度就是密钥长度,一般以二进制表示,一般长度是2048位。
位数越长,则越难破解。
第三步,计算n的欧拉函数φ(n)。
第四步,随机选择一个整数e,其中是1
e
第五步,计算e对于φ(n)的模反元素d。
所谓“模反元素”
就是指有一个整数d,可以使得ed被φ(n)除的余数为1。
第六步,将n和e封装成公钥(n,e),n和d封装成私钥(n,d)。
请关闭浏览器阅读模式后查看本章节,否则将出现无法翻页或章节内容丢失等现象。