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