第七章 PGP加密的優越性
我們知道PGP(PrettyGoodPrivacy)是目前最流行的一種加密軟件,它是一個基於RSA公鑰加密體係的郵件加密軟件。我們可以用它對郵件保密以防止非授權者閱讀,它還能對用戶的郵件加上數字簽名,從而使收信人可以確信發信人的身份。它讓用戶可以安全地和從未見過的人們通信,事先並不需要任何保密措施的來傳遞密鑰,因為它采用了非對稱的"公鑰"和"私鑰"加密體係。
但PGP不是一種完全的非對稱加密體係,它是個混合加密算法,它是由一個對稱加密算法(IDEA)、一個非對稱加密算法(RSA)、一個單向散列算法(MD5)以及一個隨機數產生器(從用戶擊鍵頻率產生偽隨機數序列的種子)組成的,每種算法都是PGP不可分割的組成部分,PGP至所以得到流行,得到大家的認可,最主要的一半是它集中的幾種加密算法的優點,使它們彼此得到互補。
我們知道采用"公鑰"和"私鑰"加密體係最大的安全性問題就是公開的"公鑰"可能被人篡改,影響文件的解密,雖然PGP也采用這一加密體係,並且所有"公鑰"和"私鑰"都可以由用戶自己產生,不需要專門的認證機構,但它卻有一個比較完善的密鑰管理體製,所以它的另一半優點就體現在PGP獨特的密鑰管理體製上。
下麵我們就從PGP加密機製和密鑰管理的角度來分析PGP加密的優越性。
一、PGP的加密機製
在現代社會裏,電子郵件和網絡上的文件傳輸已經成為生活的一部分。郵件的安全問題也就突出了,大家都知道在互聯網上傳輸的數據是不加密的。如果用戶不保護自己的信息,第三者就會輕易獲得用戶的隱私。還有一個問題就是信息認證,如何讓收信人確信郵件沒有被第三者篡改,就需要使用數字簽名技術。
RSA公鑰體係的特點使它非常適合用來滿足上述兩個要求:保密性(privacy)和公證性(authentication)。PGP的創始人是美國的PhilZimmermann,他的創造性在於他把RSA公鑰體係的方便和傳統加密體係的高度結合起來,並且在數字簽名和密鑰認證管理機製上有巧妙的設計。
RSA(Rivest-Shamir-Adleman)算法是基於大數不可能被質因數分解假設的公鑰體係。簡單地說就是找兩個很大的質數。一個對外公開,一個不告訴任何人。公開的一個稱為"公鑰",另一個叫"私鑰"(Prblickey&SecretkeyorPrivatekey)。這兩個密鑰是互補的,也就是說用公鑰加密的密文隻可以用私鑰解密,反過來也一樣。
假設甲要寄信給乙,他們互相知道對方的公鑰。甲就用乙的公鑰加密郵件寄出,乙收到後就可以用自己的私鑰解密出甲的原文。由於別人不知道乙的私鑰,所以即使是甲本人也無法解密那封信,這就解決了信件保密的問題。另一方麵,由於每個人都知道乙的公鑰,他們都可以給乙發信,那麼乙怎麼確信來信是不是甲的,這就是數字簽名的必要性,用數字簽名來確認發信的身份。
PGP的數字簽名是利用一個叫"郵件文摘"的功能,"郵件文摘"(messagedigest),簡單地講就是對一封郵件用某種算法算出一個最能體現這封郵件特征的數來,一旦郵件有任何改變這個數都會發生變化,那麼這個數加上用戶的名字(實際上在用戶的密鑰裏)和日期等等,就可以作為一個簽名了,確切地說PGP是用一個128位的二進製數進行為"郵件文摘"的,用來產生它的算法就是MD5(MessageDigest5。MD5的提出者是RonRirest,PGP中使用的代碼是由ColinPlumb編寫的MD5,MD5是一種單向散列算法,它不像校驗碼,是一份替代的郵件並且與原件具有同樣的MD5特征值。