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

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

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

作者:於中陽

來源:區塊鏈兄弟

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

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

密碼分析

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

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

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

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

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

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

已知:

...

推導出:

或者找出一個演算法從

推導出

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

已知:

推導出,密鑰K,或者從

推導出

的演算法。

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

已知:

其中

可以由密碼分析者選擇。

推導出:密鑰K,或者從

推導出

的演算法。

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

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

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

已知:

推導出:K。

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

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

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

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

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

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

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


推薦閱讀:

密碼學基礎-Hash演算法
Is MAC enough——關於BB84量子密鑰分發協議(三)
《Crick 4 *4 *4 遺傳密碼錶》的起草origin與修訂evolution (二)
Perfect Secrecy and Computational Security
《開講啦》科普:http和https,差的可不止一個「s」

TAG:密碼學 | 自然科學 | 數學 |