公共密钥算法要解决的是在传输过程中对称密钥的问题。
该算法中共有两种类型的密钥:
1)数据解密的私钥,这个密钥同样要保密。
2)对各个用户公开的公钥,这个密钥用于加密。
在两个密钥之间有一个数学关系,从其中一个密钥去推算另一个密钥是很困难的。
公钥以纯文本的形式在网络间传输,因此该文本需要加密。接收者利用自己的私钥要解密所收到的文本。处理过程如图4.5所示。
图4.5 公钥密码(www.xing528.com)
和对称密钥算法一样,公共密钥算法使用了不同的算法,特别是RSA(Rivest,Shamir,Adelman)和Diffie-Hellman。虽然这项技术弥补了对称密钥算法的不足(密钥传输问题),但是这个技术比对称密钥算法慢很多。
RSA(里维斯特、沙米尔、阿德尔曼)
这个公钥算法是根据它的3个发明者——罗恩·里斯维特(Ron Rivest)、阿迪·沙米尔(Adi Shamir)和伦纳德·阿德尔曼(Leonard Adelman)的名字命名的,于1977年被提出。这一算法主要用来处理大数据的因式分解所带来的困难。
RSA使用密钥的长度不同,可以为512bit、1024bit和2048bit。长度为512bit的密钥并不是非常可靠。不过,现在RSA还被用于SSL、IPsec和其他方面。在未来更好的数学算法出来之前,RSA仍被认为是相当可靠的。
Diffie-Hellman
这是另外的一个公钥算法,它是由惠特菲尔德·迪菲(Whitfield Diffie)和马丁·赫尔曼(Martin Hellman)提出的。这是第一个被投入市场的加密算法。由于在某些类型的攻击面前显得很脆弱,因此最好在鉴权机构的帮助下使用。该算法的一个亮点便是两个人可以共享密钥而不用要求安全传输。直到今天,该算法仍在使用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。