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

?????????????????????????????? 圖4 DES算法框圖
3 DES解密? 在經(jīng)過所有的代替、置換、異或盒循環(huán)之后,你也許認(rèn)為解密算法與加密算法完全不同。恰恰相反,經(jīng)過精心選擇的各種操作,獲得了一個非常有用的性質(zhì):加密和解密使用相同的算法。
DES加密和解密唯一的不同是密匙的次序相反。如果各輪加密密匙分別是K1,K2,K3….K16那么解密密匙就是K16,K15,K14…K1。
4 DES的幾種工作方式?
第一種電子密本方式(ECB)?? 將明文分成n個64比特分組,如果明文長度不是64比特的倍數(shù),則在明文末尾填充適當(dāng)數(shù)目的規(guī)定符號。對明文組用給定的密鑰分別進行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。
?
第二種密文分組鏈接方式(CBC)?? 在CBC方式下,每個明文組xi在加密前與先一組密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式報內(nèi)組重的缺點,但由于明文組加密前與一組密文有關(guān),因此前一組密文的錯誤會傳播到下一組。
?
第三種密文反饋方式(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) 編輯 收藏 引用 所屬分類:
算法/數(shù)據(jù)結(jié)構(gòu) 、
備看文檔