假设我们有一个带有私钥和公钥的服务器,后者可用于所有客户端,并且我们有一个客户端没有任何非对称密钥拥有。我们希望建立服务器和客户端之间的安全通信,客户端必须确保服务器的真实性。这是一个很常见的情况。秘密密钥分配与Diffie-Hellman的公钥加密
现在,我的理解是,私钥/公钥对通常只用于确保真实性(我们的客户端可以使用服务器的公钥来验证服务器的真实性)。为了确保服务器和客户端之间的双向通信,使用Diffie-Hellman密钥交换,然后通信基于共享密钥。
我不禁想知道为什么Diffie-Hellman会在这种情况下使用。从我所了解的公钥加密技术可以用来确保真实性并在客户端和服务器之间共享密钥。服务器可以向客户端发送使用其私钥编码的消息,客户端可以使用服务器的公钥对其进行解码以确认其身份。此外,客户端可以使用服务器的公钥将新的随机密钥发送给服务器。只有服务器会知道这个秘密密钥,因为只有服务器知道他的私钥。我知道一些人建议不要使用公共密钥来编码和解码,但没有人会说为什么。
显然,如果客户端和服务器都有自己的公钥/私钥,他们甚至不需要共享任何密钥,但这不是典型的情况。
所以......总结一下。为什么使用Diffie-Hellman而不是使用公钥密码体制的秘密密钥分配?有什么好处?
Diffe-Hellman是一种公钥密码。所以你的前提是有缺陷的。 – CodesInChaos 2013-02-16 16:52:24
看[“为什么我们需要Diffie Hellman?”对crpyto.SE](http://crypto.stackexchange.com/questions/3163/why-do-we-need-diffie-hellman) – CodesInChaos 2013-02-16 16:54:23