區塊鏈兄弟社區,區塊鏈技術專業問答先行者,中國區塊鏈技術愛好者彙集地算法
做者:於中陽promise
來源:區塊鏈兄弟區塊鏈
原文連接:www.blockchainbrother.com/article/81編碼
密碼分析加密
密碼編碼學的主要目的是保持明文(或者是密鑰)的祕密並防止竊聽者(也能夠叫對手、攻擊者、截取者、入侵者、敵人等)知曉。這裏假設竊聽者徹底可以截獲發送者和接收者之間的通訊。3d
密碼分析學是在不知道密鑰的狀況下,恢復明文的科學。成功的密碼分析能夠恢復消息的明文或者密鑰。與此同時,密碼分析也能夠驗證出密碼體制的弱點,並最終恢復明文或者密鑰。排序
注:密鑰經過非密碼分析方式的丟失叫作泄露(compromise)。ip
對密碼進行分析的嘗試稱爲攻擊(attack)。A.Kerckhoffs 早在19世紀就闡明瞭密碼分析的一個基本假設,此假設就是祕密必須全寓於密鑰中。Kerckhoffs假設密碼分析者已知密碼算法以及其實現的所有資料。雖然在實際的密碼分析中並不老是擁有如此詳細的信息,但理應如此假設。這樣若是不能破譯算法,那麼即使瞭解算法是如何工做的也是徒然。固然,若是連算法的知識和相關資料都沒有,那就確定沒法破譯。ci
現我列出經常使用的四類密碼分析攻擊,在此假設每一類密碼分析者都知道所用的加密算法的所有知識。get
1)惟密文攻擊(ciphertext-only attack)。密碼分析者有一些消息的密文,這些消息都用相同的加密算法進行加密。密碼分析者的任務就是恢復儘量多的明文,或者最好能推算出加密消息的密鑰,以即可採用相同的密鑰破解其餘被加密的消息。
已知:
2)已知明文攻擊(known-plaintext attack)。密碼分析者不只可獲得一些消息的密文,並且也知道這些消息的明文。分析者的任務就是用加密信息推出用來加密的密鑰或導出一個算法,此算法能夠對用相同密鑰加密的任何新消息進行解密。
3)選擇明文攻擊(chosen-plaintext attack)。分析者不只能夠獲得一些消息的密文和相同的明文,並且還能夠選擇被加密的明文。這比已知明文攻擊更加有效,由於密碼分析者能選擇特定的明文塊進行加密,那些塊可能產生更多關於密鑰的信息。分析者的任務就是推導出用來加密消息的密鑰或導出一個算法,此算法能夠對用相同密鑰加密的任何新消息進行解密。
4)自適應選擇明文攻擊(adaptive-chosen-plaintext attack)。這是選擇明文攻擊的特殊狀況。密碼分析者不只可以選擇被加密的明文,還能夠基於之前加密的結果修正這個選擇。在選擇明文攻擊中,密碼分析者還能夠選擇一大塊被加密的明文。而在自適應選擇明文攻擊中,能夠選擇較小的明文塊,而後再基於第一塊的結果選擇另外一個明文塊,以此類推。
除了以上介紹的4類密碼分析攻擊,還有至少三類其它的密碼分析攻擊。接上文排序以下:
5)選擇密文攻擊(chosen-ciphertext attack)。密碼分析者能選擇不一樣的被加密的密文,並可獲得對應的解密的明文。例如,密碼分析者訪問一個防篡改的自動解密盒,密碼分析者的任務就是推導出密鑰。
這種攻擊主要用於公開密鑰算法。選擇密文攻擊有時也能夠有效的用於對稱算法。
注:有時選擇明文攻擊和選擇密文攻擊一塊兒稱爲選擇文本攻擊(chosen-text attack)。
6)選擇密鑰攻擊(chosen-key attack)。這種攻擊並不表示密碼分析者可以選擇密鑰,其只是表示密碼分析者具備不一樣密鑰之間關係的有關知識。
此種方法比較晦澀和奇特,並非很實際。
7)軟磨硬泡攻擊(rubber-hose cryptanalysis)。密碼分析者威脅、勒索,或者經過折磨某人,直到其給出密鑰爲止。
經過行賄獲取密鑰的方法,有時稱爲購買密鑰攻擊(purchase-key attack)。這些是很是有效的攻擊,並常常是破譯算法的最便捷途徑。
文章發佈只爲分享區塊鏈技術內容,版權歸原做者全部,觀點僅表明做者本人,毫不表明區塊鏈兄弟贊同其觀點或證明其描述