淺析PGP軟體及其應用

才智咖 人氣:3.1W
淺析PGP軟體及其應用
[摘要]文章主要介紹了PGP軟體,對其主要部分和原理進行了闡述,並給出了在電子郵件等方面的應用。

[關鍵詞]PGP;加密;電子郵件

1引言

電子郵件在人們的工作中佔據著重要作用。據統計,中國平均每使用者每週收到4.4封郵件,傳送3.6封郵件。但是電子郵件的主要協議如SMTP等是明文傳送的。這些資訊在經過不可信的因特網時,有可能會被第三方獲得。在重視資訊保安的現代社會,顯然這並符合要求。如何能將這些資訊保密,同時不篡改、不偽造等?本文所介紹的PGP(PrettyGoodPrivacy)就是一種這樣的軟體,它主要應用於電子郵件和檔案的加密解密。

目前PGP獲得了廣泛的應用。但它本身並不是一種加密演算法,相反只是將一些加密演算法(如RSA、IDEA、AES等)綜合在一起,實現了一個完整的安全軟體包。

PGP主要是由ermann開發的,於1991年在Internet上免費釋出。他主要做了如下工作:選擇比較好的演算法,例如RSA、IDEA等作為加密演算法的基礎構件;將這些演算法整合在一個便於使用者使用的應用程式中;製作了軟體包及其文件,且原始碼免費公開,以避隱藏後門之嫌;和公司合作,提供商業版本等。現在使用者可以從下載PGP。目前最新版本是9.0。

2原理

PGP結合了一些大部分人認為很安全的演算法,包括傳統的對稱金鑰加密演算法和公開金鑰演算法,充分利用這兩類加密演算法的特性,實現了以下幾種服務:鑑別、加密、壓縮等。

當傳送者PGP加密一段明文時,PGP首先壓縮明文,然後PGP建立一個一次性會話金鑰,採用傳統的對稱加密演算法(例如AES等)加密剛才壓縮後的明文,產生密文。然後用接收者的`公開金鑰加密剛才的一次性會話金鑰,隨同密文一同傳輸給接收方。接收方首先用私有金鑰解密,獲得一次性會話金鑰,最後用這個金鑰解密密文。

2.1數字簽名

數字簽名能夠保證接收者接收的資訊沒有經過未授權的第三方篡改,並確信報文來自發信者。PGP使用如下步驟實現數字簽名:

2.1.1傳送者建立報文,然後使用SHA-2等雜湊演算法生成雜湊程式碼,然後使用自己的私有金鑰採用RSA對雜湊程式碼加密,並將結果串接在報文前面。

2.1.2接收者使用傳送者的公開金鑰,採用RSA解密得到雜湊程式碼,然後和根據接收到的報文重新計算的雜湊程式碼比較,如果匹配,則接受報文。

目前,PGP使用的雜湊函式包括:SHA-2(256bit)、SHA-2(384bit)、SHA-2(512bit)、SHA-1(160bit)、RIPEMD(128bit)、MD-5(128bit)等。

2.2壓縮

壓縮是為了減少網路傳輸時間和磁碟空間,提高安全性:壓縮減少了明文中上下文相關資訊。(當然如果檔案太短或者壓縮效能不好,則不壓縮。)

PGP在簽名之後加密之前對報文進行壓縮。它使用了有Jean-lupGailly,MarkAdler,RichardWales等編寫的ZIP壓縮演算法。
2.3加密

PGP對每次會話的報文進行加密後傳輸,它採用的加密演算法包括:AES-256、AES-192、AES-128、CAST、3DES、IDEA、Twofish等。例如使用AES金鑰最長可達256bit,這已經足夠安全了。

這裡需要指出,PGP結合了常規金鑰加密和公開金鑰加密演算法,一是時間上的考慮,對稱加密演算法比公開金鑰加密速度快大約10000倍;二是公開金鑰解決了會話金鑰分配問題,因為只有接收者才能用私有金鑰解密一次性會話金鑰。PGP巧妙的將常規金鑰加密和公開金鑰加密結合起來,從而使會話安全得到保證。

2.4金鑰管理

在PGP裡面,最有特色的或許就是它的金鑰管理。PGP包含四種金鑰:一次性會話金鑰、公開金鑰、私有金鑰和基於口令短語的常規金鑰。

使用者使用PGP時,應該首先生成一個公開金鑰/私有金鑰對。其中公開金鑰可以公開,而私有金鑰絕對不能公開。PGP將公開金鑰和私有金鑰用兩個檔案儲存,一個用來儲存該使用者的公開/私有金鑰,稱為私有金鑰環;另一個用來儲存其他使用者的公開金鑰,稱為公開金鑰環。
TAGS:PGP 軟體 淺析