複製鏈接
請複製以下鏈接發送給好友

密碼分析學

鎖定
密碼分析學(cryptanalysis)指的是研究密碼、密文或密碼系統(即秘密代碼系統),着眼於找到其弱點,在不知道密匙和算法的情況下,從密文中得到原文的學科。
中文名
密碼分析學
外文名
cryptanalysis

密碼分析學定義

密碼分析學(英語:cryptanalysis,來源於希臘語kryptós,即隱藏,以及analýein,即解開),是一門研究在不知道通常解密所需要的秘密信息的情況下對加密的信息進行解密的學問。通常,這需要尋找一個秘密的鑰匙。用不是很正規的話來説,這就是所謂的破解密碼。
密碼分析這個詞有時也被用來指廣義上的繞開某個密碼學算法或密碼協議的嘗試,而不僅僅是針對加密算法。但是,密碼分析通常不包括並非主要針對密碼算法或協議的攻擊,如賄賂、拷打、入室搶劫、鍵盤記錄器,等等。儘管這些攻擊方式是計算機安全領域裏的重要考慮因素,而且通常比傳統的密碼分析更加有效。
雖然密碼分析的目標在密碼學的歷史上從古至今都一樣,實際使用的方法和技巧則隨着密碼學變得越來越複雜而日新月異。密碼學算法和協議從古代只利用紙筆等工具,發展到第二次世界大戰時的恩尼格瑪密碼機(又稱謎,德語:Enigma),直到的基於電子計算機的方案。而密碼分析也隨之改變了。無限制地成功破解密碼已經不再可能。事實上,只有很少的攻擊是實際可行的。在上個世紀70年代中期,公鑰密碼學作為一個新興的密碼學分支發展起來了。而用來破解這些公鑰系統的方法則和以住完全不同,通常需要解決精心構造出來的純數學問題。其中最著名的就是大數的質因數分解

密碼分析學歷史

主條目:密碼學史密碼分析和密碼學是共同演化的。這從密碼學史中可以看得很明顯。總是有新的密碼機被設計出來並取代已經被破解的設計,同時也總是有新的密碼分析方法被髮明出來以破解那些改進了的方案。事實上,密碼和密碼分析是同一枚硬幣的正反兩面:為了創建安全的密碼,就必須考慮到可能的密碼分析。

密碼分析學經典密碼分析

儘管密碼分析這個詞是晚近出現的(1920年由William Friedman確立),但破解密碼和密碼機的方法卻已經存在很久了。世界上最早的破解密碼方法的文字記錄可以追溯到九世紀阿拉伯通才Al Kindi所著《破解密碼信息》(A Manuscript on Deciphering Cryptographic Messages),這篇文章論述了一個頻率分析的方法。
頻率分析是破解經典密碼的一個基本方法。在自然語言裏,字母表裏的有些字母比其它的字母出現得更頻繁。例如,在英語裏,字母E很有可能是在任何文字樣本里出現頻率都最高的字母。同樣的,TH這兩個字母連起來是最有可能出現的字母對。頻率分析法假設密碼沒有隱藏這樣的統計信息。例如,在簡單的替換密碼中,每個字母只是簡單地被替換成另一個字母,那麼在密文中出現頻率最高的字母就最有可能是E。
頻率分析法除了需要用到統計學外,也需要用到語言學。但隨着密碼算法的日漸複雜,密碼分析也漸漸變得主要依賴數學方法。這個改變在第二次世界大戰時最為明顯。那時,為了破解軸心國的密碼,需要發展更加複雜的數學方法。而且,自動計算也頭一次被應用到密碼分析中,如密碼炸彈(Bomba)以及最早的計算機之一,巨人計算機(Colossus)。

密碼分析學現代密碼分析

儘管第二次世界大戰時計算機的運用使得密碼分析更加容易,這同時也使得新的密碼學方案的複雜程度上升了好幾個數量級。總體來説,破解密碼在現代比起只用紙和筆的年代來説要困難得多了。現在看來,似乎密碼學對純密碼分析來説已經佔了上風。美國曆史學家卡恩(David Kahn)這樣説道:“今天,由數百個商家提供的很多密碼系統都不能被已知的密碼分析方法來破解。確實,在這樣的密碼系統中,即使用選擇明文攻擊,也就是攻擊者可以選擇明文並比對相應的密文,也不能找出可以用來解開其它加密信息的鑰匙。從某種意義上來説,密碼分析已經死了。但是,故事還沒有結束。密碼分析也許是死了,但是,打個不恰當的比方,其實條條大道通羅馬。”(2002年11月1日在美國國家安全局50週年紀念會上的講話)。卡恩接着又提到,其它的攻擊方式的可能性增加了。例如攔截攻擊,竊聽,邊信道攻擊,以及用量子計算機來代替傳統計算機做密碼分析。
卡恩對於密碼分析所作的論斷也許還為時過早。不安全的密碼並沒有絕跡,美國國家情報機構的密碼分析方法也沒有公開過。在學術界,新的密碼在不斷地被設計出來,也經常地被破解。1984年,Madryga 分組密碼被一種唯密文攻擊破解。1998年,原本提出來要取代DES標準加密算法的分組密碼 FEAL-4,也因為被學術界發現了很多類似而且實際可行的攻擊而消亡。在工業界,很多密碼也被發現有漏洞。例如,在手機中使用的A5/1,A5/2以及CMEA算法,用一般的計算工具可以在幾小時,幾分鐘內,甚至是實時地被破解。2001年,用來保護無線Wi-Fi網絡的有線等效加密協議(或稱無線加密協議,即WEP)也可以用相關鑰匙攻擊來破解。

密碼分析學密碼分析後果

無疑,成功的密碼分析影響了歷史的進程。能夠看懂別人本以為是秘密的想法或計劃,這種能力可以成為決定性的優勢。在戰爭期間尤其如此。例如,在第一次世界大戰中,成功地破解齊默爾曼電報是促使美國參戰的直接原因。在第二次世界大戰中,對德國密碼的成功破解,包括恩尼格瑪密碼機(Enigma)和洛侖茲密碼機(Lorenz Cipher),其後果從使歐洲戰場早幾個月結束,到對整個戰爭起決定性作用,各種説法都有(參見ULTRA)。美國也從對日本的PURPLE密碼的密碼分析中受益(參見MAGIC)。
一些國家的政府很早就已經意識到了密碼分析對於情報收集的重要性,不管是對於軍事還是外交都一樣。這些國家還建立了專門破解密碼的機構,如英國政府通訊總部(GCHQ),以及美國國家安全局(NSA)。這些機構在當今都非常活躍。2004年,有報道説美國成功破解了伊朗的密碼。但這是純粹的密碼分析還是有其它因素,還不清楚 [1] 

密碼分析學分類

在不知道關於密鑰的任何信息這一情況下,利用各種技術手段,試圖通過密文來得到明文或密鑰的全部信息或部分信息。密碼分析也稱為對密碼體制的攻擊。
按照攻擊者是否對通信作干擾,密碼分析可分為被動攻擊和主動攻擊2類。所謂被動攻擊是指,攻擊者僅是利用截獲的密文及公開的算法,分析明文或密鑰,不對通信作干擾。所謂主動攻擊是指,攻擊者通過對通信線路進行干擾,如引入新的密文,重複傳播舊的密文,替換合法密文等,再對截獲的密文進行分析。
按照攻擊者掌握的知識條件,密碼分析可分為唯密文攻擊、己知明文攻擊、選擇明文攻擊和選擇密文攻擊4類。所謂唯密文攻擊是指,攻擊者只知道一個要攻擊的密文(通常包含消息的上下文)。所謂己知明文攻擊是指,攻擊者知道一些明文/密文對,若一個密碼系統能夠抵抗這種攻擊,合法的接收者就不需要銷燬己解密的明文。所謂選擇明文攻擊是指,攻擊者可以選擇一些明文及對應的密文(公鑰密碼體制必需能夠抵抗這種攻擊)。所謂選擇密文攻擊是指,攻擊者可以選擇一些密文並得到相應的明文。

密碼分析學分析類型

1、強力攻擊
強力攻擊包括查表攻擊,時間-存儲權衡攻擊,字典攻擊以及窮舉搜索攻擊。對於任何一種分組密碼來説,強力攻擊都是適用的。特別地,這種攻擊方法的複雜度僅僅取決於密鑰和分組的長度。更嚴格地講,這種攻擊技術的時間複雜度只取決於分組密碼算法的效率,如存儲大小,密鑰擴展速度,加密和解密的速度等。
2、線性密碼分析
作為一種己知明文攻擊方法,線性密碼分析方法叫的本質思想在於,通過將一個給定的密碼算法有效且線性近似地表示出來以實現破譯。現有密碼分析技術也得到了一定的推廣。利用己知明文,16輪DES系統己可以通過線性密碼分析進行破譯,在某些情況下甚至可以實現唯密文攻擊。針對數據加密標準DES系統的主要攻擊包括強力攻擊手段,差分密碼分析等。就16輪DES密碼系統而言,不管是差分密碼分析還是線性密碼分析方法,需要用到的明文太多,因此效率比較低。為了提高攻擊效率,可以結合差分密碼分析和線性密碼分析技術,即差分-線性密碼分析技術。
3、差分密碼分析
1990年,以色列密碼學家Biham和Shamir提出了差分密碼分析技術。差分密碼分析特別適用於迭代密碼。差分密碼分析的本質思想在於,通過分析相應明文對差值和密文對差值之間的相互影響關係,來得到密鑰的一些比特信息。對於差分密碼分析也有很多推廣,其中比較常見的包括高階差分密碼分析等 [2] 

密碼分析學攻擊類型

不同的密碼分析攻擊有不同的效力,對於實際的密碼系統的威脅也不盡相同。有的時候,對於某個密碼系統的攻擊只是停留在理論上,對於任何實際的密碼系統可能並不適用。這就是所謂的“證書式弱點”(certificational weakness)。現代密碼分析的學術研究結果大部分都屬於這一類。從根本上説,某種攻擊方式在實際中的有效性取決於它對於以下幾個問題給出的答案:
這個攻擊需要何種知識及能力? 通過攻擊可獲得多少新的秘密信息? 這個攻擊需要花多少工夫?(它的計算複雜度為何?)
先驗知識:密碼分析中的情形
在攻擊中,通過觀察或研究目標系統,多少會獲得關於這個系統的信息。隨着能夠獲得信息多少的假設不同,密碼分析的方法也不盡相同。在密碼分析中最基本的一點,就是假設攻擊者能夠知道系統所用的算法。這也就是“敵人瞭解系統”的所謂柯克霍夫原則。這個假設在實際中是合理的。從古至今,有無數的秘密算法最後終為人所知,而其途徑多種多樣,包括間諜,叛變,以及逆向工程。在一些不多見的情況下,密碼機也能夠通過純粹的推演而被重建。例如德國的洛侖茲密碼機(Lorenz Cipher)和日本的PURPLE密碼機,以及其它很多經典密碼。
另外,我們通常用攻擊模式來描述攻擊者可以獲得關於系統信息的方式。攻擊模式包括以下幾種:
唯密文攻擊:攻擊者僅能獲得一些加密過的密文。 已知明文攻擊:攻擊者有一些密文並且知道相對應的明文。 選擇明文攻擊:攻擊者在開始攻擊之前可以選擇一些明文並從系統中獲得相對應的密文。如果攻擊者在攻擊中途可以根據已經獲得的信息選擇新的明文並獲得對應的密文,則稱為適應性選擇明文攻擊。 選擇密文攻擊:攻擊者在開始攻擊之前可以選擇一些密文並從系統中獲得相對應的明文。如果攻擊者在攻擊中途可以根據已經獲得的信息選擇新的密文並獲得對應的明文,則稱為適應性選擇密文攻擊。 相關鑰匙攻擊:與選擇明文(或密文)攻擊類似。不同的是,攻擊者可以得到被兩個不同的鑰匙所加密(或解密)得到的密文(或明文)。攻擊者不知道這兩個鑰匙的數值,但知道這兩個鑰匙之間的關係,比如兩個鑰匙之間相差一個比特。 顯然,這些不同種類的攻擊在實際中可能出現的機會也大不相同。儘管有些攻擊比其它的較為常見,密碼學家在設計算法時通常會採取保守的方式看待安全問題,總是假設最壞的情形。理由是,如果一個算法連不現實的攻擊都可以承受,那麼它自然也可以抵抗實際可行的密碼分析。
事實上,這些假設雖然初看上去不切實際,但其實不然。例如在已知明文攻擊中,密碼分析者很有可能能夠知道或猜出明文的一部分。比方説,一封加密過的信有可能是以“敬啓者”開頭,而一個電腦會話則有可能以“用户名:”開頭。選擇明文攻擊在密鑰密碼中較為少見,但也並非不可能。而在公鑰密碼中,選擇明文攻擊人人都可做到,因為加密用的鑰匙通常是公開或已知的。相關鑰匙攻擊通常只是在理論上的討論,但在實際中也會被用到,例如對WEP的攻擊。
成功密碼分析的類別
對於密碼分析的結果來説,其有用的程度也各有不同。密碼學家Lars Knudsen於1998年將對於分組密碼的攻擊按照獲得的秘密信息的不同分為以下幾類:
完全破解 -- 攻擊者獲得秘密鑰匙。 全局演繹 -- 攻擊者獲得一個和加密和解密相當的算法,儘管可能並不知道鑰匙。 實例(局部)演繹 -- 攻擊者獲得了一些攻擊之前並不知道的明文(或密文)。 信息演繹 -- 攻擊者獲得了一些以前不知道的關於明文或密文的香農信息。 分辨算法 -- 攻擊者能夠區別加密算法和隨機排列。 對於其它類型的密碼學算法,也可以做出類似的分類。 [3] 
參考資料