1 簡介
? DES是Data Encryption Standard(數據加密標準)的縮寫。它是由IBM公司研制的一種加密算法,美國國家標準局于1977年公布把它作為非機要部門使用的數據加密標準,二十年來,它一直活躍在國際保密通信的舞臺上,扮演了十分重要的角色[10]。
? DES是一個分組加密算法,他以64位為分組對數據加密。同時DES也是一個對稱算法:加密和解密用的是同一個算法。它的密匙長度是56位(因為每個第8位都用作奇偶校驗),密匙可以是任意的56位的數,而且可以任意時候改變。其中有極少量的數被認為是弱密匙,但是很容易避開他們。所以保密性依賴于密鑰。
2 算法框架[11]:
? DES對64(bit)位的明文分組M進行操作,M經過一個初始置換IP置換成m0,將m0明文分成左半部分和右半部分m0=(L0,R0),各32位長。然后進行16輪完全相同的運算,這些運算被稱為函數f,在運算過程中數據與密匙結合。經過16輪后,左,右半部分合在一起經過一個末置換,這樣就完成了[12]。
? 在每一輪中,密匙位移位,然后再從密匙的56位中選出48位。通過一個擴展置換將數據的右半部分擴展成48位,并通過一個異或操作替代成新的32位數據,在將其置換換一次。這四步運算構成了函數f。然后,通過另一個異或運算,函數f的輸出與左半部分結合,其結果成為新的右半部分,原來的右半部分成為新的左半部分。將該操作重復16次,就實現了。具體圖4所示。
?????

?????????????????????????????? 圖4 DES算法框圖
3 DES解密? 在經過所有的代替、置換、異或盒循環之后,你也許認為解密算法與加密算法完全不同。恰恰相反,經過精心選擇的各種操作,獲得了一個非常有用的性質:加密和解密使用相同的算法。
DES加密和解密唯一的不同是密匙的次序相反。如果各輪加密密匙分別是K1,K2,K3….K16那么解密密匙就是K16,K15,K14…K1。
4 DES的幾種工作方式?
第一種電子密本方式(ECB)?? 將明文分成n個64比特分組,如果明文長度不是64比特的倍數,則在明文末尾填充適當數目的規定符號。對明文組用給定的密鑰分別進行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。
?
第二種密文分組鏈接方式(CBC)?? 在CBC方式下,每個明文組xi在加密前與先一組密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式報內組重的缺點,但由于明文組加密前與一組密文有關,因此前一組密文的錯誤會傳播到下一組。
?
第三種密文反饋方式(CFB),可用于序列密碼?? 明文X=(x0,x1,……,xn-1),其中xi由t個比特組成0
? 第四種輸出反饋方式(OFB),可用于序列密碼
?? 與CFB唯一不同的是OFB是直接取DES輸出的t個比特,而不是取密文的t個比特,其余都與CFB相同。但它取的是DES的輸出,所以它克服了CFB的密文錯誤傳播的缺點
posted on 2006-05-28 10:50
halCode 閱讀(1413)
評論(0) 編輯 收藏 引用 所屬分類:
算法/數據結構 、
備看文檔