evo真人(中国)

文章橫幅PC版
文章橫幅iPad版
文章橫幅手機版

des算法詳解

TIME:2019-03-01 16:28  click: 137 次 來源: 未知

des是對稱分組加密算法。用密鑰對明文先代替後置換,這就是DES的一輪。des共有16輪,即在明文上操作16次一樣的技術組合。

第一时间,算法對64位明文分組實施操作。顺利获得一個初始置換後,明文按高低位被平均劃成左右兩部分,兩部分均32位。然後實施16輪相同的操作,每輪的操作叫做函數f。該函數把數據和每輪的子密鑰結合。16輪後,左右兩部分合起來,再由一個末置換,算法結束。

初始置換

初始置換在第1輪運行前,針對輸入分組進行變換。

密鑰置換

64位密鑰按順序分為8組,每組第8位只用做奇偶校驗來保證密鑰不出現錯誤,在加解密期間可忽略,所以密鑰的有效長度僅56位。56位密鑰被分為兩部分,兩部分均為28位。移動之後,再在56位中選取48位。這個操作不僅置換了每一位的順序,還從中選出了子密鑰,所以叫做壓縮置換。顺利获得這種位移,每個子密鑰都成為原始密鑰的彼此不同的子集。每一個密鑰的比特位大約會出現在14個子密鑰中。

擴展置換

把數據的右半部分從32位擴展至48位,此操作顺利获得把一位擴展成兩位,讓輸出對輸入的依靠快速擴展,稱為雪崩效應。這一操作體現了des的設計思想,即盡力讓密文的每位快速地與明文和密鑰的每位構建關係。

對於每個4位輸入的分組,第1位和第4位會複製一次,對應輸出分組中的兩位,第2、3位僅對應該分組中的一位。雖然輸出分組大於輸入分組,但每個輸入分組只能生成唯一的輸出分組。

S盒置換

壓縮了的密鑰和擴展了的數據異或完成,將實施替代。替代操作由8個S盒完成,將48位的輸入分成8個6位的組,每個S盒有6位輸入與4位輸出。S盒置換是des算法的關鍵步驟,它的非線性向des給出了核心安全保障。

S盒距子密鑰較近,且S盒中的數據含了子密鑰數據的信息,與密鑰關聯較大,且需8個置換S盒,運算時間較長,耗費硬件資源較多,因此,S盒常是密碼分析與側信道分析的重點。

P盒置換

S盒的32位輸出再進行置換。此置換將每個輸入位映射進輸出位,任何位不被複製與剔除。

最後,將P盒置換的輸出和起初的64位分組的左半部分異或,其結果和原來的右半部分交換,再操作下一輪。

末置換

末置換是初始置換相反的過程。des最後一輪完成時,左、右部分並沒有交換,而是把兩部分合在一起為一個分組做末置換的輸入。

des的解密

des使用相同函數加、解密每個分組變成可能,二者只有一個不一樣的地方則為子密鑰的運用次序相反。另外,產生每輪子密鑰的算法也循環。

上一篇:分組密碼和流密碼的區別是什麼 下一篇:des算法攻擊