CyberGlossary

密码学

Diffie–Hellman 密钥交换

别称: DH, DHKE

定义

一种公钥协议,使两方能够在不安全信道上推导出共享密钥而不实际传输该密钥,其安全性基于离散对数问题的困难性。

Diffie–Hellman(DH)密钥交换由 Whitfield Diffie 与 Martin Hellman 于 1976 年提出,使两方能够在不可信网络上协商出共享秘密。双方各自选择一个私有指数,使用公共参数(生成元 g 与大素数 p)计算 g^x mod p,交换得到的公开值,再用自身指数对收到的值再次幂运算,最终都得到相同的 g^xy。其安全性依赖于计算性 Diffie–Hellman 假设,与离散对数问题密切相关。原始 DH 不提供身份认证,容易遭受中间人攻击,因此实际协议(TLS、IPsec、SSH)通过签名或证书对交换进行认证,并优先使用临时变体(DHE、ECDHE)以获得前向保密。现代部署多采用椭圆曲线形式(X25519、X448),以提升速度并缩小消息体积。

示例

  • TLS 1.3 强制每次握手都使用 (EC)DHE,以确保前向保密。
  • Signal 协议采用 X3DH,即三重 Diffie–Hellman 握手。

相关术语