密碼破譯的主要因素
第一是算法的強(qiáng)度,加密方法分為:RSA算法、四方密碼、替換加密法、換位加密法、回轉(zhuǎn)輪加密法、多碼加密法、換位加密法、夾帶法、Kasiski法、三分密碼、仿射密碼、波雷費(fèi)密碼、RC5、ADFGVX密碼、希爾密碼、維熱納爾方陣、柵欄加密法、埃特巴什碼、針孔加密法。例如:哈希算法將任意長度的二進(jìn)制值映射為固定長度的較小二進(jìn)制值,這個(gè)小的二進(jìn)制值稱為哈希值。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個(gè)字母,隨后的哈希都將產(chǎn)生不同的值。要找到散列為同一個(gè)值的兩個(gè)不同的輸入,在計(jì)算上是不可能的。消息身份驗(yàn)證代碼 (MAC) 哈希函數(shù)通常與數(shù)字簽名一起用于對數(shù)據(jù)進(jìn)行簽名,而消息檢測代碼 (MDC) 哈希函數(shù)則用于數(shù)據(jù)完整性。其中具體算法內(nèi)容屬于數(shù)學(xué)專業(yè),如有興趣可以去網(wǎng)上查找及相關(guān)書籍查找。
第二個(gè)是密鑰。數(shù)據(jù)的保密程度直接與密鑰的保密程度相關(guān),注意區(qū)分密鑰和算法,算法不需要保密,被加密的數(shù)據(jù)是先與密鑰共同使用,然后再通過加密算法。密匙是核心,算法是游戲規(guī)則,密鑰的長度以“位”為單位,根據(jù)加密和解密的應(yīng)用程序,在密鑰的長度上加上一位則相當(dāng)于把可能的密鑰的總數(shù)乘以二倍,簡單的說構(gòu)成一個(gè)任意給定長度的密鑰的位的可能組合的個(gè)數(shù)可以被表示為2的n次方,這兒的n是一個(gè)密鑰長度,因此,一個(gè)40位密鑰長度的配方將是2的40次方或萬億種可能的不同的鑰,與之形成鮮明對比的是現(xiàn)代計(jì)算機(jī)的速度。
破譯密文最簡單的方法,就是嘗試所有可能的鑰匙組合。假設(shè)破譯者有識(shí)別正確解密結(jié)果的能力,經(jīng)過多次密鑰嘗試,最終會(huì)有一個(gè)鑰匙讓破譯者得到原文,這個(gè)過程就稱為密鑰的窮盡搜索。也是最原始的方法,現(xiàn)在通過計(jì)算機(jī)來進(jìn)行窮舉破譯,破譯時(shí)間取決計(jì)算機(jī)的運(yùn)算速度。
在不知其鑰匙的情況下,利用數(shù)學(xué)方法破譯密文或找到鑰匙的方法,稱為密碼分析(Cryptanalysis)。密碼分析有兩個(gè)基本的目標(biāo):利用密文發(fā)現(xiàn)明文;利用密文發(fā)現(xiàn)鑰匙。根據(jù)密碼分析者破譯(或攻擊)時(shí)已具備的前提條件,通常將密碼分析攻擊法分為4種類型。
(1)惟密文破解(Ciphertext-only attack)。在這種方法中,密碼分析員已知加密算法,掌握了一段或幾段要解密的密文,通過對這些截獲的密文進(jìn)行分析得出明文或密鑰。惟密文破解是最容易防范的,因?yàn)楣粽邠碛械男畔⒘孔钌。但是在很多情況下,分析者可以得到更多的信息。如捕獲到一段或更多的明文信息及相應(yīng)的密文,也是可能知道某段明文信息的格式。
(2)已知明文的破譯(Known-plaintext attack)。在這種方法中,密碼分析員已知加密算法,掌握了一段明文和對應(yīng)的密文。目的是發(fā)現(xiàn)加密的鑰匙。在實(shí)際使用中,獲得與某些密文所對應(yīng)的明文是可能的。
(3)選定明文的破譯(Chosen-plaintext attack)。在這種方法中,密碼分析員已知加密算法,設(shè)法讓對手加密一段分析員選定的明文,并獲得加密后的密文。目的是確定加密的鑰匙。差別比較分析法也是選定明文破譯法的一種,密碼分析員設(shè)法讓對手加密一組相似卻差別細(xì)微的明文,然后比較他們加密后的結(jié)果,從而獲得加密的鑰匙。
(4)選擇密文攻擊(Chosen-ciphertext attack)。密碼分析者可得到所需要的任何密文所對應(yīng)的明文(這些明文可能是不明了的),解密這些密文所使用的密鑰與解密待解的密文的密鑰是一樣的。它在密碼分析技術(shù)中很少用到。
上述四種攻擊類型的強(qiáng)度按序遞增,如果一個(gè)密碼系統(tǒng)能抵抗選擇明文攻擊,那么它當(dāng)然能夠抵抗惟密文攻擊和已知明文攻擊。