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

 

2-11 Triple DES 密碼系統

內容:

56 位元的 DES 編碼系統已面臨被暴力攻擊破解的危機,如何在現有的系統上來增加它的安全性,『三重 DES』(Triple DES3DES)編碼系統就在此情況下被發展出來 [139]。它有兩種系統架構,以下分別說明之。

2-11-1 Two-Keys 3DES

簡單的說,Triple DES 系統是連續使用 DES 編碼器三次,如只用到兩把 56 個位元的鑰匙(112 bits),則稱為 Two-keys 3DES(如圖 3-2 所示)。加密時,明文由 DES-加密、DES-解密、DES 加密連續編碼三次得到密文,兩把鑰匙 K1 K2交叉使用;解密運作是,密文經DES-加密、DES-解密、DES 加密連續碼三次得到明文,使用與加密時相同的兩把鑰匙。計算公式如下:

加密:C = EK1[DK2[EK1[P]]]

解密:P = DK1[EK2[DK1[C]]]

鑰匙:K = K1 || K2(排列組合)

2-13 3DES 加密的運作程序

同樣的演算法,利用不同的鑰匙加密兩次以上,是否可以達到雙倍以上的安全性,實在是有待商榷的問題。對付這種加密法的破解方法為『中間交會攻擊法』(Meet-in-the- middle Attack[56],首先來觀察以兩把鑰匙執行同一演算法的密文輸出:

C = Ek2[Ek1[P]]

令:

X = Ek1[P] = DK2[C]

假設已經知道(PC)的組合(選擇明文攻擊),首先,將排列可能出現的 256 K1 P 加密,並建立一個組合表格(PX);接下來,再排列出 256 K2 X 加密的可能組合(XC)。可以發現,如果 256機率的編碼系統可以破解的話,雙重加密系統的安全度並沒有提高多少,祇不過增加一點程序而已。

克服『中點交會攻擊法』最基本的方法是增加加密器的串接,而採用三階段三鑰匙的加密法,可以大大增加『選擇明文攻擊』的困難度,雖然仍有可能被破解,但所花耗的成本也相對增加許多。如果真是如此,鑰匙長度將會延伸到 168 個位元(56 * 3),似乎有點過於龐大。Triple DES 採用『加密解密 加密』的串接方式,只要兩把鑰匙即可,鑰匙長度只有 112 個位元(56 * 2),同樣可以得到三重加密的效果(如圖 3-2 所示)。目前使用兩把鑰匙的 Triple DES 加密法,非常受工業界歡迎,並且已成為 ANS ISO 的標準規範:ANS X9.17 ISO 8732

2-11-2 Three-keys 3DES

但話說回來,還是採用三把鑰匙三重加密較為安全(強度較高)[81],鑰匙長度 168 個位元,組合方式為:K = K1 || K2 || K3,其定義如下:(系統架構與圖 3-2 相似)

加密:C = EK3[DK2[EK1[P]]]

解密:P = DK1[EK2[DK3[C]]]

目前有許多網路應用系統採用三把鑰匙的 Triple DES 加密法,如 PGP S/MIME 等系統皆是。有趣的是,使用 Triple DES 密碼系統並沒有違背早期美國政府的出口限制,因為它還是採用 56 位元 DES 的密碼系統,祇不過重複使用 3 次而已。美國政府只限制幾位元密碼系統的出口,並沒有限制幾位元長度的鑰匙。由此可見,如果認為 AES128 位元)不夠安全的話,也可試著使用 Triple-AES 來試看看。

 

主講人:粘添壽博士

 

資訊與網路安全技術