分类: 嵌入式
2012-06-23 21:36:39
现在我们已经知道对称加密的一个最大的问题是如何安全地传输密钥,并且在对称加密的体系下找不到好的解决方案。1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。
与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。
非对称加密本身并不难理解,结合图6-14对非对称加密的流程做简要的分析。
图6-14 非对称加密示意图
如图6-14所示,对数据进行加密之前要准备好两个密钥,一个公钥,一个私钥;其中公钥是公开的,任何人都可以获得,私钥只有解密方拥有。会话双方分别为老李和小王,老李现在想给小王传送数据,为了避免被监听,老李需要对数据进行加密。由于数据的接受方是小李,所以老王选择使用小李的公钥进行加密,小李的公钥任何人都可以知道,不需要秘密传送。小李在接收了老王传送的数据之后,使用只有他自己知道的私钥进行解密。从整个过程看,不涉及密钥的传输,所以从根本上解决了对称加密的密钥传输安全问题。
-----------注:本文改编自《.NET 安全揭秘》