前言
自古以來,由於各種需要例如:戰爭,所以需要各種加密的方式來傳遞訊息以防止機密資訊的洩漏,經過幾百年的演變逐漸演變成現今成熟的各種密碼學。
今天的主題會跟簡單介紹密碼學的歷史跟由來。
中世紀
1467年阿伯提約發明了多字母加密法,阿伯提約的創新在於他為訊息的不同部分使用了不同的代碼,並且發明了可能是第一個自動加密器——一個利用轉輪來實現他部分想法的裝置。
多字母加密法最典型的例子是維吉尼亞加密法,這種加密法通過重複使用一個關鍵字來加密訊息,而選擇哪個字母取代原始字母則取決於當前使用的關鍵字字母。
儘管如此,多字母加密法仍然在一定程度上會受到頻率分析法的攻擊,不過這種攻擊方法直到19世紀中期才由查爾斯·巴貝奇發現。比較近代的著名例子包括中世紀蘇格蘭的瑪麗女王、第一次世界大戰期間德國的齊默爾曼電報,以及第二次世界大戰中的「恩尼格瑪」密碼機。
一戰WW1
1914年8月25日,德國的馬格德堡號小巡洋艦在芬蘭灣擱淺,俄國軍隊搜出了多份德國文件及兩本電碼本,其中一本被送往英國的「40號房」進行密碼分析。同時,無線電的發明使得截獲密信變得十分容易。隨著第一次世界大戰爆發,德國通往美國的電纜被剪斷,迫使德國借用美國的海底電纜發電報到華盛頓,然而這些電報必須經過英國。
1917年1月17日,德國發給墨西哥的齊默爾曼電報被「40號房」成功截獲。經過分析,密電內容於2月23日被破解,揭示了德國的計劃:他們將於1917年2月1日展開「無限制潛艇戰」,對包括中立國在內的所有海上商船進行攻擊。為了阻止美國因此參戰,德國提議墨西哥入侵美國,並承諾幫助墨西哥奪回得克薩斯、新墨西哥和亞利桑那三州。此外,德國還希望墨西哥能說服日本一起對美國發動攻擊,並承諾提供軍事和資金援助。
齊默爾曼電報的內容被公開後,激起了美國的強烈反應,最終於4月16日對德國宣戰。
二戰WW2
德國從第一次世界大戰中吸取教訓,開始發展用機械取代手動的加密方法。亞瑟·雪畢伍斯(Arthur Scherbius)發明了「恩尼格瑪密碼機」,這款機器最初被設計用於軍事和商業用途。「恩尼格瑪」由鍵盤、編碼器和燈板組成,其核心是三組編碼轉輪,加上接線板和其他配件,共提供了超過一億億種不同的加密可能性。1925年,「恩尼格瑪」開始批量生產,20年內,德國軍方購買了超過3萬台「恩尼格瑪」,並藉此使英國的「40號房」一度陷入困境,成為德國在二戰期間的關鍵工具。
波蘭因位於德國東部和俄國西部,一直處於威脅之中,因此成立了波蘭密碼局(Biuro Szyfrow)以獲取情報。波蘭從間諜漢斯-提羅·施密德(Hans-Thilo Schmidt)處獲得了關於「恩尼格瑪」的情報,並由年輕的數學家馬里安·雷耶夫斯基解讀。雷耶夫斯基花了一年時間編纂了「恩尼格瑪」的解密目錄,並於1930年代發明了「炸彈」(bomba)機器,逐步掌握了破解「恩尼格瑪」的技術。
然而,1938年12月,德國加強了「恩尼格瑪」的安全性,使波蘭無法再破解其密碼。「恩尼格瑪」成為希特勒閃電戰的重要工具,每天變換的加密設置維持了德軍快速且強大的攻擊力。1939年4月27日,德國撤銷了與波蘭的互不侵犯條約,波蘭隨後決定將「炸彈」的技術分享給英國和法國,聯手破解新的「恩尼格瑪」。1939年9月1日,德國入侵波蘭,二戰爆發。在獲得波蘭的解密技術後,英國加強了「40號房」的力量,除了原有的語言學家和人文學者外,還引入了數學家和科學家,並成立了政府代碼暨密碼學校(Government Code and Cipher School),在五年內員工人數增至7000人。
1940至1942年間,英國與德國之間進行了激烈的加密與解密拉鋸戰,成功破解的密碼為盟軍提供了許多寶貴情報。例如,1940年,英國獲得了德軍進攻丹麥和挪威的作戰計劃,以及在不列顛戰役中提前得知了德國的空襲計劃,從而避免了許多危機。然而,「恩尼格瑪」並未被完全破解,且由於「恩尼格瑪」網絡龐大,德國在大西洋戰役中一直占據上風。最終,英國在「順手牽羊」行動中從德國潛艇上繳獲了「恩尼格瑪」的密碼簿,成功破解了「恩尼格瑪」密碼。為避免德國察覺並再次更改密碼,英國使用各種虛假手段掩蓋了這一突破,並成功摧毀了德國的補給線,縮短了大西洋戰役的持續時間。
演變到現代
第二次世界大戰結束後,計算機和電子學的進步促進了更為複雜的加密技術的發展。計算機能夠加密任何形式的二進位資料,不再局限於書寫文字,這使得以語言學為基礎的破密術失去了效用。如今,大多數計算機加密技術在二進位字串上操作,與經典密碼學直接作用於字母數字的方式有所不同。然而,計算機同時也推動了破密分析技術的發展,這在一定程度上抵消了某些加密方法的優勢。不過,優良的加密法仍然保持領先地位,通常這些加密方法既高效(快速且資源使用少),又難以破解,因為破解它們需要的資源級數遠超出加密所需。
雖然頻率分析是一種有效的破密技術,但實際上,加密方法通常仍然有用。要破解一則訊息,除了頻率分析外,還需要知道所使用的加密法,這促使了諜報、賄賂、竊盜或背叛等行為的發生。直到19世紀,學者們才意識到加密算法本身並非可靠的防護。實際上,適當的密碼學機制(包括加密和解密方法)應該在敵人知道所使用的算法的情況下仍然保持安全。對於好的加密法來說,金鑰的保密性應足以保障資料的機密性。這一原則最早由奧古斯特·柯克霍夫(Auguste Kerckhoffs)提出,並被稱為「柯克霍夫原則」。信息理論的奠基人克勞德·香農(Claude Shannon)後來重申了這一點,提出「敵人知道系統」的理念。
現代密碼學的大量公開學術研究始於1970年代中期,美國國家標準局(現稱國家標準技術研究所)制定了數位加密標準(DES),惠特菲爾德·迪菲(Whitfield Diffie)和馬丁·赫爾曼(Martin Hellman)發表了開創性的論文,並公開了RSA算法。自此,密碼學成為通信、計算機網絡和計算機安全等領域的重要工具。許多現代密碼技術基於特定計算問題的困難度,例如因數分解問題或離散對數問題。許多加密技術的安全性可被證明只要這些計算問題無法被有效解決,加密就仍然是安全的。除了像一次性密碼本這樣的著名例外,這類證明是偶然的而非決定性的,但目前是可用的最好的方法。
密碼學算法與系統設計者不僅要了解密碼學的歷史,還必須考慮未來的發展。例如,不斷增長的計算機處理速度將提高暴力破解攻擊的速度,而量子計算的潛在影響已成為部分密碼學家關注的焦點。
參考資料
1.密碼學維基百科:https://zh.wikipedia.org/zh-hant/密码学
2.ChatGPT:https://openai.com/chatgpt/