- 相關(guān)推薦
淺析PGP軟件及其應(yīng)用
[摘要]文章主要介紹了PGP軟件,對(duì)其主要部分和原理進(jìn)行了闡述,并給出了在電子郵件等方面的應(yīng)用。[關(guān)鍵詞]PGP;加密;電子郵件
1引言
電子郵件在人們的工作中占據(jù)著重要作用。據(jù)統(tǒng)計(jì),中國(guó)平均每用戶每周收到4.4封郵件,發(fā)送3.6封郵件。但是電子郵件的主要協(xié)議如SMTP等是明文傳送的。這些信息在經(jīng)過不可信的因特網(wǎng)時(shí),有可能會(huì)被第三方獲得。在重視信息安全的現(xiàn)代社會(huì),顯然這并符合要求。如何能將這些信息保密,同時(shí)不篡改、不偽造等?本文所介紹的PGP(PrettyGoodPrivacy)就是一種這樣的軟件,它主要應(yīng)用于電子郵件和文件的加密解密。
目前PGP獲得了廣泛的應(yīng)用。但它本身并不是一種加密算法,相反只是將一些加密算法(如RSA、IDEA、AES等)綜合在一起,實(shí)現(xiàn)了一個(gè)完整的安全軟件包。
PGP主要是由PhilipR.Zimmermann開發(fā)的,于1991年在Internet上免費(fèi)發(fā)布。他主要做了如下工作:選擇比較好的算法,例如RSA、IDEA等作為加密算法的基礎(chǔ)構(gòu)件;將這些算法集成在一個(gè)便于用戶使用的應(yīng)用程序中;制作了軟件包及其文檔,且源代碼免費(fèi)公開,以避隱藏后門之嫌;和公司合作,提供商業(yè)版本等。現(xiàn)在用戶可以從下載PGP。目前最新版本是9.0。
2原理
PGP結(jié)合了一些大部分人認(rèn)為很安全的算法,包括傳統(tǒng)的對(duì)稱密鑰加密算法和公開密鑰算法,充分利用這兩類加密算法的特性,實(shí)現(xiàn)了以下幾種服務(wù):鑒別、加密、壓縮等。
當(dāng)發(fā)送者PGP加密一段明文時(shí),PGP首先壓縮明文,然后PGP建立一個(gè)一次性會(huì)話密鑰,采用傳統(tǒng)的對(duì)稱加密算法(例如AES等)加密剛才壓縮后的明文,產(chǎn)生密文。然后用接收者的公開密鑰加密剛才的一次性會(huì)話密鑰,隨同密文一同傳輸給接收方。接收方首先用私有密鑰解密,獲得一次性會(huì)話密鑰,最后用這個(gè)密鑰解密密文。
2.1數(shù)字簽名
數(shù)字簽名能夠保證接收者接收的信息沒有經(jīng)過未授權(quán)的第三方篡改,并確信報(bào)文來自發(fā)信者。PGP使用如下步驟實(shí)現(xiàn)數(shù)字簽名:
2.1.1發(fā)送者創(chuàng)建報(bào)文,然后使用SHA-2等散列算法生成散列代碼,然后使用自己的私有密鑰采用RSA對(duì)散列代碼加密,并將結(jié)果串接在報(bào)文前面。
2.1.2接收者使用發(fā)送者的公開密鑰,采用RSA解密得到散列代碼,然后和根據(jù)接收到的報(bào)文重新計(jì)算的散列代碼比較,如果匹配,則接受報(bào)文。
目前,PGP使用的散列函數(shù)包括:SHA-2(256bit)、SHA-2(384bit)、SHA-2(512bit)、SHA-1(160bit)、RIPEMD(128bit)、MD-5(128bit)等。
2.2壓縮
壓縮是為了減少網(wǎng)絡(luò)傳輸時(shí)間和磁盤空間,提高安全性:壓縮減少了明文中上下文相關(guān)信息。(當(dāng)然如果文件太短或者壓縮性能不好,則不壓縮。)
PGP在簽名之后加密之前對(duì)報(bào)文進(jìn)行壓縮。它使用了有Jean-lupGailly,MarkAdler,RichardWales等編寫的ZIP壓縮算法。
2.3加密
PGP對(duì)每次會(huì)話的報(bào)文進(jìn)行加密后傳輸,它采用的加密算法包括:AES-256、AES-192、AES-128、CAST、3DES、IDEA、Twofish等。例如使用AES密鑰最長(zhǎng)可達(dá)256bit,這已經(jīng)足夠安全了。
這里需要指出,PGP結(jié)合了常規(guī)密鑰加密和公開密鑰加密算法,一是時(shí)間上的考慮,對(duì)稱加密算法比公開密鑰加密速度快大約10000倍;二是公開密鑰解決了會(huì)話密鑰分配問題,因?yàn)橹挥薪邮照卟拍苡盟接忻荑解密一次性會(huì)話密鑰。PGP巧妙的將常規(guī)密鑰加密和公開密鑰加密結(jié)合起來,從而使會(huì)話安全得到保證。
2.4密鑰管理
在PGP里面,最有特色的或許就是它的密鑰管理。PGP包含四種密鑰:一次性會(huì)話密鑰、公開密鑰、私有密鑰和基于口令短語的常規(guī)密鑰。
用戶使用PGP時(shí),應(yīng)該首先生成一個(gè)公開密鑰/私有密鑰對(duì)。其中公開密鑰可以公開,而私有密鑰絕對(duì)不能公開。PGP將公開密鑰和私有密鑰用兩個(gè)文件存儲(chǔ),一個(gè)用來存儲(chǔ)該用戶的公開/私有密鑰,稱為私有密鑰環(huán);另一個(gè)用來存儲(chǔ)其他用戶的公開密鑰,稱為公開密鑰環(huán)。
為了確保只有該用戶可以訪問私有密鑰環(huán),PGP采用了比較簡(jiǎn)潔和有效的算法。當(dāng)用戶使用RSA生成一個(gè)新的公開/私有密鑰對(duì)時(shí),輸入一個(gè)口令短語,然后使用散列算法(例如SHA-1)生成該口令的散列編碼,將其作為密鑰,采用CAST-128等常規(guī)加密算法對(duì)私有密鑰加密,存儲(chǔ)在私有密鑰環(huán)中。當(dāng)用戶訪問私有密鑰時(shí),必須提供相應(yīng)的口令短語,然后PGP根據(jù)口令短語獲得散列編碼,將其作為密鑰,對(duì)加密的私有密鑰解密。通過這種方式,就保證了系統(tǒng)的安全性依賴于口令的安全性。
下面介紹PGP的公開密鑰管理。假設(shè)A想要獲得B的公開密鑰,可以采取幾種方法,包括拷貝給A、通過電話驗(yàn)證公開密鑰是否正確、從雙方都信任的人C那里獲得、從認(rèn)證中心獲得等。PGP并沒有建立認(rèn)證中心這樣的概念,它采用信任機(jī)制。公開密鑰環(huán)上的每個(gè)實(shí)體都有一個(gè)密鑰合法性字段,用來標(biāo)識(shí)信任程度。信任級(jí)別包括完全信任、少量信任、不可信任和不認(rèn)識(shí)的信任等。當(dāng)新來一個(gè)公開密鑰時(shí),根據(jù)上面附加的簽名來計(jì)算信任值的權(quán)重和,確定信任程度。
雙方使用一次性會(huì)話密鑰對(duì)每次會(huì)話內(nèi)容進(jìn)行加解密。這個(gè)密鑰本身是基于用戶鼠標(biāo)和鍵盤擊鍵時(shí)間而產(chǎn)生的隨機(jī)數(shù)。注意,每次會(huì)話的密鑰均不同。這個(gè)密鑰經(jīng)過RSA或Diffie-Hellman加密后和報(bào)文一起傳送到對(duì)方。
2.5電子郵件
用PGP軟件加密后密文由任意的8bit字節(jié)流組成,但很多電子郵件系統(tǒng)只允許使用可打印ASCII字符,因此PGP利用radix-64將任意8bit字節(jié)流轉(zhuǎn)換為可打印ASCII字符來滿足這一限制。另外,PGP可以自動(dòng)將太長(zhǎng)的報(bào)文劃分成合適的大小來滿足網(wǎng)絡(luò)設(shè)施的最大報(bào)文長(zhǎng)度要求。
報(bào)文由三個(gè)部分組成:報(bào)文部分、可選的數(shù)字簽名和可選的會(huì)話密鑰部分組成。
下面給出發(fā)送者發(fā)送一封電子郵件的流程圖,其中A是發(fā)送者,B是接收者,M是郵件內(nèi)容。接收者的流程圖類似,但操作步驟相反,篇幅所限,在此不再給出。
3應(yīng)用
PGP提供了大部分各種操作系統(tǒng)平臺(tái)的應(yīng)用,F(xiàn)在電子郵件使用場(chǎng)合越來越多,我們就可以借助于PGP來滿足工作的安全需要。例如,對(duì)于Windows系統(tǒng)來說,電子郵件客戶端一般為Outlook,PGP可以無縫的集成在Outlook里面,自動(dòng)根據(jù)用戶的配置和文件信
【淺析PGP軟件及其應(yīng)用】相關(guān)文章:
淺析泊松分布及其應(yīng)用03-07
淺析數(shù)據(jù)融合技術(shù)及其在林業(yè)中的應(yīng)用03-19
淺析3G技術(shù)及其在通信中的應(yīng)用03-18
淺析數(shù)字電視地面廣播技術(shù)及其應(yīng)用03-18
淺析新資產(chǎn)減值準(zhǔn)則的變化及其實(shí)務(wù)應(yīng)用03-24
數(shù)學(xué)畢業(yè)論文-淺析泊松分布及其應(yīng)用03-04
淺析圖形算量軟件在工程造價(jià)中的應(yīng)用11-22