2012-07-07 56 views
3

Diffie-Hellman只有在双方通过身份验证时才提供安全密钥交换。对于身份验证,双方正在使用公钥/私钥。所以如果A方知道B方的公钥,那么A可以简单地使用该密钥来加密消息(或新的会话密钥)。为什么还要使用单独的密钥交换算法?为什么我们需要迪菲赫尔曼?

+0

,你可能会得到crypto.stackexchange.com – 2012-07-07 11:29:32

+2

甚至上http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange更好的答案,特别是因为你的问题首先是一个不正确的前提(双方都是“认证的”)。 – msw 2012-07-07 11:32:28

+0

@msw即使您可以验证通信伙伴(了解他的公钥),Diffie-Hellman也很重要。我个人认为SSL密码套件不会使用短暂的diffie-hellman有缺陷。如果你根本没有办法认证对方(甚至没有共享的对称秘密),即使diffie-hellman也不会救你,因为它不能阻止MitM。 – CodesInChaos 2012-07-08 09:25:52

回答

1

Diffie Hellman旨在交换共享密钥。所以,这个问题可以表述为:Why would I want to use a shared key, when public/private key pairs offers encrpytion and ease of sharing public keys?

在公共/私人密钥的共享密钥的好处是:

  • 共享密钥都更快的算法相比,公钥/私钥算法,因此需要较少的处理功率。

  • 如果证书颁发机构受到威胁,攻击者有可能在使用公钥/私钥加密时冒充:请参阅DigiNotar case

+0

ad1)我们只能使用公钥/私钥作为握手来生成对称密钥为会议。它与验证其他方的签名(在经过验证的Diffie Hellman中执行)具有相同的成本。 ad2)如果证书颁发机构受到威胁,那么Diffie Hellman也不安全(因为双方都没有可靠的身份验证)。所以我仍然看到DH和用于会话密钥交换的非对称加密之间没有区别 – piotrek 2012-07-07 11:52:54

+0

您可以使用直接加密来交换没有diffie-hellman的共享密钥,这就是SSL中普通RSA套件的工作方式。你的模仿论点也没有意义。如果您将DH与受损的证书颁发机构一起使用,模仿仍然可行。 – CodesInChaos 2012-07-08 09:28:11