ScholarGate
助手

Diffie-Hellman 密钥交换

Diffie-Hellman 协议允许两方在不安全的信道上建立共享密钥,而无需任何预先共享的密钥,通过交换从私有指数派生出的公共值来实现。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

Diffie-Hellman 密钥交换是一种协议,其中每一方将一个公共生成元提升到私有指数幂,交换结果,然后将收到的值提升到自己的指数幂,双方都得到相同的共享密钥,而窃听者无法实际计算出该密钥。

Scope

本主题涵盖 Diffie-Hellman 密钥交换协议及其安全性基础——离散对数问题、计算 Diffie-Hellman (CDH) 和判定 Diffie-Hellman (DDH) 假设、基于相同结构的 ElGamal 加密、用于前向保密性的临时密钥交换,以及促使身份验证的中间人威胁。它不包括 RSA(基于因式分解)和 Diffie-Hellman 的椭圆曲线实现,后者在椭圆曲线密码学中讨论。

Core questions

  • 在窃听者可以看到所有消息的情况下,两方如何就共享秘密达成一致?
  • 为什么离散对数问题使得恢复交换的秘密变得困难?
  • 计算 Diffie-Hellman (CDH) 和判定 Diffie-Hellman (DDH) 假设之间有什么区别?
  • 临时 Diffie-Hellman 如何提供前向保密性?
  • 为什么未经身份验证的 Diffie-Hellman 容易受到中间人攻击?

Key concepts

  • 共享秘密协商
  • 生成元和循环群
  • 私有指数和公共指数
  • 离散对数问题
  • 计算 Diffie-Hellman (CDH)
  • 判定 Diffie-Hellman (DDH)
  • 临时密钥交换和前向保密性
  • 中间人攻击
  • ElGamal 加密

Key theories

离散对数难题
Diffie-Hellman 之所以安全,是因为虽然模幂运算很容易,但在合适的群中,从公共值中恢复私有指数(即离散对数)被认为是不可行的。
计算 Diffie-Hellman 和判定 Diffie-Hellman 假设
安全性通过 CDH 假设(计算共享秘密很困难)和更强的 DDH 假设(共享秘密与随机值无法区分)来形式化,后者是可证明安全的 ElGamal 式加密的基础。

Mechanisms

在一个具有公共生成元 g 的循环群中,Alice 选择一个秘密 a 并发送 g^a,Bob 选择 b 并发送 g^b;双方通过将收到的值提升到自己的指数幂来计算共享秘密 g^(ab)。窃听者看到 g、g^a 和 g^b,但必须解决离散对数问题或 Diffie-Hellman 问题才能找到 g^(ab)。每会话使用新的(临时)指数可实现前向保密性:即使长期密钥在以后被泄露,也不会泄露过去的会话密钥。

Clinical relevance

Diffie-Hellman 是 TLS、IPsec/IKE、SSH、Signal 和 WireGuard 中密钥建立的基础。临时变体(DHE 和椭圆曲线 ECDHE)提供了前向保密性,保护已记录的流量免受未来密钥泄露的影响。通过身份验证(使用证书或签名)来抵御中间人攻击,这是纯 Diffie-Hellman 所面临的威胁。

Evidence & guidelines

有限域 Diffie-Hellman 参数在 RFC 7919(安全命名群)中指定;NIST SP 800-56A 标准化了密钥建立。最佳实践是使用临时密钥实现前向保密性,并使用经过充分审查的群。Logjam 攻击(2015 年)表明,弱的 512 位出口级和重复使用的 1024 位群是可被利用的,这促使迁移到 2048 位群或椭圆曲线。

History

Diffie 和 Hellman 在 1976 年发表了密钥交换协议,开启了公钥密码学时代,该协议建立在 Merkle 早期谜题思想的基础上。(Malcolm Williamson 于 1974 年在英国政府通信总部 (GCHQ) 发现了等效方法。)ElGamal 于 1985 年将该构造推广为公钥加密和签名方案。该协议从有限域群发展到椭圆曲线,并成为互联网上会话密钥建立的标准方法。

Key figures

  • Whitfield Diffie
  • Martin Hellman
  • Ralph Merkle
  • Taher ElGamal
  • Malcolm Williamson

Related topics

Seminal works

  • diffie1976
  • katz2020
  • menezes1996

Frequently asked questions

Diffie-Hellman 本身是否能对参与方进行身份验证?
不能。纯 Diffie-Hellman 建立共享秘密,但不能验证对方是谁,因此活跃的攻击者可以运行两次交换并充当中间人。实际协议通过证书、签名或预共享密钥对交换进行身份验证。
什么是前向保密性,Diffie-Hellman 如何提供它?
前向保密性意味着即使长期密钥在以后被泄露,也不会暴露过去的会话。为每个会话使用新的、临时的 Diffie-Hellman 指数并在之后丢弃它们,确保没有存储的密钥可以重建以前记录的流量。

Methods for this concept

Related concepts