跳到主要內容

Diffie-Hellman 金鑰交換協議深入解析:在不安全通道上安全協商共享秘密的核心原理

在網路通訊中,雙方如何在竊聽者面前安全地建立共享秘密?Diffie-Hellman 金鑰交換協議於 1976 年提出,以數學難題為基礎,優雅地解決了這個問題,奠定現代加密通訊的基石。

數學原理:離散對數的單向性

DH 協議的安全性建立在離散對數問題(DLP)的計算困難性上。協議雙方公開同意一組參數:大質數 p 與生成元 g。Alice 選取私密整數 a,計算公開值 A = ga mod p 並傳送給 Bob;Bob 同樣選取私密整數 b,計算 B = gb mod p 傳回。最終兩人分別計算 Ba mod p 與 Ab mod p,得到相同的共享秘密 S = gab mod p。竊聽者只能看到 p、g、A、B,要從中還原 a 或 b,即需解決離散對數問題——在參數夠大時,這在計算上不可行。

協議限制與現代應用

DH 本身不提供身份驗證,因此容易遭受中間人攻擊(MITM)。實務上必須搭配數位憑證或 PKI 基礎設施進行身份確認。現代 TLS 1.3 廣泛採用橢圓曲線 Diffie-Hellman(ECDH),以更短的金鑰長度達到相同安全強度,並引入 Ephemeral(暫時性)模式(ECDHE),每次連線使用一次性金鑰對,實現前向保密(Forward Secrecy),即使長期私鑰洩漏,過去的通訊記錄仍受保護。DH 交換的輸出並非直接作為加密金鑰使用,而是經過 KDF(金鑰衍生函式)處理後,才用於後續的對稱加密。

💡 重點整理

  • 安全基礎:依賴離散對數問題的計算不可逆性,確保公開傳輸不洩密。
  • 無驗證機制:協議本身無法確認對方身份,需搭配憑證體系防止 MITM。
  • 現代首選 ECDHE:橢圓曲線版本效率更高,並支援前向保密。
  • 奠定對稱加密:協商出的共享秘密經 KDF 處理,作為 AES 等演算法的會話金鑰。

Diffie-Hellman 本質上是一座橋樑:在公開通道上安全地遞交「鑰匙的材料」,而非鑰匙本身。理解其原理,是掌握 TLS、SSH 等所有現代安全通訊協議的必要基礎。

📚 參考文獻

  1. Diffie, W. & Hellman, M. (1976). New Directions in Cryptography. IEEE Transactions on Information Theory — 原始論文,定義 DH 協議的數學基礎。
  2. RFC 7748 — Elliptic Curves for Security(IETF) — 定義現代 ECDH 曲線(X25519、X448)的權威規範。
  3. RFC 8446 — TLS 1.3(IETF) — 說明 ECDHE 在現行 TLS 標準中的實際應用方式。

⚠️ 本文內容基於撰寫時的最新資訊,實際應用時請參考官方文件的最新版本。

留言