在現(xiàn)代社會(huì)里,電子郵件和網(wǎng)絡(luò)上的文件傳輸已經(jīng)成為生活的一部分,郵件的安全問題日益突出。大家都知道在Internet上傳輸?shù)臄?shù)據(jù)通常是沒有加密的,如果對(duì)自己的重要信息不加以保護(hù),第三者會(huì)很輕易地獲得你的隱秘。還有一個(gè)問題就是信息認(rèn)證,即如何讓收信人確信郵件沒有被第三者篡改,這就需要數(shù)字簽名技術(shù)。PGP 就是這樣一種產(chǎn)品。
PGP——Pretty Good Privacy,是一個(gè)基于RSA公鑰加密體系的郵件加密軟件,它提出了公共鑰匙或不對(duì)稱文件加密和數(shù)字簽名。其創(chuàng)始人是美國的Phil Zimmermann。他的創(chuàng)造性在于他把RSA公鑰體系的方便和傳統(tǒng)加密體系的高速結(jié)合起來,并且在數(shù)字簽名和密鑰認(rèn)證管理機(jī)制上有巧妙的設(shè)計(jì),因此PGP成為目前幾乎最流行的公鑰加密軟件包。本文主要介紹PGP實(shí)現(xiàn)的原理和使用。
一、幾種加密算法
1.DES算法
DES是一個(gè)應(yīng)用非常廣泛的數(shù)據(jù)加密機(jī)制,目前有許多種硬件和軟件可以實(shí)現(xiàn)。它使用一個(gè)特殊的算法和稱之為鑰匙的值將明文信息轉(zhuǎn)換成密文(ciphertext),如果接收者知道鑰匙,就可以使用它將密文轉(zhuǎn)換成原始數(shù)據(jù)。所有加密系統(tǒng)的一個(gè)潛在弱點(diǎn)就是需要記住數(shù)據(jù)加密的鑰匙,在這點(diǎn)上,類似于要記住口令。如果鑰匙被非授權(quán)方記錄下來,你的原始數(shù)據(jù)就可以被他人解讀;如果忘記鑰匙,連你自己也無法恢復(fù)原始數(shù)據(jù)。
2.RSA算法
RSA(Rivest-Shamir-Adleman)算法是一種基于大數(shù)不可能質(zhì)因數(shù)分解假設(shè)的公鑰體系。簡(jiǎn)單地說,就是找兩個(gè)很大的質(zhì)數(shù),一個(gè)公開給世界,稱之為“公鑰”,另一個(gè)不告訴任何人,稱之為“私鑰”。兩把密鑰互補(bǔ)——用公鑰加密的密文可以用私鑰解密,反過來也一樣。假設(shè)A寄信給B,他們知道對(duì)方的公鑰。A可用B的公鑰加密郵件寄出,B收到后用自己的私鑰解出A的原文,這樣就保證了郵件的安全性。
3.IDEA算法
IDEA算法是經(jīng)過改進(jìn)的傳統(tǒng)算法。所謂傳統(tǒng)算法就是用密鑰加密明文,然后用同樣的密鑰解密。它的主要缺點(diǎn)是密鑰的傳遞渠道解決不了安全性問題,不能滿足網(wǎng)絡(luò)環(huán)境郵件加密的需要。
二、PGP的主要特征
● 使用PGP對(duì)郵件加密,以防止非法閱讀;
● 能給加密的郵件追加上數(shù)字簽名,從而使收信人進(jìn)一步確信郵件的發(fā)送者,而事先不需要任何保密的渠道用來傳遞密鑰;
● 可以實(shí)現(xiàn)只簽名而不加密,適用于發(fā)表公開聲明時(shí)證實(shí)聲明人身份,也可防止聲明人抵賴,這一點(diǎn)在商業(yè)領(lǐng)域有很大的應(yīng)用前景;
● 能夠加密文件,包括圖形文件、聲音文件以及其它各類文件;
● 利用PGP代替Uuencode生成RADIX 64(就是MIME的BASE 64格式)的編碼文件。
三、PGP密鑰體系管理
PGP密鑰體系包含對(duì)稱加密算法(IDEA)、非對(duì)稱加密算法(RSA)、單向散列算法(MD5)以及隨機(jī)數(shù)產(chǎn)生器(從用戶擊鍵頻率產(chǎn)生偽隨機(jī)數(shù)序列的種子),每種算法都是PGP不可分割的組成部分。
由于RSA算法計(jì)算量極大,在速度上不適合加密大量數(shù)據(jù),所以PGP實(shí)際上用來加密的不是RSA本身,而是采用傳統(tǒng)加密算法IDEA,IDEA加解密的速度比RSA快得多。PGP隨機(jī)生成一個(gè)密鑰,用IDEA算法對(duì)明文加密,然后用RSA算法對(duì)密鑰加密。收件人同樣是用RSA解出隨機(jī)密鑰,再用IEDA解出原文。這樣的鏈?zhǔn)郊用芗扔蠷SA算法的保密性(Privacy)和認(rèn)證性(Authentication),又保持了IDEA算法速度快的優(yōu)勢(shì)。
公鑰體制的提出,就是為了克服傳統(tǒng)加密體系的密鑰分配過程難以保密的缺點(diǎn)。而PGP采用公鑰介紹機(jī)制不僅解決了公鑰體制的缺點(diǎn),而且對(duì)其加以發(fā)展。所謂公鑰介紹機(jī)制,就是由一個(gè)大家普遍信任的人或機(jī)構(gòu)擔(dān)當(dāng)介紹人,被稱為“認(rèn)證權(quán)威”,每個(gè)由他簽字的公鑰都被認(rèn)為是真的,這樣大家只要有一份他的公鑰就行了。而認(rèn)證這個(gè)人的公鑰是很方便的,因?yàn)樗麖V泛提供這個(gè)服務(wù),因而他的公鑰也廣泛流傳。現(xiàn)在公認(rèn)的有效方法是通過密鑰分配中心KDC來管理和分配公開密鑰,這對(duì)商業(yè)的網(wǎng)絡(luò)化提供了可靠的保障。
當(dāng)然,個(gè)人用戶可以不需要進(jìn)行機(jī)構(gòu)認(rèn)證,而通過私人方式進(jìn)行密鑰轉(zhuǎn)介,這體現(xiàn)了人們交往的自然狀態(tài)。
四、PGP的使用
使用PGP 6.0.2i可以簡(jiǎn)潔而高效地實(shí)現(xiàn)郵件或者文件的加密、數(shù)字簽名。當(dāng)PGP 6.0.2i安裝完成后,在任務(wù)欄中出現(xiàn)PGP所特有的小鎖圖標(biāo)——PGP Trays。點(diǎn)擊左鍵,即可激活PGPtools。
PGP 6.0.2i中使用PgpKeys管理密鑰環(huán)(KeyRing),密鑰環(huán)文件保存所有與你相關(guān)的公開密鑰,并對(duì)其進(jìn)行維護(hù)和管理,如進(jìn)行密鑰的生成、傳播或廢除,以及數(shù)字簽名、信任管理、資源查詢等。如果機(jī)器與Internet相連,還可實(shí)現(xiàn)在線密鑰認(rèn)證以及在線密鑰更新。
1.密鑰的生成、傳播和廢除
每一個(gè)用戶必須生成自己的密鑰對(duì),這是使用PGP加密的第一步,通常在安裝過程中完成。在PgpKeys中也可生成新的密鑰,即在菜單中選擇“Keys”—“New Key”,彈出對(duì)話窗,提示用戶填寫用戶名、電子信箱地址,然后要選擇密鑰長度,一般選擇2048bit。之后是確定密鑰生存周期:可以定制該密鑰在一定天數(shù)后過期,默認(rèn)值為NEVER。最后定義保護(hù)密鑰的口令。生成密鑰后,可以選擇是否立即將新的公開密鑰發(fā)送到Internet密鑰服務(wù)器上,這樣希望與你通信的用戶可以直接到密鑰服務(wù)器中下載你的密鑰。通過密鑰服務(wù)器可以實(shí)現(xiàn)密鑰的上載與下載,還能方便地與他人交換公鑰。若想廢除時(shí),只須選取Revoke即可。
2.數(shù)字簽名
如果希望發(fā)出的信件或者文件不被冒名或篡改,可以用你的私鑰對(duì)郵件等簽名。收件人可使用你的公鑰驗(yàn)證簽名。PGP 6.0.2i還可實(shí)現(xiàn)加密后簽名,避免了老版本中簽名文件的明文狀態(tài)——只能保證不被篡改,不能加密傳輸?shù)娜秉c(diǎn)。
3.加密與解密
下面我們以to-pymd.txt為例,說明實(shí)現(xiàn)加密的具體過程。點(diǎn)擊“Encrypt”后,出現(xiàn)選擇所加密文件的對(duì)話框,選擇to-pymd.txt后,進(jìn)一步選擇加密后的輸出格式,
分別有以下4個(gè)選項(xiàng):
◎ Text Output
◎ Conventional Encryption
◎ Wipe Original
◎ Secure Viewer
根據(jù)郵件及文件重要性的不同,可選擇合適的輸出格式。本例中,選擇“Conventional Encryption”。接下來便是提示輸入口令,得到確認(rèn)之后,選擇輸出文件名a,然后一切OK!
解密是加密的反過程。PGP 6.0.2i的解密過程同樣簡(jiǎn)單,點(diǎn)擊“Decrypt/Verify”,彈出文件選擇對(duì)話框,選擇所要解密的文件之后,輸入加密時(shí)使用的密碼,經(jīng)過計(jì)算,再次選擇輸出文件名,解密就完成了。讀者可參照加密過程自己實(shí)現(xiàn)文件解密。
五、PGP的密鑰和口令的安全性問題
最可能的失密方式就是你把你的口令寫在某處,又無法保證除你之外沒有其他人能看到。如果別人得到你的口令和你的私匙文件,整個(gè)加密體系就無密可言了。
另一個(gè)古老的話題就是口令不要太簡(jiǎn)單。PGP用的是“口令”(passphase),而不是“密碼”(password),就是說可以在口令中包含多個(gè)詞和空格。攻擊者可能會(huì)用一本字典或者名言錄來尋找你的口令,因此為了得到好記又難猜的口令,你可以創(chuàng)造句子或者找些非常生僻的文學(xué)篇章中的句子。口令的長度最好大于等于8個(gè)字符,同時(shí)也可夾雜英文字母的大小寫和數(shù)字、符號(hào)等。一般說來,密鑰長度每提高一位,就可以讓攻擊者多花費(fèi)一倍的破解時(shí)間,因此從理論上而言,如果沒有更新的計(jì)算技術(shù)出現(xiàn),總是可以找到在給定時(shí)間內(nèi)不能被破解的密鑰的。
公鑰的篡改和冒充可以說是PGP的最大威脅。當(dāng)你用別人的公鑰時(shí),應(yīng)確信它是直接從對(duì)方處得來或是由另一個(gè)可信的人簽名認(rèn)證過的;確信沒有人可以篡改你自己的公鑰環(huán)文件;保持你對(duì)自己密鑰環(huán)文件的物理控制權(quán),盡量存放在自己的個(gè)人電腦里,而不是一個(gè)遠(yuǎn)程的分時(shí)系統(tǒng)里;備份自己的密鑰環(huán)文件。
結(jié)束語
因?yàn)閿?shù)據(jù)安全涉及上至國家下至普通百姓的各類信息的保護(hù),應(yīng)該采用何種控制技術(shù)保證數(shù)據(jù)安全已為世界所矚目。PGP是當(dāng)前最為先進(jìn)的加密技術(shù),使用PGP加密軟件,可以有效地保證通信安全,從而保證了網(wǎng)上用戶的利益。盡管用戶也為此付出了額外的傳輸時(shí)間和密鑰維護(hù)管理等成本,但是為了安全,必要的代價(jià)是值得的。