密碼學(xué)基礎(chǔ)(三)密碼分析

本文首發(fā)于 2017-10-30 13:23 原地址:http://www.blockchainbrother.com/article/81

此次和大家談一談密碼分析。區(qū)塊鏈技術(shù)當(dāng)中一個(gè)很重要的組成部分就是密碼學(xué),作為從事區(qū)塊鏈研究的工程技術(shù)人員,應(yīng)該對(duì)密碼學(xué)有一定的了解。現(xiàn)我想分享一些密碼學(xué)的基本概念以供交流學(xué)習(xí),大家共同學(xué)習(xí),更加充實(shí)對(duì)區(qū)塊鏈技術(shù)的理解

密碼分析

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

密碼分析學(xué)是在不知道密鑰的情況下,恢復(fù)明文的科學(xué)。成功的密碼分析可以恢復(fù)消息的明文或者密鑰。與此同時(shí),密碼分析也可以驗(yàn)證出密碼體制的弱點(diǎn),并最終恢復(fù)明文或者密鑰。

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

對(duì)密碼進(jìn)行分析的嘗試稱(chēng)為攻擊(attack)。A.Kerckhoffs 早在19世紀(jì)就闡明了密碼分析的一個(gè)基本假設(shè),此假設(shè)就是秘密必須全寓于密鑰中。Kerckhoffs假設(shè)密碼分析者已知密碼算法以及其實(shí)現(xiàn)的全部資料。雖然在實(shí)際的密碼分析中并不總是擁有如此詳細(xì)的信息,但理應(yīng)如此假設(shè)。這樣如果不能破譯算法,那么即便了解算法是如何工作的也是徒然。當(dāng)然,如果連算法的知識(shí)和相關(guān)資料都沒(méi)有,那就肯定無(wú)法破譯。

現(xiàn)我列出常用的四類(lèi)密碼分析攻擊,在此假設(shè)每一類(lèi)密碼分析者都知道所用的加密算法的全部知識(shí)。

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

已知:

...

推導(dǎo)出:或者找出一個(gè)算法從

推導(dǎo)出

2)已知明文攻擊(known-plaintext attack)。密碼分析者不僅可得到一些消息的密文,而且也知道這些消息的明文。分析者的任務(wù)就是用加密信息推出用來(lái)加密的密鑰或?qū)С鲆粋€(gè)算法,此算法可以對(duì)用相同密鑰加密的任何新消息進(jìn)行解密。

已知:推導(dǎo)出,密鑰K,或者從推導(dǎo)出的算法。

3)選擇明文攻擊(chosen-plaintext attack)。分析者不僅可以得到一些消息的密文和相同的明文,而且還可以選擇被加密的明文。這比已知明文攻擊更加有效,因?yàn)槊艽a分析者能選擇特定的明文塊進(jìn)行加密,那些塊可能產(chǎn)生更多關(guān)于密鑰的信息。分析者的任務(wù)就是推導(dǎo)出用來(lái)加密消息的密鑰或?qū)С鲆粋€(gè)算法,此算法可以對(duì)用相同密鑰加密的任何新消息進(jìn)行解密。

已知:其中可以由密碼分析者選擇。

推導(dǎo)出:密鑰K,或者從推導(dǎo)出的算法。

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

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

5)選擇密文攻擊(chosen-ciphertext attack)。密碼分析者能選擇不同的被加密的密文,并可得到對(duì)應(yīng)的解密的明文。例如,密碼分析者訪(fǎng)問(wèn)一個(gè)防篡改的自動(dòng)解密盒,密碼分析者的任務(wù)就是推導(dǎo)出密鑰。

已知:推導(dǎo)出:K。

這種攻擊主要用于公開(kāi)密鑰算法。選擇密文攻擊有時(shí)也可以有效的用于對(duì)稱(chēng)算法。

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

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

此種方法比較晦澀和奇特,并不是很實(shí)際。

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

通過(guò)行賄獲取密鑰的方法,有時(shí)稱(chēng)為購(gòu)買(mǎi)密鑰攻擊(purchase-key attack)。這些是非常有效的攻擊,并經(jīng)常是破譯算法的最便捷途徑。

于中陽(yáng) Mercina-zy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容