基本介紹
- 中文名:數據加密標準
- 外文名:DES
- 全稱:Data Encryption Standard
- 體系:對稱加密算法
DES算法入口參數,DES基本原則,算法步驟,DES與3DES,
DES算法入口參數
DES算法的入口參數有三個:Key、Data、Mode。其中Key為7個位元組共56位,是DES算法的工作密鑰;Data為8個位元組64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。
DES基本原則
DES設計中使用了分組密碼設計的兩個原則:混淆(confusion)和擴散(diffusion),其目的是抗擊敵手對密碼系統的統計分析。混淆是使密文的統計特性與密鑰的取值之間的關係儘可能複雜化,以使密鑰和明文以及密文之間的依賴性對密碼分析者來說是無法利用的。擴散的作用就是將每一位明文的影響儘可能迅速地作用到較多的輸出密文位中,以便在大量的密文中消除明文的統計結構,並且使每一位密鑰的影響儘可能迅速地擴展到較多的密文位中,以防對密鑰進行逐段破譯。
算法步驟
DES算法把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位(實際用到了56位,第8、16、24、32、40、48、56、64位是校驗位, 使得每個密鑰都有奇數個1),其算法主要分為兩步:
1)初始置換
其功能是把輸入的64位數據塊按位重新組合,並把輸出分為L0、R0兩部分,每部分各長32位,其置換規則為將輸入的第58位換到第一位,第50位換到第2位……依此類推,最後一位是原來的第7位。L0、R0則是換位輸出後的兩部分,L0是輸出的左32位,R0是右32位,例:設定換前的輸入值為D1D2D3……D64,則經過初始置換後的結果為:L0=D58D50……D8;R0=D57D49……D7。
其置換規則見下表:
58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7,
2)逆置換
經過16次疊代運算後,得到L16、R16,將此作為輸入,進行逆置換,逆置換正好是初始置換的逆運算,由此即得到密文輸出。
此算法是對稱加密算法體系中的代表,在計算機網路系統中廣泛使用。
DES與3DES
3DES(即Triple DES)是DES向AES過渡的加密算法,它使用3條56位的密鑰對數據進行三次加密。是DES的一個更安全的變形。它以DES為基本模組,通過組合分組方法設計出分組加密算法。比起最初的DES,3DES更為安全。
該方法使用兩個密鑰,執行三次DES算法,加密的過程是加密-解密-加密,解密的過程是解密-加密-解密。
3DES加密過程為:C=Ek3(Dk2(Ek1(P)))
3DES解密過程為:P=Dk1(EK2(Dk3(C)))
採用兩個密鑰進行三重加密的好處有:
①兩個密鑰合起來有效密鑰長度有112bit,可以滿足商業套用的需要,若採用總長為168bit的三個密鑰,會產生不必要的開銷。
②加密時採用加密-解密-加密,而不是加密-加密-加密的形式,這樣有效的實現了與現有DES系統的向後兼容問題。因為當K1=K2時,三重DES的效果就和原來的DES一樣,有助於逐漸推廣三重DES。
③三重DES具有足夠的安全性,目前還沒有關於攻破3DES的報導。