密碼學基礎(三)密碼分析


區塊鏈兄弟社區,區塊鏈技術專業問答先行者,中國區塊鏈技術愛好者聚集地

作者:於中陽

來源:區塊鏈兄弟

原文鏈接:www.blockchainbrother.com/article/81

著權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
 

密碼分析

密碼編碼學的主要目的是保持明文(或者是密鑰)的秘密並防止竊聽者(也可以叫對手、攻擊者、截取者、入侵者、敵人等)知曉。這里假設竊聽者完全能夠截獲發送者和接收者之間的通信。

密碼分析學是在不知道密鑰的情況下,恢復明文的科學。成功的密碼分析可以恢復消息的明文或者密鑰。與此同時,密碼分析也可以驗證出密碼體制的弱點,並最終恢復明文或者密鑰。

注:密鑰通過非密碼分析方式的丟失叫做泄露(compromise)。

對密碼進行分析的嘗試稱為攻擊(attack)。A.Kerckhoffs 早在19世紀就闡明了密碼分析的一個基本假設,此假設就是秘密必須全寓於密鑰中。Kerckhoffs假設密碼分析者已知密碼算法以及其實現的全部資料。雖然在實際的密碼分析中並不總是擁有如此詳細的信息,但理應如此假設。這樣如果不能破譯算法,那么即便了解算法是如何工作的也是徒然。當然,如果連算法的知識和相關資料都沒有,那就肯定無法破譯。

現我列出常用的四類密碼分析攻擊,在此假設每一類密碼分析者都知道所用的加密算法的全部知識。

1)唯密文攻擊(ciphertext-only attack)。密碼分析者有一些消息的密文,這些消息都用相同的加密算法進行加密。密碼分析者的任務就是恢復盡可能多的明文,或者最好能推算出加密消息的密鑰,以便可采用相同的密鑰破解其他被加密的消息。

已知:

attachments-2017-10-y2Luc1jX59f6940fd7eff.png

attachments-2017-10-j7404VEP59f69449776e7.png...

attachments-2017-10-M4KzffIT59f6946fd66ff.png推導出:attachments-2017-10-SrmNxrU359f6952571d92.png或者找出一個算法從attachments-2017-10-geI7ds4F59f695ab50490.png

推導出attachments-2017-10-jlgBv7cj59f695d5d5d9a.png

2)已知明文攻擊(known-plaintext attack)。密碼分析者不僅可得到一些消息的密文,而且也知道這些消息的明文。分析者的任務就是用加密信息推出用來加密的密鑰或導出一個算法,此算法可以對用相同密鑰加密的任何新消息進行解密。

已知:attachments-2017-10-D3FTQbPn59f6978c4d31d.png推導出,密鑰K,或者從attachments-2017-10-c4If5j7X59f697ca0f11c.png推導出attachments-2017-10-3dc1Qyzu59f697d9006d7.png的算法。

3)選擇明文攻擊(chosen-plaintext attack)。分析者不僅可以得到一些消息的密文和相同的明文,而且還可以選擇被加密的明文。這比已知明文攻擊更加有效,因為密碼分析者能選擇特定的明文塊進行加密,那些塊可能產生更多關於密鑰的信息。分析者的任務就是推導出用來加密消息的密鑰或導出一個算法,此算法可以對用相同密鑰加密的任何新消息進行解密。

已知:attachments-2017-10-ePk6aWxY59f6995086d71.png其中attachments-2017-10-CY5s3PgM59f699af438a5.png可以由密碼分析者選擇。

推導出:密鑰K,或者從attachments-2017-10-IPWLrUE559f699e26340a.png推導出attachments-2017-10-TPlJtnlm59f699f158a9f.png的算法。

4)自適應選擇明文攻擊(adaptive-chosen-plaintext attack)。這是選擇明文攻擊的特殊情況。密碼分析者不僅能夠選擇被加密的明文,還可以基於以前加密的結果修正這個選擇。在選擇明文攻擊中,密碼分析者還可以選擇一大塊被加密的明文。而在自適應選擇明文攻擊中,可以選擇較小的明文塊,然后再基於第一塊的結果選擇另一個明文塊,以此類推。

除了以上介紹的4類密碼分析攻擊,還有至少三類其它的密碼分析攻擊。接上文排序如下:

5)選擇密文攻擊(chosen-ciphertext attack)。密碼分析者能選擇不同的被加密的密文,並可得到對應的解密的明文。例如,密碼分析者訪問一個防篡改的自動解密盒,密碼分析者的任務就是推導出密鑰。

已知:attachments-2017-10-w0totJR459f69cbdad57a.png推導出:K。

這種攻擊主要用於公開密鑰算法。選擇密文攻擊有時也可以有效的用於對稱算法。

注:有時選擇明文攻擊和選擇密文攻擊一起稱為選擇文本攻擊(chosen-text attack)。

6)選擇密鑰攻擊(chosen-key attack)。這種攻擊並不表示密碼分析者能夠選擇密鑰,其只是表示密碼分析者具有不同密鑰之間關系的有關知識。

此種方法比較晦澀和奇特,並不是很實際。

7)軟磨硬泡攻擊(rubber-hose cryptanalysis)。密碼分析者威脅、勒索,或者通過折磨某人,直到其給出密鑰為止。

通過行賄獲取密鑰的方法,有時稱為購買密鑰攻擊(purchase-key attack)。這些是非常有效的攻擊,並經常是破譯算法的最便捷途徑。

文章發布只為分享區塊鏈技術內容,版權歸原作者所有,觀點僅代表作者本人,絕不代表區塊鏈兄弟贊同其觀點或證實其描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM