• 沒有找到結果。

相關密碼學理論與技術

第二章 文獻探討

2.4 相關密碼學理論與技術

2.4.1 密碼系統(Cryptosystem)

密碼系統(Cryptosystem)即是將原來形式的明文(Plaintext),經過某種特殊形式 的處理,例如進行不可被破解的數學函數或數學計算等等方式,轉換成另一種偽裝隱藏 的形式,而這種隱藏的形式通常我們稱之為密文(Ciphertext)。而密文,通常只有經過 授權許可的人,才能將其轉換回原本的明文。通常來說,將明文轉換成密文,這個過程 我們稱之為加密(Encryption);相反的,將密文轉換回原本的明文,這個過程我們稱之 為解密(Decryption)。

假設傳送者手上有一份明文要傳送給接收者,這一份明文除了接收者以外,不能讓 其他人知道明文的內容。為了防止在傳送的過程中,明文遭到惡意第三者的攔截窺視,

在明文傳送前,傳送者必須選擇一個參數,利用這個參數將原本的明文轉換成密文,再 將密文傳送給接收者,這個參數即為加密金鑰(Encryption Key);同樣地,接收者也必 須持有一個參數,用來將密文還原為原本的明文,這個參數即為解密金鑰(Decryption Key)[22],如圖 2-7 所示。

圖 2-7:密碼系統 資料來源:[22]

對傳送者與接收者而言,用來對密文解密的金鑰一旦洩漏,任何非法獲取解密金鑰 的攻擊者,都可以輕易的破解加密過的資料,進而得知明文訊息的內容,接收者與傳送 者之間的通訊將不再安全。因此,有人提出了非對稱性的金鑰加解密碼系統,因此,我 們可以將密碼系統簡單的區分為對稱式密碼系統(Symmetric Cryptosystem)與非對稱式 密碼系統(Asymmetric Cryptosystem)。

2.4.2 對稱式密碼系統(Symmetric Cryptosystem)

對稱式密碼系統(Symmetric Cryptosystem)又稱為私密金鑰密碼系統(Private-Key Cryptosystem)。在資料傳送前,傳送者與接收者必須事先協商一把共同的金鑰,這把 金鑰用來加密及解密[15]。要進行通訊時,傳送者先用這把金鑰將明文加密成密文後,

再傳送給接收者;接收者收到密文之後,用相同的金鑰對密文解密,就可以得到原先的 明文。如圖 2-8 所示。

圖 2-8:對稱式密碼系統 資料來源:[11]

對稱式密碼系統的特色是用同一把金鑰來進行加密、解密,優點是加、解密的速度 較快,適合用在大量資料的處理。使用對稱式密碼系統的傳送者與接收者,必須持有相 同的加解密金鑰,如何協商這一把金鑰,是對稱式密碼系統的安全議題[6][26][11]。

目前常見的對稱式加密演算法有 DES、Triple-DES、AES、IDEA、FEAL 等。

2.4.3 三重資料加密標準(Triple Data Encryption Standard)

1970 年初,美國 IBM 公司發展 LUCIFER 演算法,1977 年美國國家標準局採用 LUCIFER 演算法成為資料加密標準(Data Encryption Standard,DES)。DES 是一種區塊加密法,

每次加密、解密的區塊大小為 64 位元。而在電腦運算速度發展越來越快的趨勢下,DES 的金鑰長度僅 56 位元,存在遭到暴力法破解的危機。為了避免金鑰遭到攻擊者的暴力 破解,可以串接三個 DES 金鑰來使用,即所謂的三重資料加密標準(Triple-DES)。

Triple-DES 的金鑰長度可以是 112 位元或 168 位元,較 DES 的金鑰長度僅 56 位元,安 全性明顯提升許多[6][15][22]。

2.4.4 非對稱式密碼系統(Asymmetric Cryptosystem)

1976 年,美國兩位學者 Diffie 與 Hellmam[8]提出一個公開金鑰交換演算法,讓未 曾見過面的兩個人,可以取得共通的金鑰,是公開金鑰最早的想法。公開金鑰密碼系統 (Public-Key Cryptosystem)用來加密與解密的金鑰並不相同,因此又稱為非對稱式密 碼系統(Asymmetric Cryptosystem)。

假設傳送者想要將資料安全的傳送給接收者,那麼接收者必須先將他的加密金鑰公 開,傳送者取得接收者的公開加密金鑰後,使用這把金鑰將資料加密成密文後再傳送;

接收者收到密文後,再使用自己的私密解密金鑰對密文解密,就能得到原先的資料。如 圖 2-9 所示。

圖 2-9:非對稱式密碼系統 資料來源:[11]

非對稱式密碼系統的加密金鑰可以公開,傳送者利用接收者的公開加密金鑰來對明 文加密,而接收者的解密金鑰必須妥善保存,要從非對稱式密碼系統的演算法、公開加 密金鑰或是加密後的密文,推算出解密金鑰是不可能的[15][11]。目前常見的演算法有 RSA、ElGamal 等。

2.4.5 RSA 公開金鑰密碼系統

1978 年,美國麻省理工學院三位教授 R. Rivest、A. Shamir、A. Adleman 三位學 者共同提出一個非對稱式的加密演算法。取他們三人姓氏的第一個英文字母,命名為 RSA 演算法[5]。

RSA 密碼系統用來對資料加密的公開金鑰是兩個正整數( Ne, ),解密金鑰則是一個

數字d。公開金鑰與私密金鑰的產生方式如下:

2.4.6 單向雜湊函數(One-Way Hash Function)

單向雜湊函數(One-way hash function)是獨立於加解密系統以外的一種密碼系 統,它主要用在於需要比對檔案內容是否經過修改上,因此,常用在明文認證

(Authentication)或數位簽章(Digital Signature)上。在運作上,主要是將任意長度 的訊息 M ,經過單向雜湊函數(One-Way Hash Function)的處理運算後,可以得到一個 固定長度的雜湊函數值h(M),這個雜湊函數值我們又稱為訊息摘要(Message Digest) 演算法或訊息指紋(Message Fingerprint)演算法,如圖 2-10 所示。而要從雜湊函數的 輸出h(M),求得原本的輸入訊息 M ,在計算上是不可能做到的,所以,通常來說單向 雜湊函數必須具備碰撞抵抗性(Collision Resistance),亦即對一個訊息M1,要找到 另一個不同的訊息M2,經過運算得到相同的雜湊函數值,即h(M1)h(M2),在計算上 是不可能的,亦即給定任意兩個不同但是大小相同的訊息M1M2,再經由經過運算得 到的雜湊函數值h(M1)與h(M2)將不會相等[22][26]。

圖 2-10:單向雜湊函數 資料來源:[22]

目前常見的單向雜湊函數有麻省理工學院 R.Rivest 教授設計的 MD5 雜湊函數,以 及美國國家標準科技局(NIST)的 SHA-1、SHA-256、SHA-384、SHA-512 等[22]。

相關文件