通常,密碼破譯方法可以分為以下四類。 在不知其鑰匙的情況下,利用數學方法破譯密文或找到鑰匙的方法,稱為密碼分析(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)定期更換加密會話的密鑰。