PGP郵件安全方案_第1頁(yè)
PGP郵件安全方案_第2頁(yè)
PGP郵件安全方案_第3頁(yè)
PGP郵件安全方案_第4頁(yè)
PGP郵件安全方案_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PGP郵件安全方案PGP郵件安全方案1PGP簡(jiǎn)介PGP(PrettyGoodPrivacy),是一個(gè)基于RSA公匙加密體系的郵件加密軟件。可以用它對(duì)郵件保密以防止非授權(quán)者閱讀,它還能對(duì)郵件加上數(shù)字簽名從而使收信人可以確認(rèn)郵件的發(fā)送者,并能確信郵件沒(méi)有被篡改??梢蕴峁┮环N安全的通訊方式,而事先并不需要任何保密的渠道用來(lái)傳遞密匙。采用了一種RSA和傳統(tǒng)加密的雜合算法,用于數(shù)字簽名的郵件文摘算法,加密前壓縮等,還有一個(gè)良好的人機(jī)工程設(shè)計(jì)。功能強(qiáng)大,有很快的速度。源代碼是免費(fèi)的。PGP簡(jiǎn)介PGP(PrettyGoodPrivacy)2實(shí)際上PGP的功能還包括:PGP可以用來(lái)加密文件,還可以用PGP代替Uncode生成RADIX64格式(就是MIME的BASE64格式)的編碼文件。實(shí)際上PGP的功能還包括:3PGP的歷史PGP的創(chuàng)始人是美國(guó)的PhilpZimmerman。他的創(chuàng)造性在于他把RSA公匙體系的方便和傳統(tǒng)加密體系的高速度結(jié)合起來(lái),并且在數(shù)字簽名和密匙認(rèn)證管理機(jī)制上有巧妙的設(shè)計(jì)。因此PGP成為幾乎最流行的公匙加密軟件包。PGP的歷史PGP的創(chuàng)始人是美國(guó)的PhilpZimm4PGP服務(wù)分析1、認(rèn)證2、機(jī)密性3、壓縮4、E-MAIL兼容性5、分段和重組PGP服務(wù)分析1、認(rèn)證51、認(rèn)證(1)發(fā)送者創(chuàng)建消息(2)發(fā)送者使用SHA-1算法產(chǎn)生消息的160位hash代碼(3)發(fā)送者采用RSA算法,使用發(fā)送者的私鑰對(duì)hash代碼進(jìn)行加密,然后將結(jié)果附加在消息的頭部(4)接收者使用RSA算法和發(fā)送者的公鑰解密和恢復(fù)hash代碼(5)接收者為消息產(chǎn)生一個(gè)新的hash代碼,并且與解密后的hash代碼進(jìn)行比較,如果兩者匹配,那么消息就是可信的。1、認(rèn)證(1)發(fā)送者創(chuàng)建消息6分離簽名(分離簽名與相應(yīng)的消息分開保存和傳輸)盡管通常情況都會(huì)把簽名附加在相應(yīng)的消息或者文件中,但也支持分離簽名。分離簽名的用途如:(1)用戶可能希望維護(hù)一份發(fā)送或者接收消息的單獨(dú)簽名日志(2)可執(zhí)行程序的分離簽名能夠檢測(cè)后續(xù)的病毒感染(3)當(dāng)有多個(gè)當(dāng)事人必須簽名文檔的時(shí)候。分離簽名(分離簽名與相應(yīng)的消息分開保存和傳輸)72、機(jī)密性(1)發(fā)送者產(chǎn)生一條消息,并為該消息產(chǎn)生一個(gè)用作會(huì)話密鑰的隨機(jī)的128位數(shù)字(2)使用會(huì)話密鑰和可靠的算法加密消息(3)使用接收者的公鑰和RSA算法加密會(huì)話密鑰,并且把結(jié)果附加到消息的頭部(4)接收者使用自己的私鑰和RSA算法解密和恢復(fù)會(huì)話密鑰(5)使用會(huì)話密鑰解密消息2、機(jī)密性(1)發(fā)送者產(chǎn)生一條消息,并為該消息產(chǎn)生一個(gè)用作會(huì)83、機(jī)密性和認(rèn)證對(duì)同一條消息可以使用兩種服務(wù)(1)為明文產(chǎn)生簽名并把結(jié)果附加到消息的頭部。(2)使用IDEA或3DES等加密明文消息和簽名的連接,并使用RSA加密會(huì)話密鑰3、機(jī)密性和認(rèn)證對(duì)同一條消息可以使用兩種服務(wù)94、壓縮對(duì)于EMAIL傳輸和文件保存來(lái)說(shuō),壓縮有利于節(jié)省空間。壓縮的時(shí)機(jī):PGP在簽名后加密前壓縮消息在壓縮前產(chǎn)生簽名的原因:(1)簽名未壓縮的消息更加可取,可以通過(guò)保存未壓縮的消息的簽名來(lái)實(shí)現(xiàn)將來(lái)的驗(yàn)證。(2)壓縮算法的不確定性,會(huì)影響hash函數(shù)和簽名的實(shí)現(xiàn)在壓縮后加密消息的原因:提高密密碼的安全性因?yàn)閴嚎s后的消息與最初的明文相比具更少的冗余,所以密碼分析就會(huì)更困難。4、壓縮對(duì)于EMAIL傳輸和文件保存來(lái)說(shuō),壓縮有利于節(jié)省空間105、E-MAIL兼容性因?yàn)猷]件系統(tǒng)只允許使用包含ASCII文本的數(shù)據(jù)塊,為了滿足這個(gè)限制,PGP支持將未加工的8位二進(jìn)制流轉(zhuǎn)換為可打印的ASCII字符流。用于實(shí)現(xiàn)這一轉(zhuǎn)換的方案就是radix-64轉(zhuǎn)換。5、E-MAIL兼容性因?yàn)猷]件系統(tǒng)只允許使用包含ASCII文11注意:radix-64算法不管消息的內(nèi)容是什么,只是盲目地把輸入流轉(zhuǎn)換為radix-64格式,即使輸入的恰巧是ASCII文本。如果是簽名而沒(méi)加密的消息,對(duì)整個(gè)數(shù)據(jù)塊實(shí)現(xiàn)轉(zhuǎn)換,對(duì)不經(jīng)意的觀察者來(lái)說(shuō),輸出是不可讀的,能提供某種程序的機(jī)密性。這就使接收消息的人可以在不使用PGP的情況下就能讀取消息。但接收者要驗(yàn)證簽名必須使用PGP。注意:radix-64算法不管消息的內(nèi)容是什么,只是盲目地把126、分段和重組E-MAIL應(yīng)用通常都受限于最大消息的長(zhǎng)度,因此發(fā)送者必須把任何比這個(gè)值長(zhǎng)的消息分成更小的段,單獨(dú)地傳送每一段。為了滿足這個(gè)限制,PGP自動(dòng)地將過(guò)大的消息細(xì)分為幾個(gè)足夠小的段,并通過(guò)郵件傳輸。在所有其他操作執(zhí)行完后,PGP對(duì)消息進(jìn)行分段。在接收端,PGP必須剝?nèi)ニ蠩-MAIL頭,并在執(zhí)行radix64之前進(jìn)行重組,以獲得整個(gè)原來(lái)的數(shù)據(jù)塊。6、分段和重組E-MAIL應(yīng)用通常都受限于最大消息的長(zhǎng)度,因13PGP的四種服務(wù)(認(rèn)證、機(jī)密性、壓縮、EMAIL兼容性)間的關(guān)系PGP的四種服務(wù)(認(rèn)證、機(jī)密性、壓縮、EMAIL兼容性)間的14密鑰與密鑰環(huán)PGP使用了4種類型的密鑰:一次性會(huì)話密鑰、公鑰、私和基于口令短語(yǔ)的對(duì)稱密鑰用戶可以擁有多個(gè)公鑰/私鑰對(duì)。(1)用戶可以時(shí)常改變密鑰對(duì)(2)用戶可以在給定的時(shí)間內(nèi)擁有多個(gè)密鑰對(duì)以便與不同組的通訊者進(jìn)行交互(3)用戶可以通過(guò)限制每個(gè)密鑰能夠加密的數(shù)據(jù)量來(lái)提高安全性因此:用戶與公鑰之間不是一一對(duì)應(yīng)的關(guān)系密鑰與密鑰環(huán)PGP使用了4種類型的密鑰:一次性會(huì)話密鑰、公鑰15解決:每個(gè)PGP實(shí)體必須維護(hù)一份由自己的公鑰/私鑰對(duì)組成的文件,以及由相應(yīng)的通信者的公鑰組成的文件。引入密鑰標(biāo)識(shí)符。解決:16PGP為每個(gè)公鑰分配一個(gè)密鑰ID,并且這個(gè)密鑰ID在用戶ID內(nèi)是唯一的。PGP數(shù)字簽名也需要密鑰ID,因?yàn)椋喊l(fā)送者可能使用大量私鑰中的一個(gè)來(lái)加密消息摘要,所以接收者必須知道需要使用哪個(gè)公鑰。相應(yīng)地,消息的數(shù)字簽名部分包含所需公鑰的64位密鑰ID,當(dāng)接收者接收到消息時(shí),驗(yàn)證該密鑰ID與他所知道的這個(gè)發(fā)送者的某個(gè)公鑰對(duì)應(yīng),然后繼續(xù)驗(yàn)證簽名。PGP為每個(gè)公鑰分配一個(gè)密鑰ID,并且這個(gè)密鑰ID在用戶ID17PGP消息消息構(gòu)件:文件名,時(shí)間戳,數(shù)據(jù)簽名構(gòu)件:時(shí)間戳,消息摘要,消息摘要的頭兩個(gè)八位字節(jié),發(fā)送者公鑰的密鑰ID會(huì)話密鑰構(gòu)件:接收者公鑰的密鑰ID,會(huì)話密鑰KsPGP消息消息構(gòu)件:文件名,時(shí)間戳,數(shù)據(jù)18PGP郵件安全方案19密鑰證書它一般包含以下內(nèi)容:密鑰內(nèi)容(用長(zhǎng)達(dá)百位的大數(shù)字表示的密鑰)

密鑰類型(表示該密鑰為公鑰還是私鑰)

密鑰長(zhǎng)度(密鑰的長(zhǎng)度,以二進(jìn)制位表示)

密鑰編號(hào)(用以唯一標(biāo)識(shí)該密鑰)

創(chuàng)建時(shí)間

用戶標(biāo)識(shí)(密鑰創(chuàng)建人的信息,如姓名、電子郵件等)

密鑰指紋(為128位的數(shù)字,是密鑰內(nèi)容的提要表示密鑰唯一的特征)

中介人簽名(中介人的數(shù)字簽名,聲明該密鑰及其所有者的真實(shí)性,包括中介人的密鑰編號(hào)和標(biāo)識(shí)信息)

密鑰證書它一般包含以下內(nèi)容:20密鑰環(huán)PGP把公鑰和私鑰存放在密鑰環(huán)(KEYR)文件中。PGP提供有效的算法查找用戶需要的密鑰。PGP在每個(gè)節(jié)點(diǎn)上提供一對(duì)數(shù)據(jù)結(jié)構(gòu),一個(gè)用于存儲(chǔ)該節(jié)點(diǎn)所擁有的公鑰/私鑰對(duì);一個(gè)用于存儲(chǔ)所知道的另一個(gè)節(jié)點(diǎn)上的其他用戶的公鑰,分別稱這兩個(gè)數(shù)據(jù)結(jié)構(gòu)為私鑰環(huán)和公鑰環(huán)。PGP把公鑰和私鑰存放在密鑰環(huán)(KEYR)文件中。PGP提供有效的算法(用戶ID或者密鑰ID進(jìn)行索引)查找用戶需要的密鑰。密鑰環(huán)PGP把公鑰和私鑰存放在密鑰環(huán)(KEYR)文件中。PG21盡管只在創(chuàng)建和擁有密鑰對(duì)的機(jī)器上保存私鑰環(huán),而且只有該機(jī)器上的用戶能夠訪問(wèn)這些密鑰對(duì),但是要盡可能地保證私鑰的安全,不把私鑰本身存儲(chǔ)在密鑰環(huán)里,而是使用CAST128(或者IDEA,或者3DES)加密密鑰。PGP在多處需要用到口令,它主要起到保護(hù)私鑰的作用。由于私鑰太長(zhǎng)且無(wú)規(guī)律,所以難以記憶。PGP把它用口令加密后存入密鑰環(huán),這樣用戶可以用易記的口令--口令短語(yǔ),間接使用私鑰。盡管只在創(chuàng)建和擁有密鑰對(duì)的機(jī)器上保存私鑰環(huán),而且只有該機(jī)器上22私鑰環(huán)的管理(1)用戶選擇用于加密私鑰的口令。(2)當(dāng)系統(tǒng)使用RSA產(chǎn)生新的公鑰/私鑰對(duì)時(shí),系統(tǒng)向用戶請(qǐng)求口令短語(yǔ),使用SHA1從口令短語(yǔ)中產(chǎn)生160位的hash代碼,然后丟棄該口令短語(yǔ)。(3)系統(tǒng)使用CAST-128加密私鑰,并把128位的hash代碼用作密鑰,然后丟棄hash代碼,并且在私鑰環(huán)中保存加密后的私鑰。當(dāng)用戶訪問(wèn)私鑰環(huán)以檢索私鑰時(shí),必須提供口令短語(yǔ)。PGP將檢索加密后的私鑰,產(chǎn)生口令短語(yǔ)的hash代碼,然后使用CAST-128和hash代碼解密私鑰。私鑰環(huán)的管理(1)用戶選擇用于加密私鑰的口令。23PGP的每個(gè)私鑰都由一個(gè)相應(yīng)的口令短語(yǔ)加密。PGP主要在3處需要用戶輸入口令:需要解開受到的加密信息時(shí),PGP需要用戶輸入口令,取出私鑰解密信息。當(dāng)用戶需要為文件或信息簽字時(shí),用戶輸入口令,取出私鑰加密。對(duì)磁盤上的文件進(jìn)行傳統(tǒng)加密時(shí),需要用戶輸入口令。

PGP的每個(gè)私鑰都由一個(gè)相應(yīng)的口令短語(yǔ)加密。PGP主要在3處24發(fā)送消息的PGP實(shí)體執(zhí)行步驟:(1)簽名(2)加密發(fā)送消息的PGP實(shí)體執(zhí)行步驟:25PGP郵件安全方案26接收消息的PGP實(shí)體執(zhí)行步驟:(1)解密消息(2)認(rèn)證消息接收消息的PGP實(shí)體執(zhí)行步驟:27PGP郵件安全方案28公鑰的管理(1)物理在從B處得到密鑰(2)通過(guò)電話驗(yàn)證密鑰(3)從雙方都信任的個(gè)體D處獲得B的公鑰(4)從可信的認(rèn)證機(jī)構(gòu)CA獲得B的公鑰公鑰的管理(1)物理在從B處得到密鑰29信用的使用把具有不同人簽名的自己的公匙收集在一起,發(fā)送到公共場(chǎng)合,這樣可以希望大部分人至少認(rèn)識(shí)其中一個(gè)人,從而間接認(rèn)證了你的公匙。同樣你簽了朋友的公匙后應(yīng)該寄回給他,這樣就可以讓他可以通過(guò)你被你的其他朋友所認(rèn)證。PGP會(huì)自動(dòng)為你找出你拿到的公匙中有哪些是你的朋友介紹來(lái)的,那些是你朋友的朋友介紹來(lái)的,哪些則是朋友的朋友的朋友介紹的……它會(huì)幫你把它們分為不同的信任級(jí)別,讓你參考決定對(duì)它們的信任程度。你可以指定某人有幾層轉(zhuǎn)介公匙的能力,這種能力是隨著認(rèn)證的傳遞而遞減的。信用的使用把具有不同人簽名的自己的公匙收集在一起,發(fā)送到公共30轉(zhuǎn)介認(rèn)證機(jī)制具有傳遞性。PGP的作者PhilZimmermann說(shuō)過(guò)一句話:“信賴不具有傳遞性;我有個(gè)我相信決不撒謊的朋友??墒撬莻€(gè)認(rèn)定總統(tǒng)決不撒謊的傻瓜,可很顯然我并不認(rèn)為總統(tǒng)決不撒謊。”轉(zhuǎn)介認(rèn)證機(jī)制具有傳遞性。31使用LZ77算法壓縮數(shù)據(jù)LZ壓縮算法是最有影響力的動(dòng)態(tài)數(shù)據(jù)壓縮算法之一,LZ是其發(fā)明者J.Ziv和A.Lempel姓氏的縮寫。他們?cè)?977年發(fā)表題為《順序數(shù)據(jù)壓縮的一個(gè)通用算法》的論文,提出了被后人稱為L(zhǎng)Z77的算法。當(dāng)前個(gè)人計(jì)算機(jī)用戶的主流壓縮工具如ARJ,PKZip,WinZip,LHArc,RAR,GZip,Compress等幾乎都采用LZ77變種算法。使用LZ77算法壓縮數(shù)據(jù)LZ壓縮算法是最有影響力的動(dòng)態(tài)數(shù)據(jù)壓32LZ77算法是一種動(dòng)態(tài)的字典編碼,又稱為“滑動(dòng)窗口壓縮”,該算法將一個(gè)虛擬的,可以跟隨壓縮進(jìn)程滑動(dòng)的窗口作為詞典,要壓縮的字符串如果在該窗口中出現(xiàn),則輸出其出現(xiàn)的位置和長(zhǎng)度,如圖所示。LZ77算法是一種動(dòng)態(tài)的字典編碼,又稱為“滑動(dòng)窗口壓縮”,33該算法具體流程如下:1)從當(dāng)前壓縮位置開始,考察未編碼的數(shù)據(jù),試圖在滑動(dòng)窗口中找出最長(zhǎng)的匹配字符串,如果找到,則進(jìn)行步驟2),否則進(jìn)行步驟3)。2)輸出三元符號(hào)組(off,len,c),其中off為窗口中匹配字符串相對(duì)窗口邊界的偏移,len為可匹配的長(zhǎng)度,c為下一個(gè)未編碼字符。然后將窗口向后滑動(dòng)len+1個(gè)字符,繼續(xù)步驟1)。3)輸出三元符號(hào)組(0,0,c)。其中c為下一個(gè)未編碼字符。然后將窗口向后滑動(dòng)1個(gè)字符,繼續(xù)步驟1)。LZ壓縮算法示意圖該算法具體流程如下:LZ壓縮算法示意圖34假設(shè)窗口的大小為10個(gè)字符,我們剛編碼過(guò)的10個(gè)字符是aabcdebdca,即將編碼的字符為cdafcacdab。容易看出,可以和要編碼字符匹配的最長(zhǎng)串為cd(off=3,len=2),cd的下一個(gè)未編碼字符為a,我們輸出三元組(3,2,a),并將窗口向后滑動(dòng)3個(gè)字符,窗口中的內(nèi)容為cdebdcacda。下一個(gè)要編碼字符f在窗口中沒(méi)有匹配,因此輸出三元組(0,0,f),同時(shí)窗口向后滑動(dòng)1個(gè)字符,其中內(nèi)容變?yōu)閐ebdcacdaf。要編碼的cacda在窗口中存在(off=4,len=5),其后的字符為b,因此輸出(4,5,b)。這樣,我們將可以匹配的字符串都變成了指向窗口內(nèi)的指針,并由此完成了對(duì)上述數(shù)據(jù)的壓縮。假設(shè)窗口的大小為10個(gè)字符,我們剛編碼過(guò)的10個(gè)字符35解壓縮的過(guò)程十分簡(jiǎn)單,只要我們向壓縮時(shí)那樣維護(hù)好滑動(dòng)的窗口,隨著三元組的不斷輸入,我們?cè)诖翱谥姓业较鄳?yīng)的匹配串,綴上后繼字符c輸出(如果off和len都為0則只輸出后繼字符c),即可還原出原始數(shù)據(jù)。解壓縮的過(guò)程十分簡(jiǎn)單,只要我們向壓縮時(shí)那樣維護(hù)好滑動(dòng)的窗口,36Radix-64轉(zhuǎn)換Radix-64轉(zhuǎn)換編碼技術(shù):將任意二進(jìn)制輸入映射為可打印的字符輸出。Radix-64轉(zhuǎn)換Radix-64轉(zhuǎn)換編碼技術(shù):37映射方案:對(duì)二進(jìn)制輸入的處理以3個(gè)字節(jié)的數(shù)據(jù)塊為單位,24位塊中每6位集合映射成一個(gè)字符。每個(gè)24位輸入都擴(kuò)展成為32位輸出。映射方案:386位值字符編碼6位值字符編碼6位值字符編碼6位值字符編碼0123456789101112131415ABCDEFGHIJKLMNOP16171819202122232425262728293031QRSTUVWXYZabcdef32333435363738394041424344454647ghijklmnopqrstuv48495051525354555657585960616263(pad)wxyz0123456789+/=radix-64編碼6位值字符編碼6位值字符編碼6位值字符編碼6位值字符編碼0A39012345670000000100100011010001010110011100000^@^PSP0@P.p10001^A^Q!1AQaq20010^B^R"2BRbr30011^C^S#3CScs40100^D^T$4DTdt50101^E^U%5EUeu60110^F^V&6FVfv70111^G^W'7GWgw81000^H^X(8HXhx91001^I^Y)9IYIyA1010^J^Z*:JZjzB1011^K^[+;K[k{C1100^L^\,<L\l|D1101^M^]-=M]m}E1110^N^^.>N^n~F1111^O^/?O_odelASCII碼(AmericanStandardCode

forInformationnterchange

)

40例:24位未加工的文本序列001000110101110010010001,重排為6位:001000110101110010010001對(duì)應(yīng)的十進(jìn)制:8535017radix-64編碼I1yR8位ASCII01001001(73)00110001(49)01111001(121)01010010(82)十六進(jìn)制:49317952例:24位未加工的文本序列41PGP郵件安全方案PGP郵件安全方案42PGP簡(jiǎn)介PGP(PrettyGoodPrivacy),是一個(gè)基于RSA公匙加密體系的郵件加密軟件??梢杂盟鼘?duì)郵件保密以防止非授權(quán)者閱讀,它還能對(duì)郵件加上數(shù)字簽名從而使收信人可以確認(rèn)郵件的發(fā)送者,并能確信郵件沒(méi)有被篡改??梢蕴峁┮环N安全的通訊方式,而事先并不需要任何保密的渠道用來(lái)傳遞密匙。采用了一種RSA和傳統(tǒng)加密的雜合算法,用于數(shù)字簽名的郵件文摘算法,加密前壓縮等,還有一個(gè)良好的人機(jī)工程設(shè)計(jì)。功能強(qiáng)大,有很快的速度。源代碼是免費(fèi)的。PGP簡(jiǎn)介PGP(PrettyGoodPrivacy)43實(shí)際上PGP的功能還包括:PGP可以用來(lái)加密文件,還可以用PGP代替Uncode生成RADIX64格式(就是MIME的BASE64格式)的編碼文件。實(shí)際上PGP的功能還包括:44PGP的歷史PGP的創(chuàng)始人是美國(guó)的PhilpZimmerman。他的創(chuàng)造性在于他把RSA公匙體系的方便和傳統(tǒng)加密體系的高速度結(jié)合起來(lái),并且在數(shù)字簽名和密匙認(rèn)證管理機(jī)制上有巧妙的設(shè)計(jì)。因此PGP成為幾乎最流行的公匙加密軟件包。PGP的歷史PGP的創(chuàng)始人是美國(guó)的PhilpZimm45PGP服務(wù)分析1、認(rèn)證2、機(jī)密性3、壓縮4、E-MAIL兼容性5、分段和重組PGP服務(wù)分析1、認(rèn)證461、認(rèn)證(1)發(fā)送者創(chuàng)建消息(2)發(fā)送者使用SHA-1算法產(chǎn)生消息的160位hash代碼(3)發(fā)送者采用RSA算法,使用發(fā)送者的私鑰對(duì)hash代碼進(jìn)行加密,然后將結(jié)果附加在消息的頭部(4)接收者使用RSA算法和發(fā)送者的公鑰解密和恢復(fù)hash代碼(5)接收者為消息產(chǎn)生一個(gè)新的hash代碼,并且與解密后的hash代碼進(jìn)行比較,如果兩者匹配,那么消息就是可信的。1、認(rèn)證(1)發(fā)送者創(chuàng)建消息47分離簽名(分離簽名與相應(yīng)的消息分開保存和傳輸)盡管通常情況都會(huì)把簽名附加在相應(yīng)的消息或者文件中,但也支持分離簽名。分離簽名的用途如:(1)用戶可能希望維護(hù)一份發(fā)送或者接收消息的單獨(dú)簽名日志(2)可執(zhí)行程序的分離簽名能夠檢測(cè)后續(xù)的病毒感染(3)當(dāng)有多個(gè)當(dāng)事人必須簽名文檔的時(shí)候。分離簽名(分離簽名與相應(yīng)的消息分開保存和傳輸)482、機(jī)密性(1)發(fā)送者產(chǎn)生一條消息,并為該消息產(chǎn)生一個(gè)用作會(huì)話密鑰的隨機(jī)的128位數(shù)字(2)使用會(huì)話密鑰和可靠的算法加密消息(3)使用接收者的公鑰和RSA算法加密會(huì)話密鑰,并且把結(jié)果附加到消息的頭部(4)接收者使用自己的私鑰和RSA算法解密和恢復(fù)會(huì)話密鑰(5)使用會(huì)話密鑰解密消息2、機(jī)密性(1)發(fā)送者產(chǎn)生一條消息,并為該消息產(chǎn)生一個(gè)用作會(huì)493、機(jī)密性和認(rèn)證對(duì)同一條消息可以使用兩種服務(wù)(1)為明文產(chǎn)生簽名并把結(jié)果附加到消息的頭部。(2)使用IDEA或3DES等加密明文消息和簽名的連接,并使用RSA加密會(huì)話密鑰3、機(jī)密性和認(rèn)證對(duì)同一條消息可以使用兩種服務(wù)504、壓縮對(duì)于EMAIL傳輸和文件保存來(lái)說(shuō),壓縮有利于節(jié)省空間。壓縮的時(shí)機(jī):PGP在簽名后加密前壓縮消息在壓縮前產(chǎn)生簽名的原因:(1)簽名未壓縮的消息更加可取,可以通過(guò)保存未壓縮的消息的簽名來(lái)實(shí)現(xiàn)將來(lái)的驗(yàn)證。(2)壓縮算法的不確定性,會(huì)影響hash函數(shù)和簽名的實(shí)現(xiàn)在壓縮后加密消息的原因:提高密密碼的安全性因?yàn)閴嚎s后的消息與最初的明文相比具更少的冗余,所以密碼分析就會(huì)更困難。4、壓縮對(duì)于EMAIL傳輸和文件保存來(lái)說(shuō),壓縮有利于節(jié)省空間515、E-MAIL兼容性因?yàn)猷]件系統(tǒng)只允許使用包含ASCII文本的數(shù)據(jù)塊,為了滿足這個(gè)限制,PGP支持將未加工的8位二進(jìn)制流轉(zhuǎn)換為可打印的ASCII字符流。用于實(shí)現(xiàn)這一轉(zhuǎn)換的方案就是radix-64轉(zhuǎn)換。5、E-MAIL兼容性因?yàn)猷]件系統(tǒng)只允許使用包含ASCII文52注意:radix-64算法不管消息的內(nèi)容是什么,只是盲目地把輸入流轉(zhuǎn)換為radix-64格式,即使輸入的恰巧是ASCII文本。如果是簽名而沒(méi)加密的消息,對(duì)整個(gè)數(shù)據(jù)塊實(shí)現(xiàn)轉(zhuǎn)換,對(duì)不經(jīng)意的觀察者來(lái)說(shuō),輸出是不可讀的,能提供某種程序的機(jī)密性。這就使接收消息的人可以在不使用PGP的情況下就能讀取消息。但接收者要驗(yàn)證簽名必須使用PGP。注意:radix-64算法不管消息的內(nèi)容是什么,只是盲目地把536、分段和重組E-MAIL應(yīng)用通常都受限于最大消息的長(zhǎng)度,因此發(fā)送者必須把任何比這個(gè)值長(zhǎng)的消息分成更小的段,單獨(dú)地傳送每一段。為了滿足這個(gè)限制,PGP自動(dòng)地將過(guò)大的消息細(xì)分為幾個(gè)足夠小的段,并通過(guò)郵件傳輸。在所有其他操作執(zhí)行完后,PGP對(duì)消息進(jìn)行分段。在接收端,PGP必須剝?nèi)ニ蠩-MAIL頭,并在執(zhí)行radix64之前進(jìn)行重組,以獲得整個(gè)原來(lái)的數(shù)據(jù)塊。6、分段和重組E-MAIL應(yīng)用通常都受限于最大消息的長(zhǎng)度,因54PGP的四種服務(wù)(認(rèn)證、機(jī)密性、壓縮、EMAIL兼容性)間的關(guān)系PGP的四種服務(wù)(認(rèn)證、機(jī)密性、壓縮、EMAIL兼容性)間的55密鑰與密鑰環(huán)PGP使用了4種類型的密鑰:一次性會(huì)話密鑰、公鑰、私和基于口令短語(yǔ)的對(duì)稱密鑰用戶可以擁有多個(gè)公鑰/私鑰對(duì)。(1)用戶可以時(shí)常改變密鑰對(duì)(2)用戶可以在給定的時(shí)間內(nèi)擁有多個(gè)密鑰對(duì)以便與不同組的通訊者進(jìn)行交互(3)用戶可以通過(guò)限制每個(gè)密鑰能夠加密的數(shù)據(jù)量來(lái)提高安全性因此:用戶與公鑰之間不是一一對(duì)應(yīng)的關(guān)系密鑰與密鑰環(huán)PGP使用了4種類型的密鑰:一次性會(huì)話密鑰、公鑰56解決:每個(gè)PGP實(shí)體必須維護(hù)一份由自己的公鑰/私鑰對(duì)組成的文件,以及由相應(yīng)的通信者的公鑰組成的文件。引入密鑰標(biāo)識(shí)符。解決:57PGP為每個(gè)公鑰分配一個(gè)密鑰ID,并且這個(gè)密鑰ID在用戶ID內(nèi)是唯一的。PGP數(shù)字簽名也需要密鑰ID,因?yàn)椋喊l(fā)送者可能使用大量私鑰中的一個(gè)來(lái)加密消息摘要,所以接收者必須知道需要使用哪個(gè)公鑰。相應(yīng)地,消息的數(shù)字簽名部分包含所需公鑰的64位密鑰ID,當(dāng)接收者接收到消息時(shí),驗(yàn)證該密鑰ID與他所知道的這個(gè)發(fā)送者的某個(gè)公鑰對(duì)應(yīng),然后繼續(xù)驗(yàn)證簽名。PGP為每個(gè)公鑰分配一個(gè)密鑰ID,并且這個(gè)密鑰ID在用戶ID58PGP消息消息構(gòu)件:文件名,時(shí)間戳,數(shù)據(jù)簽名構(gòu)件:時(shí)間戳,消息摘要,消息摘要的頭兩個(gè)八位字節(jié),發(fā)送者公鑰的密鑰ID會(huì)話密鑰構(gòu)件:接收者公鑰的密鑰ID,會(huì)話密鑰KsPGP消息消息構(gòu)件:文件名,時(shí)間戳,數(shù)據(jù)59PGP郵件安全方案60密鑰證書它一般包含以下內(nèi)容:密鑰內(nèi)容(用長(zhǎng)達(dá)百位的大數(shù)字表示的密鑰)

密鑰類型(表示該密鑰為公鑰還是私鑰)

密鑰長(zhǎng)度(密鑰的長(zhǎng)度,以二進(jìn)制位表示)

密鑰編號(hào)(用以唯一標(biāo)識(shí)該密鑰)

創(chuàng)建時(shí)間

用戶標(biāo)識(shí)(密鑰創(chuàng)建人的信息,如姓名、電子郵件等)

密鑰指紋(為128位的數(shù)字,是密鑰內(nèi)容的提要表示密鑰唯一的特征)

中介人簽名(中介人的數(shù)字簽名,聲明該密鑰及其所有者的真實(shí)性,包括中介人的密鑰編號(hào)和標(biāo)識(shí)信息)

密鑰證書它一般包含以下內(nèi)容:61密鑰環(huán)PGP把公鑰和私鑰存放在密鑰環(huán)(KEYR)文件中。PGP提供有效的算法查找用戶需要的密鑰。PGP在每個(gè)節(jié)點(diǎn)上提供一對(duì)數(shù)據(jù)結(jié)構(gòu),一個(gè)用于存儲(chǔ)該節(jié)點(diǎn)所擁有的公鑰/私鑰對(duì);一個(gè)用于存儲(chǔ)所知道的另一個(gè)節(jié)點(diǎn)上的其他用戶的公鑰,分別稱這兩個(gè)數(shù)據(jù)結(jié)構(gòu)為私鑰環(huán)和公鑰環(huán)。PGP把公鑰和私鑰存放在密鑰環(huán)(KEYR)文件中。PGP提供有效的算法(用戶ID或者密鑰ID進(jìn)行索引)查找用戶需要的密鑰。密鑰環(huán)PGP把公鑰和私鑰存放在密鑰環(huán)(KEYR)文件中。PG62盡管只在創(chuàng)建和擁有密鑰對(duì)的機(jī)器上保存私鑰環(huán),而且只有該機(jī)器上的用戶能夠訪問(wèn)這些密鑰對(duì),但是要盡可能地保證私鑰的安全,不把私鑰本身存儲(chǔ)在密鑰環(huán)里,而是使用CAST128(或者IDEA,或者3DES)加密密鑰。PGP在多處需要用到口令,它主要起到保護(hù)私鑰的作用。由于私鑰太長(zhǎng)且無(wú)規(guī)律,所以難以記憶。PGP把它用口令加密后存入密鑰環(huán),這樣用戶可以用易記的口令--口令短語(yǔ),間接使用私鑰。盡管只在創(chuàng)建和擁有密鑰對(duì)的機(jī)器上保存私鑰環(huán),而且只有該機(jī)器上63私鑰環(huán)的管理(1)用戶選擇用于加密私鑰的口令。(2)當(dāng)系統(tǒng)使用RSA產(chǎn)生新的公鑰/私鑰對(duì)時(shí),系統(tǒng)向用戶請(qǐng)求口令短語(yǔ),使用SHA1從口令短語(yǔ)中產(chǎn)生160位的hash代碼,然后丟棄該口令短語(yǔ)。(3)系統(tǒng)使用CAST-128加密私鑰,并把128位的hash代碼用作密鑰,然后丟棄hash代碼,并且在私鑰環(huán)中保存加密后的私鑰。當(dāng)用戶訪問(wèn)私鑰環(huán)以檢索私鑰時(shí),必須提供口令短語(yǔ)。PGP將檢索加密后的私鑰,產(chǎn)生口令短語(yǔ)的hash代碼,然后使用CAST-128和hash代碼解密私鑰。私鑰環(huán)的管理(1)用戶選擇用于加密私鑰的口令。64PGP的每個(gè)私鑰都由一個(gè)相應(yīng)的口令短語(yǔ)加密。PGP主要在3處需要用戶輸入口令:需要解開受到的加密信息時(shí),PGP需要用戶輸入口令,取出私鑰解密信息。當(dāng)用戶需要為文件或信息簽字時(shí),用戶輸入口令,取出私鑰加密。對(duì)磁盤上的文件進(jìn)行傳統(tǒng)加密時(shí),需要用戶輸入口令。

PGP的每個(gè)私鑰都由一個(gè)相應(yīng)的口令短語(yǔ)加密。PGP主要在3處65發(fā)送消息的PGP實(shí)體執(zhí)行步驟:(1)簽名(2)加密發(fā)送消息的PGP實(shí)體執(zhí)行步驟:66PGP郵件安全方案67接收消息的PGP實(shí)體執(zhí)行步驟:(1)解密消息(2)認(rèn)證消息接收消息的PGP實(shí)體執(zhí)行步驟:68PGP郵件安全方案69公鑰的管理(1)物理在從B處得到密鑰(2)通過(guò)電話驗(yàn)證密鑰(3)從雙方都信任的個(gè)體D處獲得B的公鑰(4)從可信的認(rèn)證機(jī)構(gòu)CA獲得B的公鑰公鑰的管理(1)物理在從B處得到密鑰70信用的使用把具有不同人簽名的自己的公匙收集在一起,發(fā)送到公共場(chǎng)合,這樣可以希望大部分人至少認(rèn)識(shí)其中一個(gè)人,從而間接認(rèn)證了你的公匙。同樣你簽了朋友的公匙后應(yīng)該寄回給他,這樣就可以讓他可以通過(guò)你被你的其他朋友所認(rèn)證。PGP會(huì)自動(dòng)為你找出你拿到的公匙中有哪些是你的朋友介紹來(lái)的,那些是你朋友的朋友介紹來(lái)的,哪些則是朋友的朋友的朋友介紹的……它會(huì)幫你把它們分為不同的信任級(jí)別,讓你參考決定對(duì)它們的信任程度。你可以指定某人有幾層轉(zhuǎn)介公匙的能力,這種能力是隨著認(rèn)證的傳遞而遞減的。信用的使用把具有不同人簽名的自己的公匙收集在一起,發(fā)送到公共71轉(zhuǎn)介認(rèn)證機(jī)制具有傳遞性。PGP的作者PhilZimmermann說(shuō)過(guò)一句話:“信賴不具有傳遞性;我有個(gè)我相信決不撒謊的朋友。可是他是個(gè)認(rèn)定總統(tǒng)決不撒謊的傻瓜,可很顯然我并不認(rèn)為總統(tǒng)決不撒謊?!鞭D(zhuǎn)介認(rèn)證機(jī)制具有傳遞性。72使用LZ77算法壓縮數(shù)據(jù)LZ壓縮算法是最有影響力的動(dòng)態(tài)數(shù)據(jù)壓縮算法之一,LZ是其發(fā)明者J.Ziv和A.Lempel姓氏的縮寫。他們?cè)?977年發(fā)表題為《順序數(shù)據(jù)壓縮的一個(gè)通用算法》的論文,提出了被后人稱為L(zhǎng)Z77的算法。當(dāng)前個(gè)人計(jì)算機(jī)用戶的主流壓縮工具如ARJ,PKZip,WinZip,LHArc,RAR,GZip,Compress等幾乎都采用LZ77變種算法。使用LZ77算法壓縮數(shù)據(jù)LZ壓縮算法是最有影響力的動(dòng)態(tài)數(shù)據(jù)壓73LZ77算法是一種動(dòng)態(tài)的字典編碼,又稱為“滑動(dòng)窗口壓縮”,該算法將一個(gè)虛擬的,可以跟隨壓縮進(jìn)程滑動(dòng)的窗口作為詞典,要壓縮的字符串如果在該窗口中出現(xiàn),則輸出其出現(xiàn)的位置和長(zhǎng)度,如圖所示。LZ77算法是一種動(dòng)態(tài)的字典編碼,又稱為“滑動(dòng)窗口壓縮”,74該算法具體流程如下:1)從當(dāng)前壓縮位置開始,考察未編碼的數(shù)據(jù),試圖在滑動(dòng)窗口中找出最長(zhǎng)的匹配字符串,如果找到,則進(jìn)行步驟2),否則進(jìn)行步驟3)。2)輸出三元符號(hào)組(off,len,c),其中off為窗口中匹配字符串相對(duì)窗口邊界的偏移,len為可匹配的長(zhǎng)度,c為下一個(gè)未編碼字符。然后將窗口向后滑動(dòng)len+1個(gè)字符,繼續(xù)步驟1)。3)輸出三元符號(hào)組(0,0,c)。其中c為下一個(gè)未編碼字符。然后將窗口向后滑動(dòng)1個(gè)字符,繼續(xù)步驟1)。LZ壓縮算法示意圖該算法具體流程如下:LZ壓縮算法示意圖75假設(shè)窗口的大小為10個(gè)字符,我們剛編碼過(guò)的10個(gè)字符是aabcdebdca,即將編碼的字符為cdafcacdab。容易看出,可以和要編碼字符匹配的最長(zhǎng)串為cd(off=3,len=2),cd的下一個(gè)未編碼字符為a,我們輸出三元組(3,2,a),并將窗口向后滑動(dòng)3個(gè)字符,窗口中的內(nèi)容為cdebdcacda。下一個(gè)要編碼字符f在窗口中沒(méi)有匹配,因此輸出三元組(0,0,f),同時(shí)窗口向后滑動(dòng)1個(gè)字符,其中內(nèi)容變?yōu)閐ebdcacdaf。要編碼的cacda在窗口中存在(off=4,len=5),其后的字符為b,因此輸出(4,5,b)。這樣,我們將可以匹配的字符串都變成了指向窗口內(nèi)的指針,并由此完成了對(duì)上述數(shù)據(jù)的壓縮。假設(shè)窗口的大小為10個(gè)字符,我們剛編碼過(guò)的10個(gè)字符76解壓縮的過(guò)程十分簡(jiǎn)單,只要我們向壓縮時(shí)那樣維護(hù)好滑動(dòng)的窗口,隨著三元組的不斷輸入,我們?cè)诖翱谥姓业较鄳?yīng)的匹配串,綴上后繼字符c輸出(如果off和len都為0則只輸出后繼字符c),即可還原出原始數(shù)據(jù)。解壓縮的過(guò)程十分簡(jiǎn)單,只要我們向壓縮時(shí)那樣維護(hù)好滑動(dòng)的窗口,77Radix-64轉(zhuǎn)換Radix-64轉(zhuǎn)換編碼技術(shù):將任意二進(jìn)制輸入映射為可打印的字符輸出。Radix-64轉(zhuǎn)換Radix-64轉(zhuǎn)換編碼技術(shù):78映射方案:對(duì)二進(jìn)制輸入的處理以3個(gè)字節(jié)的數(shù)據(jù)塊為單位,24位塊中每6位集合映射成一個(gè)字符。每個(gè)24位輸入都擴(kuò)展成為32位輸出。映射方案:796位值字符編碼6位值字符編碼6位值字符編碼6位值字符編碼0123456789101112131415ABCDEFGHIJKLMNOP16171819202122232425262728293031QRSTUVWXYZabcdef32333435363738394041424344454647ghijklmnopqrstuv48495051525354555657585960616263(pad)wxyz0123456789+/=radix-64編碼6位值字符編碼6位值字符編碼6位值字符編碼6位值字符編碼0A80012345670000000100100011010001010110011100000^@^PSP0@P.p10001^A^Q!1AQaq20010^B^R"2BRbr30011^C^S#3CScs

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論