• 沒有找到結果。

DES 加/解密介紹

在文檔中 USB介面之加解密卡製作 (頁 36-47)

DES 演算法

DES(data encryption standard)說明:

DES(Data Encryption Standard ) 是在 1970 年代中期由美國 IBM 公司發展出來的,且被美國國家標準局公佈為資料加密標準的一種區 塊加密法(Block Cipher)。直到今日,儘管 DES 己歷經歷了二三十個 年頭,但在已知的文獻中還是無法完全地,徹底地把 DES 給破解掉。 其中有個位元是用來做錯誤更正(Error Correction),所以 64 位元 中真是金匙效用的只有 56 位元。而 DES 加密與解密所用的演算法除 了子金匙的順序不同之外,其他的部份則是完全相同的。

DES 的細節說明:

圖 7.1 是 DES 全部 16 個回合(Round)的加/解密架構圖,其最上 方的 64 位元輸入區塊資料,可能是明文,也可能是密文,端視使用 者要做加密或解密而定。而加密與解密的不同處,只在於圖 7.1 最右 邊的 16 個子金匙之使用順序不同,加密之子金匙順序為 K1 K2 K3 K4……K16,而解密之子金匙正好相反,為 K16 K15 K14……K1。

首先,加/解密輸入區塊依表 7.2 之表之重排次序,進行初始排 列動作,攪亂資料之原來順序後,再分為 L0 與 R0 兩個 32 位元的區 塊。接著,R0 與第一個子金匙 K1 一同經過 f 函數運算,而得到的 32 位元輸出再與 L0 做位元間的互斥或(XOR)運算。其結果成為下一個回 合的 R1,R0 則成為下一回合的 L1,如此連續運作 16 回合。

圖 7.1 DES 加/解密架構圖

表 7.2

我們可以下列兩個式子來表示其運算過程:

Ri = Li-1 xor f(Ri-1 , Ki ) Li = Ri-1 , i = 1,2,3,…16

而 最 後 所 得 到 的 R16 與 L16 不 須 再 互 換 , 直 接 連 結 (Concatenation) 成 64 位元的區塊,再依表 7.3 之重排依序做一終 結排列動作,得到 64 位元的輸出。

表 7.3

子金匙

表 7.4、7.5、7.6、7.7 是整個子金匙產生的依據。子金匙產生 過程中的輸入,為使用者所持有的 64 位元母金匙。而加密或解密時,

使用者先將母金匙輸入至子金匙產生流程中即可。首先經過金匙排列 (如表 7.6),將母金匙的 8 個除錯位元剔除掉,而留下真正的 56 位 元母金匙。接著,兵分兩路為兩個 28 位元的區塊 C0 及 D0,再分割 經過一個左旋函數(如表 7.5),得到 C1 與 D1,連結成 56 位元資料,

再依金匙排列 B(如表 7.7) 做重排動作,便可輸出子金匙 K1,而 K2 至 K16 之做法依此類推。其中較需注意的是,金匙排列到 A 的輸入為 64 位元,輸出為 56 位元;而金匙排列 B 則分別為 56 位元與 48 位元,

這些情況可由表 7.4,表 7.6 及表 7.7 中很清楚地看出來。

圖 7.4

表 7.5

表 7.6 表 7.7

f 函數

f 函數是整個 DES 加密法中最重要的部份,而其中的重點又在替 換盒(substitution boxes)上。圖 7.8 是 f 函數的計算過程架構。F 函數有兩個輸入資料:一為 32 位元的中間密文 R,另一部份是 48 位 元的子金匙 K。32 位元的中間密文 R 先經過擴增排列 E(如表 5.9)後,

即擴增至 48 位元。接著,再與另一輸入資料,即 48 位元的子金匙 K 做互斥或 XOR 運算。所得的結果,再平均分配給 8 給替換盒 S1,S2, S3…S8。

圖 7.8 f 函數計算過程架構

表 7.9 BIT-SELECTION TABLE

替換盒

每個替換盒的輸出與輸入分別為 6 位元與 4 位元。所以經過 8 個 替換盒的替換之後,總輸出資料則成 4 * 8=32 位元。最後再經匯減 排列 P(如表 7.10)縮減成 32 位元的結果,這也就是 f 函數的輸出了。

而以上 8 個神祕的替換盒是如何運作的,請參照表 7.11 和 7.12。

替換盒的替換方式很有意思,它把 6 位元輸入最左與最右 2 個位元取 出來當表 7.11 的列數,所以表 7.11 中每個替換盒共有 2 4 =16 行。

舉 例 如 下 : 假 設 第 一 個 替 換 盒 S1 的 6 個 輸 入 位 元 資 料 為 數 列 (011001)2,其中右邊為低位元。則我們就選 S1 的第(01)2 =1 列及 第(1100)2 = 12 行之內容,也就是 9=(1001)2 為輸出資料。

表 7.10

表 7.11

表 7.12

在文檔中 USB介面之加解密卡製作 (頁 36-47)

相關文件