密码学
维基百科,自由的百科全书
密码学(其在西歐語文中之名稱源於希腊语kryptós,“隐藏的”, 和gráphein,“书写”),传统意义上来说,是研究如何把信息转换成一种隐蔽的方式并阻止其他人得到它。它並不是將信息隱藏,而是令其他人沒辦法理解當中的意思。它的程序稱為加密(encryption),是把信息轉譯成無法理解的文字或符號,並依據發信人和收信人之間的協定規則來把信息轉換。在过去,密码学被用在重要的交流活动中来确保隐蔽性,如在间谍和反间谍之间,或外交官和总部联系之间等。在近几十年,密码学被用在越来越广的场合;它已经成为安全工程学的基础工具。密码学是跨学科科目,从很多领域衍生而来:它可以被看作是信息理论,却使用了大量的数学领域的工具,众所周知的如数论和有限数学。密码学也可以说是工程学的一个分支,不同的是它必须应对一些活动频繁的,高度智慧的,有恶意的敌人的攻击(见密码工程学和安全工程学)。
至於把信息收藏的掩飾性保密通訊法則稱為隐写术(steganography,或称隱匿法),源於希臘語steganos 「掩飾的」書寫。例如我們使用隱形墨水寫信,或者把字條陷入月餅當中秘密傳遞,都屬於隐写术。其他相关领域如通讯分析,主要研究通讯的方式(如谁在和谁交流、如何交流、何时)。
目录 |
[编辑] 术语
原始的信息,也就是需要被密码保护的信息,被称为明文。加密是把原始信息转换成不可读形式(术语是:密文, 或,偶尔,密码)的过程。解密是加密的逆过程,从加密过的信息中得到原始信息。cipher是加密和解密时使用的算法。加密和解密运行过程通常是由一个密匙决定的;一些秘密的信息决定了如何产生加密信息。加密协议具体定义了如何使用加密解密算法来解决特定的任务。一系列的协议,密码,密匙管理,用户定义行为加在一起被称为密码系统;这是终端用户如何交流(如PGP 或 GPG)的工具。
通常来说,“编码”和“密码”是相等的。在密码学领域,然而,这个术语却有一个特定的技术意思:“编码”是传统密码学的方法,也就是用更少的字来替换更多的原始字节,典型的是字或者段落(如“苹果派”(apple pie)替换“黎明时的进攻”(attack at dawn))。相反,经典密码学通常替换或重新安排字母顺序(如“黎明时的进攻”(attack at dawn)变成了“buubdl bu ebxo”)。编码的秘密信息一般用编码大全(codebook)指定。
研究如何破解密码学的科学称为密码分析。密码学和密码分析常常合在一起被称为“密码”(cryptology),虽然“密码学”也有这种广泛的意思。这两种术语对于该领域来说都是被认可的,并且都有很长的历史。很多人常常使用简称“Crypto”,虽然不是正规术语。
在英语中,“cipher”一词也可拼写为“cypher”;类似的如“ciphertext”拼为“cyphertext”等等。两种拼法在英语中都有很长时间了,偶尔在两种拼法的拥护者中甚至会造成争执。
[编辑] 密码学与密码分析的历史
- 參見:密码学史
密码学有悠久且多姿多彩的歷史。
最早的秘密书写只須紙筆,現在稱為經典密碼學(classical cryptography)。其兩大類別為置換加密法,將字母的順序重新排列;替換加密法,將一組字母換成其他字母或符號。經典加密法的資訊很易受統計的攻破,資料越多,解破就更容易,使用分析頻率就是好辦法。經典密碼學現在仍未消失,經常出現在智力遊戲之中。在二十世纪早期,包括转轮机的一些机械设备被发明出来用于加密,其中最著名的 是用于第二次世界大战的密码机Enigma. 这些机器产生的密码相当大得增加了密码分析的难度。比如针对Enigma各种各样的攻击,在付出了相当大的的努力后才得以成功。
其實在公元前,秘密書信已用於戰爭之中。「史學之父」希羅多德(Herodotus)1的《歷史》(The Histories) 當中記載了一些最早的秘密書信故事。公元前五世紀,希臘城邦為對抗奴役和侵略,與波斯發生多次衝突和戰爭。於前480年,波斯秘密結了強大的軍隊,準備對雅典 (Athens) 和斯巴達 (Sparta) 發動一次突襲。希臘人狄馬拉圖斯(Demaratus)在波斯的蘇薩(Susa) 城裏看到了這次集結,便利用了一層蠟把木板上的字遮蓋住,送往並告知了希臘人波斯的圖謀。最後,波斯海軍覆沒於雅典附近的沙拉米斯灣(Bay of Salamis)。
《歷史》上的第一件軍用密碼裝置也是公元前五世紀的斯巴達密碼棒(Scytale),它採用了密碼學上的移位法(transposition)。移位法是將信息內字母的次序調動,而密碼棒利用了字條纏繞木棒的方式,把字母進行位移。收信人要使用相同直徑的木棒才能得到還原的信息。 中國兵書《六韜.龍韜》2也記載了密碼學的運用,其中的《陰符》3和《陰書》便記載了周武王問姜子牙關於征戰時與主將通訊的方式:
太公曰:「主與將,有陰符,凡八等。有大勝克敵之符,長一尺。破軍擒將之符,長九寸。降城得邑之符,長八寸。却敵報遠之符,長七寸。警眾堅守之符,長六寸。請糧益兵之符,長五寸。敗軍亡將之符,長四寸。失利亡士之符,長三寸。諸奉使行符,稽留,若符事聞,泄告者,皆誅之。八符者,主將祕聞,所以陰通言語,不泄中外相知之術。敵雖聖智,莫之能識。」
武王問太公曰:「… 符不能明;相去遼遠,言語不通。為之奈何?」 太公曰:「諸有陰事大慮,當用書,不用符。主以書遺將,將以書問主。書皆一合而再離,三發而一知。再離者,分書為三部。三發而一知者,言三人,人操一分,相參而不相知情也。此謂陰書。敵雖聖智,莫之能識。」
陰符是以八等長度的符來表達不同的消息和指令,可算是密碼學中的替代法(substitution),把信息轉變成敵人看不懂的符號。至於陰書則運用了移位法,把書一分為三,分三人傳遞,要把三份書從新拼合才能獲得還原的信息。
除了應用於軍事外,公元四世紀婆羅門學者跋舍耶那(Vatsyayana) 所書的《愛欲經》(Kama-Sutra)4 中曾提及到用代替法加密信息。書中第45項是秘密書信 (mlecchita-vikalpa) ,用以幫助婦女隱瞞她們與愛郞之間的關係。其中一種方法是把字母隨意配對互換,如套用在羅馬字母中,可有得出下表:
A <-> Z E <-> V I <-> R M <-> N B <-> Y F <-> U J <-> Q C <-> X G <-> T K <-> P D <-> W H <-> S L <-> O
比較近代的著名的例子可數中世紀蘇格蘭的瑪麗女王(Mary Stuart, Queen of Scotland)、第一次世界大戰德國的齊默爾曼電報 (Zimmerman Telegram) 和第二次世界大戰的「謎」(ENIGMA)。
公元1578年,瑪麗女王被伊莉莎白女王軟禁。在1586年1月6日瑪麗收到一批秘密信件,得悉了安東尼.貝平頓 (Anthony Babington) 的計劃。安東尼和幾個同黨在密謀營救瑪麗,並計劃行刺伊莉莎白女王。他們的信件被轉成密碼,並藏在啤酒桶的木塞以掩人耳目。但卻被英格蘭大臣華興翰 (Walsingham) 的從中截獲、複製、還信入塞,並由菲力普.馬尼斯 (Philip van Marnix) 破解信件。信件破解後,華興翰使菲力普摹擬瑪麗的筆跡引誘安東尼行動,把叛逆者一網成擒,審判並處死瑪麗女王。 問題在於錯誤地使用脆弱的加密法會製造虛假的安全錯覺:安東尼對他們的通訊方式太過有信心,令他的加密方法過於簡單,輕易被敵人破解。
1914年8月25日德國的馬格德堡巡洋艦(Magdeburg)在芬蘭灣 Gulf of Finland 擱淺,俄國搜出多份德國的文件及兩本電碼本,一本被送往英國的「40號房間」(Room 40)進行密碼分析。同時,無線電的發明亦使得截獲密信易如反掌。由於德國通往美國的電纜在大戰開始時被剪斷了,德國借用了美國的海底電纜發電報到華盛頓,但電纜經過了英國,1917年1月17日齊默爾曼電報被「40號房間」截獲。同年2月23日,密電內容揭開了,內容指德國將在1917年2月1日開始“無限制海戰”,用潛艇攻擊戰時包括中立國在內的海上商運船。為了阻止美國因此參戰,德國建議墨西哥入侵美國,並承諾幫助墨西哥從美國手中奪回得克薩斯、新墨西哥和亞利桑那三州。德國還要墨西哥說服日本共同進攻美國,德國將提供軍事和資金援助。 密電內容揭開後,美國在4月16日向德國宣戰。
德國汲取了第一次大戰的教訓,發展出以機械代替人手的加密方法。雪畢伍斯 (Arthur Scherbius) 發明了「謎」 (ENIGMA),用於軍事和商業上。「謎」主要由鍵盤、編碼器和燈板組成。三組編碼器合、加上接線器和其他配件,合共提供了種一億億種編碼的可能性。 1925 年,「謎」開始有系列生產,在20年間,德國軍方購入了3萬多台「謎」,亦難倒了「40號房間」,成為德國在二次大戰的重要工具。 波蘭位於德國東面,俄國的西面,一直受到威脅,故成立了波蘭密碼局 (Biuro Szyfrow) 以獲取情報。波蘭從漢斯-提羅.施密德(Hans-Thilo Schmidt)處得到諜報,由年輕的數學家馬理安.瑞傑斯基(Marian Rejewski)解譯,用了1年時間編纂目錄,並在1930年代製造了「炸彈」 (bombes) ,漸漸掌握了解「謎」的技術。 1938年12月德國加強了「謎」的安全性,令波蘭失去了情報。「謎」成為了希特勒(Hitler)閃電戰略的核心,每天更改的加密排列維繫了強大快速的攻擊。 1939年4月27日德國撤銷與波蘭的互不侵犯條約,波蘭才不得不把決定「炸彈」這個構想與英、法分享,合力破解新的「謎」。 1939年9月1日,德國侵擊波蘭,大戰爆發。 英國得到了波蘭的解密技術後,40號房間除了原有的語言和人文學家,還加入了數學家和科學家,後來更成立了政府代碼曁密碼學校 (Government code and Cipher School),5年內人數增至7000人。 1940至1942年 是加密和解碼的拉鋸戰,成功的解碼提供了很多寶貴的情報。例如在1940年得到了德軍進攻丹麥和挪威的作戰圖,以及在不列顚戰役 (Battle of Britain) 事先獲得了空襲情報,化解了很多危機。但「謎」卻並未被完全破解,加上「謎」的網絡很多,令德國一直在大西洋戰役中佔上風。 最後英國在「順手牽羊」的行動中在德國潛艇上俘獲「謎」的密碼簿,破解了「謎」。英國以各種虛假手段掩飾這件事,免得德國再次更改密碼,並策劃摧毀了德國的補給線,縮短了大西洋戰役。
密碼分析學最早見於阿拉伯津帝(al-Kindi) 的作品,他提及到如果要破解加密信息,可在一篇至少一頁長的文章中數算出每個字母出現的頻率,然後在加密信件中也數算出每個符號的頻率,然後互相對換。是頻率分析法的前身。 這種分析法除了被用在破解密碼法外,也常用於考古學上。在破解古埃及象形文字 (Hieroglyphs) 時便運用了這種解密法。
[编辑] 现代密码学
[编辑] 对称密匙密码学
鑰匙的概念去加密和解碼,可分成對稱金鑰(Symmetric Key)密碼系統、非對稱金鑰 (Asymmetric Key) 密碼系統、數位簽章(Digital Signature) 和押碼(Message Authentication Code ; MAC)。其簡化了的概念可從電話通訊中解釋:比如愛麗斯要與巴布通電話,但要防止伊芙竊聽,愛麗斯可在音訊離開電話之前加入雜音(noise),令伊芙只能得到一些噪音,但噪音在巴布的電話中卻能被移走,使愛麗斯和巴布可成功對話。 把噪音還原看似沒有可能,但在現實中卻可以做得到。只不過,那些是特定的噪音,也就是金鑰(key)。
[编辑] 公匙密码学
[编辑] 密码分析
密码分析家可能是密码学家的天然敌人,在某种程度上这是有道理的:您可以从密码学史中理解该说法。然而,把两者理解为互补是很好的选择:只有彻底地理解了密码分析学才可以创造安全的密码系统。
现在有很多种密码分析攻击方式,并且很容易把它们归类。一个区别就是攻击者如何可以得到并利用信息,如,密码分析家只可以得到秘文吗?他可以得到或猜出对应的原文吗?甚至:他可以选择任意的原文用来加密吗?(见秘文类,已知明文类 以及 选择明文类)。这些例子都把密码过程看成是一个抽象的黑盒,还有一些攻击是基于直接运行密码学源程序。如果一个密码分析家可以得到,例如,时序或功耗损失,他就有可能破解用常规分析方法无法破解的密码。
如果一个密码系统使用密钥或口令,那么就有可能受到穷举法的攻击。线性分析法和差分分析法是常用的攻击對稱鑰算法(symmetric key algorithm)的方法。当密码学依靠数学上的难解问题时,常常用在非對稱鑰算法中,一些算法如因式分解就是潜在的攻击手段。
[编辑] 密码学基础
[编辑] 密码协议
[编辑] 与密码学有关的法律问题
[编辑] 安全通讯
- 参看:信息安全
密码学通常用来保证安全的通讯. 我们希望通过安全通讯来获得以下四个特性:
- 保密性:只有应该收到的接收者能够解密码,其它人拿到文件也无法获得里面的信息。
- 数据完整性: 接收者可以确定信息在传送的过程中有无更改。
- 认证性: 接收者可以认出发送者,也可以证明声称得发送者确实是真正的发送者。
- 不可抵赖性:发送者无法抵赖曾经送出这个信息。
密码学能提供有效的机制来达到以上四个目标. 然而, 有些目标并不总是必要的, 有时还是不切实际的. 例如消息的发送者可能希望具有匿名性. 此时, 不可抵赖性就不合适了