跳转至

Diffie Hellman算法简介

这是一个非常核心且实用的问题。Diffie-Hellman(DH)密钥交换协议最终计算出的共享密钥 \(K\),其主要用途是作为后续通信中的对称加密算法的密钥,用于实现保密通信

简单来说,DH 协议的价值在于它解决了公钥密码学中一个重要的效率问题。

共享密钥 \(K\) 的用途

DH 最终生成的共享密钥 \(K = g^{ab} \pmod{p}\),是通信双方(Alice 和 Bob)唯一知晓完全相同的秘密大数。它的主要作用是:

1. 密钥封装 / 建立安全通道 (Key Establishment)

DH 的主要目的不是直接加密数据,而是安全地协商出一个对称密钥

  • 问题: 公钥算法(如 RSA 或 ElGamal 加密)虽然能提供保密性,但其运算速度比对称加密慢得多(通常慢几百到几千倍)。如果用公钥加密来传输大量数据,效率会非常低下。
  • 解决方案: 使用 DH 协议:
    1. 利用公钥算法(基于 DLP)的安全性,在不安全的信道上快速、安全地协商出秘密密钥 \(K\)
    2. 一旦 \(K\) 协商完成,后续所有大量数据传输都将使用对称加密算法(如 AES)进行加密和解密,而 \(K\) 就是 AES 的密钥。

2. 提供完美前向保密性 (Perfect Forward Secrecy, PFS)

在使用某些版本的 DH 协议(如短暂 Diffie-Hellman, Ephemeral DH 或 DHE)时,共享密钥 \(K\) 具有以下重要安全特性:

  • PFS 的含义: 如果将来的某个时刻,攻击者破解了会话双方的长期私钥,他们也无法解密该会话之前记录的通信内容。
  • 如何实现: DHE 协议在每次会话时都会重新生成新的、随机的私钥 \(a\)\(b\) 来计算 \(K\)。即使攻击者记录了所有传输数据,并在未来获得了某个会话的长期私钥,由于该会话的密钥 \(K\) 是由临时的 \(a\)\(b\) 生成的,攻击者也无法通过长期私钥推导出 \(a\)\(b\),因此无法还原 \(K\)

总结

Diffie-Hellman 共享密钥 \(K\) 的作用可以概括为:

方面 作用
功能 作为对称加密算法(如 AES)的密钥。
效率 将公钥密码体制用于密钥协商,然后利用对称密码体制的高速进行数据传输,结合了两者的优点
安全 提供完美前向保密性,即使长期密钥泄露,历史通信记录依然安全。

因此,共享密钥 \(K\) 是架设在不安全网络上的一条高速、保密的通信隧道的基础。