DES加密系統

2021-07-10 10:47:07 字數 2702 閱讀 3844

des密碼系統演算法實現

ø     理解對稱加密演算法的原理和特點

ø     理解des演算法的加密原理

ø     了解並掌握des密碼系統金鑰產生過程和des加解密流程。

ø     實現des密碼系統加解密。

des的設計原理是以shannon所提出的乘法加密系統為主。舉例來說:現有兩套加密系統a與b,明文首先利用加密系統a進行加密而得乙個密文,再將此密文作為加密系統b的輸入,最後真正的密文即為加密系統b所輸出的密文。通過兩個加密系統「相乘」的結果能夠大幅度提高其安全性。

des系統將64位的資料利用56位的密匙加密,整個設計原則起源於shannon的乘法保密系統兩大觀念:擴散與混淆。擴散的主要目的是盡可能使明文結構分布到較長的密文上,以使解密者不能利用統計方法如願以償。

由於des的加密及解密過程都需要做16個回合的運算,每乙個回合的運算都需要使用一把回合金鑰,所以des的加解密過程共需要16把回合金鑰,回合金鑰的產生方式如圖4-4所示,它是由一把56位的秘密金鑰經過一連串的運算所得到的。

圖4-1 des的金鑰產生運算過程

des回合金鑰的產生步驟如下:

(1)先把此56位的金鑰擴充套件到64位,其擴充套件方式為每7位插入乙個奇偶校驗位,使得1的個數有奇數個。

(2)將上一步驟所得的64位金鑰重新排列,其排列規則如表4-1所示。

表4-1 金鑰排列表

再將重新排列後的56位金鑰分成kl和kr兩部分,kl和kr各佔28位。kl包含第1位到第28位,kr則包含第29位到第56位。

(3)分別對kl和kr做向左迴圈位移,其位移的位數與回合數有關,如表4-2所示。

表4-2 左移位數表

移位後的kl和kr被當作下乙個回合的輸入。

(4)將移位後的kl和kr重組後,再做縮減排列,其排列規則如表4-3所示。

表4-3 縮減排列表

重排列後的值由56位被縮減至48位,而這48位的值也就是該回合的回合金鑰。

重複步驟(3)和(4),直到16把回合金鑰-k1、k2、...、k16都產生出來為止。

des加密的過程如圖4-2所示,一共要執行16個回合的運算,每一回合運算均需使用上節所產生的回合金鑰。

圖4-2 des加密過程

(1)先將資訊明文以8字母(64位)位單位來做加密處理,將輸入的64位資訊以表4-4所示的規則做重新排列。

表4-4 初始排列表

重組後再將其結果分成l和r兩部分,l和r各佔32位。

(2)將l和r分別依下列函式運算:

其中,符號為異或運算,位48位的第j回合金鑰。

圖4-3des的f函式的運算過程

① 先將32位的做位擴充至48位,其擴充規則如表4-5所示。

表4-5 擴增排列表

② 將此擴充後的48位資料與48位回合金鑰做異或運算。

③ 將做完異或運算的48位資料分成8個快(s-box),每個s-box內有6位,分別為。

④ 將每個s-box內的6位資料按照表4-6所示的規則轉換,每個s-box都有專屬的轉換規則,經轉換後會產生4位輸出結果。表4-6的使用方法如下:

a.      將每個s-box內的位取出,當成s-box的行索引值。

b.     將每個s-box內的位取出,當成s-box的列索引值。

c.      利用行與列的索引值在所屬的s-box中找出所對應的值。

d.     將所找到的對應值轉換成二進位制表示法後,取代原來s-box內的6位值。

表4-6 des的s-box(1-5)

⑤ 將每個s-box所輸出的4個位合併後,共有32位輸出,再將此32位的輸出經表4-7(p-box)所示重新排列後,即完成乙個函式的運算。

表4-7 p-box排列表

(4)將步驟(2)重複執行16次後,再將最後的合併成乙個64位輸出。最後將此64位資料按照表4-8做最後的排列重組,所得的結果即為密文。

表4-8 最後排列表

des的解密過程與加密過程類似,解密的流程如圖4-10所示,可以發現解密流程與加密流程唯一的差別是將

圖4-4 des解密過程            

MD5加密 DES加密,DES解密

public class pgsecret region des加密 des加密 要加密的字串。金鑰,且必須為8位。以base64格式返回的加密字串。endregion public static string desencrypt string sztoencrypt,string szkey s...

DES加密解密

using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.data using system.io us...

閒談DES加密

大冬天的,天氣冷,閒著沒事。今天就隨手說說des吧。des 全稱為data encryption standard即資料加密演算法,它是ibm公司研究成功並公開發表的。des演算法的入口引數有三個 key data mode。其中key為8個位元組共64位,是des演算法的工作金鑰 data也為8個...