資訊與網路安全技術 第 二章 傳統秘密鑰匙系統  上一頁      下一頁

 

2-8 DES 密碼系統

內容:

2-8-1 DES 的演算流程

『資料加密標準』(Data Encryption Standard, DES IBM 公司於 1970 年代中期所發展出來的加密系統,並於 1977 年被美國國家標準局製定為標準。DES 在工業界已使用了 20 幾年,它的處理速度非常快,安全性也相當高。DES 演算法的製作原理大多來自 Feistel 架構(如圖 2-8 所示),它的特性歸類如下:

  • 鑰匙長度:56 bits(主鑰匙)。

  • 區塊長度:64 bits。在 DES 演算法中,明文與密文區塊的長度都是 64 bits

  • 重複次數:每個區塊重複經過加密器計算 16 次,每次計算時使用一把獨立的子鑰匙。

  • 子鑰匙產生器:主鑰匙經過產生器處理之後,產生 16 把子鑰匙,每一把子鑰匙的長度為 48 bits

  • 演算法相容:基本上,加密與解密演算法是相同的,解密時將子鑰匙輸入順序與加密相反即可。

DES 加密區塊的長度為 64 bits,但一般明文資料都會超過 64 bits,因此以64 bits 為單位,將明文分割為若干個區塊(如圖 2-5 所示),如果最後不足 64 bits,則以 “0” 補足。所產生的密文與明文長度相同,解密時,如有補足部分再將其刪除。另一方面,DES 所用的加密和解密鑰匙的長度也是 64 位元,但在這 64 位元主鑰匙之中,有 8 個位元是同位元檢查碼,是用來檢出錯誤,所以真正用來加密的長度只有 56 個位元。

2-9 DES 演算法的加密流程,其中包括下列步驟,每一步驟都有其特殊功能,說明如下:

  • 明文資料分割,每一區塊 64 bits。最後區塊如果不足於 64 bits,則以 “0” 補足 64 bits

  • 初始排列(Initial PermutationIP(換位功能)。

  • 選擇鑰匙(keyKi,共有 16 把鑰匙,每一把鑰匙的長度是 48 bits

  • 加密處理(換位與取代功能)

  • 重複加密處理 16 次,每次使用不同的鑰匙加密。

  • 終結排列(Final PermutationFP)(換位功能)

簡單說明如下:開始時,明文資料已被分割成干個區塊,每區塊長度為 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),然後將 T064 位元)拆成左右兩個子區塊,各為 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 演算法的加密流程

 

主講人:粘添壽博士

 

資訊與網路安全技術