1974 - Diffie 公鑰構想#
案件摘要#
1974 年,29 歲的 Whitfield Diffie 拋下一切,與斯坦福的 Martin Hellman 合作,追查一個看似不可能的問題:兩個從未見面的人,如何在不安全的信道上協商出共享秘密? 1975–76 年他們構想出「公鑰密碼學」——加密與解密用不同金鑰,公鑰可公開、私鑰自己藏。這個構想解開了密碼學兩千年的死結(金鑰分發問題),並催生了數位簽章、零知識證明與整個現代數位世界。
前因 -- 為什麼會有這個案子#
兩千年來,密碼學的基本假設:通信雙方必須先共享秘密(金鑰)。但這個假設有雞生蛋問題:
- 你要加密給對方,必須先把金鑰送到對方手上
- 送金鑰需要安全信道——但你就是因為沒有安全信道才要加密!
軍事解法: couriers(信使)、外交郵袋、預先分發密碼本——只適合少數機構。商業困境:1970 年代的銀行電子轉帳,成千上萬的客戶,不可能每人派信使。
Diffie 的背景:MIT 電機畢業、輾轉於斯坦福、長期思考「隱私在數位時代」的問題。1974 年他聽到 Hellman 在講密碼學,登門拜訪——兩人開始了密碼學史上最重要的合作。
線索與推理 -- 數學式、程式、理論#
公鑰構想的誕生#
Diffie–Hellman 的推理:
- 問題:兩方 \(A, B\) 無共享秘密,要在竊聽者 \(E\) 監視下協商金鑰
- 關鍵轉折(Diffie 的洞察):把金鑰拆成兩半——加密金鑰(可公開)與解密金鑰(保密)
- 這是不對稱的:兩千年來所有密碼都是對稱的(加密 = 解密的反向)。不對稱要求存在「單向陷門函數」:
「容易算、難逆推、有後門」——這個概念當時沒有實例!
兩個突破(1976)#
突破一:金鑰交換(見 1976-DiffieHellman金鑰交換.md)——Diffie–Hellman 協議,用離散對數的單向性實現不見面協商金鑰。
突破二:數位簽章的構想——公鑰密碼的反向使用:
只有私鑰能簽,任何人可用公鑰驗證——手寫簽名的數學化:不可偽造、可驗證、不可否認。這解開了認證問題(Shannon 1949 區分的第二目標,見 1949-Shannon保密理論.md)。
單向陷門函數的候選#
Diffie–Hellman 1976 年的論文《New Directions in Cryptography》沒有給出公鑰加密的完整實現(只有金鑰交換),並列出了單向陷門函數的候選問題——這個懸案吊在 1977 年被 RSA(見 1977-RSA.md)用大數分解解決。
候選問題的譜系: - 大數分解(RSA, 1977): \(n = pq\) ,容易乘、難分解 - 離散對數(Diffie–Hellman, 1976):容易冪、難取對數 - 背包問題(Merkle–Hellman, 1978):NP 完備問題的陷門化(後被破,見 1979-MerkleHellman背包密碼.md)
程式碼:金鑰分發問題與公鑰構想#
import random
# 雞生蛋問題:對稱密碼的金鑰分發
def symmetric_channel_problem():
"""A、B 要共享金鑰 k,但信道被 E 竊聽——無解!"""
k = random.getrandbits(128) # 金鑰
# k 怎麼送給 B?任何信道都被竊聽——死結
return k
# 公鑰構想:拆成兩半
class PublicKeyConcept:
"""單向陷門函數:容易算、難逆、有陷門"""
def __init__(self):
self.public_key = None
self.private_key = None # 陷門
def encrypt(self, msg): # 任何人可算
raise NotImplementedError
def decrypt(self, cipher): # 只有私鑰能算
raise NotImplementedError
# RSA(1977)的解決:n = pq,容易乘、難分解
# Diffie-Hellman(1976)的解決:金鑰交換協議
print("Diffie-Hellman 的洞察:把金鑰拆成兩半")
print(" 公鑰:任何人可加密(或用於交換)")
print(" 私鑰:只有主人可解密")
print(" 單向陷門函數:容易算、難逆推、知道陷門則容易")
隱私的政治哲學#
Diffie 的視野不止技術:1970 年代的水門事件、電腦化資料庫的隱私危機。Diffie 與 Landau 後來合著《Privacy on the Line》——密碼學是公民自由。這個視野引發 1990 年代的「密碼戰爭」(Crypto Wars):美國政府限制密碼出口(公鑰密碼被列為軍品),公民密碼學家對抗——最終密碼學自由化(2000 年前後)。
偵探筆記:Diffie–Hellman 的推理是「範式轉移」——兩千年的假設「通信必先共享秘密」被推翻。提出問題比解決問題更重要:1976 年的論文沒有完整實現,但定義了整個現代密碼學的問題空間(公鑰加密、數位簽章、認證協議)。
結案 -- 後果與影響#
- 公鑰密碼學問世:RSA(1977)、ElGamal(1985)、ECC——現代數位世界的基礎。
- 數位簽章:手寫簽名的數學化——電子商務、軟體發行、區塊鏈的基礎。
- 金鑰分發問題解決:TLS 的每次連線都在跑 Diffie–Hellman——HTTPS 的基礎。
- 密碼戰爭:政府 vs 公民密碼學家(1990s),最終密碼學自由化。
- 圖靈獎:Diffie 與 Hellman 獲 2015 年圖靈獎——延遲 40 年的正名。
關鍵人物與文獻#
- Whitfield Diffie(1944–):New Directions in Cryptography (1976);圖靈獎 2015
- Martin Hellman(1945–):斯坦福;圖靈獎 2015
- Ralph Merkle:同時期的公鑰構想(背包密碼,見
1979-MerkleHellman背包密碼.md) - James Ellis / Clifford Cocks / Malcolm Williamson(英國 GCHQ):1969–1974 秘密發明等價概念(保密至 1997 才公開——密碼學史的又一冤案)
- 交叉參照:
1976-DiffieHellman金鑰交換.md、1977-RSA.md、1949-Shannon保密理論.md