成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關注微信公眾號

PGP簡介
2005-12-19   

本文主要介紹一些關于PGP實現的原理和背景知識。其他關于PGP的安裝、使用等請參考與本文同時提供 的其他文檔。PGP Pretty Good Privacy,是一個 基于RSA公匙加密體系的郵件加密軟件。可以用它對你的 郵件保密以防止非授權者閱讀,它還能對你的郵件加上數 字簽名從而使收信人可以確信郵件是你發來的。它讓你可 以安全地和你從未見過的人們通訊,事先并不需要任何保 密的渠道用來傳遞密匙。它采用了:審慎的密匙管理,一 種RSA和傳統加密的雜合算法,用于數字簽名的郵件文摘 算法,加密前壓縮等,還有一個良好的人機工程設計。它 的功能強大有很快的速度。而且它的源代碼是免費的。實際上 PGP的功能還不止上面說的: PGP 可以用來加密文件,還可以用 PGP代替UUencode 生成 RADIX 64 格式(就 是MIME 的 BASE 64格式)的編碼文件。 PGP 的創始人是美國的 Phil Zimmermann。他的創造性在 于他把 RSA 公匙體系的方便和傳統加密體系的高速度結合 起來,并且在數字簽名和密匙認證管理機制上有巧妙的設 計。因此 PGP 成為幾乎最流行的公匙加密軟件包。PGP 是一種供大眾使用的加密軟件。加密是為了安全,私 密權是一種基本人權。在現代社會里,電子郵件和網絡上 的文件傳輸已經成為生活的一部分。郵件的安全問題就日 益突出了,大家都知道在 Internet上傳輸的數據是不加密 的。如果你自己不保護自己的信息,第三者就會輕易獲得 你的隱秘。 還有一個問題就是信息認證,如何讓收信人確信郵件沒有 被第三者篡改,就需要數字簽名技術。 RSA 公匙體系的特 點使它非常適合用來滿足上述兩個要求:保密性( Privacy)和認證性(Authentication)。
RSA(Rivest-Shamir-Adleman)算法是一種基于大數 不可能質因數分解假設的公匙體系。簡單地說就是找兩個很大的質數,一個公開給世界,一個不告訴任何人。一個稱為“公匙”,另一個叫“私匙” (Public key & Secretkey or Private key) 。這兩個密匙是互補的,就 是說用公匙加密的密文可以用私匙解密,反過來也一樣。 假設甲要寄信給乙,他們互相知道對方的公匙。甲就用乙的公匙加密郵件寄出,乙收到后就可以用自己的私匙解密 出甲的原文。由于沒別人知道乙的私匙所以即使是甲本人 也無法解密那封信,這就解決了信件保密的問題。另一方 面由于每個人都知道乙的公匙,他們都可以給乙發信,那么乙就無法確信是不是甲的來信。認證的問題就出現了,這時候數字簽名就有用了。
在說明數字簽名前先要解釋一下什么是“郵件文摘” (message digest) ,單地講就是對一封郵件用某種算法算 出一個能體現這封郵件“精華”的數來,一旦郵件有任何 改變這個數都會變化,那么這個數加上作者的名字(實際 上在作者的密匙里)還有日期等等,就可以作為一個簽名 了。確切地說 PGP是用一個128位的二進制數作為“郵件文 摘”的,用來產生它的算法叫 MD5(message digest 5) , MD5 的提出者是Ron Rivest,PGP 中使用的代碼是由Colin Plumb 編寫的,MD5本身是公用軟件。所以PGP 的法律條款 中沒有提到它。 MD5是一種單向散列算法,它不像CRC校驗 碼,很難找到一份替代的郵件而與原件具有一樣的“精 華”。
回到數字簽名上來,甲用自己的私匙將上述的 128 位 的“精華”加密,附加在郵件上,再用乙的公匙將整個郵 件加密。這樣這份密文被乙收到以后,乙用自己的私匙將 郵件解密,得到甲的原文和簽名,乙的 PGP 也從原文計算 出一個 128 位的“精華”來再用甲的公匙解密簽名得到的 數比較,如果符合就說明這份郵件確實是甲寄來的。這樣 兩個要求都得到了滿足。
PGP 還可以只簽名而不加密,這適用于公開發表聲明 時,聲明人為了證實自己的身份(在網絡上只能如此 了),可以用自己的私匙簽名。這樣就可以讓收件人能確 認發信人的身份,也可以防止發信人抵賴自己的聲明。這 一點在商業領域有很大的應用前途,它可以防止發信人抵 賴和信件被途中篡改。
那么為什么說 PGP 用的是RSA 和傳統加密的雜合算法 呢?因為 RSA 算法計算量極大在速度上不適合加密大量數 據,所以 PGP實際上用來加密的不是RSA本身,而是采用了 一種叫 IDEA的傳統加密算法。我先解釋一下什么叫傳統加 密,簡單地說就是用一個密匙加密明文,然后用同樣的密 匙解密。這種方法的代表是 DES(US Federal DataEncryption Standard) ,也就是乘法加密,它的主要 缺點就是密匙的傳遞渠道解決不了安全性問題,不適合網 絡環境郵件加密需要。IDEA 是一個有專利的算法,專利持有者是 ETH 和一個瑞士公 司: Ascom-Tech AG。非商業用途的IDEA 實現不用向他們 交納費用。 IDEA的加(解)密速度比RSA 快得多,所以實 際上 PGP是用一個隨機生成密匙(每次加密不同)用 IDEA 算法對明文加密,然后用 RSA 算法對該密匙加密。這樣收 件人同樣是用 RSA解密出這個隨機密匙,再用IDEA 解密郵 件本身。這樣的鏈式加密就做到了既有 RSA 體系的保密 性,又有 IDEA算法的快捷性。PGP 的創意有一半就在這一 點上了,為什么 RSA體系70 年代就提出來,一直沒有推廣 應用呢?速度太慢!那么 PGP 創意的另一半在哪兒呢?下 面我再談PGP的密匙管理。
一個成熟的加密體系必然要有一個成熟的密匙管理機 制配套。公匙體制的提出就是為了解決傳統加密體系的密 匙分配難保密的缺點。比如網絡 hacker們常用的手段之一 就是“監聽”,如果密匙是通過網絡傳送就太危險了。舉 個例子: NovellNetware 的老版本中,用戶的密碼是以明 文在線路中傳輸的,這樣監聽者輕易就獲得了他人的密 碼。當然 Netware 4.1 中數據包頭的用戶密碼現在是加 密的了。對 PGP 來說公匙本來就要公開,就沒有防監聽的 問題。但公匙的發布中仍然存在安全性問題,例如公匙的 被篡改 (Public Key Tampering),這可能是公匙密碼體系 中最大的漏洞,因為大多數新手不能很快發現這一點。你 必須確信你拿到的公匙屬于它看上去屬于的那個人。為了 把這個問題說清楚,我舉個例子,然后再說如何正確地用 PGP堵住這個漏洞。
以你和 Alice的通信為例,假設你想給Alice發封信, 那你必須有 Alice 的公匙,你從BBS 上下載了Alice 的公 匙,并用它加密了信件用 BBS的Email功能發給了 Alice。 不幸地,你和 Alice都不知道,另一個用戶叫Charlie的用 戶潛入 BBS,把他自己用Alice的名字生成的密匙對中的公 匙替換了 Alice的公匙。那你用來發信的公匙就不是Alice 的而是 Charlie 的,一切看來都很正常,因為你拿到的公 匙的用戶名是“ Alice”。于是Charlie就可以用他手中的 私匙來解密你給 Alice的信,甚至他還可以用Alice真正的 公匙來轉發你給 Alice 的信,這樣誰都不會起疑心,他如 果想改動你給 Alice 的信也沒問題。更有甚者,他還可以 偽造 Alice 的簽名給你或其他人發信,因為你們手中的公 匙是偽造的,你們會以為真是 Alice 的來信。
防止這種情況出現的最好辦法是避免讓任何其他人有 機會篡改公匙,比如直接從 Alice 手中得到她的公匙,然 而當她在千里之外或無法見到時,這是很困難的。 PGP 發 展了一種公匙介紹機制來解決這個問題。舉例來說:如果 你和 Alice有一個共同的朋友David,而 David知道他手中 的 Alice的公匙是正確的(關于如何認證公匙,PGP還有一 種方法,后面會談到,這里假設 David已經和Alice認證過 她的公匙)。這樣 David可以用他自己的私匙在Alice的公 匙上簽名(就是用上面講的簽名方法),表示他擔保這個 公匙屬于 Alice。當然你需要用David的公匙來校驗他給你 的 Alice 的公匙,同樣David 也可以向Alice 認證你的公 匙,這樣 David就成為你和Alice之間的“介紹人”。這樣 Alice 或David就可以放心地把David簽過字的Alice的公匙 上載到 BBS 上讓你去拿,沒人可能去篡改它而不被你發 現,即使是 BBS 的管理員。這就是從公共渠道傳遞公匙的 安全手段。
有人會問:那你怎么安全地得到 David 的公匙呢,這 不是個先有雞還是先有蛋的問題嗎?確實有可能你拿到的 David 的公匙也是假的,但這就要求這個搗蛋者參與這整 個過程,他必須對你們三人都很熟悉,還要策劃很久,這 一般不可能。當然, PGP 對這種可能也有預防的建議,那 就是由一個大家普遍信任的人或機構擔當這個角色。他被 稱為“密匙侍者”或“認證權威”,每個由他簽字的公匙 都被認為是真的,這樣大家只要有一份他的公匙就行了, 認證這個人的公匙是方便的,因為他廣泛提供這個服務, 假冒他的公匙是很極困難的,因為他的公匙流傳廣泛。這 樣的“權威”適合由非個人控制組織或政府機構充當,現 在已經有等級認證制度的機構存在。
對于那些非常分散的人們, PGP 更贊成使用私人方式 的密匙轉介方式,因為這樣有機的非官方更能反映出人們 自然的社會交往,而且人們也能自由地選擇信任的人來介 紹。總之和不認識的人們見面一樣。每個公匙有至少一個 “用戶名” (User ID) ,請盡量用自己的全名,最好再加 上本人的Email地址,以免混淆。
注意!你所必須遵循的一條規則是:在你使用任何一 個公匙之前,一定要首先認證它!!!無論你受到什么誘 惑,當然會有這種誘惑,你都不要,絕對不要,直接信任 一個從公共渠道(由其是那些看起來保密的)得來的公 匙,記得要用熟人介紹的公匙,或者自己與對方親自認 證。同樣你也不要隨便為別人簽字認證他們的公匙,就和 你在現實生活中一樣,家里的房門鑰匙你是只會交給信任 的人的。
下面,我講講如何通過電話認證密匙。每個密匙有它 們自己的標識( keyID),keyID是一個八位十六進制數, 兩個密匙具有相同 keyID 的可能性是幾十億分之一,而且 PGP 還提供了一種更可靠的標識密匙的方法:“密匙指 紋” (key's fingerprint) 。每個密匙對應一串數字(十 六個八位十六進制數),這個數字重復的可能就更微乎其 微了。而且任何人無法指定生成一個具有某個指紋的密 匙,密匙是隨機生成的,從指紋也無法反推出密匙來。這 樣你拿到某人的公匙后就可以和他在電話上核對這個指 紋,從而認證他的公匙。如果你無法和 Alice 通電話的 話,你可以和 David 通電話認證David 的公匙,從而通過 David 認證了Alice的公匙,這就是直接認證和間接介紹的 結合。
這樣又引出一種方法,就是把具不同人簽名的自己的 公匙收集在一起,發送到公共場合,這樣可以希望大部分 人至少認識其中一個人,從而間接認證了你的公匙。同樣 你簽了朋友的公匙后應該寄回給他,這樣就可以讓他可以 通過你被你其他朋友認證。有點意思吧,和現實社會中人 們的交往一樣。 PGP 會自動為你找出你拿到的公匙中有哪 些是你的朋友介紹來的,那些是你朋友的朋友介紹來的, 哪些則是朋友的朋友的朋友介紹的……它會幫你把它們分 為不同的信任級別,讓你參考決定對它們的信任程度。你 可以指定某人有幾層轉介公匙的能力,這種能力是隨著認 證的傳遞而遞減的。
轉介認證機制具有傳遞性,這是個有趣的問題。 PGP 的作者 Phil Zimmermann。有句話: “ 信賴不具有傳遞 性;我有個我相信決不撒謊的朋友。可是他是個認定總統 不撒謊的傻瓜,可很顯然我并不認為總統決不撒謊。”
關于公匙的安全性問題是 PGP 安全的核心,我在這里 就不細說了。和傳統單密匙體系一樣,私匙的保密也是決 定性的。相對公匙而言,私匙不存在被篡改的問題,但存 在泄露的問題。 RSA 的私匙是很長的一個數字,用戶不可 能將它記住, PGP的辦法是讓用戶為隨機生成的RSA私匙指 定一個口令 (pass phase)。只有通過給出口令才能將私匙 釋放出來使用,用口令加密私匙的方法保密程度和 PGP 本 身是一樣的。所以私匙的安全性問題實際上首先是對用戶 口令的保密。當然私匙文件本身失密也很危險,因為破譯 者所需要的只是用窮舉法試探出你的口令了,雖說很困難 但畢竟是損失了一層安全性。在這里只用簡單地記住一 點,要像任何隱私一樣保藏你的私匙,不要讓任何人有機 會接觸到它。
PGP 在安全性問題上的精心考慮體現在PGP 的各個環 節。比如每次加密的實際密匙是個隨機數,大家都知道計 算機是無法產生真正的隨機數的。 PGP 程序對隨機數的產 生是很審慎的,關鍵的隨機數像 RSA 密匙的產生是從用戶 瞧鍵盤的時間間隔上取得隨機數種子的。對于磁盤上的 randseed.bin 文件是采用和郵件同樣強度的加密的。這 有效地防止了他人從你的 randseed.bin文件中分析出你的 加密實際密匙的規律來。
在這里我提一下 PGP的加密前預壓縮處理,PGP內核使 用 PKZIP 算法來壓縮加密前的明文。一方面對電子郵件而 言,壓縮后加密再經過 7bits 編碼密文有可能比明文更 短,這就節省了網絡傳輸的時間。另一方面,明文經過壓 縮,實際上相當于經過一次變換,信息更加雜亂無章,對 明文攻擊的抵御能力更強。 PGP中使用的PKZIP算法是經過 原作者同意的。 PKZIP 算法是一個公認的壓縮率和壓縮速 度都相當好的壓縮算法。在 PGP中使用的是PKZIP 2.0版本 兼容的算法。
好了,關于 PGP安全性的問題我會在《PGP的安全性》 一文中專門介紹。我上面講了這么多只是為了讓大家知道 PGP 會是非常安全的,只要你自己遵循正確的使用方法。 關于 PGP 的安裝和使用請參考《 PGP 2.6.3i 的安裝與使 用》一文。如果在看英文文檔時有些不太明白的詞匯,請 試試能不能從《 PGP 名詞解釋》一文中找到線索。 PGP 2.6.3i 是我推薦大家使用的PGP 版本,有關這個版本的詳 細問題請參見《PGPi 問答集》一文。
在今天的 Internet上隨處可見用PGP簽名的文章,PGP 的版本也在飛快地更新,據說 PGP 3.0 再有幾個月就要推 出了。世界上越來越多的人們在使用 PGP ,我們中國人也 應該重視保護自己合法的私密權。我翻譯整理這幾篇文章 就是為了在國內宣傳推廣 PGP 的使用。盡管它還是個新生 事物,可是我們要看到在網際空間( CyberSpace)中它肯 定能迅速成長起來,中國雖然起步晚,但比美國也差不太 多,我們應該迎頭趕上。

熱詞搜索:

上一篇:什么是PGP?
下一篇:PGP加密原理

分享到: 收藏
主站蜘蛛池模板: free hd xxxx moms movie777| 闪婚后傅先生马甲藏不住了免费播放| 无影侦察队电影完整版免费| 一点歌词完整版| 打开抖音网页版| 艳妇乳肉豪妇荡乳xxx| 一年又一年电视剧演员表| 古或仔| 西海情歌歌词全文| 白洁教师| 湖北特产| 黑帮大佬和我的三百六十五日| 电视剧暗夜与黎明剧情介绍| 敬天法祖| 何昊阳| 整容前后| 白上关花电影在线观看免费| 倒带简谱| 李欣聪个人资料| 谍影 电视剧| 女演员佟欣简介| 真的爱你最标准谐音歌词| 十里承欢电影版免费播放| 恶行之外电影完整在线观看| 左左木明希| 毕业论文5000字大专| 海豹w| 浙江卫视网络直播源| 想太多吉他谱| 1到100数字表图片| 电影《kiskisan》在线观看| 译制片《桥》| 水浒传潘巧云| 色域在线| 轻舞飞扬| 迷斯拉| 我爱我爹全集高清版免费观看| 北京卫视今天全部节目表| 回响电影| 电视剧《节妇》在线观看| 唐人街探案免费观看完整版|