密碼學/歷史
已知最早的密碼學使用是在埃及舊王國(約 4500 年前)的紀念碑上雕刻的非標準象形文字中。然而,這些並不被認為是秘密通訊的嚴肅嘗試,而更可能是對神秘、陰謀,甚至是為了識字的旁觀者消遣的嘗試。這些是密碼學的另一種用途,或看起來(令人印象深刻,即使具有誤導性)像密碼學的另一種用途的例子。後來,希伯來學者開始使用簡單的替換密碼(例如 Atbash 密碼),也許始於公元前 500 年到 600 年之間。密碼學在宗教著作中有著悠久的傳統,這些著作很可能冒犯占主導地位的文化或政治當局。
據說是古典時期的希臘人瞭解密碼(例如,據說斯巴達軍隊使用的 Scytale 轉置密碼)。希羅多德告訴我們,秘密資訊被物理地隱藏在木板上的蠟下面,或者作為紋身刻在奴隸的頭上,被重新生長的頭髮遮蓋(這些本身並不完全是密碼學的例子;參見秘密寫作)。羅馬人當然也這樣做(例如,凱撒密碼及其變體)。古代曾提及一本關於羅馬軍事密碼學的書(特別是凱撒大帝的);不幸的是,它已經丟失了。
在印度,密碼學顯然很有名。在《 कामसूत्र》(《欲經》)中,它被推薦為戀人之間進行秘密通訊的一種技術。這可能意味著大約公元 500 年的印度,密碼分析技術並不發達。
密碼學後來(秘密地)變得越來越重要,這是政治競爭和宗教分析的結果。例如,在歐洲文藝復興時期及其之後,包括教皇在內的各個義大利州的公民為密碼學實踐做出了重大改進(例如,萊昂·阿爾伯蒂約 1465 年發明的多字母密碼)。在阿拉伯世界,對《古蘭經》的宗教文字分析導致了大約公元 1000 年發明了用於破解單字母替換密碼的頻率分析技術。
密碼學、密碼分析和間諜背叛出現在伊麗莎白一世女王統治時期的巴賓頓陰謀中,導致瑪麗女王被處決。而來自鐵面人時期的一條加密資訊(大約 1900 年由 Étienne Bazeries 解密)為這位傳奇的、不幸的囚犯的身份提供了一些令人遺憾的非決定性證據。密碼學及其誤用參與了導致瑪塔·哈里被處決的陰謀,甚至可能更令人髮指的是,參與了導致德雷福斯被定罪和監禁的鬧劇,這兩者都發生在 20 世紀初。幸運的是,密碼學家也參與了讓德雷福斯重獲自由;相比之下,瑪塔·哈里被槍決了。
第一次世界大戰後,數學密碼學取得了飛速進步(也是秘密地)。波蘭的馬裡安·雷耶夫斯基在 1932 年利用理論數學攻擊並“破解”了早期德國軍隊 Enigma 系統(一種機電轉子密碼機)。破解一直持續到 1939 年,當時德國軍隊 Enigma 機的使用方式發生了變化,需要更多資源,而波蘭人無法提供這些資源。他的工作由艾倫·圖靈、戈登·韋爾奇曼和其他人在布萊切利莊園於 1939 年開始擴充套件,導致持續破解 Enigma 的其他幾個變種以及它們所使用的各種網路。美國海軍密碼學家(在 1940 年之後與英國和荷蘭密碼學家合作)破解了幾個日本海軍密碼系統。其中一個密碼的破解,最出名的是導致美國在中途島海戰中獲勝。一個美國陸軍小組 SIS 甚至在二戰開始之前就成功破解了日本最高級別的外交密碼系統(一種名為“紫色”的機電“步進開關”機器)。美國人將密碼分析產生的情報稱為“魔術”,尤其是在“紫色”機器的情報。英國人最終將密碼分析產生的情報,特別是來自各種 Enigma 的資訊流量,稱為“超級”。英國早期對“超級”的稱呼是“博尼法斯”。
到二戰時期,機械和機電密碼機已廣泛使用,但它們是不切實際的手動系統。這段時期在實際密碼學和數學密碼學方面都取得了重大進步,所有這些都處於保密狀態。關於這段時期的資訊近年來開始解密,因為官方的 50 年(英國)保密期已經結束,相關美國檔案已逐漸開放,以及各種回憶錄和文章發表。
德國人廣泛使用(在幾個變體中)一種稱為 Enigma 的基於機電轉子的密碼系統。德國軍隊還部署了幾種機械的一次性密碼本嘗試。布萊切利莊園稱它們為“魚”密碼,馬克斯·紐曼及其同事設計並部署了世界上第一臺可程式設計的數位電子計算機 Colossus,以幫助進行密碼分析。德國外交部從 1919 年開始使用一次性密碼本;其中一些資訊在二戰期間被破譯,部分原因是在南美洲找回了部分關鍵材料,這些材料被一名德國信使沒有妥善處理而被丟棄。
日本外交部使用了一種當地研發的基於電氣步進開關的系統(美國稱其為“紫色”),以及一些日本大使館使用的幾種類似機器。其中一臺機器被稱為“M 機”,另一臺被稱為“紅色”。盟軍或多或少地破解了所有這些機器。
二戰期間使用的其他密碼機包括英國 Typex 和美國 SIGABA;兩者都是與 Enigma 類似的機電轉子設計。
現代密碼學時代真正開始於克勞德·夏農,他可以說是數學密碼學之父。1949 年,他在《貝爾系統技術雜誌》上發表了論文《保密系統的通訊理論》,並在稍後與沃倫·韋弗合著了《通訊的數學理論》一書。除了他對資訊和通訊理論的其他著作外,這些著作為密碼學和密碼分析奠定了堅實的理論基礎。於是,密碼學或多或少地消失在了像美國國家安全域性 (NSA) 這樣的秘密政府通訊機構中。在 20 世紀 70 年代中期之前,很少有工作公開,直到一切都改變了。
1969 年出現了兩項重大的公開(即非秘密)進步。首先是 IBM 提交的 DES(資料加密標準),這是應美國國家標準局(現為 NIST)的要求,為了為銀行和其他大型金融組織等企業開發安全的電子通訊設施而進行的。在 NSA 的“建議”和修改之後,它被採用並作為 FIPS 出版物(聯邦資訊處理標準)於 1977 年釋出(目前為 FIPS 46-3)。它在 2001 年被採用高階加密標準(同樣是 NIST 的競賽)作為 FIPS 197 而實際上被淘汰。DES 是第一個由 NSA 等國家密碼機構“認可”的公開可訪問的密碼演算法。NBS 釋出其設計細節,引發了公眾和學術界對密碼學的興趣激增。DES 及其更安全的變體(如 3DES 或 TDES;參見 FIPS 46-3)至今仍在使用,儘管 DES 在 2001 年被 NIST 宣佈選擇 Rijndael(由兩位比利時密碼學家設計)之後,正式被 AES(高階加密標準)取代。然而,DES 仍然被廣泛使用,它已被納入許多國家和組織標準。但是,其 56 位金鑰大小已被證明不足以抵禦暴力攻擊(一次由網路民權組織電子前沿基金會進行的此類攻擊在 56 小時內成功——故事見於 O'Reilly 和 Associates 出版 的《破解 DES》)。因此,在新的密碼系統設計中使用直接 DES 加密無疑是不安全的,而使用 DES 的舊密碼系統保護的訊息也應被視為不安全。有些人甚至在 1976 年就認為 DES 金鑰大小(56 位)太小,也許最公開的是惠特菲爾德·迪菲。當時有人懷疑政府機構已經擁有足夠的計算能力來破解 DES 訊息,而且由於“S 盒”缺乏隨機性,可能存在後門。
第二個是惠特菲爾德·迪菲和馬丁·赫爾曼發表的論文《密碼學的新方向》(http://citeseer.nj.nec.com/340126.html)。這篇論文介紹了一種全新的密碼金鑰分配方法,它在很大程度上解決了密碼學中的一項基本問題——金鑰分配。它被稱為迪菲-赫爾曼金鑰交換。這篇文章還刺激了幾乎立即出現的對一類新的加密演算法——非對稱金鑰演算法的公開開發。
在那之前,所有有用的現代加密演算法都是對稱金鑰演算法,其中傳送方和接收方使用相同的加密金鑰與底層演算法一起使用,並且兩者都必須保密。二戰中使用的所有機電機器都屬於這種邏輯類別,凱撒密碼和阿特巴什密碼也是如此,歷史上所有密碼和程式碼系統也基本上都是如此。程式碼的“金鑰”當然就是程式碼本,它也必須分發並保密。
在任何使用系統之前,每個此類系統中的金鑰都必須以某種安全的方式在通訊方之間交換(通常使用的術語是“透過安全通道”),例如一個帶著手銬銬在手腕上的手提箱的可信信使,或面對面接觸,或一隻忠誠的信鴿。當參與者數量超過某個(非常!)小的數字時,或者當(真正)安全的通道不可用於金鑰交換時,或者當出於明智的密碼實踐,金鑰經常更換時,這種要求會迅速變得難以管理。特別是,如果不想讓第三方解密他們的訊息,則每對通訊方都需要一個單獨的金鑰。這種系統也稱為私鑰、金鑰或常規金鑰密碼系統。D-H 金鑰交換(以及隨後的改進)使這些系統的操作比以往任何時候都更容易、更安全。
相比之下,在非對稱金鑰加密中,演算法有一對數學相關的金鑰,其中一個用於加密,另一個用於解密。其中一些演算法(並非全部)具有額外的屬性,即其中一個金鑰可以公開,因為另一個金鑰不能(透過任何已知方法)從“公開”金鑰推斷出來。這些系統中的另一個金鑰保密,通常被有些混亂地稱為“私鑰”。這種演算法稱為公鑰/私鑰演算法,儘管那些希望避免對所有此類演算法使用該術語的歧義,並強調有兩個具有不同保密要求的獨立金鑰的人更喜歡術語“非對稱金鑰密碼學”。
因此,對於使用此類演算法的使用者來說,現在每個接收方只需要一對金鑰(無論傳送方數量如何),因為擁有接收方的公鑰(任何人)都不會損害訊息的“安全性”,只要相應的私鑰不被任何攻擊者知道(實際上,這意味著除了接收方之外,任何人都不知道)。這種出乎意料的,非常令人驚訝的,一些演算法的特性使得廣泛部署高質量密碼系統成為可能,並且成為現實,這些系統可以被任何人使用。這反過來給全世界政府密碼機構帶來了嚴重的燒心病;這是第一次,那些不在那個“兄弟會”之外的人可以使用那些機構的“窺探者”一方無法輕易破解的密碼學。巨大的爭議和衝突隨之而來。它還沒有平息。例如,在美國,出口“強”密碼仍然是非法的;密碼方法和技術被歸類為軍火。直到 2001 年,“強”密碼被定義為使用超過 40 位的金鑰的任何密碼——此後定義有所放寬。(參見 S Levy 的《加密》,瞭解美國政策爭議的新聞報道。)
但是,請注意,還沒有被證明不可能從任何好的公鑰/私鑰非對稱金鑰演算法中推斷出私鑰(無論長度如何)從公鑰(或反之亦然)。知情人士認為,對於“好”的非對稱演算法,目前不可能(也許永遠不可能);沒有公開展示出任何一種可行的“伴隨金鑰推斷”技術。還要注意,一些非對稱金鑰演算法已被完全破解,就像許多對稱金鑰演算法一樣。使用需要兩個金鑰的演算法並沒有任何特殊的魔法。
事實上,一些廣受尊敬和應用最廣泛的公鑰/私鑰演算法可以被一種或多種密碼分析攻擊破解,因此,與其他加密演算法一樣,使用它們的協議必須精心選擇和實施,以阻止此類攻擊。事實上,如果使用的金鑰長度足夠短,可以進行實際的暴力破解金鑰搜尋,則所有都可以被破解;對於所有使用金鑰的加密演算法來說,這都是固有的,包括對稱和非對稱演算法。
這是那些希望保持通訊安全的人面臨的最基本問題的一個例子;他們必須選擇一個能夠抵禦任何攻擊者攻擊的密碼系統(演算法+協議+操作)。由於無法知道攻擊者是誰,他們可能擁有多少資源,或者密碼分析(或其相關數學)在未來可能會取得什麼進展,使用者只能盡其所能,然後希望。在實踐中,對於精心設計/實施/使用的密碼系統,知情人士認為這已經足夠了,甚至可能足以應對所有(?)未來的攻擊者。區分精心設計/實施/使用的密碼系統和垃圾密碼是那些本身不是專家密碼學家的另一個相當困難的問題。即使對於那些是專家的來說也很難。
現代歷史的回顧
[edit | edit source]近年來,英國政府公佈的秘密檔案顯示,非對稱金鑰密碼學、D-H 金鑰交換以及最著名的公鑰/私鑰演算法(即通常稱為 RSA 演算法)似乎都在英國情報機構中被開發出來,早於迪菲和赫爾曼在 76 年公開宣佈。GCHQ 釋出了檔案,聲稱他們在迪菲和赫爾曼發表論文之前就開發了公鑰密碼學。GCHQ 在 1960 年代和 1970 年代編寫了各種機密檔案,最終導致了與 RSA 加密和迪菲-赫爾曼金鑰交換基本相同的方案,分別在 1973 年和 1974 年。其中一些現在已經出版,發明者(詹姆斯·埃利斯、克利福德·考克斯和馬爾科姆·威廉姆森)已經公開了他們的一些工作。