淺談檔案加密原理與實務應用
郭育郎
高雄師範大學資訊教育研究所
壹、前言
在過去的年代,密碼學技術只在軍事和外交方面扮演重要的角色。處於資訊時代的今日,網際網路提供了數位資訊的交流,並成為我們社會上不可缺少的一部份。隨著網路的普及與上網人口的激增,許多個人電腦受到駭客與木馬程式的入侵,電腦上的資料被竄改或外流的情事日益增多。因此,取決於加密的技術來保護個人隱私顯得日益重要。檔案加密系統運用密碼學技術對檔案文件提供了最佳的安全防禦。
以下將介紹密碼學的演進,並針對密碼學技術加以說明,最後再介紹具有代表性的加密工具PGP,讓使用者能透過它們來達成電腦中敏感性資料的保護。
貳、密碼學的演進
密碼學依其發展背景可分為傳統密碼學與近代密碼學。二十世紀以前的加密技術稱之為傳統密碼學,其主要的發展重點在於文件機密性的研究;但是,隨著網際網路的興起,帶動資訊的流通,使資訊來源的真實性、正確性與鑑別性成了關切的重點,此一時期的加密技術即稱之為近代密碼學(王旭正,2004)。
一、傳統密碼學
早在三千年前,由於國與國之間的衝突造就了秘密書信的發展。為了要確保機密性書信的安全,就有人想到把信差的頭髮剃光,將訊息寫在他的頭皮上,等到頭髮長出來後再讓他去傳送祕令。到達目的地後,再把頭髮剃除,就可以取到所要的訊息。這種掩飾訊息的方法,稱之為隱匿法(steganography)。使用隱形墨水來寫信也是其中的一種隱匿法。
而在隱匿法發展的同時,也出現了另一種方法,稱之為「密碼法」。它的目的並不在於將訊息隱藏,而是將訊息利用一定的規則,來打亂想要傳送的訊息。這個規則只有發送者與接收者知道,接收者依照這個規則,就可以逆向操作,而還原原始訊息。
密碼法又依其加密方式又可分為兩種;一種是「移位法」,另一種稱為「替代法」。移位法的基本原理是將訊息裡的字母調動位置,調動的規則愈複雜,第三者則愈難拼回原始訊息。替代法的基本原理是將字母隨意配對,再用配對的字母取代原訊息中的字母。
二、近代密碼學
在第二次世界大戰後,隨著電腦的出現,促進了資訊科技的發展,加密技術也繼續跟進邁入數位資訊的世界。大體上,利用電腦加密訊息與傳統的加密方式非常相似,它
仍然依循著古老的「移位法」與「替代法」加密原理來進行訊息加密;不同之處在於電腦的運作速度很快,可一瞬間就加密好一則很長的訊息,而且透過程式設計也可以使電腦執行更複雜的加密方式。
然而,愈來愈多的加密系統的問世,各商業之間的秘密通訊卻沒有相同的加密系統。因此,在西元一九七三年,美國國家標準局(National Bureau of Standards)為了解決這個問題,正式徵求一套標準的加密系統,以方便商業界秘密業務的往來。最後,IBM公司的”Lucifer”加密系統被採納並正名為資料加密標準(Data Encryption Standard ,簡稱DES)。
每一種加密系統都是由演算法(algorithm)與一把金鑰(key)所組合而成。金鑰是加密過程中會用到的密碼字母集,所有的原始訊息(或稱為「明文」)中的字母都根據一套特定密碼字母集一一的被重組置換。演算法只是加密的規則,必須要選配一把金鑰(私密金鑰)才可將原始訊息轉換成加密訊息(或稱為「密文」)。
雖然DES已成為一套加密標準,但雙方之間的金鑰(秘密金鑰)傳送安全確是一大問題,一個不安全的金鑰管理或傳送可能會導致安全的加密系統功虧一簣。幸運的是,迪菲(Diffie)與黑曼爾(Hellman)聯合提出了非對稱密碼法的概念。這個概念是使用兩把金鑰來對訊息加密與解密;利用「公開金鑰」進行訊息加密,並透過「私密金鑰」就可以解開訊息。「私密金鑰」不可公開,但「公開金鑰」卻可以廣為傳播。只要對方拿到你的「公開金鑰」,就可以透過此「公開金鑰」對「秘密金鑰」加密,當你收到已加密的「秘密金鑰」時,只要利用自己的「私密金鑰」解密即可得到「秘密金鑰」。因此,這種密碼法可以達到讓網路上無法面對面的雙方,藉著不安全的網路通道傳遞秘密金鑰,進行秘密通訊。
三、密碼學的未來
隨著電腦計算能力的提升,金鑰的長度常常是破解密碼系統的關鍵因素。除此之外,另外一個令人隱憂的問題是量子電腦(Quantum Computer)的出現。傳統電腦的特點是一個問題處理完後再依序處理另一個問題,但量子電腦卻可以同時處理數個問題。一旦量子電腦成功問世,在強大的運算能力下,將使得密碼系統在幾分鐘內就會遭到破解。
參、加密技術與應用
一、對稱加密法
對稱式金鑰加密法又稱為密鑰加密法或傳統密碼法。此種加密系統是由演算法(algorithm)與一把金鑰(key)所組合而成。金鑰是加密過程中會用到的密碼字母集,所有的原始訊息(或稱為「明文」)中的字母都根據一套特定密碼字母集一一的被重組置換。演算法只是加密的規則,必須要選配一把金鑰(私密金鑰)才可將原始訊息轉換成加密訊息(或稱為「密文」)。若密文在傳送過程中被攔截或竊取,在沒有金鑰的情況是很難破解加密訊息。接收者也唯有使用和加密時相同的金鑰才有順利解開訊息內容。圖2.1描繪傳統加密的程序。
圖2.1傳統加密法
此類加密法的加解密的速度極快。不過,由於加解密都需要使用相同的金鑰,以致於金鑰的保密與金鑰如何安全的傳送到另一方,一直是決定密碼安全性的重要關鍵。
目前比較著名的對稱式加密法有DES、RC2、RC5、Blowfish、Triple DES及新一代密碼演算法AES(Rijndael)等。
1. DES加密演算法
DES(Data Encryption Standard)演算法是使用最廣的秘密金鑰演算法,它的大部份架構是以IBM所做的研究為基礎,在1977年被美國國家標準局(National Bureau of Standard)採用為聯邦標準(FIPS PUB 46)後,已成為金融界及其他業界最廣泛使用的對稱金鑰密碼系統。DES的加密程序是使用一把56位元的鑰匙來對64位元的資料區塊進行加密,透過一連串的步驟,可將64位元的輸入轉為64位元的輸出。由於DES的金鑰長度只有56位元而已,這使得它在遇到暴力攻擊法來搜尋金鑰的攻擊時,顯得有些脆弱。
2. Triple DES加密演算法
因為DES具有被暴力法破解的潛在危機,所以尋求替代方案的其中一種策略就是利用DES以及多把鑰匙來進行多重加密。Triple DES就是對明文使用相同的DES演算法,並採用兩把或三把不同的金鑰分別進行三階段的加密處理程序。 若使用兩把不同金鑰加密,明文區塊的加密過程如下:
用第一把金鑰加密明文區塊。
將步驟一的結果用第二把金鑰解密。
將步驟二的結果用第一把金鑰再加密,產生密文。
若使用三把不同的金鑰加密,第一、二步驟相同,不同的是第三步驟使用第三把金鑰加密來產生密文。使用三把不同金鑰加密,等於把金鑰長度增加為DES金鑰的三倍,使得金鑰的長度可以達到168位元。使用兩把不同金鑰加密,也使得金鑰長度可以達到112位元。這兩種方式雖然都可以增加其安全性,但使用三把不同金鑰的方式似乎是更安全的方法。
3. AES加密演算法
美國政府有鑑於破解技術的快速演進,對於只有56位元密鑰的DES而言,密鑰長度實在太短,安全性受到質疑。基於此,美國標準技術局(National Institute of Standard and Technology)於1997年計劃公開徵求先進加密標準AES (Advanced Encryption Standard)來取代DES,經過四年的評選,終於在2000年10月選出Rijndael為下一代美國密碼系統標準。AES採用128位元的明文區塊長度,可接受的密鑰長度為128位元、192位元及256位元。由於128位元的密鑰長度能夠提供足夠的安全性,而且比更長的密鑰需要較少的處理時間,因此128位元密鑰長度最常被採用。
二、非對稱加密法
非對稱式加密法又稱為公開金鑰密碼法,它是一種非對稱性的結構,使用了一對金鑰來進行加密;一把為可以公開的加密金鑰(稱為「公開金鑰」),與一把必須保持秘密的解密金鑰(稱為「私密金鑰」)。利用「公開金鑰」進行訊息加密,並透過「私密金鑰」就可以解開訊息。「私密金鑰」不可公開,但「公開金鑰」卻可以廣為傳播。當要傳遞「秘密金鑰」給對方時,只要拿到對方的「公開金鑰」,就可以透過對方的「公開金鑰」加密「秘密金鑰」,並把已加密的「秘密金鑰」傳送給對方。當對方收到已加密的「秘密金鑰」時,只要利用他自己的「私密金鑰」解密即可得到「秘密金鑰」。因此,這種密碼法可以達到讓網路上無法面對面的雙方,藉著不安全的網路通道傳遞所需要的「秘密金鑰」,以進行之後的秘密通訊。圖2.2為公開金鑰加密程序。
圖2.2公開金鑰加密
此類加密法的缺點是加解密的速度慢,並不適合對文件進行加密。它一般只是用來傳送「秘密金鑰」,以解決秘密通訊雙方共享秘密時,有關秘密金鑰傳送的困難問題。
目前較著名的非對稱加密法RSA加密法、ElGamal加密法、Diffie-Hellman鑰匙交換法等。
RSA加密法是根據一種叫做模函數類型的單向函數,將公開金鑰套入此種單向函數可以將原始訊息轉換成加密訊息。這種單向函數只有在某些特殊條件下,才可以逆向求出原值。公開金鑰並不存在這種特殊條件,無法將加密訊息還原回來,所以在加密端須使用公開金鑰來加密原始訊息,以確保加密訊息無法透過公開金鑰還原原始訊息。然而,這套密碼系統最特別之處在於私密金鑰中存有可逆轉單向函數的特別資訊,解密者可以使用私密金鑰來還原加密訊息。RSA加密法的優點在於它解決了傳統加密法中的金鑰傳送問題,利用對方的公開金鑰來加密秘密金鑰,可讓傳送者不用擔心在傳送過程金鑰被攔截,而接收者只要利用自己的私密金鑰就可以解密,這是非常方便的。
三、數位簽章
數位簽章提供了「身份認證」及「資料完整性」兩種安全服務,它除了可以確保訊息未遭到他人篡改,還可以確認發送端的身份。因此,運用數位簽章可以在傳播資料的同時又同時具備有杜絕偽造的功能。
目前最著名的數位簽章演算法有RSA簽章系統、DSA簽章系統及ElGamal簽章系統。其中的DSA簽章系統是由NSA所開發,並且被國家標準與技術協會(NIST)當做標準公佈。
RSA數位簽章為非對稱式加密法之反相運作,即運用私鑰加密,利用公鑰來解密。它的重點並不在於資料的保密,因為解密的公鑰是公開的,人人都可拿到這把公鑰來解開資料。當訊息以「私鑰」加密後,只有擁有與該「私鑰」相對應的「公鑰」的人才可解密,但由於「私鑰」是不公開的,所以以此私鑰加密的訊息就可視為簽章,以代替現行的手寫簽名。
RSA數位簽章的運作方式如下,被簽章的文件會被導入一個雜湊函數,以產生一個固定長度的雜湊碼。再利用私鑰對此雜湊碼加密,所得到的就是數位簽章。最後,將訊息與數位簽章一起送出。
接收端收到文件與簽章後,會利用傳送者的公開金鑰來解開RSA數位簽章,並對該文件產生一個雜湊碼。如果解開的簽章與所產生的雜湊碼相同的話,即可證明此一簽章確實是由發送端所簽署;若不相同則表示在傳輸過程中發生錯誤或遭到竄改。
雜湊函數(訊息摘要)
雜湊函數的目的在產生檔案、訊息或資料區段的「指紋」,它可以將任何長度的訊息加以濃縮轉換為一固定長度的雜湊值,而仍然具有分辨文件的能力。
為了有效地確認訊息,雜湊函數必須具備兩種特性:「單向性(one-way)」與「碰撞抵抗力(collision resistance)」。「單向性」指的是:給定一個訊息,可以很容易算出雜湊碼;但是如果給定一個雜湊碼,則無法還原先前的訊息。當兩份不同文件產生相同的雜湊碼,這種現象稱為「碰撞(collision)」。「碰撞抵抗力」指的是:任何兩份不同文件的雜湊值是不會相同的。
目前常見的雜湊函數有MD5、SHA、SHA-1、RIPEMD-128及RIPEMD-160等。
MD5雜湊函數(RFC 1321)是Ron Rivest在MIT所設計發展的,它可以將任可長度的文件、訊息轉換為128位元的雜湊值。有研究報告指出MD5中壓縮函數的碰撞已被找到,所以RSA公司己發佈新聞指出MD5己不再適用於未來的簽章使用,代替的方案是採用更長的雜湊碼。建議採用SHA-1與REPEMD-160來代替MD5是安全的做法。
SHA(secure hash algorithm)是由國家標準與技術協會(NIST)所發展出來的,並且在1993年公佈成為美國聯邦資訊處理標準(FIPS PUB 180)。在1995年又修訂版本發佈為FIPS PUB 180-1,此版本通稱為SHA-1。SHA-1的處理流程和MD5相似,但是輸出的雜湊碼長度為160位元。雖然SHA-1的處理速度比MD5慢,但卻具有較高的安全性。
肆、PGP加密工具介紹
PGP(Pretty Good Privacy)是一套具有確認性與保密性功能的密碼學套裝軟體,它絕大部份是由Phil Zimmermann 這個人獨立開發而成,由於成長快速,現在己經被廣泛地採用。PGP結合對稱式加密演算法、非對稱加密演算法及單向雜湊函數來從事加密與簽章認證的工作。加密好的訊息可以透過不安全的網路進行傳送,另一端的使用者只要配備PGP軟體,就可以將收到的加密訊息解密。它除了可以被用在電子郵件加密上,也可用於檔案加密。
在進行PGP程式的安裝時,會要求使用者填上電子郵件位址以產生個人的公開金鑰與私密金鑰,而個人私密金鑰一定要善加保管。個人公開金鑰可透過網路傳播給對方,以便對方可利用此公開金鑰將文件加密,當自己收到加密文件時,又可透過自己的私密金鑰來解密。若您想在一封信上加上數位簽章,以防信件被偽造。這時,您就可利用自己的私密金鑰來對這封信附上數位簽章,當對方收到您的來信只要取出您的公開金鑰進行驗證,就可以判斷此信的真偽。
PGP9.0版產生個人金鑰對之畫面
在檔案加密方面,PGP除了提供了檔案加密(Encrypt)、數位簽章(Sign)及加密與簽章(Encrypt & Sign)的功能,更提供了安全的刪除敏感性檔案(Wipe)以及清除被刪除檔案所佔據之空間(Free Space Wiper)的功能。
為了避免硬碟中的敏感性資料遭到窺視,我們可以透過PGP中的加密(Encrypt)功能進行檔案加密。使用者只要在敏感性檔案上按滑鼠之右鍵,並在彈出的功能選單中選取”Encrypt”選項,就可輕易的完成加密的步驟。同理,要將已加密的檔案還原,只要在加密檔案上按右鍵,並在彈出的功能選單中選取”Decrypt & Verify”選項,即可輕易的完成解密的步驟。在硬碟中的重要文件為防止被人篡改,可利用PGP中的Sign功能對檔案製作數位簽章,使用者只要在重要的檔案上按滑鼠右鍵,在彈出的功能選單中選取”Sign”選項,就會在硬碟中多了一個副檔名為sig的檔案,這個檔案就是所謂的數位簽章。將來的某一天,若要驗證檔案是否遭到更改,只要在數位簽章的檔案上按右鍵,在彈出的功能選單上選取”Verify Signature”選項,即可進行文件驗證。
PGP9.0版所提供的滑鼠右鍵功能選單
除了以上所談的加解密與簽章驗證的功能外,對於敏感性文件的刪除也至關重要。許多人都以為只要把清除了資源回收筒中文件,此後這些敏感性的資料就不存在於硬碟中。這種想法是大錯特錯,因為作業系統並未把檔案真正刪除,而只是去除了檔案索引與檔案之間的連結,刪除的檔案其實還在電腦中。因此,也唯有將已刪除的檔案覆寫上資料,才能確保資料的安全性。PGP中的Wipe提供此種功能,只要在檔案上按右鍵,在彈出的功能選桿中選取”Wipe”選項,就可以永久地刪除這些檔案在硬碟中,而且不會遺留檔案中的任何片段也永遠無法復還。
PGP9.0版所提供的Shred Files功能
同樣地,若要將硬碟中所有這些已被刪除的檔案永久清除,就必須透過PGP中的” Wipe Free Space”功能,它讓硬碟中所有被刪除的文件不會被還原工具所恢復。
PGP9.0版所提供的Wipe Free Space功能
PGP9.0版所提供的Free Space Wipe的操作介面
最後,我們可以透過PGPi (http://www.pgpi.org)這個網站上找到PGP最新的相關訊息,它提供了各種版本的最新版PGP軟體下載。目前PGP最新版本為9.0版,它的功能相當齊全,除了提供檔案加密安全之外,還提供郵件加密與即時通訊(instant messenger)的安全。雖然使用者可以在PGP網站(http://www.pgp.com/downloads/desktoptrial.php)下載到”PGP Desktop Professional 9.0 Trial”軟體,不過,因為是試用版本,在使用30天後大部份的安全功能將不能運作,但基本的檔案加密與數位簽章功能還是可以繼續使用。
伍、結語
根據資訊安全廠商賽門鐵克公司在第八期的「網路安全威脅研究報告」中顯示, 2005年的上半年期間,利用惡意程式碼盜取金錢的新式攻擊方式有增加的趨勢,而且攻擊的目標已悄悄的轉向用戶端的桌上型電腦。這份報告也同時指出竊取個人機密資料的威脅持續增加,前50大惡意程式碼(病毒、蠕蟲以及木馬程式)中就有74%是屬於以竊取機密資訊為主的惡意程式。而這股趨勢也延續到下半年,在第九期的「網路安全威脅研究報告」中顯示,在50大惡意程式碼中出現竊取機密資訊的比例已從上半年的74%竄升到80%。因此,儲存在電腦中的個人私密資料都可能因為惡意程式而遭到資料外洩,我們也唯有依靠著加密工具,才能確保電腦中敏感性文件的安全。
參考文獻
PGP Desktop Professional 9.0 Trial Software, PGP Corporation, http://www.pgp.com/downloads/desktoptrial.php
Simon Singh (2000),THE CODE BOOK,Random House.
The
International PGP (2005), Overview of PGP, http://www.pgpi.org/doc/overview/
William Stallings (2003), Cryptography and Network Security: Principles and Practice, 2nd edition, Prentice-Hall.
王旭正、柯宏叡(2004)。密碼學與網路安全-理論、實務與應用。台北縣:博碩文化。
楊中皇(1999),校園IC卡的資訊安全系統設計,第十屆國際資訊管理學術研討會論文集,1999年6月,pp. 614-618。
賽門鐵克公司(民95年3 月)。賽門鐵克第九期全球網路安全威脅研究報告。http://www.symantec.com/zh/tw/about/news/release/article.jsp?prid=20060307_01
賽門鐵克公司(民94 年9 月)。賽門鐵克第八期全球網路安全威脅研究報告。http://www.symantec.com/region/tw/press/tw_050919.html