多重DES


背景:單重DES在窮舉攻擊下相對比較脆弱

 

理論依據:以雙重DES為例

  加密:C = E(K2,E(K1,P))      解密:P = D(K1,D(K2,C))

  要證明多重加密有效,就要證明不存在K3,使得 E(K2,E(K1,P)) = E(K3,P)

  DES加密是64位分組之間的映射,64位分組存在264個可能的明文分組,這264個分組有(264)! = 10347380000000000000000個可能的一一映射關系。

  而DES每個密鑰定義了一個映射,映射總數位256 < 1017。因而完全有理由認為雙重DES所對應的映射不能為單映射所定義。

中間相遇攻擊:一種對所有分組密碼均有效的攻擊方法

  以雙重DES位例,C = E(K2,E(K1,P)) 。首先設定一個中間值X,有

    X = E(K1,P) = D(K2,C)

  給定明密文對(P,C),首先,將P按所有可能的密鑰K1加密,得到的256個結果按X的值排序放在一個表內,然后將C用所有可能的密鑰K2解密,每解密一次,將解密結果與表中的值比較,如果由相等的,就將剛才測試的兩個密鑰對一個新的明密文對進行驗證,若驗證成功,則認定這兩個密鑰對是正確的密鑰。

  結論:中間相遇攻擊使用兩組已知明密文對就可以猜出正確的密鑰,其時間復雜度是256,比單重DES所需的255次方多不了多少。

三重DES

  使用三個不同的密鑰進行三次加密的三重DES將使中間相遇攻擊的代價升至2112數量級。但是其缺陷是需要56×3 = 168位密鑰,這有些笨拙。

  改進的辦法是使用兩個密鑰進行三次加密,犧牲一定的安全性來換取更加輕便的密鑰。

  這種加密具體的運算過程是加密-解密-加密(EDE),寫成式子如下

    C = E(K1,D(k2,E(K1,P)))     P = D(K1,E(k2,D(K1,C)))

  第二步采用解密運算並沒有什么密碼學上的深意,僅是為了使三重DES與單DES兼容,因為    

    C = E(K1,D(k1,E(K1,P))) = E(K1,P)       P = D(K1,E(k1,D(K1,C))) = D(K1,C)

  不過由於使用雙密鑰的三重DES算法的人還是感覺不放心,因此很多人還是覺得采用三個密鑰的三重DES算法才是最好的方案,三個密鑰的定義如下

    C = E(K3,D(k2,E(K1,P)))     P = D(K1,E(k2,D(K3,C)))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM