• 沒有找到結果。

密碼學及DES演算法介紹

在文檔中 PDA遙控家電 (頁 37-46)

對他人隱私的好奇心和隱藏訊息是所有人類社會的特性。隨著運 算能力的出現和進階數學技術的發展,系統變得非常複雜,目前有可 能建構出很難被有效破解的密碼。用來加密和解密資料的 演算法分 為兩大類別︰秘鑰(secret key)或對稱密碼學,其中對加密和解密 這兩個過程使用同一金鑰;以及公開金鑰或非對稱密碼學,其中一個 金鑰用來加密,另一個用來解密。在這個專題中,我們所使用的是 DES 加解密演算法,因此在密碼學簡略介紹後,會特別說明 DES 演算 法。

由於目前網路的蓬勃發展加上無線網路的崛起,資料在傳送過程 中的安全性更形重要,下圖為資料傳送過程中可能發生之現象。

圖 3-1 資料傳送過程可能發生之現象

29

為了維護所傳送資料的安全,人們便想出許多的方法來隱藏訊 息。一個密碼系統的主要角色有三個,即發送方、接收方、與破密者,

典型的密碼系統如下圖 3-15 所示。在發送方,首先將明文利用加密 器及加密金鑰,將明文加密成密文。接著利用公眾通道送給接收方,

接收方收到密文後,利用解密器及解密金鑰,可將密文解密成明文。

破密者並不知道解密金鑰,但利用各種方法想要得知明文,或假冒發 送方送出偽造的訊息讓接收方信以為真。

圖 3-2 典型密碼系統 一般依照其應用而言,密碼系統可提供下列功能:

1.秘密性(secret or privacy):防止非法的接收者發現密文。

2.鑑定性(authenticity):確定資訊來源的合法性,一及此資訊確由 發送方所傳送。而非別人偽造,或利用以前訊息重送。

3.完整性(integrity):確定資訊沒有被有意或無意的更改,及被部 分取代。

4.不可否認性(nonrepudiation):發送方在事後,不可否認其傳送過 之資訊。

傳統密碼學往往僅注重資訊的秘密性,但是近代密碼學認為資訊 的鑑定性、完整性、及不可否認性,在商業上應用比秘密性更高。

30

在圖 3-15 中,如果加密金鑰只有發送方知道,則稱此為秘密金 鑰密碼系統,具有下列特性:知道加密金鑰即之解密金鑰,反之亦 然。在許多情況下,兩者相同,因此又稱為對稱式金鑰密碼系統。

一個安全的祕密金鑰密碼系統可以達到保護資訊機密、鑑定發送方 身分、確保資訊完整性。但其亦有缺點如下:

1.收發雙方如何獲得其加解密金鑰:這稱為金鑰分配問題,若收發雙 方互不認識,此問題更加嚴重。如暫不考慮分配金鑰問題,可假設 雙方有一安全通道,下圖 3-16 為一較完整秘密金鑰密碼系統。

2.金鑰數目太大:若網路中有 n 人,則每一人需擁有 n-1 把鑰匙,如 何管理眾多鑰匙,也是大問題。

3.無法達到不可否認性:由於雙方之知道對方金鑰,因此發送方可以 否認之前發送的任何資訊。

圖 3-3 秘密金鑰密碼系統

由於秘密金鑰密碼系統有上述問題,所以在 1976 年誕生了公開 金鑰密碼系統。以一個日常生活經驗為例,當我們在上鎖時,是否一 定要有開鎖的鑰匙?答案是否定的,我們並不常常需要或沒有鑰匙就 能鎖上,將之對應到密碼系統上。發送方是否一定需要知道解密金 鑰,才能將明文加密成密文,在秘密金鑰密碼系統中,知道加密金鑰

31

DES (Data Encryption Standard)為目前最常用的密碼演算法之 一。他是由 IBM 公司在 1970 年代所發展出的加密演算法並在 1977 年經美國國家標準局(NBS)採用為聯邦標準(FIPS PUB 46-2),成 為各界最為廣泛應用之對稱式金鑰密碼系統。截至目前為止,除了密 碼金鑰較短為人詬病外,還無法根本完全的破解 DES,故有人提出以 Triple-DES 或 DESX 的方式,加強其金鑰長度,使成為安全性高之加 密演算法。

DES 的金鑰長度為 56 個位元,有時會輸入 64 個位元,在其第 8、

16、24、32、40、48、56 及 64 位元為同位元檢查碼,在做加密或解

32

密動作時,其同位元檢查碼沒有真正使用。DES 系統的基本原理是利 用 Shannon 的多重加密的觀念 (Product Cipher) 並利用 Confusion

(混淆)與 Diffusion(散佈)等方式,將明文轉換成其他格式,並 散佈明文的每一個小部分擴散到密文的各部分以達到加密效果。簡單 來說,資料保密技巧是將原始資料「明文(Plaintext)」弄得非常散 亂,讓破解者無法利用統計方式或其他數學分析技巧將加密後的「密 文(Ciphertext)」還原成原來的明文。

DES 的加密方法是透過 16 回合的運算所組成,其每一回合的運 ( initial permuttion,IP)與終結排列(final permutation,

FP),以及與 16 個金匙所做的 16 次重複運算,將明文依我們所 規定的方法亂數排列,最後所得到的即為密文。

33

解密:

至於解密方面,DES 密碼系統在 16 個重複運算後有一個將 左右兩部分對調的動作,最主要的原因是為了使解密也能使用 相同的演算法,換句話說,解密之步驟其外觀與加密步驟相同,

也就是我們需將密文先做初始排列,再經過 16 次重複運算步 驟,而這 16 次重複運算所使用之金匙依序為 K16,K15,…..K1,

最後將左右兩部分對調後再做終結排列運算,即可得到原本之 明文,這樣才是真正加密的反運算。

加解密架構:

64 位元的明文,先經過一次的初始排列運算後,所得的結果再 與金匙所產生的 48 位元之 k 做連續 16 次的重複運算,並將 其結果做 32 位元的左右對調,最後在經過終結排列,就可以 得到密文,也就是用來在網路上所傳送的資料。下兩圖為運作 說明及子金鑰產生過程。

34

圖 3-4 DES 加解密架構

35

圖 3-5 子金鑰產生過程

f 函數為 DES 加密法中的重要部份,而其中的重點在替換盒上,

圖 3-17 為 f 函數的計算過程架構。f 函數有兩個輸入資料,一為 32 位元的中間密文 R,另一部分為 48 位元的金鑰 K,32 位元的中間密 文先經過擴增排列 E 為 48 位元,再與 48 位元的金要作 XOR 運算,所 得結果再分給八個替換盒 S1,S2,…,S8。

每個替換盒輸入為 6 位元輸出 4 位元,總出書資料為 32 位元,

在經縮減排列 P 後的 32 位元結果,就是 f 函數的輸出了。

36

圖 3-6 f 函數計算過程

37

在文檔中 PDA遙控家電 (頁 37-46)

相關文件