- 相關推薦
淺析PGP軟件及其應用
[摘要]文章主要介紹了PGP軟件,對其主要部分和原理進行了闡述,并給出了在電子郵件等方面的應用。[關鍵詞]PGP;加密;電子郵件
1引言
電子郵件在人們的工作中占據著重要作用。據統(tǒng)計,中國平均每用戶每周收到4.4封郵件,發(fā)送3.6封郵件。但是電子郵件的主要協議如SMTP等是明文傳送的。這些信息在經過不可信的因特網時,有可能會被第三方獲得。在重視信息安全的現代社會,顯然這并符合要求。如何能將這些信息保密,同時不篡改、不偽造等?本文所介紹的PGP(PrettyGoodPrivacy)就是一種這樣的軟件,它主要應用于電子郵件和文件的加密解密。
目前PGP獲得了廣泛的應用。但它本身并不是一種加密算法,相反只是將一些加密算法(如RSA、IDEA、AES等)綜合在一起,實現了一個完整的安全軟件包。
PGP主要是由PhilipR.Zimmermann開發(fā)的,于1991年在Internet上免費發(fā)布。他主要做了如下工作:選擇比較好的算法,例如RSA、IDEA等作為加密算法的基礎構件;將這些算法集成在一個便于用戶使用的應用程序中;制作了軟件包及其文檔,且源代碼免費公開,以避隱藏后門之嫌;和公司合作,提供商業(yè)版本等,F在用戶可以從下載PGP。目前最新版本是9.0。
2原理
PGP結合了一些大部分人認為很安全的算法,包括傳統(tǒng)的對稱密鑰加密算法和公開密鑰算法,充分利用這兩類加密算法的特性,實現了以下幾種服務:鑒別、加密、壓縮等。
當發(fā)送者PGP加密一段明文時,PGP首先壓縮明文,然后PGP建立一個一次性會話密鑰,采用傳統(tǒng)的對稱加密算法(例如AES等)加密剛才壓縮后的明文,產生密文。然后用接收者的公開密鑰加密剛才的一次性會話密鑰,隨同密文一同傳輸給接收方。接收方首先用私有密鑰解密,獲得一次性會話密鑰,最后用這個密鑰解密密文。
2.1數字簽名
數字簽名能夠保證接收者接收的信息沒有經過未授權的第三方篡改,并確信報文來自發(fā)信者。PGP使用如下步驟實現數字簽名:
2.1.1發(fā)送者創(chuàng)建報文,然后使用SHA-2等散列算法生成散列代碼,然后使用自己的私有密鑰采用RSA對散列代碼加密,并將結果串接在報文前面。
2.1.2接收者使用發(fā)送者的公開密鑰,采用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結合了常規(guī)密鑰加密和公開密鑰加密算法,一是時間上的考慮,對稱加密算法比公開密鑰加密速度快大約10000倍;二是公開密鑰解決了會話密鑰分配問題,因為只有接收者才能用私有密鑰解密一次性會話密鑰。PGP巧妙的將常規(guī)密鑰加密和公開密鑰加密結合起來,從而使會話安全得到保證。
2.4密鑰管理
在PGP里面,最有特色的或許就是它的密鑰管理。PGP包含四種密鑰:一次性會話密鑰、公開密鑰、私有密鑰和基于口令短語的常規(guī)密鑰。
用戶使用PGP時,應該首先生成一個公開密鑰/私有密鑰對。其中公開密鑰可以公開,而私有密鑰絕對不能公開。PGP將公開密鑰和私有密鑰用兩個文件存儲,一個用來存儲該用戶的公開/私有密鑰,稱為私有密鑰環(huán);另一個用來存儲其他用戶的公開密鑰,稱為公開密鑰環(huán)。
為了確保只有該用戶可以訪問私有密鑰環(huán),PGP采用了比較簡潔和有效的算法。當用戶使用RSA生成一個新的公開/私有密鑰對時,輸入一個口令短語,然后使用散列算法(例如SHA-1)生成該口令的散列編碼,將其作為密鑰,采用CAST-128等常規(guī)加密算法對私有密鑰加密,存儲在私有密鑰環(huán)中。當用戶訪問私有密鑰時,必須提供相應的口令短語,然后PGP根據口令短語獲得散列編碼,將其作為密鑰,對加密的私有密鑰解密。通過這種方式,就保證了系統(tǒng)的安全性依賴于口令的安全性。
下面介紹PGP的公開密鑰管理。假設A想要獲得B的公開密鑰,可以采取幾種方法,包括拷貝給A、通過電話驗證公開密鑰是否正確、從雙方都信任的人C那里獲得、從認證中心獲得等。PGP并沒有建立認證中心這樣的概念,它采用信任機制。公開密鑰環(huán)上的每個實體都有一個密鑰合法性字段,用來標識信任程度。信任級別包括完全信任、少量信任、不可信任和不認識的信任等。當新來一個公開密鑰時,根據上面附加的簽名來計算信任值的權重和,確定信任程度。
雙方使用一次性會話密鑰對每次會話內容進行加解密。這個密鑰本身是基于用戶鼠標和鍵盤擊鍵時間而產生的隨機數。注意,每次會話的密鑰均不同。這個密鑰經過RSA或Diffie-Hellman加密后和報文一起傳送到對方。
2.5電子郵件
用PGP軟件加密后密文由任意的8bit字節(jié)流組成,但很多電子郵件系統(tǒng)只允許使用可打印ASCII字符,因此PGP利用radix-64將任意8bit字節(jié)流轉換為可打印ASCII字符來滿足這一限制。另外,PGP可以自動將太長的報文劃分成合適的大小來滿足網絡設施的最大報文長度要求。
報文由三個部分組成:報文部分、可選的數字簽名和可選的會話密鑰部分組成。
下面給出發(fā)送者發(fā)送一封電子郵件的流程圖,其中A是發(fā)送者,B是接收者,M是郵件內容。接收者的流程圖類似,但操作步驟相反,篇幅所限,在此不再給出。
3應用
PGP提供了大部分各種操作系統(tǒng)平臺的應用,F在電子郵件使用場合越來越多,我們就可以借助于PGP來滿足工作的安全需要。例如,對于Windows系統(tǒng)來說,電子郵件客戶端一般為Outlook,PGP可以無縫的集成在Outlook里面,自動根據用戶的配置和文件信
【淺析PGP軟件及其應用】相關文章:
公鑰密碼原理及其應用05-13
目標規(guī)劃及其在經濟中的應用05-11
淺析美國進步主義教育運動及其啟示05-11
關于學生傷害事故及其法律責任淺析05-06
公允價值、預期現值法及其應用06-01
關于現代教育技術及其應用09-19
人臉信息技術應用新熱點淺析08-22
DS2438及其在單總線微網中的應用05-31
自動化技術在機械設計制造中應用淺析論文05-15
第三代移動通信技術及其應用論文04-29