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