密码分析
破譯密碼體制的一般思路
古典密碼分析可以理解為從密文y中得到明文x,或者是密鑰k。密碼分析可以分為兩類(lèi):一類(lèi)是發(fā)現(xiàn)加密方法內(nèi)部結(jié)構(gòu)的分析攻擊,一類(lèi)是將加密算法看作是黑盒,試圖測(cè)試所有可能密鑰進(jìn)行破解蠻力攻擊。
可以通過(guò)旁道分析獲得密鑰,例如:測(cè)試處理私鑰的處理器的功耗、使用信號(hào)處理技術(shù)從功耗軌跡中恢復(fù)出密鑰、電磁輻射或算法運(yùn)行等等。但是,實(shí)施攻擊最大多數(shù)情況是針對(duì)攻擊者可以物理訪(fǎng)問(wèn)的密碼體制,所以絕大多數(shù)針對(duì)遠(yuǎn)程系統(tǒng)的基于Internet的攻擊通常不會(huì)考慮這種方法。
這個(gè)就好理解了,通過(guò)行賄、勒索、跟蹤或者偵查來(lái)獲得密鑰,或者詐騙也能得到。
也可以通過(guò)軟件系統(tǒng)中的緩沖區(qū)溢出攻擊、 惡意代碼等方式獲得密鑰。
攻擊者總是在尋找我們密碼體制中最脆弱的環(huán)節(jié),所以,我們必須擁有足夠強(qiáng)壯的算法,還有要保證切斷社會(huì)工程攻擊和實(shí)施攻擊的可能性。
可靠的密碼體制必須遵循Auguste Kerckhoffs提出的Kerckhoffs原理:
即使除密鑰外的整個(gè)系統(tǒng)的一切都是公開(kāi)的,這個(gè)密碼體制也必須是安全的。尤其是即使攻擊者知道系統(tǒng)的加密算法和解密算法,此系統(tǒng)也必須是安全的。
合適的密鑰長(zhǎng)度
我們要知道:
只有在蠻力攻擊是已知最好的攻擊方法時(shí),才會(huì)考慮對(duì)稱(chēng)加密算法中的密鑰長(zhǎng)度問(wèn)題。只要有一個(gè)分析攻擊可以成功,那么擁有再大的密鑰空間都無(wú)濟(jì)于事。
對(duì)稱(chēng)算法和非對(duì)稱(chēng)算法所要求的密鑰長(zhǎng)度完全不同。比如,長(zhǎng)度為80位的對(duì)稱(chēng)密鑰所提供的安全性和1024位的RSA密鑰安全性相當(dāng)。
所以對(duì)于安全對(duì)稱(chēng)密碼來(lái)說(shuō),大的密鑰空間只是必要但不充分條件。并且,我們都知道摩爾定律:在成本保持不變時(shí),計(jì)算能力每隔18個(gè)月變回增加一倍。在密碼學(xué)中,它可以理解為,破譯所需的成本及時(shí)間都會(huì)呈指數(shù)減少。
總結(jié)