DES 資料加密標準 結構詳解

2021-08-08 18:01:45 字數 2367 閱讀 4037

data encryption standard,又稱資料加密標準,是一種對稱加密演算法,也是密碼學擺脫古典流加密後最簡單的一種塊加密演算法。由於夏農與2023年提出「完善保密性」,該標準要求金鑰長度不短於明文長度,實際操作難以達到,因此des使用了塊加密,選擇犧牲一定程度的「完善保密性」來降低金鑰的長度。

上圖為des的整體結構,feistel 網路,每一小塊的變化被稱為一回合,des總計16回合,3des有48回合,aes有10回合。

由上圖可知,先將加密資訊對等分成一半,每乙個回合都要將r代入f函式(費斯妥函式,下面會講到)中,得出結果後與l進行異或操作,再與l互換位置。

另外,次結構為可逆結構,只要知道在f函式中使用的金鑰key就能以同結構進行反向運算,從而得出明文。

具體分成以下4個步驟:

1. 擴張函式 (e函式):

將32位的半塊擴充套件到48位,其輸出包括8個6位的塊,每塊包含4位對應的輸入位,加上兩個鄰接的塊中緊鄰的位。

注意輸入中的某些位在輸出中被用到了不止一次,例如輸入的第5位出現在輸出的第6和8位。因此,32位的半塊輸入被擴張到了48位。

2. 異或操作:

用異或操作將擴張的結果和乙個子金鑰進行混合。

3.s盒:

在與子金鑰混合之後,塊被分成8個6位的塊,然後使用「s盒」,或稱「置換盒」進行處理。8個s盒的每乙個都使用以查詢表方式提供的非線性的變換將它的6個輸入位變成4個輸出位。s盒提供了des的核心安全性—如果沒有s盒,密碼會是線性的,很容易破解。

給定6位元輸入,將外面兩個位元(第乙個和最後乙個位元)作為行條件,中間四個位元(inner four bits)作為列條件進行查表,最終獲得4位元輸出。例如,輸入「011011」,通過外面兩個位元「01」和中間的位元「1101」進行查表,最終的輸出應該是「1001」

4. p置換:

最後,s盒的32個輸出位利用固定的置換,「p置換」進行重組。這個設計是為了將每個s盒的4位輸出在下一回次的擴張後,使用4個不同的s盒進行處理。

以上是des 64bits金鑰分成16個回合使用的演算法。

1. 選擇置換(pc1):

從64位輸入金鑰中選出56位的金鑰—剩下的8位要麼直接丟棄,要麼作為奇偶校驗位。

2. 位移操作(<<

56位分成兩個28位金鑰,兩個半金鑰都被左移1或2位(由回次數決定)

3.選擇置換(pc2):

該置換從56位的金鑰排程狀態中取出48位的子金鑰

解密過程中,除了子金鑰輸出的順序相反外,金鑰排程的過程與加密完全相同。

另外,在整個16回合feistel 網路外還要加上兩個置換操作,ip和ip^-1。

1. 初始置換(ip):

其意義如下:輸出的首位為輸入的第58位,第二位為50位,依此類推,輸出的最後位為輸入的第7位,實際上是乙個向量。

2. 最終置換 (ip-1):

是ip的逆過程,含義與ip的相似。

ip和ip-1在密碼意義上作用不大,它們的作用在於打亂原來輸入x的ascii碼字劃分的關係,並將原來明文的校驗位x8, x16,l, x64變成為ip輸出的乙個位元組。

資料加密標準(DES)

des data encryption standard 是由1971年ibm公司設計出的乙個加密演算法,1977年經美國國家標準局 採用作為聯邦標準之後,已成為金融界及其它各種民間行業最廣泛應用的對稱密碼系統,是第乙個被公布出來的標準演算法。四十年來,儘管計算機硬體及破解技術的發展日新月異,但對 ...

DES加密模式詳解 二

des演算法提供cbc,ofb,cfb,ecb四種模式,mac是基於ecb實現的。一 資料補位 des資料加解密就是將資料按照8個位元組一段進行des加密或解密得到一段8個位元組的密文或者明文,最後一段不足8個位元組,按照需求補足8個位元組 通常補00或者ff,根據實際要求不同 進行計算,之後按照順...

unity資料加密標準 DES 是一種加密演算法

using system using system.collections.generic using system.io using system.linq using system.security.cryptography using system.text namespace com.qh....