<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PGP 簡(jiǎn)介

PGP 簡(jiǎn)介

作者: 時(shí)間:2007-05-14 來(lái)源:網(wǎng)絡(luò ) 收藏
本文主要簡(jiǎn)介PGP的歷史,PGP的工作流程,以及PGP用到的加密、解密算法,最后簡(jiǎn)要介紹PGP的密鑰管理機制。

PGP(Pretty Good Privacy),是一個(gè)基于公匙加密體系的郵件加密軟件??梢杂盟鼘︵]件保密以防止非授權者閱讀,它還能對郵件加上數字簽名從而使收信人可以確認郵件的發(fā)送者,并能確信郵件沒(méi)有被篡改。它可以可以提供一種安全的通訊方式,而事先并不需要任何保密的渠道用來(lái)傳遞密匙。它采用了一種和傳統加密的雜合算法,用于數字簽名的郵件文摘算法,加密前壓縮等,還有一個(gè)良好的人機工程設計。它的功能強大,有很快的速度。而且它的源代碼是免費的。

實(shí)際上PGP的功能還包括: PGP可以用來(lái)加密文件,還可以用PGP代替UUencode 生成RADIX 64 格式(就是MIME 的 BASE 64格式)的編碼文件。

PGP 的創(chuàng )始人是美國的 Phil Zimmermann。他的創(chuàng )造性在于他把公匙體系的方便和傳統加密體系的高速度結合起來(lái),并且在數字簽名和密匙認證管理機制上有巧妙的設計。因此PGP成為幾乎最流行的公匙加密軟件包。

1.首先簡(jiǎn)要介紹PGP加密系統的流程。

PGP加密系統是采用公開(kāi)密鑰加密與傳統密鑰加密相結合的一種加密技術(shù)。它使用一對數學(xué)上相關(guān)的鑰匙,其中一個(gè)(公鑰)用來(lái)加密信息,另一個(gè)(私鑰)用來(lái)解密信息。

PGP采用的傳統加密技術(shù)部分所使用的密鑰稱(chēng)為“會(huì )話(huà)密鑰”(sek)。每次使用時(shí),PGP都隨機產(chǎn)生一個(gè)128位的IDEA會(huì )話(huà)密鑰,用來(lái)加密報文。公開(kāi)密鑰加密技術(shù)中的公鑰和私鑰則用來(lái)加密會(huì )話(huà)密鑰,并通過(guò)它間接地保護報文內容。

PGP中的每個(gè)公鑰和私鑰都伴隨著(zhù)一個(gè)密鑰證書(shū)。它一般包含以下內容:

密鑰內容(用長(cháng)達百位的大數字表示的密鑰)
密鑰類(lèi)型(表示該密鑰為公鑰還是私鑰)
密鑰長(cháng)度(密鑰的長(cháng)度,以二進(jìn)制位表示)
密鑰編號(用以唯一標識該密鑰)
創(chuàng )建時(shí)間
用戶(hù)標識 (密鑰創(chuàng )建人的信息,如姓名、電子郵件等)
密鑰指紋(為128位的數字,是密鑰內容的提要表示密鑰唯一的特征)
中介人簽名(中介人的數字簽名,聲明該密鑰及其所有者的真實(shí)性,包括中介人的密鑰編號和標識信息)
PGP把公鑰和私鑰存放在密鑰環(huán)(KEYR)文件中。PGP提供有效的算法查找用戶(hù)需要的密鑰。

PGP在多處需要用到口令,它主要起到保護私鑰的作用。由于私鑰太長(cháng)且無(wú)規律,所以難以記憶。PGP把它用口令加密后存入密鑰環(huán),這樣用戶(hù)可以用易記的口令間接使用私鑰。

PGP的每個(gè)私鑰都由一個(gè)相應的口令加密。PGP主要在3處需要用戶(hù)輸入口令:

需要解開(kāi)受到的加密信息時(shí),PGP需要用戶(hù)輸入口令,取出私鑰解密信息
當用戶(hù)需要為文件或信息簽字時(shí),用戶(hù)輸入口令,取出私鑰加密
對磁盤(pán)上的文件進(jìn)行傳統加密時(shí),需要用戶(hù)輸入口令
2.以上介紹了PGP的工作流程,下面將簡(jiǎn)介與PGP相關(guān)的加密、解密方法以及PGP的密鑰管理機制。

PGP是一種供大眾使用的加密軟件。電子郵件通過(guò)開(kāi)放的網(wǎng)絡(luò )傳輸,網(wǎng)絡(luò )上的其他人都可以監聽(tīng)或者截取郵件,來(lái)獲得郵件的內容,因而郵件的安全問(wèn)題就比較突出了。保護信息不被第三者獲得,這就需要加密技術(shù)。還有一個(gè)問(wèn)題就是信息認證,如何讓收信人確信郵件沒(méi)有被第三者篡改,這就需要數字簽名技術(shù)。RSA公匙體系的特點(diǎn)使它非常適合用來(lái)滿(mǎn)足上述兩個(gè)要求:保密性(Privacy)和認證性(Authentication)。

RSA(Rivest-Shamir-Adleman)算法是一種基于大數不可能質(zhì)因數分解假設的公匙體系。簡(jiǎn)單地說(shuō)就是找兩個(gè)很大的質(zhì)數,一個(gè)公開(kāi)即公鑰,另一個(gè)不告訴任何人,即私鑰。這兩個(gè)密匙是互補的,就是說(shuō)用公匙加密的密文可以用私匙解密,反過(guò)來(lái)也一樣。

假設甲要寄信給乙,他們互相知道對方的公匙。甲就用乙的公匙加密郵件寄出,乙收到后就可以用自己的私匙解密出甲的原文。由于沒(méi)別人知道乙的私匙,所以即使是甲本人也無(wú)法解密那封信,這就解決了信件保密的問(wèn)題。另一方面由于每個(gè)人都知道乙的公匙,他們都可以給乙發(fā)信,那么乙就無(wú)法確信是不是甲的來(lái)信。這時(shí)候就需要用數字簽名來(lái)認證。

在說(shuō)明數字簽名前先要解釋一下什么是“郵件文摘”(message digest)。郵件文摘就是對一封郵件用某種算法算出一個(gè)最能體現這封郵件特征的數來(lái),一旦郵件有任何改變這個(gè)數都會(huì )變化,那么這個(gè)數加上作者的名字(實(shí)際上在作者的密匙里)還有日期等等,就可以作為一個(gè)簽名了。PGP是用一個(gè)128位的二進(jìn)制數作為“郵件文摘”的,用來(lái)產(chǎn)生它的算法叫MD5(message digest 5)。 MD5是一種單向散列算法,它不像CRC校驗碼,很難找到一份替代的郵件與原件具有同樣的MD5特征值。

回到數字簽名上來(lái),甲用自己的私匙將上述的128位的特征值加密,附加在郵件后,再用乙的公匙將整個(gè)郵件加密。這樣這份密文被乙收到以后,乙用自己的私匙將郵件解密,得到甲的原文和簽名,乙的PGP也從原文計算出一個(gè)128位的特征值來(lái)和用甲的公匙解密簽名所得到的數比較,如果符合就說(shuō)明這份郵件確實(shí)是甲寄來(lái)的。這樣兩個(gè)安全性要求都得到了滿(mǎn)足。

PGP還可以只簽名而不加密,這適用于公開(kāi)發(fā)表聲明時(shí),聲明人為了證實(shí)自己的身份,可以用自己的私匙簽名。這樣就可以讓收件人能確認發(fā)信人的身份,也可以防止發(fā)信人抵賴(lài)自己的聲明。這一點(diǎn)在商業(yè)領(lǐng)域有很大的應用前途,它可以防止發(fā)信人抵賴(lài)和信件被途中篡改。

PGP用的實(shí)際上是RSA和傳統加密的雜合算法。因為RSA算法計算量極大在速度上不適合加密大量數據,PGP實(shí)際上用來(lái)加密的不是RSA本身,而是采用了一種叫IDEA的傳統加密算法。傳統加密,一般說(shuō)來(lái)說(shuō)就是用一個(gè)密匙加密明文,然后用同樣的密匙解密。這種方法的代表是DES,也就是乘法加密,它的主要缺點(diǎn)就是密匙的傳遞渠道解決不了安全性問(wèn)題,不適合網(wǎng)絡(luò )環(huán)境郵件加密需要。IDEA的加(解)密速度比RSA快得多,所以實(shí)際上PGP是以一個(gè)隨機生成密匙(每次加密不同)用IDEA算法對明文加密,然后用RSA算法對該密匙加密。這樣收件人同樣是用RSA解密出這個(gè)隨機密匙,再用IDEA解密郵件本身。這樣的鏈式加密就做到了既有RSA體系的保密性,又有IDEA算法的快捷性。PGP利用這種鏈式加密,既保證了保密性,又保證了加密的速度。

PGP最核心的功能是:文件加密、通信加密和數字簽名。下面將簡(jiǎn)介一些PGP輔助功能,它們雖然不是整個(gè)加密系統的核心,但卻起到了協(xié)調各部分和方便用戶(hù)的作用。這兒主要介紹PGP的密鑰管理機制。

一個(gè)成熟的加密體系必然要有一個(gè)成熟的密匙管理機制配套。公匙體制的提出就是為了解決傳統加密體系的密匙分配過(guò)程難以保密的缺點(diǎn)。如果密匙是通過(guò)網(wǎng)絡(luò )傳送,那么網(wǎng)絡(luò )上其他人就可以通過(guò)監聽(tīng)得到。舉個(gè)例子:Novell Netware 的老版本中,用戶(hù)的密碼是以明文在線(xiàn)路中傳輸的,這樣監聽(tīng)者輕易就獲得了他人的密碼。當然 Netware 4.1 中數據包頭的用戶(hù)密碼現在是加密的了。對PGP來(lái)說(shuō)公匙本來(lái)就要公開(kāi),就沒(méi)有防監聽(tīng)的問(wèn)題。但公匙的發(fā)布中仍然存在安全性問(wèn)題,例如公匙的被篡改(Public Key Tampering),這可能是公匙密碼體系中最大的漏洞。必須有一種機制保證用戶(hù)所得到的公鑰是正確的,而不是別人偽造的。下面舉一個(gè)例子來(lái)說(shuō)明這個(gè)問(wèn)題,以及如何正確地用PGP堵住這個(gè)漏洞。

假設Mike想給Alice發(fā)封信,那他必須有Alice的公匙。該用戶(hù)從BBS上下載了Alice的公匙,并用它加密了信件用BBS的Email功能發(fā)給了Alice。但是,另一個(gè)用戶(hù)叫Charlie的用戶(hù)潛入BBS,把他自己用Alice的名字生成的密匙對中的公匙替換了Alice的公匙,而參與通信的這兩個(gè)人都不知道。那么Mike用來(lái)發(fā)信的公匙就不是Alice的而是Charlie的,一切看來(lái)都很正常。于是Charlie就可以用他手中的私匙來(lái)解密Mike給Alice的信,甚至他還可以用Alice真正的公匙來(lái)轉發(fā)Mike給Alice的信,這樣誰(shuí)都不會(huì )起疑心,他如果想改動(dòng)Mike給Alice的信也沒(méi)問(wèn)題。甚至他還可以偽造Alice的簽名給Mike或其他人發(fā)信,因為這些用戶(hù)手中的公匙是偽造的,他們會(huì )以為真是Alice的來(lái)信。

防止這種情況出現的最好辦法是避免讓任何其他人有機會(huì )篡改公匙,比如直接從Alice手中得到她的公匙,然而這在很多情況下是比較困難的。PGP發(fā)展了一種公匙介紹機制來(lái)解決這個(gè)問(wèn)題。舉例來(lái)說(shuō):如果Mike和Alice有一個(gè)共同的朋友David,而David知道他手中的Alice的公匙是正確的(關(guān)于如何認證公匙,PGP還有一種方法,后面會(huì )談到,這里假設David已經(jīng)和Alice認證過(guò)她的公匙)。這樣David可以用他自己的私匙在A(yíng)lice的公匙上簽名,表示他擔保這個(gè)公匙屬于A(yíng)lice。當然Mike需要用David的公匙來(lái)校驗他給出的Alice的公匙,同樣David也可以向Alice認證Mike的公匙,這樣David就成為Mike和Alice之間的“介紹人”。這樣Alice或David就可以放心地把David簽過(guò)字的Alice的公匙上載到BBS上讓Mike去拿,沒(méi)人可能去篡改它而不被發(fā)現,即使是BBS的管理員。這就是從公共渠道傳遞公匙的安全手段。

那么怎么能安全地得到David的公匙呢,確實(shí)有可能Mike拿到的David的公匙也是假的,但這就要求這個(gè)偽造密鑰的人參與這整個(gè)過(guò)程,他必須對這三個(gè)人都很熟悉,還要策劃很久,這一般不可能。當然,PGP對這種可能也有預防的建議,那就是由一個(gè)大家普遍信任的人或機構擔當這個(gè)角色,即所謂的“密匙侍者”或“認證權威”(認證中心),每個(gè)由他簽字的公匙都被認為是真的,這樣大家只要有一份他的公匙就行了,認證這個(gè)人的公匙是方便的,因為他廣泛提供這個(gè)服務(wù),假冒他的公匙是很極困難的,因為他的公匙流傳廣泛。這樣的“權威”適合由非個(gè)人控制組織或政府機構充當,現在已經(jīng)有等級認證制度的機構存在。

對于那些非常分散的人們,PGP更贊成使用私人方式的密匙轉介方式,因為這樣有機的非官方途徑更能反映出人們自然的社會(huì )交往,而且人們也能自由地選擇信任的人來(lái)介紹??傊筒徽J識的人們之間的交往一樣。每個(gè)公匙有至少一個(gè)“用戶(hù)名”(User ID),最好再加上本人的Email地址,以免混淆。

3.下面,再介紹如何通過(guò)電話(huà)認證密匙。

每個(gè)密匙有它們自己的標識(keyID),keyID是一個(gè)八位十六進(jìn)制數,兩個(gè)密匙具有相同keyID的可能性是幾十億分之一,而且PGP還提供了一種更可靠的標識密匙的方法:“密匙指紋”(key's fingerprint)。每個(gè)密匙對應一串數字(十六個(gè)兩位十六進(jìn)制數),這個(gè)指紋重復的可能就更微乎其微了。而且任何人無(wú)法指定生成一個(gè)具有某個(gè)指紋的密匙,密匙是隨機生成的,從指紋也無(wú)法反推出密匙來(lái)。這樣當拿到某人的公匙后就可以和他在電話(huà)上核對這個(gè)指紋,從而認證他的公匙。如果無(wú)法直接和通信的另一方直接通電話(huà),可以和公鑰介紹機制中的中間介紹人通電話(huà)認證該介紹人的公匙,從而通過(guò)介紹人認證了通信另一方的公匙,這就是直接認證和間接介紹的結合。

這樣又引出一種方法,就是把具有不同人簽名的自己的公匙收集在一起,發(fā)送到公共場(chǎng)合,這樣可以希望大部分人至少認識其中一個(gè)人,從而間接認證了你的公匙。同樣你簽了朋友的公匙后應該寄回給他,這樣就可以讓他可以通過(guò)你被你的其他朋友所認證。和現實(shí)社會(huì )中人們的交往一樣。PGP會(huì )自動(dòng)為你找出你拿到的公匙中有哪些是你的朋友介紹來(lái)的,那些是你朋友的朋友介紹來(lái)的,哪些則是朋友的朋友的朋友介紹的……它會(huì )幫你把它們分為不同的信任級別,讓你參考決定對它們的信任程度。你可以指定某人有幾層轉介公匙的能力,這種能力是隨著(zhù)認證的傳遞而遞減的。

轉介認證機制具有傳遞性,這是個(gè)有趣的問(wèn)題。PGP的作者Phil Zimmermann說(shuō)過(guò)一句話(huà):“ 信賴(lài)不具有傳遞性;我有個(gè)我相信決不撒謊的朋友??墒撬莻€(gè)認定總統決不撒謊的傻瓜,可很顯然我并不認為總統決不撒謊。”

上面所說(shuō)的是關(guān)于公匙的安全性問(wèn)題,這是PGP安全的核心。另外,和傳統單密匙體系一樣,私匙的保密也是決定性的。相對公匙而言,私匙不存在被篡改的問(wèn)題,但存在泄露的問(wèn)題。RSA的私匙是很長(cháng)的一個(gè)數字,用戶(hù)不可能將它記住,PGP的辦法是讓用戶(hù)為隨機生成的RSA私匙指定一個(gè)口令(pass phase)。只有通過(guò)給出口令才能將私匙釋放出來(lái)使用,用口令加密私匙的方法保密程度和PGP本身是一樣的。所以私匙的安全性問(wèn)題實(shí)際上首先是對用戶(hù)口令的保密。當然私匙文件本身失密也很危險,因為破譯者所需要的只是用窮舉法(強力攻擊)試探出口令了,雖說(shuō)很困難但畢竟是損失了一層安全性。需要說(shuō)明的是:最好不要把私鑰寫(xiě)在紙上或者某一文件里,因為這樣很容易被別人得到在這里。

PGP在安全性問(wèn)題上的審慎考慮體現在PGP的各個(gè)環(huán)節。比如每次加密的實(shí)際密匙是個(gè)隨機數,大家都知道計算機是無(wú)法產(chǎn)生真正的隨機數的。PGP程序對隨機數的產(chǎn)生是很審慎的,關(guān)鍵的隨機數像RSA密匙的產(chǎn)生是從用戶(hù)敲鍵盤(pán)的時(shí)間間隔上取得隨機數種子的。對于磁盤(pán)上的 randseed.bin 文件是采用和郵件同樣強度的加密的。這有效地防止了他人從randseed.bin文件中分析出加密實(shí)際密匙的規律來(lái)。

4.最后提一下PGP的加密前預壓縮處理,PGP內核使用PKZIP算法來(lái)壓縮加密前的明文。

一方面對電子郵件而言,壓縮后加密再經(jīng)過(guò)7bits編碼密文有可能比明文更短,這就節省了網(wǎng)絡(luò )傳輸的時(shí)間。另一方面,明文經(jīng)過(guò)壓縮,實(shí)際上相當于經(jīng)過(guò)一次變換,信息更加雜亂無(wú)章,對明文攻擊的抵御能力更強。PKZIP算法是一個(gè)公認的壓縮率和壓縮速度都相當好的壓縮算法。在PGP中使用的是PKZIP 2.0版本兼容的算法。

5.參考書(shū)目:

Philip Zimmermann : “PGP User’s Guide Volume I : Essential Topics”
NAI
microsoft


關(guān)鍵詞: RSA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>