久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

數(shù)據(jù)加密縱橫談

 心之所指 2005-12-21

1.加密的歷史

作為保障數(shù)據(jù)安全的一種方式,,對于信息的加密技巧起源于歐洲,,公元前2000年,埃及人是最先使用象形文字作為信息編碼的人,。隨著時間推移,巴比倫,、美索不達(dá)米亞和希臘文明都開始使用一些方法來保護他們的書面信息(明文),。后來,被Julias Caesar(凱撒大帝)使用,,也曾用于歷次戰(zhàn)爭中,,包括美國獨立戰(zhàn)爭、美國內(nèi)戰(zhàn)和兩次世界大戰(zhàn),。
最廣為人知的編碼機器是德國的German Enigma,,在第二次世界大戰(zhàn)中德國人利用它創(chuàng)建了加密信息系統(tǒng),從而解決軍事信息的保密通訊問題,。此后,,由于Alan Turing和Ultra計劃以及其他工程技術(shù)人員的不泄努力,盟軍終于對德國人的密碼成功破譯了,,進而導(dǎo)致第二次世界大戰(zhàn)結(jié)束,。
當(dāng)初,美國人對于計算機的研究,,主要目的是用于破解德國人的通訊密碼,,這在當(dāng)時,人們并沒有意識到計算機技術(shù)此后的發(fā)展會影響世界歷史進程,,從而在全球引發(fā)了一場信息革命,。隨著計算機的發(fā)展,運算能力的增強,,傳統(tǒng)的密碼知識和技能都變得十分簡單了而很容易被人破解,,于是人們又不斷地研究出了新的數(shù)據(jù)加密方式,如私有密鑰算法和公共密鑰算法,??梢哉f,是計算機技術(shù)的飛速發(fā)展在推動了數(shù)據(jù)加密技術(shù)的發(fā)展,。

2.什么是數(shù)據(jù)加密

盡管加密技術(shù)被首先使用在軍事通信領(lǐng)域,,但是人們或許出于安全的考量,,開始逐漸對于商業(yè)機密、政府文件等重要信息實施加密手段,。數(shù)據(jù)加密應(yīng)運而生,。其基本原理是:
對明文(可讀懂的信息)進行翻譯,使用不同的算法對明文以代碼形式(密碼)實施加密,。該過程的逆過程稱為解密,,即將該編碼信息轉(zhuǎn)化為明文的過程。
從事數(shù)據(jù)加密研究的人稱為密碼編碼者(Cryptographer),而從事對密碼解密的專業(yè)人士稱為密碼分析者(Cryptanalyst),。如今數(shù)據(jù)加密技術(shù)被廣泛地應(yīng)用與國民經(jīng)濟各個領(lǐng)域,,特別是政府機關(guān)和國防情報部門,此外才是科學(xué)研究機關(guān),、商業(yè)部門,、新聞出版、金融證券,、交通管制與電力輸送等部門,。

3.為什么需要對數(shù)據(jù)進行加密?

因特網(wǎng)是不安全的信息傳輸載體,,它所遵循的通訊協(xié)議(TCP/IP協(xié)議)是脆弱的,,當(dāng)初設(shè)計該協(xié)議的初衷并非是對信息安全的考慮,而是出于對通信自由的考量,。因此,,一些基于TCP/IP協(xié)議的服務(wù)也是極不安全;另一方面,,因特網(wǎng)給眾多的商家?guī)砹藷o限的商機,,許多網(wǎng)絡(luò)黑客依照經(jīng)濟利益或個人愛好,往往專門跟蹤Internet的特殊群體或個別敏感用戶,,盜取他們的網(wǎng)絡(luò)身份或銀行帳戶信息,,再冒充合法用戶的身份,進一步侵入信息系統(tǒng),,非法盜取經(jīng)濟,、政治、軍事機密,。為了保證因特網(wǎng)的安全和充分發(fā)揮其商業(yè)信息交換的價值,,人們選擇了數(shù)據(jù)加密技術(shù)的對訪問Internet網(wǎng)絡(luò)的用戶實施身份認(rèn)證。
加密技術(shù)在網(wǎng)絡(luò)上的應(yīng)用概括起來有:①數(shù)據(jù)加密 ②身份認(rèn)證 ③數(shù)字簽名和防止個人的否認(rèn)事實(撒謊)行為,。其次就是對于黑客的非法入侵行為在網(wǎng)絡(luò)上進行攔截,。許多安全防護體系是基于密碼的,密碼一旦泄露出去可以導(dǎo)致很多的安全隱患,甚至導(dǎo)致網(wǎng)絡(luò)的全面崩潰,。
當(dāng)人在網(wǎng)絡(luò)上進行訪問時必須進入第一道門口——登錄,,你所鍵入的密碼(Password)以明文的形式被傳輸?shù)接脩舴?wù)器上,系統(tǒng)自動對你的用戶身份進行鑒別,,這就是身份認(rèn)證,。確定你的身份后才容許你訪問或通訊。
在網(wǎng)絡(luò)上的竊聽是一件極為容易的事情,,今天在Internet網(wǎng)上到處充斥著各種各樣的黑客程序,很多是基于訪問控制的攻擊型程序,。因此很有可能會有黑客嗅探并竊得用戶的密碼,,如果用戶是Root用戶或Administrator用戶,那后果將是極為嚴(yán)重的,。網(wǎng)絡(luò)上的數(shù)據(jù)被嗅探和劫持必將或給網(wǎng)絡(luò)帶來安全隱患,。
解決類似的網(wǎng)絡(luò)攻擊行為的防護措施之一就是對數(shù)據(jù)加密,加密的口令即使被黑客獲得也是不可讀的,,除非加密密鑰或加密方式十分脆弱,,黑客很容易破解。不管怎樣,,加密的使用使黑客不會輕易獲得口令,。
身份認(rèn)證是基于加密技術(shù)的,它的作用就是用來確定用戶是否是真實的,。
簡單的例子就是電子郵件,,當(dāng)用戶收到一封電子郵件時,郵件上面標(biāo)有發(fā)信人的姓名和信箱地址,,很多人可能會簡單地認(rèn)為發(fā)信人就是信上說明的那個人,,但實際上偽造一封電子郵件對于一個通常人來說是極為容易的事。在這種情況下,,用戶需要用電子郵件源身份認(rèn)證技術(shù)來防止電子郵件偽造,,這樣就有理由用戶寫信的人就是信頭上說明的人,有些站點提供入站FTPWWW服務(wù),,當(dāng)然用戶通常接觸的這類服務(wù)是匿名服務(wù),,用戶的權(quán)力要受到限制,但也有的這類服務(wù)不是匿名的,,如公司為了信息交流提供用戶的合作伙伴非匿名的FTP服務(wù),,或開發(fā)小組把他們的Web網(wǎng)頁上載到用戶的WWW服務(wù)器上,現(xiàn)在的問題就是,,用戶如何確定正在訪問用戶服務(wù)器的人就是合法用戶呢,?采用身份認(rèn)證便可以解決這個問題。
有些時候,用戶可能需要對一些機密文件進行加密,,并不一定因為要在網(wǎng)絡(luò)間進行傳輸,,而是要防止別人竊得計算機密碼而獲得該機密文件,因此要對數(shù)據(jù)實行加密,,從而實現(xiàn)多重保護,。例如,在UNIX系統(tǒng)中可以用crypt(3)命令對文件進行加密,,盡管這種加密手段如今已不是那么先進,,甚至有被破解的可能,但是最起碼可以保證文件的完整無誤地傳輸?shù)叫畔⒔邮芊健?/div>

4.加密密鑰

加密算法通常是公開的,,比較常用的密碼體制有DESIDEA等,。一般把受保護的原始信息稱為明文,編碼后的數(shù)據(jù)就是密文,。盡管大家都知道加密方法是公開的,,但對密文進行破譯是需要專一的密鑰的,密鑰是保密的不是任何人都可以輕易拿到的,。一旦你獲得專一的密鑰秘密對于你就是公開的了,。

(一)保密密鑰和公開(私有)密鑰

有兩類基本的加密算法可供對文件加密者選擇:保密密鑰和公開/私有密鑰。在保密密鑰中,,加密者和解密者使用相同的密鑰,,被稱為非對稱密鑰,這類算法有DESIDEA,。這種加密算法的問題是,,用戶必須讓接收信息者知道自己所使用的密鑰,這個密鑰需要雙方共同保密,,任何一方的失誤都會導(dǎo)致機密的泄露,。而且在告訴收件人密鑰過程中,還需要的防止任何人發(fā)現(xiàn)或竊取密鑰,,這個過程被稱為密鑰發(fā)布,。有些認(rèn)證系統(tǒng)在會話初期用明文傳送密鑰,這就存在密鑰被截獲的可能性,。
需要使用保密密鑰對加密密鑰的信息再加密,。
另一類加密技術(shù)是公開/私有密鑰,與非對稱密鑰體制不同的是,,它使用相互關(guān)聯(lián)的一對密鑰,,一個是公開的密鑰,任何人都可以知道,,另一個是私有密鑰(專一密鑰),,只有擁有該對密鑰的人才有,其他人并沒有保管它。假如某甲發(fā)信給保存專一密鑰的乙方,,乙接收到加密信息后,,就用他自己保存的密鑰進行解密,而且只有乙方持有的私有密鑰可以解密,。這種加密方式的好處顯而易見,。密鑰只有一個人持有,也就更加容易進行保密,,因為不需在網(wǎng)絡(luò)上傳送私人密鑰,,也就不用擔(dān)心別人在認(rèn)證會話初期劫持密鑰。
下面把公開/私有密鑰技術(shù)總結(jié)為以下三個要點:
1,、公開鑰/私有密鑰有兩個相互關(guān)聯(lián)的密鑰,。
2、公開密鑰加密的文件只有私有密鑰能解開,。
3、私有密鑰加密的文件只有公開密鑰能解開,,這一特點被用于PGPpretty good privacy),。

二)摘要函數(shù)(MD2MD4MD5-----數(shù)字簽名

摘要是一種防止數(shù)據(jù)被私自改動的方法,,其中用到的函數(shù)叫摘要函數(shù),。這些函數(shù)的輸入可以是任意大小的消息,而輸出是一個固定長度的摘要,。摘要有這樣一個性質(zhì),,如果改變了輸入消息中的任何東西,甚至只有一位,,輸出的摘要將會發(fā)生不可預(yù)測的改變,,也就是說輸入消息的每一位數(shù)字對輸出摘要都會有影響??傊?,摘要算法從給定的文本塊中產(chǎn)生一個數(shù)字簽名(fingerprintmessage digest),數(shù)字簽名可以用于防止有人從一個簽名上獲取文本信息或改變文本信息內(nèi)容,。摘要算法的數(shù)字簽名原理在很多加密算法中都被使用,,如S/KEYPGPpretty good privacy)。
現(xiàn)在流行的摘要函數(shù)有MD4MD5,,下面就來討論一下它們,。記住,客戶機和服務(wù)器必須使用相同的算法,,無論是MD4還是MD5,MD4客戶機不能和MD5服務(wù)器交互,。
MD2摘要算法的設(shè)計是出于下面的考慮:利用32RISC結(jié)構(gòu)來最大其吞吐量,而不需要大量的替換表(substitution table)。
MD4算法是把消息的給予,,對長度而言作為一個輸入,,產(chǎn)生一個128位的"指紋""消息化"。要產(chǎn)生兩個具有相同消息化的文字塊或者產(chǎn)生任何具有預(yù)先給定"指紋"的消息,,都被認(rèn)為在計算上是不可能的,。
MD5摘要算法是個數(shù)據(jù)認(rèn)證標(biāo)準(zhǔn)。MD5的設(shè)計思想是要找出速度更快但更不安全的MD4中潛在的不安全,,MD5的設(shè)計者通過使MD5在計算上慢下來,,以及對這些計算做了一些基礎(chǔ)性的改動來解決這個問題。MD5RFC1321中給出文檔描述,,是MD4算法的一個擴展,。

5.密鑰的管理和分發(fā)

一、使用同樣密鑰的時間范圍
   用戶可以一次又一次地使用同樣原密鑰與別人交換信息,,但要考慮以下的情況:
    1.如果某人偶然地接觸到了用戶的密鑰,,那么用戶曾經(jīng)和另一個人交換的每一條消息都不再是保密的了。
    2.使用一個特定密鑰加密的信息越多,,提供給竊聽者的材料也就越多,,這就增加了他們成功的機會。
    因此,,一般強調(diào)僅將一個對話密鑰用于一條信息中或一次對話中,,或者建立一種按時更換密鑰的機制,以減小密鑰暴露的可能性,。
 二,、保密密鑰的分發(fā)
     假設(shè)在某機構(gòu)中有100個人,如果他們?nèi)我鈨扇酥g可以進行秘密對話,,那么總共需要多少密鑰呢,?每個人需要知道多少密鑰呢?很容易得出答案,,十個連網(wǎng)用戶需要45個密鑰,,如果是100人中的任意兩人之間要用不同的密鑰對話,則該群體總共需要4950對密鑰,,而且每個人應(yīng)記住99個密鑰,。如果機構(gòu)的人數(shù)是100010000人或更多呢,,顯然這種方式過于愚蠢了,,管理密鑰將是一件可怕的事情。
Kerberos提供了一種較好的密鑰管理解決方案,,它是由美國MTI (麻省理工學(xué)院)發(fā)明的,,使密鑰的管理和分發(fā)變得十分方便,,但該方法本身還存在一定的缺陷。為能在因特網(wǎng)上提供一個實用的解決方案 Kerberos建立了一個安全的,、可信任的密鑰分發(fā)中心(Key Distribution Center, KDC),,每個用戶只要知道一個和KDC進行通訊的密鑰就可以了,而不需要知道成百上千個不同的密鑰,。發(fā)放密鑰和生成密鑰由KDC負(fù)責(zé),。方式如下:
     假設(shè)A想要和B進行秘密通信,則A先和KDC通信,,使用只有AKDC知道的密鑰進行加密 ,,A告訴KDC他想和B通信,KDC會為AB之間的會話隨機選擇一對對話密鑰,,比如“wa6lkj9ds5bc”,,并生成一個標(biāo)簽,這個標(biāo)簽由KDCB之間的密鑰進行加密,,并在A啟動與B對話時,,A會把這個標(biāo)簽交給B。為什么會生成這樣一個標(biāo)簽?zāi)??這個標(biāo)簽的作用是讓A確信和他交談的人就是B,,而不是冒充者。因為這個標(biāo)簽是由只有BKDC知道的密鑰進行加密的,,所以即使冒充者得到A發(fā)出的標(biāo)簽也不可能進行解密,只有B收到后才能夠進行解密,,從而確定了與A對話的人就是B,。
     當(dāng)KDC生成標(biāo)簽和隨機發(fā)放,就會把它們用只有AKDC知道的密鑰進行加密,,然后把標(biāo)簽和發(fā)放的密鑰傳給A,,加密的結(jié)果可以確保只有A能得到這個信息,只有A能利用這個會話密鑰和B進行通話(唯一性),。同理,,KDC會把會話密碼用只有KDCB知道的密鑰加密,并把會話密鑰傳給B,。
A會啟動一個和B的會話行為,,并用得到的會話密鑰加密自己和B的會話,于此同時還要把KDC傳給A的標(biāo)簽再發(fā)給B,,以確定B 的身份,。然后AB之間就可以用會話密鑰進行安全會話了,而且為了保證安全,,這個會話密鑰是一次性的,,這樣黑客就更難進行破解了,。

6.一次性密碼

通常使用的計算機口令是靜態(tài)的,也就是說在一定時間內(nèi)是不變的,,而且可重復(fù)使用,。前面已經(jīng)提到過,口令極易被網(wǎng)上嗅探劫持,,有鑒于此,,人們發(fā)明的一次性密碼。難道在每次會話后修改一次密碼嗎,?顯然這樣做是極其愚蠢的,,那樣太累人了。事實上,,人們已經(jīng)發(fā)明了一種產(chǎn)生一次性口令的技術(shù),,稱之為挑戰(zhàn)/ 回答(challenge/response
    口令,,不管是靜態(tài)口令還是一次性口令,,都是基于"用戶知道什么"這一理論的。比如說,,靜態(tài)密碼是用戶和機器之間共享的一種信息,,而其他人不知道,這樣用戶若知道這個口令,,就說明用戶是機器所確認(rèn)的那個人,。一次性口令也一樣,用戶和機器之間必須共知一條通行短語,,而這條通行短語對外界是完全保密的,。和靜態(tài)口令不同的是,這個通行短語并不在網(wǎng)絡(luò)上進行傳輸,,所以黑客通過網(wǎng)絡(luò)竊聽是絕對截獲不了的,。每次的口令是三個因數(shù)按一定算法計算得到的結(jié)果,這三個因子分別是種子,、迭代值和通行短語,。
種子(seed:決定于用戶,一般在一臺機器上,,一個種子對應(yīng)于一個用戶,,也就是說,種子在一個系統(tǒng)中應(yīng)具有唯一性,,這是秘密的而是公開的,。
    迭代值iteration):迭代值是不斷變化的,而種子和通行短語是相對不變的,,所以迭代值的作用就是使口令發(fā)生變化,。
    通行短語phrase:通行短語是保密的,,而迭代值是公開的,這樣就決定了口令的機密性,。
     當(dāng)用戶登錄時,,系統(tǒng)會向用戶提出挑戰(zhàn),包括種子和迭代值,,然后用戶用得到的種子和迭代值再加上自己知道的通行短語計算出一個答復(fù),,并傳送給系統(tǒng),因為系統(tǒng)也知道這個通行短語,,所以系統(tǒng)可以驗證答復(fù)正確與否,。

7.數(shù)據(jù)加密標(biāo)準(zhǔn)Data Encryption Standard

最著名的保密密鑰(或?qū)ΨQ密鑰)加密算法DES (Data Encryption Standard ) 是由IBM公司在70年代發(fā)展起來的,并經(jīng)政府的加密標(biāo)準(zhǔn)篩選后,,于197611月被美國政府采用,,DES隨后被美國國家標(biāo)準(zhǔn)局和美國國家標(biāo)準(zhǔn)協(xié)會(American National Standard Institute,ANSI)承認(rèn)并給予公布。
DES使用56位密鑰對64位的數(shù)據(jù)塊進行加密,,并對64位的數(shù)據(jù)塊進行16輪編碼,。與每輪編碼時,一個48位的"每輪"密鑰值由56位的完整密鑰得出來,。DES用軟件進行解碼需用很長時間,,而用硬件解碼速度非常快,。幸運的是,,當(dāng)時大多數(shù)黑客并沒有足夠的設(shè)備制造出這種硬件設(shè)備。在1977年,,人們估計要耗資兩千萬美元才能建成一個專門計算機用于DES的解密,,而且需要12個小時的破解才能得到結(jié)果。當(dāng)時DES被認(rèn)為是一種十分強壯的加密方法,。
但是,當(dāng)今的計算機速度越來越快了,,制造一臺這樣特殊的機器的花費已經(jīng)降到了十萬美元左右,,而用它來保護十億美元的銀行間線纜時,就要仔細(xì)斟酌了,。另一方面,,如果只用它來保護一臺服務(wù)器,那么DES確實是一種好的辦法,,因為黑客絕不會僅僅為入侵一個服務(wù)器而花那么多的錢破解DES密文,。由于現(xiàn)在已經(jīng)能用二十萬美元制造一臺破譯DES的特殊的計算機,所以現(xiàn)在對要求"強壯"的加密場合已經(jīng)不再適用了,。
三重DES
     確定一種新的加密體制是否真正的安全是極為困難的事情,,何況DES的密碼學(xué)缺點是密鑰長度相對比較短,,現(xiàn)階段之所以人們并沒有完全放棄使用DES,是它的優(yōu)勢還很明顯,。改進其長度的方法,,就是采用三重DES,,。這種方法用兩個密鑰對明文進行三次加密,,假設(shè)兩個密鑰是K1K2。加密方法是:
   1.用密鑰K1進行DES解密,。
   2.K2對步驟1結(jié)果進行DES解密,。
   3.用步驟2的結(jié)果使用密鑰K1進行DES加密。
   這種方法的缺點,,是要花費原來三倍,,但從另一方面來看,三重DES112位密鑰長度是很"強壯"的加密方式了,。

8.電子商務(wù)與加密技術(shù)

電子商務(wù)(E-business)的最大特點就是顧客可以在網(wǎng)上進行交易,,不必?fù)?dān)心自己的信用卡會被人盜用。但是,,假如用戶的號碼和合同被竊賊獲到,,盜竊者便可通過電話訂貨,而且冒用用戶的名義使用信用卡進行結(jié)算,。這種交易的高風(fēng)險性長期阻礙著電子商務(wù)的發(fā)展,,于是人們開始用RSA(一種公開/私有密鑰)提高信用卡交易的安全性,從而使電子商務(wù)走向?qū)嵱贸蔀榭赡堋?br/>      許多人認(rèn)為NETSCAPE公司是Internet商業(yè)中領(lǐng)先技術(shù)的提供者,,該公司提供了一種基于RSA和保密密鑰的應(yīng)用于因特網(wǎng)的技術(shù),,被稱為安全插座層Secure Sockets Layer,SSL。也許很多人知道Socket,它是一個編程界面,,并不提供任何安全措施,,而SSL不但提供編程界面,而且向上提供一種安全的服務(wù),,SSL3.0現(xiàn)在已經(jīng)應(yīng)用到了服務(wù)器和瀏覽器上,,SSL2.0則只能應(yīng)用于服務(wù)器端。SSL3.0用一種電子證書(electric certificate)的措施來實行身份認(rèn)證,,之后,,雙方就可以用保密密鑰進行安全的會話了。
     基于SSL3.0提供的安全保障,,用戶就可以自由的從商務(wù)網(wǎng)站訂購商品,,并且輸入信用卡號,也可以在網(wǎng)上和合作伙伴交流商業(yè)信息并且讓供應(yīng)商把訂單和收貨單從網(wǎng)上發(fā)送過來,,這樣可以節(jié)省大量的紙張,,降低商品銷售成本,,并為公司節(jié)省大量的電話、傳真費用,。在過去,,電子信息交換(Electric Data Interchange,EDI)、信息交易(information transaction)和金融交易(financial transaction)都是在專用網(wǎng)絡(luò)上完成的,,使用專用網(wǎng)的費用大大高于因特網(wǎng),。正是由于Internet的巨大誘惑,才使人們開始發(fā)展因特網(wǎng)上的電子商務(wù),,但不要忘記數(shù)據(jù)加密,。

9.虛擬專用網(wǎng)絡(luò)(VPN,Virtual Private Network

現(xiàn)在,,越多越多的公司走向國際化,,一個公司可能在多個國家都有辦事機構(gòu)或銷售中心,每一個機構(gòu)都有自己的LANLocal Area Network局域網(wǎng)),,但人們不會只滿足這此,。用戶可能會要求將這些LAN連結(jié)在一起組成一個跨越地區(qū)和國界的公司廣域網(wǎng)。事實上,,今天的IBM,、微軟等國際知名企業(yè)公司都已經(jīng)這樣做了,但他們一般使用租用線路(leased line)來連結(jié)這些局域網(wǎng) ,,因為他們考慮到網(wǎng)絡(luò)安全問題?,F(xiàn)在具有加密/解密功能的路由器使人們使用因特網(wǎng)作為連接這些局域網(wǎng)的通道成為可能,這就是虛擬專用網(wǎng)絡(luò)的概念(Virtual Private Network ,VPN),。
當(dāng)數(shù)據(jù)離開發(fā)送者所在的局域網(wǎng)時,,這些數(shù)據(jù)被連接到因特網(wǎng)路由器上進行加密,數(shù)據(jù)在Internet上是以加密的形式傳送,,當(dāng)加密數(shù)據(jù)到達(dá)目的LAN的路由器時,,該路由器自動地對加密數(shù)據(jù)進行解密,這樣目標(biāo)LAN中的用戶就可以看到真實的信息了,。

10.PGP加密軟件 具有非常好的隱秘性

PGPPretty Good Privacy)是一個基于RSA公鑰加密體制的郵件加密軟件,。可用它對郵件加密以防止非授權(quán)者閱讀,,PGP還能對用戶的郵件加上數(shù)字簽名(fingerprint,指紋),,從而使收信人可以確信該郵件是由該用戶發(fā)出的,。它讓用戶可以安全地和從未見過面的人們通信,事先并不需要任何保密通道來傳遞密鑰,。
PGP采用以下技術(shù):審慎的密鑰管理,、一種RSA和傳統(tǒng)加密的雜合算法,,用于數(shù)字簽名的郵件摘要函數(shù)算法和加密的雜合算法、用于數(shù)字簽名的郵件往往不加密前壓縮等,,還有一個良好的人機工程設(shè)計,。它功能強大、速度很快,,而且其源代碼是免費的,。
實際上PGP的功能還不止上面說的,PGP可以用來加密文件,,還可以用PGP代替UUencode生成RADIX64格式(就是MIMEBASE 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)成為生活的一部分,。郵件的安全問題也就突出了,大家都知道在因特網(wǎng)上傳輸?shù)臄?shù)據(jù)是不保密的,。如果用戶不采取相應(yīng)措施,,來保護自己的數(shù)據(jù),第三者(或黑客)就會輕易獲得用戶的隱私,,進一步達(dá)到要挾或恐嚇正常用戶的目的,。還有一個問題就是信息認(rèn)證,如何讓收信人確信郵件沒有被第三者篡改,,就需要使用數(shù)字簽名技術(shù),。RSA公鑰體制的特點使它非常適合用來滿足上述兩個要求:保密性(privacy)和認(rèn)證性(authentication)。

RSA(Rivest-Shamir-Adleman)算法

基于大數(shù)不可能被質(zhì)因數(shù)分解假設(shè)的公鑰體系,。簡單地說就是找兩個很大的質(zhì)數(shù),。一個公開給世界,一個不告訴任何人,。一個稱為"公鑰",,另一個叫"私鑰"Prblic key & Secret key or Private key)。這兩個密鑰是互補的,,也就是說用公鑰加密的密文可以用私鑰解密,。反之同理。假設(shè)甲要寄信給乙,他們互相知道對方的公鑰,。甲就用乙的公鑰加密郵件寄出,,乙收到后就可以用自己的私鑰解密出甲的原文。由于別人不知道乙的私鑰,,所以即使是甲本人也無法解密那封信,,這就解決了信件保密的問題。另一方面,,由于每個人都知道乙的公鑰,,他們都可以給乙發(fā)信,那么乙確信是不是由甲發(fā)過來的信,。認(rèn)證便出現(xiàn)了,,這時就要使用數(shù)字簽名。

郵件文摘message digest

  在說明數(shù)字簽名前,,先要解釋一下什么是"郵件文摘"message digest),,簡單地講就是對一封郵件用某種算法找出一個最能體現(xiàn)這封郵件屬性特征的的數(shù)來,一旦郵件有任何改變這個數(shù)都會跟著起變化,,那么這個數(shù)加上用戶的名字(實際上在用戶的密鑰里)和日期等等,,就可以作為一個數(shù)字簽名。確切地說PGP是用一個128位的二進制數(shù)進行為"郵件文摘"的,,用它來產(chǎn)生的算法叫MD5(Message Digest 5),,MD5的提出者是Ron RirestPGP中使用的代碼是由Colin Plumb 編寫的,,MD5本身是公用軟件,,所以PGP的法律條款中沒有提到它。MD5是一種單向散列算法,,(它不像校驗碼),,可獲得一份替代的郵件與原件具有同樣的MD5特征值。
假如,,甲用自己的私鑰將上述的128位值加密(數(shù)字簽名),,附加在郵件后,再用乙的公鑰將整個郵件加密(注意這里的次序,,如果先加密再簽名的話,,別人可以將簽名去掉后簽上自己的簽名,從而篡改了簽名),。當(dāng)這份密文被乙收到后,,乙必須用自己的專一密鑰對該郵件解密,得到甲的原文和數(shù)字簽名,,乙的PGP也從原文計算出一個128位的特征值來和用甲的公鑰解密簽名所得到的數(shù)進行比對,,如果符合特征值,,說明這份郵件確實是由甲寄來的。這樣兩個安全性要求都得到滿足,。

數(shù)字簽名的不可抵賴性

PGP還可以只簽名而不加密,這適用于公開發(fā)表聲明時,,聲明人為了證實自己的身份(在網(wǎng)絡(luò)上只能如此了),,可用自己的私鑰簽名,這樣就可以讓收件人能確認(rèn)發(fā)信人的身份,,也可以防止發(fā)信人抵賴自己的聲明,。這一點在商業(yè)領(lǐng)域有很大的應(yīng)用前途,可以防止發(fā)信人對諸如商業(yè)合同,、信譽擔(dān)保等文件的抵賴和該文件被途中篡改等,。
 

IDEA(國際數(shù)據(jù)加密算法)

為什么說PGP用的是RSA和傳統(tǒng)加密的雜合算法呢?
因為RSA算法計算量很大而且在速度上也不適合加密大量數(shù)據(jù),,所以PGP實際上用來加密的不是RSA本身,,而是采用了一種叫IDEA的傳統(tǒng)加密算法,首先解釋一下什么叫傳統(tǒng)加密,,簡單地說就是用一個密鑰加密明文,,然后用同樣的密鑰解密。這種方法的代表是DES(US Federal Data Encryption Standard),也就是乘法加密,,它的主要缺點就是公共通訊傳輸網(wǎng)絡(luò)解決不了安全性問題,,不適合網(wǎng)絡(luò)環(huán)境郵件加密需要。
IDEA是一個有專利的算法,,專利持有者是ETH和一個瑞士公司:Ascom-Tech AG,。非商業(yè)用途的IDEA實現(xiàn)不用向他們交納費用。IDEA的加(解)密速度比RSA快得多,,(據(jù)文獻(xiàn)介紹測算出IDEADES快兩倍,,比RSA算法快100倍)所以實際上PGP是以一個隨機生成的密鑰(每次加密)用IDEA算法對明文加密,然后再用RSA算法對該密鑰加密,。這樣收件人同樣是用RSA解出這個隨機密鑰,,再用IDEA解密郵件本身。這樣的鏈?zhǔn)郊用芫妥龅搅思扔?span style="">RSA體系的保密性,,又有IDEA算法的快捷性,。
PGP的鏈?zhǔn)郊用芫妥龅搅思扔?span style="">RSA體系的保密性,又有IDEA算法的快捷性,。PGP的創(chuàng)意有一半就在這一點上了,,為什么RSA體系70年代就提出來,一直沒有推廣應(yīng)用呢,?速度太慢,!那PGP創(chuàng)意的另一半在哪兒呢?

PGP的密鑰管理

一個成熟的加密體系必然要有一個成熟的密鑰管理機制配套。公鑰體制的提出就是為了解決傳統(tǒng)加密體系的密鑰分配過程中保密的缺陷,。比如網(wǎng)絡(luò)黑客們常用的手段之一就是"監(jiān)聽"monitor),,如果密鑰是通過網(wǎng)絡(luò)傳送就太危險了。舉個例子:Novell Netware的老版本中,,用戶的密碼是以明文在線路中傳輸?shù)?,這樣監(jiān)聽者輕易就獲得了他人的密碼。當(dāng)然Netware4.1中數(shù)據(jù)包頭的用戶密碼現(xiàn)在是加密的,。對PGP來說公鑰本來就要公開,,就沒有防監(jiān)聽的問題。但公鑰的發(fā)布中仍然存在安全性問題,,例如公鑰被篡改(public key tampering),,這可能是公鑰密碼體系中最大漏洞 ,因為大多數(shù)新手不能很快發(fā)現(xiàn)這一點,。用戶必須確信用戶的公鑰屬于它看上去屬于的那個人,。為了把這個問題說清楚,先舉個例子進行說明,,然后再說如何正確使用PGP堵塞這個漏洞,。
以用戶和Alice通信為例,假設(shè)用戶想給Alice的公鑰,,用戶從BBS上下載了Alice的公鑰,,并用它加密信件,用BBSEmail功能發(fā)給了Alice,。不幸的是,,用戶和Alice都不知道,另一個叫Charlie的用戶潛入BBS,,把他自己使用Alice的名字生成密鑰對中的公鑰偷偷更換了Alice的公鑰,。那用戶用來發(fā)信的公鑰的用戶名"Alice"。于是Charlie的公鑰來轉(zhuǎn)發(fā)用戶給Alice的信,,這樣誰都不會起疑心他如果想找用戶發(fā)給Alice的信也是很容易的事,,更有甚者,他還可偽造Alice的簽名給用戶或其他人發(fā)信,,因為用戶手中的公鑰是Charlie偽造的,,用戶會以為真是Alice的來信。

介紹人確認(rèn)公鑰——公共渠道傳遞公鑰的安全手段

 防止上述情況出現(xiàn)的最好辦法是避免讓任何其他人有機會篡改公鑰,,比如直接從Alice手中得到她的公鑰,。然而當(dāng)她在千里之外或無法見到時,這是很困難的,。PGP發(fā)展了一種公鑰介紹機制來解決這個問題,。舉例來說:如果用戶和Alice有一個共同的朋友David,,而David知道他手中的Alice的公鑰是正確的(關(guān)于如何認(rèn)證公鑰,PGP還有一種方法,,后面會談到,,這里假設(shè)David已經(jīng)和Alice認(rèn)證過她的公鑰)。這樣David就成為用戶和Alice之間的"介紹人",。這樣AliceDavid就可放心地把經(jīng)過David簽過字的Alice的公鑰上載到BBS上供用戶去拿,,沒人可能去篡改它而不被用戶發(fā)現(xiàn),即使是BBS的管理員,。這就是從公共渠道傳遞公鑰的安全手段。
 有人會問:如何安全地得到David的公鑰呢,。這是個先有雞還是先有蛋的問題嗎,?確實有可能用戶拿到的David的公鑰也是假的,但這就求這個搗蛋者參與整個過程,,他必須對你們?nèi)硕己苁煜?,還要策劃很久,這一般不可能,,當(dāng)然,,PGP對這種可能也預(yù)防的建議,那就是由一個大家普遍信任的或機構(gòu)擔(dān)當(dāng)這個角色,,他被稱為"密鑰待者""認(rèn)證權(quán)威",,每個由他簽字的公鑰都被認(rèn)為是真的,這樣大家只要有他的公鑰就行了,,證明此人的公鑰是方便的,,因為他廣泛提供這種服務(wù),假冒他的公鑰是極困難的,,而因為他的公鑰流傳廣泛,。這樣的"權(quán)威"適合由非個人控制的組織或政府機構(gòu)充當(dāng),現(xiàn)在已經(jīng)有等級認(rèn)證制度的機構(gòu)存在,。(CA認(rèn)證機構(gòu))
對于那些非常分散的用戶,,PGP更贊成使用私人方式的密鑰轉(zhuǎn)介方式,因這樣有些非官方途徑更能反映出人們自然的社會交往,,而且人們也能自由地選擇信任的人來介紹,,總之和不認(rèn)識的人們之間的交往一樣,每個公鑰至少有一個"用戶名"User ID),,請盡量用自己的全名,,再加上本人的E-mail地址,以免混淆,。
轉(zhuǎn)介認(rèn)證機制
下面,,介紹如何通過電話認(rèn)證密鑰,。每個密鑰有它們自己的標(biāo)識(keyID),keyID是一個8位十六進制數(shù),,兩個密鑰具有同keyID的可能性十億分之一,,而且PGP還提供了一種更可靠的標(biāo)識密鑰的方法:“密鑰指紋”( keys fingrprint ).每個密鑰對應(yīng)一串?dāng)?shù)字(162位十六進制數(shù)),這個指紋重復(fù)的可能就更微乎其微了,。而且任何人無法指定生成一個具有某個指紋的密鑰,,密鑰是隨機生成的,從指紋也無法反推出密鑰來,。用戶拿到某人密鑰后,,就可和他在電話上核對這個指紋,從而確認(rèn)他的公鑰,。
這又引出一方法,,就是把不同簽名自己的公鑰收集在一起,發(fā)送到公共場合,,這樣可以希望大部分人至少認(rèn)識其中一個,,從而間接認(rèn)證了用戶的公鑰。同樣用戶簽了朋友的公鑰后應(yīng)該寄回給他,,這樣就可以讓他通過用戶,,被用戶的其他朋友所認(rèn)證。有點意思吧,,和現(xiàn)實社會中人們的交往一樣,。PGP會自動為用戶拿到的公鑰中有哪些是朋友介紹來的,它會把它們分為不同的信任級別,,供用戶參考決定對它們的信任程度,。也可指定某人有幾層轉(zhuǎn)介公鑰的能力,這種能力是隨著認(rèn)證的傳遞而遞減的,。

轉(zhuǎn)介認(rèn)證機制

具有傳遞性,,是個有趣的問題。PGP的作者Phil Zimmermann說過一名話:“信賴不具:我有個我相信決不撒謊的朋友,??墒撬莻€認(rèn)定不撒謊的傻瓜,很顯然我并不認(rèn)為總統(tǒng)決不撒謊,?!?/div>

私鑰的保存

與傳統(tǒng)單密鑰體系一樣,私鑰保密是決定性的,。相對公鑰而言,,私鑰不存在被篡改的問題,但存在泄露的問題,。RSA的私鑰是很長的一個數(shù)字,,用戶不能將它記住,,PGP的辦法是讓用戶為隨機生成的RSA私鑰指定一個口令(pass phase)。只有通過給出口令才能將私鑰釋放出來使用,,用口令加密私鑰的方法保密程度和PGP本身是一樣的,,所有私鑰的安全性對用戶窮舉法試探出用戶的口令,雖說很困難但畢竟是損失了安全性,。這里只要簡單地記住一點,,要像任何隱私一樣保藏自己私鑰,認(rèn)證有機會接觸到它,,最好只在大腦中保存它,,不要寫在紙上。
PGP在安全性的審慎考慮體現(xiàn)在PGP的各個環(huán)節(jié),。比如每次加密的實際密鑰是隨機數(shù),,大都知道計算機無法產(chǎn)生真正的隨機數(shù)的。PGP程序?qū)﹄S機數(shù)的產(chǎn)生是很審慎的,,關(guān)鍵的隨機數(shù)(像RSA密鑰的產(chǎn)生)是從用戶敲鍵盤的時間間隔上取得隨機數(shù)種子的。對于磁盤上的rand seed.bin文件中分析出鑰的規(guī)律來,。
     在這里提一下PGP的加密前預(yù)壓縮處理,,PGP內(nèi)核使用PKZIP算法來壓縮加密前的明文。一方面對電子郵件而言,,壓縮后加密再過7 bits編碼密文有可能比明文更短,。這就節(jié)省了網(wǎng)絡(luò)傳輸?shù)臅r間。另一方面,,明文經(jīng)過壓縮,,實際上相當(dāng)經(jīng)過一次變換,信息更加雜亂無章,,對明文抵御能力更強,。PGP中使用的PKZIP算法是經(jīng)過原作者同意的。PKZIP算法是個公認(rèn)的壓縮率壓縮速度都相當(dāng)好的壓縮算法,,在PGP中使用的是PKZIP2.0版本兼容的算法,。
 
 
 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多