2-8 DES 密碼系統
2-8-1 DES 的演算流程 『資料加密標準』(Data Encryption Standard, DES) 是 IBM 公司於 1970 年代中期所發展出來的加密系統,並於 1977 年被美國國家標準局製定為標準。DES 在工業界已使用了 20 幾年,它的處理速度非常快,安全性也相當高。DES 演算法的製作原理大多來自 Feistel 架構(如圖 2-8 所示),它的特性歸類如下:
DES 加密區塊的長度為 64 bits,但一般明文資料都會超過 64 bits,因此以64 bits 為單位,將明文分割為若干個區塊(如圖 2-5 所示),如果最後不足 64 bits,則以 “0” 補足。所產生的密文與明文長度相同,解密時,如有補足部分再將其刪除。另一方面,DES 所用的加密和解密鑰匙的長度也是 64 位元,但在這 64 位元主鑰匙之中,有 8 個位元是同位元檢查碼,是用來檢出錯誤,所以真正用來加密的長度只有 56 個位元。 圖 2-9 為 DES 演算法的加密流程,其中包括下列步驟,每一步驟都有其特殊功能,說明如下:
簡單說明如下:開始時,明文資料已被分割成干個區塊,每區塊長度為 64 位元。當明文區塊(M)經過初始排列(IP)處理後得到 T0 = IP(M);然後將 T0切成兩半(T0 = L0 || R0),再由鑰匙(K)所產生的子鑰匙表(共有 16 把)中選擇出一把子鑰匙,子鑰匙與 T0一起進入加密處理器,處理後產生 T1(= L1 || R1);下一回合,再重複選擇另一把子鑰匙和 T1作加密處理以產生 T2(= L2 || R2);重複 16 次相同的步驟(共選用了 16 個鑰匙),得到 T16(= L16 || R16)。之後再經過終結排列(FP)處理得到密文 C = FP(T16)。以下就依照圖 2-9 內的功能方塊圖來分別介紹,我們就可以瞭解整個 DES 的製作原理了。
圖 2-9 DES 演算法的加密流程 2-8-2 DES 密碼系統架構 DES 演算法還是承襲 Feistel 密碼系統架構(如圖 2-8 所示)。我們將連續運算 16 回合的順序,以連接加密處理器的方式將它繪出來,如圖 2-11 所示(祇繪出加密部分,解密部份也雷同),其中陰影部分表示每一回合的運算情形。它的運作程序說明如下: 明文區塊 M 經過初始排列處理後得到 T0 = IP(M),然後將 T0(64 位元)拆成左右兩個子區塊,各為 32 位元,則 T0成為: T0 = L0 || R0 L0和 R0經過如下的加密處理: L1 = R0 R1 = L0⊕ F(R0, K1) 得到 T1 = L1 || R1,其中 K1是由鑰匙選擇表的 16 個鑰匙中選出的。f (R0, K1) 表示 R0和 K1作計算處理,之後再和 L0作 Module-2 加法(亦是 XOR 運算)得到 R1。重複 16 次計算最後可得到 T16 = L16 || R16,如圖 2-11 所示。如果以 Ti表示第 i 次計算,而 Li和 Ri表示 Ti的右半部和左半部區塊,第 i 次的加密處理關係式如下: Li = Ri-1 Ri = Li⊕ F (Ri-1, Ki)
圖 2-9-1 DES 演算法的加密流程
|
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|