密碼學(Cryptology)的歷史
“cryptology” 和 “cryptography” 兩個詞在現代的文獻中常常是無差別混用的,這就把對它們實際意義的混淆延伸到了語義學中。實際上,這幾個不同的詞語最好這樣解釋:
Cryptology(密碼學) —— 對保密技術的藝術性 以及/或者 密碼系統科學性的研究
Cryptography(密碼設計學)—— 設計密碼系統來保密的實用方法
Cryptoanalysis(密碼學分析)—— 致力于發現無需得知密鑰或算法就能從密文中反推出明文的漏洞
譯者注:正如作者所說,在現代的文獻中,“cryptology” 和 “cryptography” 基本上是沒有差別的了,都是 “密碼學” 的意思,而且,密碼學雖然脫胎于加密方法研究,但現代的密碼學早已不止于研究加解密,而是延伸到了研究如何保障通信中的 “機密性”、“身份同一性” 等屬性上。因此,可以說,作者這里的定義即使不算過時,也至少是窄化了密碼學。不過,出于理解作者原意的需要,對下文中的相應詞語,我們仍沿用此處的翻譯。
本文的絕大部分篇幅是在解釋 “Cryptography(密碼設計學)”,也就是今時今日的密碼學實踐,也希望讀者能意識到這幾個詞的含義和區別。
就其本身而言,密碼學作為一種科學的研究已經存在了很多年,已知最早的一個密碼設計學的例子是在一段刻于公元前 1900 年的銘文,是在埃及貴族 Khnumhotep 二世墓地的主墓室里發現的。那個雕刻者到處使用一些奇怪的符號來代替更常見的符號。不過目的似乎并不是隱藏信息,只是為了改變其形式,讓它看起來更高貴一些。
在羅馬帝國的鼎盛時期(公元前 100 年),Julius Caesar(凱撒大帝)也因使用加密技術向前線將軍傳送消息而聞名。這種字符替換型加密方法(cipher)被稱為 “凱撒密碼”,可能是文獻中最常提到的人類曾用過的加密方法。(所謂 “cipher”,就是用來加密或者解密的算法)。所謂 “字符替換型加密方法”,就是把明文(我們想要加密的消息)中的每個字母都換成另一個字母,形成密文(即被編碼過的消息)。凱撒所用的方法是把每個字母位移三位,比如,“A” 會被換成 “D”,“B” 會被換成 “E”,以此類推(都是換成該字母后面第三個字母)。相應地,最后的幾個字母會被換成開頭的字母,比如 “X” 會被換成 “A”。
在第二次世界大戰期間,美國海軍從納瓦霍人(Navajo)中招募并訓練了許多熟練使用納瓦霍語的人。從編碼消息的角度來看,這是個絕妙的辦法,因為很少有納瓦霍人以外的人學過怎么說這種語言,而且當時還沒有用納瓦霍語出版的書。但是除了詞語之外,納瓦霍人的口語并不是十分復雜(按密碼設計學的標準來看),一個母語為納瓦霍語的人再加上一個訓練有素的密碼學家,合作起來完全可以破解這套密碼。日本人曾經有過一次機會,就是在 1942 年 “巴丹死亡行軍(Bataan Death March)” 期間他們在菲律賓抓住了 Joe Kieyoomia。Joe 是美國海軍的一位納瓦霍中士,但他并不是密語播報員,只負責翻譯無線電消息。只不過,因為他沒有參與過密語訓練,這些詞語是什么意思他一點也不懂。當他說自己不能解讀這些消息時,日本人就開始嚴刑拷打他。因此,日本陸軍和海軍從來沒有破譯過這些密語。
再到 1970 年代,IBM 發現他們的客戶需要某種形式的加密手段,所以他們成立了一個密碼學小組,由 Horst-Feistel 領頭。他們設計出了一種加密算法叫 “Lucifer”。1973 年,美國國家標準局(現在叫做國家技術與標準局,NIST)放出話來,希望大家能提議一種夠格成為國家標準的數據加密方法。他們顯然已經意識到,自己買了很多并沒有什么密碼學基礎的商業產品。Lucifer 最終被接受了,因此叫做 “DES(數據加密標準)”。1997 年以后,DES 被窮舉式搜索攻擊攻破。DES 的主要問題在于加密密鑰的位數太小。隨著計算機運算力的增加,通過暴力窮舉所有可能的密鑰組合來破解密文慢慢變成了一種可行的辦法。
在 80 年代,大家幾乎只有一個選擇,就是 DES。今天的情形已經大不相同了,有一大堆更健壯、更快,設計也更好的算法可供選擇。問題已經變成了你如何厘清這些選擇。
1997 年,NIST 再次征求新的加密算法提案,最終收到了 50 份提案。2020 年,NIST 接受了 “Rijndael” 算法,并命名為 “AES”,高級加密標準。
-
密碼
+關注
關注
8文章
190瀏覽量
30498 -
加密算法
+關注
關注
0文章
215瀏覽量
25547
發布評論請先 登錄
相關推薦
評論