DES加密


  DES采用了64位的分組長度和56位的密鑰長度,是對稱加密的一種。

  DES的理論進化主線是 1945年Shannon大神提出的交替使用混淆(使密文與密鑰的統計關系變復雜)和擴散(使明文與密文的統計關系變復雜)的乘積密碼(DES加密的核心思想)-->1960s的Feistel結構-->DES。實踐主線是 1971年基於Feistel結構的LUCIFER算法-->Tuchman-Mayer方案(將LUCIFER的128位密鑰簡化為56位)-->1977年被采納的DES(增加S盒,產生非線性)。

  下圖為DES加密的整個機制

  

  DES加密操作分兩塊,明文加密以及生成子密鑰兩部分。

  上圖左半部分描述了明文加密成密文的三個階段。

  1、64位的明文經初始置換(IP)而重新排列。

  2、進行16輪的置換和轉換(基於Feistel結構)。

  3、再做一次置換(IP-1,與初始置換互逆)。

  可逆驗證    M=IP-1{F[IP(P)]}     

        IP-1{F[IP(M)]}= IP-1{F[IPIP-1{F[IP(P)]}]}=IP-1{FF[IP(P)]}=IP-1IP(P)=P

  結論,加密和解密的過程基本一致(F函數代表16輪轉換的整體效果,實際上子密鑰在加密和解密中順序是相反的)

  上圖右半部分是56位密鑰的操作過程。

  1、密鑰先做一個置換。

  2、再做16次包含循環左移和置換的操作組合,每次都產生一個子密鑰Ki。每一輪的置換操作都完全相同,但由於循環左移而使得每個子密鑰不同。

  

  下面介紹初始置換及其逆置換

  

  如上表,分別代表初始置換和初始置換的逆置換。表中數字包含1-64,代表輸入的64位分組的每一比特在置換輸出后的位置。

  很顯然,以上兩個置換確實是可逆的,如明文分組的第1位經初始置換后出現在第58位,而逆置換的第58位將輸出到第1位。

   這個置換的原理實際上是對置換群的可逆操作。

  Feistel結構的加密與解密

  

  Feistel結構的加密算法將明文分組分成等長的左右兩部分,這兩半經過n輪迭代后組成密文分組。每一輪的迭代操作都完全相同,解密過程本質上與加密過程操作是一致的,只是子密鑰的使用順序與加密過程完全相反。因此,為了研究加密與解密過程的可逆性,可將問題簡化為只有一輪的迭代,如下圖。

  

  feistel結構的可逆性,其運用的數學原理是異或的幾個基本性質

       [AB]C=A[BC]        

    AA=0       

    A0=A

  以 i 輪為例

          

    加密時有                                              解密時有

      Li=Ri-1                    Li’=Ri-1‘   ==>   Li’=Li=Ri-1  

      Ri=Li-1F(Ri-1,Ki)                               Ri’=Li-1F(Ri-1’,Ki)   ==>  Ri’=RiF(Li,Ki)=Li-1F(Ri-1,Ki)F(Ri-1,Ki)=Li-1

    結論:每輪加密和解密的中間結果都完全一樣,且與F函數無關。而F函數越復雜,Ri與Li-1的關系越復雜,因而越難被破解。

    

  DES第二階段每輪變換的詳細過程

  

  由於輪密鑰長48位,R是32位,首先要將R進行置換擴展為48位,其中有16位是重復的,如用下表進行置換擴展。

  

  然后將擴展后的48位與輪密鑰進行異或,所得結果再用一個替代函數作用(S盒)並輸出32位。下圖解釋了S盒在函數F中的作用。

  

  代替函數由8個S盒組成,S盒的變換參見下表。

  

  每個S盒都輸入6位,輸出4位。盒Si輸入的第1位和最后1位組成一個2位的二進制數,用來選擇S盒4行代替值中的一行,中間4位用來選擇16列中的某一列。行列交叉處的十進制轉換為二進制之后可得到輸出的4位二進制數。

  S盒實現了非線性的特性。通過S盒,不同的輸入可以有相同的輸出,進一步增加了明文與密文之間的映射關系的復雜度,使得破解更加艱難。

  最后再做一次置換后輸出,該置換例子如下表。

  

  密鑰產生

  1、首先輸入64位密鑰,密鑰各位分別標記為1-64。從64位中選擇56位作為有效密鑰,如選擇下表陰影部分。

  

  2、將所得56位有效密鑰進行置換並划分成等長的兩部分C0和D0,如下表。

  

  3、每輪進行迭代時,Ci-1和Di-1分別循環左移一位或者兩位,具體移位數見下表。

  

  4、對移位后的值再做一次置換,如下表。

  

  


免責聲明!

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



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