密碼破解

密碼破譯是指在不知道密鑰的情況下,恢復出密文中隱藏的明文信息的過程。密碼破譯也是對密碼體制的攻擊。成功的密碼破譯能恢復出明文或密鑰,也能夠發現密碼體制的弱點。


密碼破譯技術是指實施密碼破譯過程中常用的各種技術、手段、措施、方法和工具。

在計算機網絡傳輸過程中,除了合法的接收者外,還有非授權者,非授權者通過各種辦法在信息傳輸過程中截取信息(如搭線竊聽、電磁竊聽、聲音竊聽等來取機密信息),因此機密信息在網絡中傳輸通常要進行加密,但有時還是能夠被非授權用戶截獲,通過密碼破譯獲得明文甚至是密鑰,使機密泄露。

密碼破譯的主要因素:

第一是算法的強度,例如,除了嘗試所有可能的密鑰組合之外的任何方法都不能使信息被解密。

第二個因素是密鑰的保密性。數據的保密程度直接與密鑰的保密程度相關,註意區分密鑰和算法,算法不需要保密,被加密的數據是先與密鑰共同使用,然後再通過加密算法。

第三個因素是密鑰長度。密鑰的長度以“位”為單位,根據加密和解密的應用程序,在密鑰的長度上加上一位則相當於把可能的密鑰的總數乘以二倍,簡單的說構成一個任意給定長度的密鑰的位的可能組合的個數可以被表示為2的n次方,這兒的n是一個密鑰長度,因此,一個40位密鑰長度的配方將是2的40次方或萬億種可能的不同的鑰,與之形成鮮明對比的是現代計算機的速度。

通常,密碼破譯方法可以分為以下四類。

密鑰的窮盡搜索

破譯密文最簡單的方法,就是嘗試所有可能的鑰匙組合。假設破譯者有識別正確解密結果的能力,經過多次密鑰嘗試,最終會有一個鑰匙讓破譯者得到原文,這個過程就稱為密鑰的窮盡搜索。

密碼分析

在不知其鑰匙的情況下,利用數學方法破譯密文或找到鑰匙的方法,稱為密碼分析(Cryptanalysis)。密碼分析有兩個基本的目標:利用密文發現明文;利用密文發現鑰匙。根據密碼分析者破譯(或攻擊)時已具備的前提條件,通常將密碼分析攻擊法分為4種類型。

(1)惟密文破解(Ciphertext-only attack)。在這種方法中,密碼分析員已知加密算法,掌握了一段或幾段要解密的密文,通過對這些截獲的密文進行分析得出明文或密鑰。惟密文破解是最容易防範的,因為攻擊者擁有的信息量最少。但是在很多情況下,分析者可以得到更多的信息。如捕獲到一段或更多的明文信息及相應的密文,也是可能知道某段明文信息的格式。

(2)已知明文的破譯(Known-plaintext attack)。在這種方法中,密碼分析員已知加密算法,掌握了一段明文和對應的密文。目的是發現加密的鑰匙。在實際使用中,獲得與某些密文所對應的明文是可能的。

(3)選定明文的破譯(Chosen-plaintext attack)。在這種方法中,密碼分析員已知加密算法,設法讓對手加密一段分析員選定的明文,並獲得加密後的密文。目的是確定加密的鑰匙。差別比較分析法也是選定明文破譯法的一種,密碼分析員設法讓對手加密一組相似卻差別細微的明文,然後比較他們加密後的結果,從而獲得加密的鑰匙。

(4)選擇密文攻擊(Chosen-ciphertext attack)。密碼分析者可得到所需要的任何密文所對應的明文(這些明文可能是不明了的),解密這些密文所使用的密鑰與解密待解的密文的密鑰是一樣的。它在密碼分析技術中很少用到。

上述四種攻擊類型的強度按序遞增,如果一個密碼系統能抵抗選擇明文攻擊,那麽它當然能夠抵抗惟密文攻擊和已知明文攻擊。

其他密碼破譯方法

除密鑰的窮盡搜索和密碼分析外,實際生活中,破密者更可能真對人機系統的弱點進行攻擊,而不是攻擊加密算法本身。

利用加密系統實現中的缺陷或漏洞等都是破譯密碼的方法,雖然這些方法不是密碼學所研究的內容,但對於每一個使用加密技術的用戶來說是不可忽視的問題,甚至比加密算法本身更為重要。常見的方法有:

(1)欺騙用戶口令密碼

(2)在用戶輸入口令時,應用各種技術手段,“窺視”或“偷竊”密鑰內容。

(3)利用加密系統實現中的缺陷。

(4)對用戶使用的密碼系統偷梁換柱。

(5)從用戶工作生活環境獲得未加密的保密信息。如進行的“垃圾分析”。

(6)讓口令的另一方透露密鑰或相關信息。

(7)威脅用戶交出密碼。

防止密碼破譯的措施

防止密碼破譯,除去我們要從思想上加以重視外,采取的具體措施如下:

(1)強壯加密算法。通過增加加密算法的破譯復雜程度和破譯的時間,進行密碼保護。如加長加密系統的密鑰長度,一般在其他條件相同的情況下,密鑰越長破譯越困難,而且加密系統也就越可靠。

(2)動態會話密鑰。每次會話所使用的密鑰不相同。

(3)定期更換加密會話的密鑰。