Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||

迪菲-赫爾曼金鑰交換 (Diffie-Hellman)

| , 3 minutes reading.

迪菲-赫爾曼金鑰交換 (Diffie-Hellman)

引言:「混合顏色」類比

Alice 和 Bob 想在不讓 Eve(間諜)知道的情況下,商定一種秘密顏色。

  1. 她們先公開商定一種 基礎顏色(如黃色)。Eve 也知道了這點。
  2. Alice 選一種 私密顏色(紅),混合黃色得到橙色。她把橙色發給 Bob。
  3. Bob 選一種 私密顏色(藍),混合黃色得到綠色。他把綠色發給 Alice。
  4. Eve 看到了橙色和綠色,但她很難透過「反向拆解」混合色來找回原始的紅或藍。
  5. 奇蹟發生了: Alice 把自己的私密紅加入 Bob 的綠色;Bob 把自己的私密藍加入 Alice 的橙色。
  6. 兩人現在擁有了完全相同的混合結果(棕色)! 而 Eve 手裡只有沒用的中間色。

迪菲-赫爾曼 (DH) 演算法利用模冪運算在數學上實現了這種「混合」。

演算法要解決什麼問題?

  • 安全握手: 允許雙方在公開、被監控的網際網路連接上,建立起一個共享的秘密金鑰(用於後續的 AES 加密)。
  • 承諾: 前向安全性 (Forward Secrecy)。即使駭客以後偷走了伺服器的長期私鑰,也無法解密過去的通話紀錄。

數學原理

  1. 選一個大質數 pp 和一個生成元 gg(公開)。
  2. Alice 選秘密數字 aa,發送 A=ga(modp)A = g^a \pmod p 給 Bob。
  3. Bob 選秘密數字 bb,發送 B=gb(modp)B = g^b \pmod p 給 Alice。
  4. Alice 計算 S=Ba(modp)S = B^a \pmod p
  5. Bob 計算 S=Ab(modp)S = A^b \pmod p
  6. 由於 (gb)a=(ga)b(g^b)^a = (g^a)^b,她們得到了相同的秘密 SS

典型業務場景

  • ✅ HTTPS / TLS 1.3: 這是你訪問網站時建立「會話金鑰」的主要方法。

  • ✅ 端對端加密: WhatsApp 和 Signal 使用 DH 的變體(如 X3DH)確保只有發送者和接收者能讀到消息。

  • ✅ VPN: 在不同辦公地點之間建立安全隧道。

  • ❌ 身分驗證: DH 演算法本身 不證明身分。Eve 可能躲在中間(中間人攻擊),對 Alice 假裝成 Bob,對 Bob 假裝成 Alice。因此,DH 必須與 數位簽章 結合使用才安全。

性能與複雜度總結

  • 速度: 較快,但涉及大數冪運算(見 7.1 章)。
  • 變體: ECDH (橢圓曲線 DH) 是現代版本,她用更短的金鑰實現了相同的安全性。

小結:一句話記住它

「迪菲-赫爾曼是網際網路的『魔鏡』。她讓兩個人照鏡子時能看到同一個秘密,而躲在背後的間諜只能看到一堆毫無意義的亂碼。」