對稱加密之DES加密演算法

2021-08-21 16:04:15 字數 2600 閱讀 6168

演算法說明:

作為des資料加密標準的演算法實現,dea(data encryption algorithm)是一種被廣泛應用的基於金鑰的經典對稱分組加密演算法,這些年來,對尋找和研究該演算法的弱點進行了非常多的嘗試,使得des是現存加密演算法中被研究得最為徹底的乙個。即使在當今由於計算硬體發展飛速,56位des在高速金鑰窮舉攻擊面前變得不再安全的情況下,至今仍然沒有人找到des的致命缺陷,通過將金鑰空間擴充套件到168位的3des,依然是目前無法被破解的安全可靠的強大加密演算法。

des遵循了分組密碼設計的兩個原則:混淆和擴散。混淆是使密文的統計特性與金鑰的取值之間的關係盡可能複雜化,以使金鑰和明文以及密文之間的依賴性對密碼分析者來說是無法利用的。擴散的作用就是將每一位明文的影響盡可能迅速地作用到較多的輸出密文位中,以便在大量的密文中消除明文的統計結構,並且使每一位金鑰的影響盡可能迅速地擴充套件到較多的密文位中,以防對金鑰進行逐段破譯。

要點:

1.des是乙個經典的分組加密演算法,以64位為分組對資料進行加密(分組),加密和解密使用的是同乙個演算法(對稱);

2.金鑰長64位,事實上56位參與des運算,每8位中最後一位是奇偶校驗位(保證金鑰每8位都有奇數個1);

3.加密過程:對於每乙個明文分組,進行一次初始置換ip(initial permutation),之後迴圈使用16個子金鑰進行16輪加密,最後進行一次末置換(ip^-1)。

流程圖:

圖1 des加密流程圖

步驟詳解:

將明文分成長度為64位的明文組,對每組明文進行以下加密操作;

ip初始置換:將輸入的64位資料塊按位重新組合,並不影響des的安全性,乙個ip矩陣的例子如圖2:

圖2 初始置換矩陣initial permutation

金鑰置換:將64位金鑰每個位元組的第8位奇偶校驗位去除,產生的56位金鑰由如圖3-1所示的壓縮置換pc-1生成(注意表中沒有8、16、24、32、40、48、56、64這8位),然後將56位金鑰分成兩個28位部分,根據加密輪數,將這兩部分分別迴圈左移1或2位,每輪移動位數的例子如圖3-2,最後將移動過的兩部分重新組合成56位,根據如圖3-3所示的壓縮置換pc-2產生最終的48位輪金鑰(注意表中沒有9,18,22,25,35,38,43和54這8位);

圖3-1 金鑰壓縮置換pc-1

圖3-2 金鑰迴圈左移位數表

圖3-3 金鑰壓縮置換pc-2

4. e擴充套件置換:目標是將ip置換後獲得的64位中的右半部分32位輸入,擴充套件為48位輸出,以方便與第3步獲得的48位輪金鑰進行異或運算。擴充套件置換矩陣擴充套件的兩列資料是從相鄰兩組分別取靠近的一位補充,擴充套件矩陣如圖4所示;

圖4 輸入分組r0擴充套件矩陣

5. 將第3步壓縮置換得到的48位輪金鑰和第4步擴充套件置換得到的48位擴充套件分組進行異或運算得到48位資料,將這個資料送入s盒,進行替代運算。48位資料分成8組6位資料,分別送入8個不同的s盒,得到8組4位分組輸出,組合成最後的32位s盒輸出。乙個s盒是乙個4*16的矩陣,矩陣每個元素都是乙個4位二進位制數,s盒的6位輸入決定了對應的輸出在s盒的哪一行哪一列,輸入的高低2位作為行數r(從0開始),中間4位作為列數c(從0開始),在s-box中查詢對應輸出,如圖5所示s盒,如果輸入的6位分組為101101,那麼對應的s盒輸出就在11(第3行),110(第6列),值為4(0100)s盒代替是des演算法的關鍵步驟,所有的其他的運算都是線性的,易於分析,而s盒是非線性的,相比於其他步驟,提供了更好安全性

圖5 s-box矩陣

6. 將s盒輸出的32位資料進行p盒置換,p盒置換矩陣如圖6所示,該置換把輸入的每一位對映到乙個輸出位,任何一位有且僅有一次對映,p盒置換的目的是進一步打亂s盒得到的輸出;

圖6 p置換矩陣

最後,將p盒置換的32位輸出與最初的ip置換得到的左半部分32位輸入l0異或,然後左右半部分交換位置,得到一輪輸出l1、r1,迴圈3~7步即為下一輪,des演算法一共有16輪加密;

ip^-1末置換:是初始置換的逆過程,des最後一輪,左右半部分並不交換,而是直接合成乙個分組作為末置換的輸入,經過末置換之後,就得到了乙個明文分組對應的密文分組了。

對稱加密演算法 DES加密演算法

一 對稱加密演算法 對稱加密也稱為常規加密 私鑰或單鑰加密。乙個對稱加密由5部分組成 明文 plaintext 這是原始資訊或資料,作為演算法的輸入。加密演算法 encryption algorithm 加密演算法對明文進行各種替換和轉換。金鑰 secret key 金鑰也是演算法的輸入。演算法進行...

加密演算法之DES演算法

一 des演算法 美國國家標準局1973年開始研究除國防部外的其它部門的計算機系統的資料加密標準,於1973年5月15日和1974年8月27日先後兩次向公眾發出了徵求加密演算法的公告。加密演算法要達到的目的 通常稱為des 密碼演算法要求 主要為以下四點 提供高質量的資料保護,防止資料未經授權的洩露...

加密演算法之DES演算法

一 des演算法 美國國家標準局1973年開始研究除國防部外的其它部門的計算機系統的資料加密標準,於1973年5月15日和1974年8月27日先後兩次向公眾發出了徵求加密演算法的公告。加密演算法要達到的目的 通常稱為des 密碼演算法要求 主要為以下四點 提供高質量的資料保護,防止資料未經授權的洩露...