軟件水平考試網(wǎng)絡(luò)工程師復(fù)習(xí)指導(dǎo):PGP簡介(1)

字號:

pgp——pretty good privacy, 是一個基于rsa公匙加密體系的郵件加密 軟件,它可以用來對你的郵件加密以防止非授權(quán)者閱讀,還能對你的郵件加上 數(shù)字簽名而使收信人可以確信郵件是你發(fā)來的。它讓你可以安全地和你從未見 過的人們通訊,事先并不需要任何保密的渠道用來傳遞密匙。它采用了審慎的 密匙管理, 一種rsa和傳統(tǒng)加密的雜合算法,用于數(shù)字簽名的郵件文摘算法, 加密前壓縮等,還有一個良好的人機工程設(shè)計。它的功能強大有很快的速度, 而且它的源代碼是免費的。 實際上pgp的功能還不止上面說的:pgp可以用來加密文件,還可以用pgp代 替uuencode 生成 radix 64 格式(就是mime 的 base 64格式)的編碼文件。
    pgp 的創(chuàng)始人是美國的 phil zimmermann。他的創(chuàng)造性在于他把rsa公匙體 系的方便和傳統(tǒng)加密體系的高速度結(jié)合起來,并且在數(shù)字簽名和密匙認(rèn)證管理 機制上有巧妙的設(shè)計。因此pgp成為幾乎最流行的公匙加密軟件包。
    pgp是一種供大眾使用的加密軟件。加密是為了安全,隱私權(quán)是一種基本人 權(quán)。在現(xiàn)代社會里,電子郵件和網(wǎng)絡(luò)上的文件傳輸已經(jīng)成為生活的一部分,郵 件的安全問題日益突出,大家都知道在internet上傳輸?shù)臄?shù)據(jù)是不加密的,如 果你自己不保護(hù)自己的信息,第三者就會輕易獲得你的隱私。還有一個問題就 是信息認(rèn)證,要讓收信人確信郵件沒有被第三者篡改,就需要使用數(shù)字簽名技 術(shù)。rsa公匙體系的特點使它非常適合用來滿足上述要求:保密性(privacy) 和認(rèn)證性(authentication)。
    rsa(rivest-shamir-adleman)算法是一種基于大數(shù)不可能質(zhì)因數(shù)分解假 設(shè)的公匙體系。簡單地說,其原理就是找兩個很大的質(zhì)數(shù),其中一個向外界公 開(公匙),另一個不告訴任何人(私匙)。這兩個密匙是互補的,用公匙加 密的密文可以用私匙解密,反過來也一樣。假設(shè)甲要寄信給乙,他們互相知道 對方的公匙。甲就用乙的公匙加密郵件寄出,乙收到后就可以用自己的私匙解密出甲的原文。由于沒別人知道乙的私匙所以即使是甲本人也無法解密那封信, 這就解決了信件保密的問題。另一方面由于每個人都知道乙的公匙,他們都可 以給乙發(fā)信,那么乙就無法確信是不是甲的來信。認(rèn)證的問題就出現(xiàn)了,這時候數(shù)字簽名就有用了。
    在說明數(shù)字簽名前先要解釋一下什么是“郵件文摘”(message digest), 簡單地說就是對一封郵件用某種算法算出一個能體現(xiàn)這封郵件“精華”的數(shù)來, 一旦郵件有任何改變這個數(shù)都會變化,那么這個數(shù)加上作者的名字(實際上在 作者的密匙里)還有日期等等,就可以作為一個簽名了。 確切地說,pgp是用 一個128位的二進(jìn)制數(shù)作為“郵件文摘”的,用來產(chǎn)生它的算法叫md5(message digest 5),md5的提出者是 ron rivest,pgp中使用的代碼是由colin plumb 編寫的,md5本身是公用軟件。所以pgp的法律條款中沒有提到它。
    md5是一種 單向散列算法, 它不像crc校驗碼,很難找到一份替代的郵件而與原件具有一 樣的“精華”。 回到數(shù)字簽名上來,甲用自己的私匙將上述的128位的“精華”加密, 附 加在郵件上,再用乙的公匙將整個郵件加密。這樣這份密文被乙收到以后,乙 用自己的私匙將郵件解密,得到甲的原文和簽名, 乙的pgp也從原文計算出一 個128位的“精華”來再用甲的公匙解密簽名得到的數(shù)比較, 如果符合就說明 這份郵件確實是甲寄來的。這樣兩個要求都得到了滿足。