密碼學的新方向

他們的開場白毫不謙虛;在 1976 年 11 月《IEEE 信息理論期刊》上發表的《密碼學新方向》一文中,迪菲和赫爾曼宣告:「今天,我們站在密碼學革命的邊緣。」作者解釋道,「訊息理論和計算機科學中的理論發展,顯示出提供可證明安全的密碼系統的希望,將這一古老的藝術轉變為科學。」在不到十二頁的篇幅中,迪菲和赫爾曼概述了解決密鑰分發問題的方案,並提供了驗證發送者身份的數字簽名方法。作者稱他們的方法為「公鑰密碼系統」:

「在公鑰密碼系統中,加密和解密由不同的密鑰控制,E 和 D,這樣從 E 計算 D 是計算上不可行的(例如,需要 10^100 次指令)。因此,加密密鑰 E 可以公開披露,而不會危及解密密鑰 D。每個網絡用戶都可以將自己的加密密鑰放在公共目錄中。這樣,系統中的任何用戶都可以將消息加密並發送給其他用戶,只有預定的接收者能夠解密該消息。」

該公開的、用於加密數據的密鑰稱為「公鑰」。只有接收者知道的解密密鑰稱為「私鑰」。將密鑰分開是一次創新,突破了傳統的密碼學理論。當赫爾曼解釋這一方案時,霍斯特·費斯特爾回應說:「你不能那樣做!」(儘管根據赫爾曼的說法,費斯特爾當時匆忙去看醫生,這是他匆忙的解釋。)雖然公鑰密碼學一開始似乎打破了傳統,但實際上它仍然遵循了傳統——私鑰保持私密——只有相關的公鑰才會與全世界分享。

實現公鑰密碼系統的基礎是能夠開發出一種數學算法,使公私鑰之間能夠如迪菲和赫爾曼所概述的那樣相互關聯。這一「陷門密碼」的概念,自迪菲開始思考政府如何提供既能抵禦其他所有行為者攻擊,又能為擁有陷門知識的 NSA 特工所用的 DES 演算法時,就已經在他的心中。這是實現公鑰密碼系統的前提。然而,作者也承認當時「幾乎沒有陷門密碼存在的證據」。

為了解決簽名問題,迪菲和赫爾曼設想了一個算法,使得公私密鑰能反向使用。如果接收者能夠使用發送者的公鑰解密消息或簽名,那麼發送者必定擁有配對的私鑰——當然,這需要一種機制來驗證該公鑰確實屬於所謂的擁有者。為了保持完整性,簽名的一部分會來自消息的內容;如果即使是單個字符不同,消息也需要由私鑰的合法擁有者重新簽名;因此,第三方對原始簽署文件的任何修改將無法實現。只要私鑰未被泄露,這一方法便可行。

儘管迪菲和赫爾曼的論文充滿啟發性,但它缺乏一個實施算法;「我們提出了一些開發公鑰密碼系統的技術,但這一問題仍然在很大程度上未解決,」作者們寫道。迪菲和赫爾曼在論文的結尾寫道:「在密碼分析方面,專業人士始終佔據主導地位,但創新,特別是在新型密碼系統的設計方面,主要來自業餘愛好者。」他們回顧道,由業餘愛好者發明的湯瑪斯·杰佛遜的密碼系統在第二次世界大戰期間仍在使用,而二十世紀最著名的密碼系統——轉子密碼機,則是由四位業餘愛好者同時發明的。他們的最後一句話特別針對政府發出了挖苦:「我們希望這能激勵更多的人參與這個領域,在過去的日子裡,這個領域的參與幾乎完全被政府壟斷。」