DES算法詳解


 

時間:2021/12/20

 

一.DES算法加密流程

1.加密流程圖

如上圖所示DES的明文和密文都以64bit為一個分組加解密使用同一個算法只是密鑰的使用順序是相反的密鑰長度為56bit一共有16輪

 

2.加密過程的公式化描述

對於加密過程的每一輪上一輪的右邊保持不變成為下一輪的左邊上一輪的右邊和輪密鑰作為輪函數的輸入輪函數的輸出和上一輪的左邊異或后作為下一輪的右邊。(注意這里的上一輪指的是下標位i-1的一輪,下一輪指的是下標位i的一輪)

 

3.子密鑰生成算法

子密鑰生成開始的64bit密鑰是實際的56bit密鑰+8bit奇偶校驗位置換選擇1是先去掉了8bit奇偶校驗位然后將剩下的56bit密鑰按照置換表的位置重新進行排列在完成置換選擇1后將56bit密鑰分成左右各28bit然后左右分別循環左移需要注意不同輪數需要的移位位數是不同的有一個表格),需要注意的是左右兩邊是分開進行循環移位的然后合並左右兩邊去掉固定位置的比特然后根據置換選擇2的表格重新進行排列排列后就可以得到該輪48bit的輪密鑰

 

4.輪函數(F函數)的實現過程

上圖是F函數內部的過程

 

5.選擇擴展置換E

選擇擴展置換F函數的輸入是上一輪的右邊和輪函數由於上一輪的右邊為32bit而輪函數是48bit所以需要對上一輪的右邊進行擴展從32bit擴展到48bit方法是將32bit寫成8*4的矩陣然后增加兩列也就是增加16bit增加兩列的內容按照位置下標與相應位置的內容相同

 

6.壓縮替代(S盒)

壓縮替代S在經過選擇擴展置換之后將得到48bit信息與48bit輪密鑰進行異或異或后的信息作為S盒的輸入將輸入的48bit分成8組每組6bit然后每組的輸出為4bit根據分組號選擇相應的S將6bit中的第一個比特位和第六個比特位作為行號中間4個比特位作為列號選擇一個16進制數字然后將輸入的6bit數字替換成S盒中的4bit數字一個十六進制數字)。

 

7.置換(P盒)

置換P上一個S盒的輸出32bit作為P盒的輸入按照置換表中的順序進行置換

 

 

二.DES算法解密流程

1.解密流程圖

  

2.解密算法的公式化表示

解密算法下一輪的左邊不變成為上一輪的右邊下一輪的左邊和輪密鑰與加密使用輪密鑰次序相反作為輪函數的輸入輪函數的輸出和下一輪的右邊異或后作為上一輪的左邊。(方便記憶與加密的左右是相反的

 

 

三.DES的特點

 


免責聲明!

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



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