des演算法描述簡介
1 簡介
des是data encryption standard(資料加密標準)的縮寫。它是由ibm公司研製的一種加密演算法,美國國家標準局於2023年公布把它作為非機要部門使用的資料加密標準,二十年來,它一直活躍在國際保密通訊的舞台上,扮演了十分重要的角色[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),可用於序列密碼
DES演算法簡述
美國國家標準局1973年開始研究除國防部外的其它部門的計算機系統的資料加密標準,於1973年5月15日和1974年8月27日先後兩次向公眾發出了徵求加密演算法的公告.加密演算法要達到的目的 通常稱為des 密碼演算法要求 主要為以下四點 提供高質量的資料保護,防止資料未經授權的洩露和未被察覺的修改 ...
DES演算法原理
des 使用乙個 56 位的金鑰以及附加的 8 位奇偶校驗位 每組的第8位作為奇偶校驗位 產生最大 64 位的分組大小。這是乙個迭代的分組密碼,使用稱為 feistel 的技術,其中將加密的文字塊分成兩半。使用子金鑰對其中一半應用迴圈功能,然後將輸出與另一半進行 異或 運算 接著交換這兩半,這一過程...
DES演算法加密
public class des des演算法,加密 param data 待加密字串 param key 加密私鑰,長度不能夠小於8位 return 加密後的位元組陣列,一般結合base64編碼使用 throws cryptexception 異常 public static string enc...