I.3.網(wǎng)絡(luò)安全密碼學(xué)基本理論_第1頁
I.3.網(wǎng)絡(luò)安全密碼學(xué)基本理論_第2頁
I.3.網(wǎng)絡(luò)安全密碼學(xué)基本理論_第3頁
I.3.網(wǎng)絡(luò)安全密碼學(xué)基本理論_第4頁
I.3.網(wǎng)絡(luò)安全密碼學(xué)基本理論_第5頁
已閱讀5頁,還剩109頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

網(wǎng)絡(luò)信息安全第一部分網(wǎng)絡(luò)信息安全基礎(chǔ)(密碼學(xué)基礎(chǔ))第3章網(wǎng)絡(luò)安全密碼學(xué)基本理論2.1密碼學(xué)概況2.2密碼體制分類2.3常見密碼算法2.4雜湊函數(shù)2.5數(shù)字簽名2.6安全協(xié)議2.8本章小結(jié)3.1密碼學(xué)概況密碼學(xué)是一門研究信息安全保護(hù)的科學(xué)。它最早可追溯到幾千年前,主要用于軍事和外交通信。隨著網(wǎng)絡(luò)與信息技術(shù)的發(fā)展,密碼學(xué)的應(yīng)用不再局限于軍事、政治、外交領(lǐng)域,而是逐步應(yīng)用于社會(huì)各個(gè)領(lǐng)域,例如電子商務(wù)、個(gè)人安全通信、網(wǎng)絡(luò)安全管理等。密碼學(xué)的發(fā)展可大致劃分為四個(gè)階段:第一階段:從古代到1949年。該時(shí)期的密碼學(xué)沒有數(shù)學(xué)理論基礎(chǔ),其應(yīng)用領(lǐng)域僅限于通信。第二階段:從1949年到1975年。這一時(shí)期的標(biāo)志性事件是香農(nóng)在1949年發(fā)表的著名論文—《保密系統(tǒng)的信息理論》,該文為私鑰密碼系統(tǒng)奠定了理論基礎(chǔ)。3.1密碼學(xué)概況密碼學(xué)是一門研究信息安全保護(hù)的科學(xué)。它最早可追溯到幾千年前,主要用于軍事和外交通信。隨著網(wǎng)絡(luò)與信息技術(shù)的發(fā)展,密碼學(xué)的應(yīng)用不再局限于軍事、政治、外交領(lǐng)域,而是逐步應(yīng)用于社會(huì)各個(gè)領(lǐng)域,例如電子商務(wù)、個(gè)人安全通信、網(wǎng)絡(luò)安全管理等。密碼學(xué)的發(fā)展可大致劃分為四個(gè)階段:第三階段:1976年到1990年。這一時(shí)期的密碼技術(shù)出現(xiàn)了革命性變化,一是開辟了公鑰密碼學(xué)的新紀(jì)元,公鑰密碼體制誕生。二是美國(guó)政府提出了數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)。這兩個(gè)引人矚目的事件標(biāo)志著現(xiàn)代密碼學(xué)的誕生。這一階段的密碼學(xué)應(yīng)用不夠廣泛,使用人員并不多。第四階段:1990年到至今。因特網(wǎng)技術(shù)的普及和信息技術(shù)的發(fā)展極大地帶動(dòng)了密碼學(xué)的應(yīng)用需求,密碼技術(shù)成為網(wǎng)絡(luò)與信息安全的核心技術(shù)。在這一時(shí)期,密碼學(xué)的應(yīng)用得到了社會(huì)的廣泛認(rèn)同,密碼學(xué)正影響著網(wǎng)絡(luò)與信息技術(shù)的發(fā)展。密碼學(xué)的歷史古羅馬:Caesar密碼ABCDEFGHIGKLMNOPQRSTUVWXYZDEFGHIGKLMNOPQRSTUVWXYZABCCaesarwasagreatsoldier密碼本密文Fdhvduzdvdjuhdwvroglhu明文密文CAESAR密碼:c=(m+3)Mod26有趣的加密:巴比倫的文字密碼學(xué)的歷史美國(guó)南北戰(zhàn)爭(zhēng)CANYOUUNDERSTAND輸入方向輸出方向明文:Canyouunderstand密文:codtaueanurnynsd密碼學(xué)的歷史轉(zhuǎn)輪密碼機(jī)ENIGMA,由ArthurScherbius于1919年發(fā)明,4輪ENIGMA在1944年裝備德國(guó)海軍。密碼學(xué)的歷史英國(guó)的TYPEX打字密碼機(jī),是德國(guó)3輪ENIGMA的改進(jìn)型密碼機(jī)。它在英國(guó)通信中使用廣泛,且在破譯密鑰后幫助破解德國(guó)信號(hào)。密碼學(xué)的歷史圖靈(AlanMathisonTuring)AlanMathisonTuring,1912~1954.英國(guó)數(shù)學(xué)家。一生對(duì)智能與機(jī)器之間的關(guān)系進(jìn)行著不懈探索。1936年,24歲的圖靈提出“圖靈機(jī)”的設(shè)想。二戰(zhàn)期間成功地破譯了納粹德國(guó)的密碼,設(shè)計(jì)并制造了COLOSSUS,向現(xiàn)代計(jì)算機(jī)邁進(jìn)了重要一步。1952年,圖靈遭到警方拘捕,原因是同性戀。1954年6月8日,服毒自殺,年僅42歲。圖靈去世12年后,美國(guó)計(jì)算機(jī)協(xié)會(huì)以他的名字命名了計(jì)算機(jī)領(lǐng)域的最高獎(jiǎng)“圖靈獎(jiǎng)”。一個(gè)簡(jiǎn)單的加密算法—異或一個(gè)簡(jiǎn)單的加密算法—異或異或

密文:0110

解密: 密鑰:

0101

明文:0011 已知明文、密文,怎樣求得密鑰?C=PKP=CK異或運(yùn)算(不帶進(jìn)位加法): 明文:0011

加密: 密鑰:0101

密文:0110K=CP消息和加密遵循國(guó)際命名標(biāo)準(zhǔn),加密和解密可以翻譯成:“Encipher(譯成密碼)”和“(Decipher)(解譯密碼)”。也可以這樣命名:“Encrypt(加密)”和“Decrypt(解密)”。消息被稱為明文。用某種方法偽裝消息以隱藏它的內(nèi)容的過程稱為加密,加了密的消息稱為密文,而把密文轉(zhuǎn)變?yōu)槊魑牡倪^程稱為解密,下圖表明了加密和解密的過程。Mathisfun!CYPHERTEXTSecret

KeyEncrypt(Lock)Decrypt(Unlock)DataConfidentialityCYPHERTEXTMathisfun!明文密文明文用M(Message,消息)或P(Plaintext,明文)表示,它可能是比特流、文本文件、位圖、數(shù)字化的語音流或者數(shù)字化的視頻圖像等。密文用C(Cipher)表示,也是二進(jìn)制數(shù)據(jù),有時(shí)和M一樣大,有時(shí)稍大。通過壓縮和加密的結(jié)合,C有可能比P小些。加密函數(shù)E作用于M得到密文C,用數(shù)學(xué)公式表示為:E(M)=C。解密函數(shù)D作用于C產(chǎn)生M,用數(shù)據(jù)公式表示為:D(C)=M。先加密后再解密消息,原始的明文將恢復(fù)出來,D(E(M))=M必須成立。算法和密鑰密碼算法也叫密碼函數(shù),是用于加密和解密的數(shù)學(xué)函數(shù)。通常情況下有兩個(gè)相關(guān)的函數(shù),一個(gè)用作加密,另一個(gè)用作解密。算法本身是保密的稱為受限制的算法。受限制的算法不可能進(jìn)行質(zhì)量控制或標(biāo)準(zhǔn)化,每個(gè)用戶組織必須有它們自己的唯一的算法,這樣的組織不可能采用流行的硬件或軟件產(chǎn)品。密碼算法的分類根據(jù)算法和密鑰是否分開古典密碼:不分開現(xiàn)代密碼:分開根據(jù)密鑰特點(diǎn)對(duì)稱密碼體制:加、解密密鑰相同,或彼此容易相互確定非對(duì)稱密碼體制:加、解密密鑰不同,彼此很難互相確定加、解密分離根據(jù)加密方式流密碼:明文消息按字符逐位加密分組密碼:將明文消息分組,逐組進(jìn)行加密古典密碼和現(xiàn)代密碼古典密碼代替密碼(SubstitutionCipher)換位密碼(transpositionCipher)代替密碼與換位密碼的組合古典密碼(受限密碼)的缺陷密碼體制的安全性在于保持算法本身的保密性受限算法的缺陷不適合大規(guī)模生產(chǎn)不適合較大的或者人員變動(dòng)較大的組織用戶無法了解算法的安全性古典密碼和現(xiàn)代密碼現(xiàn)代密碼算法把算法和密鑰分開密碼算法可以公開,密鑰保密密碼系統(tǒng)的安全性在于保持密鑰的保密性發(fā)送方接收方mm加密E解密Dc=Ek(m)m=Ek(c)密碼分析密鑰分配(秘密信道)kk鑒別、完整性和抗抵賴性除了提供機(jī)密性外,密碼學(xué)需要提供三方面的功能:鑒別、完整性和抗抵賴性。這些功能是通過計(jì)算機(jī)進(jìn)行社會(huì)交流,至關(guān)重要的需求。鑒別:消息的接收者應(yīng)該能夠確認(rèn)消息的來源;入侵者不可能偽裝成他人。完整性:消息的接收者應(yīng)該能夠驗(yàn)證在傳送過程中消息沒有被修改;入侵者不可能用假消息代替合法消息。抗抵賴性:發(fā)送消息者事后不可能虛假地否認(rèn)他發(fā)送的消息。3.1.2密碼學(xué)基本概念密碼學(xué)的主要目的是保持明文的秘密以防止攻擊者獲知,而密碼分析學(xué)則是在不知道密鑰的情況下識(shí)別出明文的科學(xué)。所謂明文,是指需要采用密碼技術(shù)進(jìn)行保護(hù)的消息。而密文則是指用密碼技術(shù)處理“明文”后的結(jié)果,通常稱為加密消息。將明文變換成密文的過程稱作加密(encryption)。其逆過程,即由密文恢復(fù)出原明文的過程稱作解密(decryption)。加密過程所使用的一組操作運(yùn)算規(guī)則稱作加密算法;而解密時(shí)使用的一組運(yùn)算規(guī)則稱作解密算法。加密和解密算法的操作通常都是在密鑰(key)控制下進(jìn)行的,分別稱為加密密鑰和解密密鑰。3.1.2密碼學(xué)基本概念根據(jù)密碼分析者破譯時(shí)已具備的前提條件,人們通常將攻擊類型分為三種:惟密文攻擊密碼分析者只擁有一個(gè)或多個(gè)用同一個(gè)密鑰加密的密文,沒有其他可利用的信息。已知明文攻擊密碼分析者僅知道當(dāng)前密鑰下的一些明文及所對(duì)應(yīng)的密文。選擇明文攻擊密碼分析者能夠得到當(dāng)前密鑰下自己選定的明文所對(duì)應(yīng)的密文。選擇密文攻擊攻擊者能夠得到任何選定的密文所對(duì)應(yīng)的明文。3.2密碼體制分類根據(jù)密鑰的特點(diǎn),密碼體制分為私鑰和公鑰密碼體制兩種。介于私鑰與公鑰之間的密碼體制稱為混合密碼體制。3.2.1私鑰密碼體制私鑰密碼體制又稱作對(duì)稱密碼體制,是廣泛應(yīng)用的普通密碼體制。該體制的特點(diǎn)是加密和解密使用相同的密鑰,如圖所示。當(dāng)用戶應(yīng)用這種體制時(shí),消息的發(fā)送者和接收者必須事先通過安全渠道交換密鑰,以保證發(fā)送消息或接收消息時(shí)能夠有供使用的密鑰。3.2.1私鑰密碼體制雙方共享一個(gè)密鑰加密方解密方奉天承運(yùn)皇帝詔曰……共享密鑰yHidYTVdkd;AOt……yHidYTVdkd;AOt……奉天承運(yùn)皇帝詔曰……加密解密共享密鑰用戶保存的密鑰數(shù)ABCD秘密密鑰加密技術(shù)特點(diǎn)算法簡(jiǎn)單、速度快,被加密的數(shù)據(jù)塊長(zhǎng)度可以很大密鑰在加密方和解密方之間傳遞和分發(fā)必須通過安全通道進(jìn)行3.2.1私鑰密碼體制在私鑰體制中,使用者A和B具有相同的加、解密能力,因此使用者B無法證實(shí)收到的A發(fā)來的消息確實(shí)來自A。私鑰密碼體制的缺陷可歸納為三點(diǎn):密鑰分配問題、密鑰管理問題無法源認(rèn)證。雖然私鑰密碼體制有不足之處,但私鑰密碼算法處理速度快,常常用作數(shù)據(jù)加密處理。目前,私鑰密碼典型算法已有DES、IDEA、AES等,其中,DES是美國(guó)早期數(shù)據(jù)加密標(biāo)準(zhǔn),現(xiàn)在已經(jīng)被AES取代。私鑰密碼加密示意圖Internet明文數(shù)據(jù)“m”②加密函數(shù)E(k,m)=c③解密函數(shù)D(k,c)=m明文數(shù)據(jù)“m”①共享密鑰k密文數(shù)據(jù)“c”3.2.2公鑰密碼體制1976年,W.Diffie和M.E.Hellman發(fā)表了論文《密碼學(xué)的新方向》,提出了公鑰密碼體制的思想。公鑰密碼體制又稱作非對(duì)稱密碼體制基本的原理是在加密和解密的過程中使用不同的密鑰處理方式。加密密鑰可以公開,而只需要把解密密鑰安全存放即可。在安全性方面,密碼算法即使公開時(shí),由加密密鑰推知解密密鑰的計(jì)算也是不可行的。公鑰密碼體制原理示意如圖所示。明文明文密文加密解密公開密鑰秘密密鑰3.2.2公鑰密碼體制加密方解密方奉天承運(yùn)皇帝詔曰……解密方的公開密鑰yHidYTVdkd;AOt……yHidYTVdkd;AOt……奉天承運(yùn)皇帝詔曰……加密解密解密方的私有密鑰加密和解密的密鑰不同用戶需要保存的密鑰數(shù)ABCDInternet公開密鑰加密技術(shù)特點(diǎn)算法復(fù)雜、速度慢,被加密的數(shù)據(jù)塊長(zhǎng)度不宜太大公鑰在加密方和解密方之間傳遞和分發(fā)不必通過安全通道進(jìn)行3.2.2公鑰密碼體制公鑰密碼體制可看成郵箱,任何人都能容易地把郵件放進(jìn)郵箱,只要打開口子投進(jìn)去就行了。把郵件放進(jìn)郵箱是一件公開的事情,但打開郵箱卻不是,它是難的,需要吹焊器或其他工具。然而,如果持有秘密信息(鑰匙或組合密碼),就很容易打開郵箱了。與對(duì)稱密碼體制相比較,公鑰密碼體制有以下優(yōu)點(diǎn):(1)密鑰分發(fā)方便,可以以公開方式分配加密密鑰。例如,因特網(wǎng)中的個(gè)人安全通信常將自己的公鑰公布在網(wǎng)頁中,方便其他人用它進(jìn)行安全加密。(2)密鑰保管量少。網(wǎng)絡(luò)中的消息發(fā)送方可以共用一個(gè)公開加密密鑰,從而減少密鑰數(shù)量。(3)支持?jǐn)?shù)字簽名。目前,只有三類體制被證明是安全和有效的,即RSA體制、ELGamal體制以及橢圓曲線密碼體制公鑰加密示意圖Internet②公鑰加密E(p,m)=c③私鑰解密D(q,c)=m①將公鑰給對(duì)方明文數(shù)據(jù)“m”密文數(shù)據(jù)“c”明文數(shù)據(jù)“m”私鑰始終未在網(wǎng)上傳輸對(duì)非對(duì)稱密碼算法的誤解非對(duì)稱密鑰算法比對(duì)稱密鑰密碼算法更安全?任何一種算法都依賴于密鑰長(zhǎng)度、破譯密碼的工作量,從抗分析角度,沒有一方更優(yōu)越非對(duì)稱密鑰算法使對(duì)稱密鑰成為過時(shí)了的技術(shù)?非對(duì)稱密鑰算法的計(jì)算速度比較慢,一般用于密鑰管理和數(shù)字簽名,而對(duì)稱密鑰密碼算法計(jì)算速度快,二者各有優(yōu)勢(shì),分別適用于不同的場(chǎng)景,將長(zhǎng)期共同存在。不可不提的非對(duì)稱密碼Diffie-Hellman密鑰交換RSA體制ElGamal體制橢圓曲線密碼體制非對(duì)稱密碼算法的用途需要注意的是,非對(duì)稱密碼算法不但可以用來保護(hù)數(shù)據(jù)的保密性,而且可以用來保護(hù)數(shù)據(jù)的真實(shí)性和完整性。例如,如果A想要保護(hù)消息M的真實(shí)性和完整性,他可以給M計(jì)算數(shù)字簽名S。當(dāng)消息M的接收者B接收到消息M和數(shù)字簽名S后,他可以對(duì)這個(gè)消息的真實(shí)性和完整性進(jìn)行驗(yàn)證,這樣能確保消息M是A發(fā)送給他的,并且在傳送的過程中沒有遭到破壞。3.2.3混合密碼體制混合密碼體制利用公鑰密碼體制分配私鑰密碼體制的密鑰,消息的收發(fā)雙方共用這個(gè)密鑰,然后按照私鑰密碼體制方式,進(jìn)行加密和解密運(yùn)算?;旌厦艽a體系工作原理明文明文密文對(duì)稱密鑰密文密文B私鑰解密解密B公鑰加密對(duì)稱密鑰AB3.3常見密碼算法—1.DESDESDES是數(shù)據(jù)加密標(biāo)準(zhǔn)的簡(jiǎn)稱,由IBM在20世紀(jì)60年代研制出來。DES是一個(gè)分組加密算法,能夠支持64比特的明文塊加密,其密鑰長(zhǎng)度為56比特。DES是世界上應(yīng)用最廣泛的密碼算法。但是,隨著計(jì)算機(jī)系統(tǒng)運(yùn)算速度的增加和網(wǎng)絡(luò)計(jì)算的進(jìn)行,在有限的時(shí)間內(nèi)進(jìn)行大量的運(yùn)算將變得更可行。1997年,RSA實(shí)驗(yàn)室發(fā)出了破解DES密文的挑戰(zhàn)。DES56比特的密鑰長(zhǎng)度已不足以保證密碼系統(tǒng)的安全了。NIST于1999年10月25日采用三重DES作為過渡期間的國(guó)家標(biāo)準(zhǔn),以增強(qiáng)DES的安全性,并開始征集AES(AdvancedEncryptionStandard)算法。3.3常見密碼算法—1.DESDES算法的安全性DES算法正式公開發(fā)表以后,引起了一場(chǎng)激烈的爭(zhēng)論。1977年Diffie和Hellman提出了制造一個(gè)每秒能測(cè)試106個(gè)密鑰的大規(guī)模芯片,這種芯片的機(jī)器大約一天就可以搜索DES算法的整個(gè)密鑰空間,制造這樣的機(jī)器需要兩千萬美元。1993年R.Session和M.Wiener給出了一個(gè)非常詳細(xì)的密鑰搜索機(jī)器的設(shè)計(jì)方案,它基于并行的密鑰搜索芯片,此芯片每秒測(cè)試5×107個(gè)密鑰,當(dāng)時(shí)這種芯片的造價(jià)是10.5美元,5760個(gè)這樣的芯片組成的系統(tǒng)需要10萬美元,這一系統(tǒng)平均1.5天即可找到密鑰,如果利用10個(gè)這樣的系統(tǒng),費(fèi)用是100萬美元,但搜索時(shí)間可以降到2.5小時(shí)??梢娺@種機(jī)制是不安全的。3.3常見密碼算法—1.DESDES算法的安全性1997年1月28日,美國(guó)的RSA數(shù)據(jù)安全公司在互聯(lián)網(wǎng)上開展了一項(xiàng)名為“密鑰挑戰(zhàn)”的競(jìng)賽,懸賞一萬美元,破解一段用56比特密鑰加密的DES密文。一位名叫RockeVerser的程序員設(shè)計(jì)了一個(gè)可以通過互聯(lián)網(wǎng)分段運(yùn)行的密鑰窮舉搜索程序,組織實(shí)施了一個(gè)稱為DESHALL的搜索行動(dòng),成千上萬的志愿者加入到計(jì)劃中,在計(jì)劃實(shí)施的第96天,即挑戰(zhàn)賽計(jì)劃公布的第140天,1997年6月17日晚上10點(diǎn)39分,美國(guó)鹽湖城Inetz公司的職員MichaelSanders成功地找到了密鑰,在計(jì)算機(jī)上顯示了明文:“Theunknownmessageis:Strongcryptographymakestheworldasaferplace”。3.3常見密碼算法—1.DESDES算法原理DES算法的入口參數(shù)有三個(gè):Key、Data、Mode。其中Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰;Data為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式有兩種:加密或解密。DES算法是這樣工作的:如Mode為加密,則用Key去把數(shù)據(jù)Data進(jìn)行加密,生成Data的密碼形式(64位)作為DES的輸出結(jié)果;如Mode為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結(jié)果。3.3常見密碼算法—1.DESDES算法實(shí)現(xiàn)加密需要三個(gè)步驟:1.變換明文。對(duì)給定的64位比特的明文x,首先通過一個(gè)置換IP表來重新排列x,從而構(gòu)造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特,R0表示x0的后32位。2.按照規(guī)則迭代。規(guī)則為L(zhǎng)i=Ri-1Ri=Li⊕f(Ri-1,Ki)(i=1,2,3…16)經(jīng)過第一步變換已經(jīng)得到L0和R0的值,其中符號(hào)⊕表示的數(shù)學(xué)運(yùn)算是異或,f表示一種置換,由S盒置換構(gòu)成,Ki是一些由密鑰編排函數(shù)產(chǎn)生的比特塊。f和Ki將在后面介紹。3.對(duì)L16R16利用IP-1作逆置換,就得到了密文y。加密過程如圖示。3.3常見密碼算法—1.DES從圖中可看出,DES加密需要四個(gè)關(guān)鍵點(diǎn):1、IP置換表和IP-1逆置換表。2、函數(shù)f。3、子密鑰Ki。4、S盒的工作原理。輸入64位bit明文IP置換表L0R0IP逆置換表輸出64位bit明文迭代16次Li=Ri-1Ri=Lif(Ri-1,Ki)

(i=1,2,…,16)DES加密過程3.3常見密碼算法—1.DES輸入64位bit明文IP置換表L0R0IP逆置換表輸出64位bit明文迭代16次Li=Ri-1Ri=Lif(Ri-1,Ki)

(i=1,2,…,16)輸入的64位數(shù)據(jù)按置換IP表進(jìn)行重新組合,并把輸出分為L(zhǎng)0、R0兩部分,每部分各長(zhǎng)32位,其置換IP表如下表所示將輸入64位比特的第58位換到第一位,第50位換到第二位,依此類推,最后一位是原來的第7位。L0、R0則是換位輸出后的兩部分,L0是輸出的左32位,R0是右32位。比如:置換前的輸入值為D1D2D3…D64,則經(jīng)過初始置換后的結(jié)果為:L0=D58D50...D8,R0=D57D49...D7。(1)IP置換表和IP-1置換表3.3常見密碼算法—1.DES輸入64位bit明文IP置換表L0R0IP逆置換表輸出64位bit明文迭代16次Li=Ri-1Ri=Lif(Ri-1,Ki)

(i=1,2,…,16)經(jīng)過16次迭代運(yùn)算后。得到L16、R16,將此作為輸入,進(jìn)行逆置換,即得到密文輸出。逆置換正好是初始置的逆運(yùn)算,例如,第1位經(jīng)過初始置換后,處于第40位,而通過逆置換IP-1,又將第40位換回到第1位,其逆置換IP-1規(guī)則如下表所示。(1)IP置換表和IP-1置換表3.3常見密碼算法—1.DES函數(shù)f有兩個(gè)輸入:32位Ri-1和48位Ki,f處理流程如圖示S1S2S3S4S5S6S7S832位Ri-1E變換P變換32位輸出48位Ki48位48位輸入64位bit明文IP置換表L0R0IP逆置換表輸出64位bit明文迭代16次Li=Ri-1Ri=Lif(Ri-1,Ki)

(i=1,2,…,16)(2)函數(shù)f3.3常見密碼算法—1.DESS1S2S3S4S5S6S7S832位Ri-1E變換P變換32位輸出48位Ki48位48位E變換的算法是從Ri-1的32位中選取某些位,構(gòu)成48位。即E將32比特?cái)U(kuò)展變換為48位,變換規(guī)則根據(jù)E位選擇表,如下表所示。Ki是由密鑰產(chǎn)生的48位比特串,具體的算法下面介紹。將E的選位結(jié)果與Ki作異或操作,得到一個(gè)48位輸出。分成8組,每組6位,作為8個(gè)S盒的輸入。(2)函數(shù)f3.3常見密碼算法—1.DESS1S2S3S4S5S6S7S832位Ri-1E變換P變換32位輸出48位Ki48位48位每個(gè)S盒輸出4位,共32位,S盒的工作原理將在第第四步介紹。S盒的輸出作為P變換的輸入,P的功能是對(duì)輸入進(jìn)行置換,P換位表如下表所示。(2)函數(shù)f3.3常見密碼算法—1.DES假設(shè)密鑰為K,長(zhǎng)度為64位,但是其中第8、16、24、32、40、48、64用作奇偶校驗(yàn)位,實(shí)際上密鑰長(zhǎng)度為56位。K的下標(biāo)i的取值范圍是1到16,用16輪來構(gòu)造。構(gòu)造過程如圖示。(3)子密鑰Ki64位密鑰字符串KPC1變換C0D0LS2LS2C2D2LS16LS16C16D16LS1LS1C1D1PC2變換PC2變換PC2變換48位K148位K148位K128bit28bit3.3常見密碼算法—1.DES(3)子密鑰Ki64位密鑰字符串KPC1變換C0D0LS2LS2C2D2LS16LS16C16D16LS1LS1C1D1PC2變換PC2變換PC2變換48位K148位K148位K128bit28bit57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124首先,對(duì)于給定的密鑰K,應(yīng)用PC1變換進(jìn)行選位,選定后的結(jié)果是56位,設(shè)其前28位為C0,后28位為D0。PC1選位如上表所示。3.3常見密碼算法—1.DES(3)子密鑰Ki64位密鑰字符串KPC1變換C0D0LS2LS2C2D2LS16LS16C16D16LS1LS1C1D1PC2變換PC2變換PC2變換48位K148位K148位K128bit28bit第一輪:對(duì)C0作左移LS1得到C1,對(duì)D0作左移LS1得到D1,對(duì)C1D1應(yīng)用PC2進(jìn)行選位,得到K1。其中LS1是左移的位數(shù),如下表所示。1122222212222221表中的第一列是LS1,第二列是LS2,以此類推。3.3常見密碼算法—1.DES(3)子密鑰Ki64位密鑰字符串KPC1變換C0D0LS2LS2C2D2LS16LS16C16D16LS1LS1C1D1PC2變換PC2變換PC2變換48位K148位K148位K128bit28bit左移的原理是所有二進(jìn)位向左移動(dòng),原來最右邊的比特位移動(dòng)到最左邊。其中PC2如上表所示。14171124153281562110231912,426816727201324152313747553040514533484449395634534642503629323.3常見密碼算法—1.DES(3)子密鑰Ki64位密鑰字符串KPC1變換C0D0LS2LS2C2D2LS16LS16C16D16LS1LS1C1D1PC2變換PC2變換PC2變換48位K148位K148位K128bit28bit第二輪:對(duì)C1,D1作左移LS2得到C2和D2,進(jìn)一步對(duì)C2D2應(yīng)用PC2進(jìn)行選位,得到K2。如此繼續(xù),分別得到K3,K4…K16。3.3常見密碼算法—1.DESS盒以6位作為輸入,而以4位作為輸出,現(xiàn)在以S1為例說明其過程。假設(shè)輸入為A=a1a2a3a4a5a6,則a2a3a4a5所代表的數(shù)是0到15之間的一個(gè)數(shù),記為:k=a2a3a4a5;由a1a6所代表的數(shù)是0到3間的一個(gè)數(shù),記為h=a1a6。在S1的h行,k列找到一個(gè)數(shù)B,B在0到15之間,它可以用4位二進(jìn)制表示,為B=b1b2b3b4,這就是S1的輸出。DES算法的解密過程是一樣的,區(qū)別僅僅在于第一次迭代時(shí)用子密鑰K15,第二次K14、最后一次用K0,算法本身并沒有任何變化。DES的算法是對(duì)稱的,既可用于加密又可用于解密。(4)S盒的工作原理3.3常見密碼算法—1.DESDES算法的誤區(qū)DES算法具有比較高安全性,到目前為止,除了用窮舉搜索法對(duì)DES算法進(jìn)行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。而56位長(zhǎng)的密鑰的窮舉空間為256,這意味著如果一臺(tái)計(jì)算機(jī)的速度是每一秒種檢測(cè)一百萬個(gè)密鑰,則它搜索完全部密鑰就需要將近2285年的時(shí)間,可見,這是難以實(shí)現(xiàn)的。當(dāng)然,隨著科學(xué)技術(shù)的發(fā)展,當(dāng)出現(xiàn)超高速計(jì)算機(jī)后,我們可考慮把DES密鑰的長(zhǎng)度再增長(zhǎng)一些,以此來達(dá)到更高的保密程度。3.3常見密碼算法—2.IDEA2.IDEAIDEA(InternationalDataEncryptionAlgorithm)是國(guó)際數(shù)據(jù)加密算法的簡(jiǎn)記,是一個(gè)分組加密處理算法,其明文和密文分組都是64比特,密鑰長(zhǎng)度為128比特。該算法是由來學(xué)嘉(X.J.Lai)和Massey提出的建議標(biāo)準(zhǔn)算法,已在PGP中得到應(yīng)用。IDEA算法能夠接受64比特分組加密處理,同一算法既可用于加密又可用于解密該算法的設(shè)計(jì)思想是:“混合使用來自不同代數(shù)群中的運(yùn)算”。3.3常見密碼算法—3.AES3.AES1997年4月15日,美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(NIST)發(fā)起征集AES(AdvancedEncryptionStandard)算法的活動(dòng),并專門成立了AES工作組。目的是為了確定一個(gè)非保密的、公開的、全球免費(fèi)使用的分組密碼算法,用于保護(hù)下一世紀(jì)政府的敏感信息。NIST規(guī)定候選算法必須滿足下面的要求:密碼必須是沒有密級(jí)的,絕不能像保護(hù)商業(yè)秘密那樣來保護(hù)它;算法的全部描述必須公開披露;密碼必須可以在世界范圍內(nèi)免費(fèi)使用;密碼系統(tǒng)支持至少128比特長(zhǎng)的分組;密碼支持的密鑰長(zhǎng)度至少為128、192和256比特。3.3常見密碼算法—4.RSA4.RSAWhitefieldDiffie和MartinHellman于1976年提出了公鑰密碼系統(tǒng)的思想,然而他們并沒有給出一個(gè)實(shí)用的公鑰密碼系統(tǒng)。Diffie-Hellman的文章發(fā)表兩年后,MIT的RonaldRivist、AdiShamir和LenAdlemar開發(fā)出了第一個(gè)公鑰密碼體制。1977年,Rivest、Shamir和Adleman三個(gè)人實(shí)現(xiàn)了公開密鑰密碼體制,現(xiàn)在稱為RSA公開密鑰體制,它是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。這種算法易于理解和操作,算法的名字以發(fā)明者的名字命名:RonRivest,AdiShamir和LeonardAdleman。但RSA的安全性一直未能得到理論上的證明。它經(jīng)歷了各種攻擊,至今未被完全攻破。3.3常見密碼算法—4.RSARSA算法原理可以簡(jiǎn)單描述如下:1.生成兩個(gè)大素?cái)?shù)p和q。2.計(jì)算這兩個(gè)素?cái)?shù)的乘積n=p×q。3.計(jì)算小于n且與n互質(zhì)的整數(shù)的個(gè)數(shù),即歐拉函數(shù)φ(n)=(p-1)(q-1)。4.選擇一個(gè)隨機(jī)數(shù)e滿足1<e<φ(n),并且e和φ(n)互質(zhì),即gcd(e,φ(n))=1。5.計(jì)算de≡1modφ(n)。d稱為e的模反元素。有:de-1=kφ(n)6.保密d,p和q,公開n和e。如果兩個(gè)正整數(shù)a和n互質(zhì),那么一定可以找到整數(shù)b,使得ab-1被n整除,或者說ab被n除的余數(shù)是1。b就叫做a的"模反元素"3.3常見密碼算法—4.RSARSA加密的具體實(shí)例。設(shè)素?cái)?shù)p=3,q=17,并令e=13,則RSA的加密操作如下:(1)計(jì)算nn=pq=3×17=51,得出公鑰n=51,e=13。(2)計(jì)算φ(n)和dφ(n)=(p-1)(q-1)=2×16=32。de≡1modφ(n),所以d=(kφ(n)+1)/e,k=gdc(p-1,q-1)由此算出d=(2×32+1)/13=5,即解密鑰是d=5(3)加密和解密處理計(jì)算(Alice發(fā)送明文”2”)已知Bob的公開密鑰是e=13、n=51,則Alice計(jì)算密文C=Memodn=213mod51=8192mod51=32Bob收到Alice發(fā)來的密文C后,用自己的私鑰d解密密文C,即M=Cd

modn=325mod51=512mod51=23.3常見密碼算法—4.RSA利用RSA加密時(shí),明文以分組的方式加密:每一個(gè)分組的比特?cái)?shù)應(yīng)該小于log2n比特。加密明文x時(shí),利用公鑰(e,n)來計(jì)算c=xemodn就可以得到相應(yīng)的密文c。解密的時(shí)候,通過計(jì)算cdmodn就可以恢復(fù)出明文x。選取的素?cái)?shù)p和q要足夠大,從而乘積n足夠大,在事先不知道p和q的情況下分解n是計(jì)算上不可行的。常用的公鑰加密算法包括:RSA密碼體制、ElGamal密碼體制散列函數(shù)密碼體制(MD4、MD5等)3.3常見密碼算法—4.RSARSA算法的安全性RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆]有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前RSA的一些變種算法已被證明等價(jià)于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法?,F(xiàn)在,人們已能分解多個(gè)十進(jìn)制位的大素?cái)?shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定基于安全性考慮,要求n的長(zhǎng)度至少應(yīng)為1024比特。然而從長(zhǎng)期的安全性來看n的長(zhǎng)度至少應(yīng)為2048比特3.3常見密碼算法—4.RSARSA算法的速度由于進(jìn)行的都是大數(shù)計(jì)算,使得RSA最快的情況也比DES慢上倍,無論是軟件還是硬件實(shí)現(xiàn)。速度一直是RSA的缺陷。一般來說只用于少量數(shù)據(jù)加密。RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近40年,經(jīng)歷了各種攻擊的考驗(yàn),逐漸為人們接受,普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一3.3常見密碼算法—5.DH密鑰交換算法5.Diffie-Hellman密鑰交換協(xié)議W.Deffie和M.E.Hellman于1976年首次提出密鑰交換體制,通常簡(jiǎn)稱Diffie-Hellman密鑰交換協(xié)議。Diffie-Hellman密鑰交換協(xié)議基于求解離散對(duì)數(shù)問題的困難性,即對(duì)于下述等式:Cd=MmodPd稱為模P的以C為底數(shù)的M的對(duì)數(shù)在已知C和P的前提下,由d求M很容易,只相當(dāng)于進(jìn)行一次指數(shù)計(jì)算。而再由M反過來求d,則需要指數(shù)級(jí)次計(jì)算。隨著P取得足夠大,就能實(shí)現(xiàn)足夠的安全強(qiáng)度。對(duì)稱密鑰交換對(duì)稱加密和hash都要求通信雙方具有相同的密鑰。問題:怎樣在雙方之間安全地傳遞密鑰?密鑰哈哈,要是敢直接傳遞密鑰,我就只好偷看了密鑰DH算法的基本原理RouterARouterB生成一個(gè)整數(shù)p生成一個(gè)整數(shù)qp把p發(fā)送到對(duì)端把q發(fā)送到對(duì)端q根據(jù)p、q生成g根據(jù)p、q生成g生成密鑰Xa生成密鑰Xb發(fā)送YaYa=(g^Xa)modp發(fā)送YbYb=(g^Xb)modpYaYbKey=(Yb^Xa)modpKey=(Ya^Xb)modp最后得到的對(duì)稱密鑰雙方?jīng)]有直接傳遞密鑰Diffie-Hellman密鑰交換協(xié)議例現(xiàn)在假設(shè)Alice和Bob使用Diffie-Hellman密鑰交換協(xié)議,在一個(gè)不安全的信道上交換密鑰,則其操作步驟如下:1.Alice和Bob確定一個(gè)適當(dāng)?shù)乃財(cái)?shù)p和整數(shù)a,并使a是p的原根,其中a和p可以公開。2.Alice秘密選取一個(gè)整數(shù),計(jì)算,并把發(fā)送給Bob。3.Bob秘密選取一個(gè)整數(shù),計(jì)算,并把發(fā)送給Alice。和就是所說的Diffie-Hellman公開值。4.Alice和Bob雙方分別計(jì)算出共享密鑰,即Alice通過計(jì)算生成密鑰;Bob通過計(jì)算生成密鑰;因?yàn)椋?/p>

所以,Alice和Bob生成的密鑰K是相同的,這樣一來就實(shí)現(xiàn)了密鑰的交換。

Alice和Bob采用Diffie-Hellman密鑰交換的安全性是求解離散對(duì)數(shù)問題的困難性,即從yA或yB以及計(jì)算或在計(jì)算上是不可行的。Diffie-Hellman密鑰交換協(xié)議例3.3常見密碼算法—5.ElGamal體制1985年,ElGamal設(shè)計(jì)出該密碼體制安全性基于有限域上求解離散對(duì)數(shù)的困難性即可用于數(shù)據(jù)加密,亦可用于數(shù)字簽名美國(guó)數(shù)字簽名標(biāo)準(zhǔn)(DSS)的基礎(chǔ)3.3常見密碼算法—6.橢圓曲線密碼體制ECC1985年,Koblitz和Miller分別將橢圓曲線用于非對(duì)稱密碼體制的設(shè)計(jì)二人并未發(fā)明使用橢圓曲線的密碼算法,但用有限域上的橢圓曲線實(shí)現(xiàn)了已經(jīng)存在的非對(duì)稱密碼算法ECC實(shí)現(xiàn)同等安全性所需使用的密鑰長(zhǎng)度比ElGamal、RSA等密碼體制短很多,軟件實(shí)現(xiàn)規(guī)模小,硬件實(shí)現(xiàn)電路省電。3.4Hash函數(shù)雜湊函數(shù)簡(jiǎn)稱Hash函數(shù),它能夠?qū)⑷我忾L(zhǎng)度的信息轉(zhuǎn)換成固定長(zhǎng)度哈希值(又稱數(shù)字摘要或消息摘要),并且任意的不同消息或文件所生成的哈希值是不一樣。令h表示Hash函數(shù),則h應(yīng)滿足下列條件:

h的輸入可以是任意長(zhǎng)度的消息或文件M;

h的輸出長(zhǎng)度是固定的;

給定h和M,計(jì)算h(M)是容易的;

給定h的描述,找兩個(gè)不同的消息M1和M2,使得h(M1)=h(M2)在計(jì)算上是不可行的。3.4Hash函數(shù)Hash函數(shù)的安全性是指:在現(xiàn)有的計(jì)算資源下,找到一個(gè)碰撞是不可能的。Hash函數(shù)在網(wǎng)絡(luò)安全應(yīng)用中,不僅能用于保護(hù)消息或文件的完整性,而且也能用作密碼信息的安全存儲(chǔ)。例如,網(wǎng)頁防篡改應(yīng)用。網(wǎng)頁文件管理者首先用網(wǎng)頁文件生成系列Hash值,并將Hash值備份存放在安全地方。然后定時(shí)再計(jì)算這些網(wǎng)頁文件的Hash值,如果新產(chǎn)生的Hash值與備份的Hash值不一樣,則說明網(wǎng)頁文件被篡改了。目前,主要Hash算法有MD2、MD4、MD5、SHA。其中,MD5能產(chǎn)生128比特長(zhǎng)度的哈希值,它的使用廣泛,常用于網(wǎng)絡(luò)中文件的完整性檢查。但是,據(jù)最新研究表明,MD5的安全性受到挑戰(zhàn),已被中國(guó)的王小云女士攻破。而SHA由NIST和NSA研究開發(fā),在美國(guó)政府中使用,作為安全哈希標(biāo)準(zhǔn),SHA產(chǎn)生的哈希值比MD5長(zhǎng),有160比特。單向哈希函數(shù)一個(gè)函數(shù)是單向函數(shù),如果:對(duì)于所有的,很容易計(jì)算;而對(duì)于給定的,不可能計(jì)算出一個(gè),使得。這里的“不可能計(jì)算”可以理解為,用當(dāng)前最快速的計(jì)算機(jī),需要非常長(zhǎng),比如幾百萬年的時(shí)間才能計(jì)算出來。單向哈希函數(shù)WhitfieldDiffie曾在《應(yīng)用密碼學(xué)》中舉了一個(gè)很生動(dòng)的比喻,單向函數(shù)就像是把盤子打碎,打碎它很容易,但是要把盤子重新拼起來確實(shí)難上加難。簡(jiǎn)而言之,單向函數(shù)是一種易于正向計(jì)算,但很難反向計(jì)算的函數(shù)。需要注意的是,單向函數(shù)的存在至今仍然是一個(gè)沒有經(jīng)過證明的假設(shè),也就是說,到目前為止沒有一個(gè)函數(shù)被證明為單向函數(shù)。單向哈希函數(shù)什么是哈希函數(shù)呢?哈希函數(shù)H把一個(gè)值x(值x屬于一個(gè)有很多個(gè)值的集合(或者是無窮多個(gè)值)),影射到另外一個(gè)值y,y屬于一個(gè)有固定數(shù)量個(gè)值(少于前面集合)的集合。哈希函數(shù)不是可逆函數(shù)——不同的輸入值可能產(chǎn)生相同的輸出,也就是碰撞,或稱為沖突。如果一個(gè)哈希函數(shù)具有單向函數(shù)的性質(zhì)——也就是:給定一個(gè)值x,很容易計(jì)算H(x)但是,給定一個(gè)值y,很難找到一個(gè)值x,使得H(x)=y,這個(gè)哈希函數(shù)叫做單向哈希函數(shù)。單向哈希函數(shù)如果一個(gè)哈希函數(shù)除了具有單向函數(shù)的性質(zhì)以外,從計(jì)算的可能性來說,很難找到兩個(gè)不同的輸入值x1,x2∈X,使得H(x1)=H(x2),那么這個(gè)函數(shù)叫做無碰撞的單向哈希函數(shù)。無碰撞是很重要的——可以防止攻擊者偽造消息摘要等信息。單向哈希函數(shù)(4)從密碼學(xué)角度而言,適用的哈希函數(shù)的基本要求如下:

(1)輸入可以是任意長(zhǎng)度的;

(2)輸出是可以固定長(zhǎng)的;

(3)對(duì)于任意的值x,H(x)很容易計(jì)算;

(4)H(x)是單向的;

(5)H(x)是無沖突的;單向哈希函數(shù)Merkle提出了安全哈希函數(shù)的一般結(jié)構(gòu)。它是一種迭代結(jié)構(gòu),將輸入報(bào)文分為L(zhǎng)個(gè)大小為b位的分組,若第L個(gè)分組不足b位則填充至b位,然后再附加上一個(gè)表示輸入總長(zhǎng)度的分組。由于輸入中包含長(zhǎng)度,所以攻擊者必須找出具有相同哈希值且長(zhǎng)度相等的兩條報(bào)文,或者找出兩條長(zhǎng)度不等但加入報(bào)文長(zhǎng)度后哈希值相同的報(bào)文,從而增加了攻擊的難度。單向哈希函數(shù)哈希函數(shù)的一般結(jié)構(gòu)可歸納如下:?jiǎn)蜗蚬:瘮?shù)哈希函數(shù)MD2,MD4和MD5產(chǎn)生128位的哈希值RIPEMD也是一個(gè)單向哈希函數(shù)。SHA-1產(chǎn)生160位的哈希值。RIPEMD-160是RIPEMD的增強(qiáng)版,它產(chǎn)生的是160位的哈希值。MD5和SHA-1是目前應(yīng)用最廣泛的單向哈希函數(shù)。MD5的應(yīng)用MD5算法可以用來在數(shù)據(jù)庫系統(tǒng)中為用戶的密碼加密。如下:?jiǎn)栴}:如果所有用戶的密碼都是一樣的會(huì)有什么問題?密碼學(xué)中加鹽的含義具體來說就是在原有材料(用戶自定義密碼)中加入其它成分(一般是用戶自有且不變的因素),以此來增加系統(tǒng)復(fù)雜度。當(dāng)這種鹽和用戶密碼相結(jié)合后,再通過摘要處理,就能得到隱蔽性更強(qiáng)的摘要值。數(shù)字簽名數(shù)據(jù)報(bào)文驗(yàn)證HMAC實(shí)現(xiàn)數(shù)據(jù)完整性驗(yàn)證實(shí)現(xiàn)身份驗(yàn)證InternetABB+K1加密后的數(shù)據(jù)“d”數(shù)字簽名Hash算法加密后的數(shù)據(jù)d數(shù)字簽名+K1加密后的數(shù)據(jù)+K1Hash算法是否相同如果數(shù)據(jù)被篡改將無法得到相同的數(shù)字簽名數(shù)字簽名數(shù)據(jù)報(bào)文驗(yàn)證HMAC實(shí)現(xiàn)數(shù)據(jù)完整性驗(yàn)證MD5實(shí)現(xiàn)身份驗(yàn)證SHAInternetABB數(shù)字簽名Hash算法數(shù)字簽名+K1加密后的數(shù)據(jù)+K1Hash算法是否相同加密后的用戶信息身份驗(yàn)證使用用戶信息經(jīng)歷相同的過程通信雙方的身份是靠判斷用戶信息的真假而被驗(yàn)證的嗎?數(shù)字簽名對(duì)數(shù)據(jù)進(jìn)行hash運(yùn)算來保證完整性完整性:數(shù)據(jù)沒有被非法篡改。通過對(duì)數(shù)據(jù)進(jìn)行hash運(yùn)算,產(chǎn)生類似于指紋的數(shù)據(jù)摘要,以保證數(shù)據(jù)的完整性。土豆兩塊錢一斤Hash4ehIDx67NMop9土豆兩塊錢一斤4ehIDx67NMop9土豆三塊錢一斤4ehIDx67NMop9我偷改數(shù)據(jù)Hash2fwex67N32rfee3兩者不一致代表數(shù)據(jù)已被篡改土豆兩塊錢一斤Hashfefe23fgrNMop7土豆兩塊錢一斤fefe23fgrNMop7土豆三塊錢一斤2fwex67N32rfee3我同時(shí)改數(shù)據(jù)和摘要兩者還是不一致Hashfergergr23frewfgh對(duì)數(shù)據(jù)和密鑰一起進(jìn)行hash運(yùn)算攻擊者篡改數(shù)據(jù)后,可以根據(jù)修改后的數(shù)據(jù)生成新的摘要,以此掩蓋自己的攻擊行為。通過把數(shù)據(jù)和密鑰一起進(jìn)行hash運(yùn)算,可以有效抵御上述攻擊。3.5數(shù)字簽名數(shù)字簽名(DigitalSignature)是手寫簽名的電字模擬,是通過電子信息計(jì)算處理,產(chǎn)生的一段特殊字符串消息,該消息具有與手寫簽名一樣的特點(diǎn),是可信的、不可偽造的、不可重用的、不可抵賴的以及不可修改的。因而,通常將這種消息稱為數(shù)字簽名。與手寫簽名類似,數(shù)字簽名至少應(yīng)滿足以下三個(gè)條件:簽名者事后不能否認(rèn)自己的簽名;接收者能驗(yàn)證簽名,而任何其他人都不能偽造簽名;當(dāng)雙方就簽名的真?zhèn)伟l(fā)生爭(zhēng)執(zhí)時(shí),第三方能解決雙方之間發(fā)生的爭(zhēng)執(zhí)。數(shù)字簽名的原理在文件上手寫簽名長(zhǎng)期以來被用作作者身份的證明,或表明簽名者同意文件的內(nèi)容。實(shí)際上,簽名體現(xiàn)了以下5個(gè)方面的保證:1.簽名是可信的。簽名使文件的接收者相信簽名者是慎重地在文件上簽名的。2.簽名是不可偽造的。簽名證明是簽字者而不是其他的人在文件上簽字。3.簽名不可重用。簽名是文件的一部分,不可能將簽名移動(dòng)到不同的文件上。4.簽名后的文件是不可變的。在文件簽名以后,文件就不能改變。5.簽名是不可抵賴的。簽名和文件是不可分離的,簽名者事后不能聲稱他沒有簽過這個(gè)文件。數(shù)字簽名一個(gè)數(shù)字簽名方案一般由簽名算法和驗(yàn)證算法組成。簽名算法的密鑰是秘密的,只有簽名人掌握;驗(yàn)證算法則是公開的,以便他人驗(yàn)證。典型的數(shù)字簽名方案RSA簽名體制、Rabin簽名體制、ElGamal簽名體制和DSS標(biāo)準(zhǔn)。簽名與加密很相似一般是簽名者利用秘密密鑰(私鑰)對(duì)需簽名的數(shù)據(jù)進(jìn)行加密驗(yàn)證方利用簽名者的公開密鑰(公鑰)對(duì)簽名數(shù)據(jù)做解密運(yùn)算。簽名與加密的不同之處加密的目的是保護(hù)信息不被非授權(quán)用戶訪問簽名的目的是讓消息接收者確信信息的發(fā)送者是誰,信息是否被他人篡改。數(shù)字簽名的產(chǎn)生原理摘要算法簽名算法消息摘要數(shù)字簽名(發(fā)送給接收者)消息(發(fā)送給接收者)發(fā)送者的私鑰數(shù)字簽名的驗(yàn)證原理摘要算法簽名算法摘要簽名(來自發(fā)送者)消息(來自發(fā)送者)發(fā)送者的公鑰消息摘要消息摘要兩者相同嗎?數(shù)字簽名下面我們給出數(shù)字簽名的基本流程。假設(shè)Alice需要簽名發(fā)送一份電子合同文件給Bob。Alice的簽名步驟如下:1.Alice使用Hash函數(shù)將電子合同文件生成一個(gè)消息摘要。2.Alice使用自己的私鑰,把消息摘要加密,形成一個(gè)數(shù)字簽名。3.Alice把電子合同文件和數(shù)字簽名一同發(fā)送給Bob。數(shù)字簽名的驗(yàn)證過程+IDInformation加密Hash_I解密Hash_I私鑰公鑰本地遠(yuǎn)端Hash=+身份信息Hash對(duì)稱密鑰數(shù)字簽名+身份信息Hash12數(shù)字證書+Internet對(duì)稱密鑰數(shù)字簽名數(shù)字證書&公鑰為信息發(fā)送者的公鑰&驗(yàn)證數(shù)字簽名過程數(shù)字簽名特點(diǎn):是一種加密的消息摘要,可防止攻擊者同時(shí)替換消息和消息摘要,同時(shí)不需共享密鑰,安全性高。缺點(diǎn)是在抗抵賴性和欺騙性方面較弱。(可用帶時(shí)間戮的數(shù)字簽名解決)應(yīng)用用于數(shù)據(jù)的完整性(即防止數(shù)據(jù)被修改)驗(yàn)證(確定簽名者的身份)。用于簽署合同、電子郵件等常用算法:RSA與MD5或SHA-1組合。DSA(只進(jìn)行數(shù)字簽名不進(jìn)行數(shù)據(jù)加密)算法區(qū)別:DSA簽名的速度更快,而RSA驗(yàn)證的速度更快。由于大多數(shù)情況下簽名驗(yàn)證所花費(fèi)的時(shí)間比簽名產(chǎn)生所花時(shí)間多得多,故在大多數(shù)應(yīng)用程序中RSA要快一些。數(shù)字簽名存在的問題計(jì)算機(jī)上進(jìn)行數(shù)字簽名并使用這些保證能夠繼續(xù)有效還存在一些問題。計(jì)算機(jī)文件易于復(fù)制,即使簽名難以偽造,但是將有效的簽名從一個(gè)文件剪輯和粘貼到另一個(gè)文件比較容易。這就使簽名失去了意義。文件在簽名后也易于修改,并且不會(huì)留下任何修改痕跡。使用公鑰加密算法都能用作數(shù)字簽名,其基本過程如下:1.Alice用她的私鑰對(duì)文件加密,從而對(duì)文件簽名。2.Alice將簽名后的文件傳給Bob3.Bob用Alice的公鑰解密文件,從而驗(yàn)證簽名。數(shù)字簽名基本協(xié)議過程在實(shí)際過程中,上面的做法效率太低。為節(jié)省時(shí)間,數(shù)字簽名協(xié)議常與單向Hash函數(shù)一起使用。Alice并不對(duì)整個(gè)文件簽名,而是只對(duì)文件的Hash值簽名。Hash函數(shù)和數(shù)字簽名算法是事先協(xié)商好的。過程如下:Alice產(chǎn)生文件的單向散列值。2.Alice用她的私人密鑰對(duì)散列加密,以此表示對(duì)文件的簽名。3.Alice將文件和散列簽名送給Bob4.Bob用Alice發(fā)送的文件產(chǎn)生文件的單向散列值,同時(shí)用Alice的公鑰對(duì)簽名的散列解密。如果簽名的散列值與自己產(chǎn)生的散列值匹配,簽名是有效的。3.5.2數(shù)字簽名的應(yīng)用例子現(xiàn)在Alice向Bob傳送數(shù)字信息,為了保證信息傳送的保密性、真實(shí)性、完整性和不可否認(rèn)性,需要對(duì)要傳送的信息進(jìn)行數(shù)字加密和數(shù)字簽名,其傳送過程為:1.Alice準(zhǔn)備好要傳送的數(shù)字信息(明文)。2.Alice對(duì)數(shù)字信息進(jìn)行哈希運(yùn)算,得到一個(gè)信息摘要。3.Alice用自己的私鑰對(duì)信息摘要進(jìn)行加密得到Alice的數(shù)字簽名,并將其附在數(shù)字信息上。4.Alice隨機(jī)產(chǎn)生一個(gè)加密密鑰,并用此密鑰對(duì)要發(fā)送的信息進(jìn)行加密,形成密文。5.Alice用Bob的公鑰對(duì)剛才隨機(jī)產(chǎn)生的加密密鑰進(jìn)行加密,將加密后的DES密鑰連同密文一起傳送給Bob3.5.2數(shù)字簽名的應(yīng)用例子現(xiàn)在Alice向Bob傳送數(shù)字信息,為了保證信息傳送的保密性、真實(shí)性、完整性和不可否認(rèn)性,需要對(duì)要傳送的信息進(jìn)行數(shù)字加密和數(shù)字簽名,其傳送過程為:6.Bob收到Alice傳送過來的密文和加過密的DES密鑰,先用自己的私鑰對(duì)加密的DES密鑰進(jìn)行解密,得到DES密鑰。7.Bob然后用DES密鑰對(duì)收到的密文進(jìn)行解密,得到明文的數(shù)字信息,然后將DES密鑰拋棄(即DES密鑰作廢)。8.Bob用Alice的公鑰對(duì)Alice的數(shù)字簽名進(jìn)行解密,得到信息摘要。9Bob用相同的hash算法對(duì)收到的明文再進(jìn)行一次hash運(yùn)算,得到一個(gè)新的信息摘要。10.Bob將收到的信息摘要和新產(chǎn)生的信息摘要進(jìn)行比較,如果一致,說明收到的信息沒有被修改過。3.6數(shù)字水印數(shù)字水印(DigitalWatermark)技術(shù),是指在數(shù)字化的數(shù)據(jù)內(nèi)容中嵌入不明顯的記號(hào)。被嵌入的記號(hào)通常是不可見或不可察的,但是通過計(jì)算操作可以檢測(cè)或者被提取。水印與源數(shù)據(jù)緊密結(jié)合并隱藏其中,成為源數(shù)據(jù)不可分離的一部分,并可以經(jīng)歷一些不破壞源數(shù)據(jù)使用價(jià)值或商用價(jià)值的操作而存活下來。根據(jù)信息隱藏的目的和技術(shù)要求,數(shù)字水印應(yīng)具有3個(gè)基本特性:1.隱藏性(透明性)。水印信息和源數(shù)據(jù)集成在一起,不改變?cè)磾?shù)據(jù)的存儲(chǔ)空間;嵌入水印后,源數(shù)據(jù)必須沒有明顯的降質(zhì)現(xiàn)象;水印信息無法為人看見或聽見,只能看見或聽見源數(shù)據(jù);2.魯棒性(免疫性、強(qiáng)壯性)。魯棒性是指嵌入水印后的數(shù)據(jù)經(jīng)過各種處理操作和攻擊操作以后,不導(dǎo)致其中的水印信息丟失或被破壞的能力。處理操作包括:模糊、幾何變形、放縮、壓縮、格式變換、剪切、D/A和A/D轉(zhuǎn)換等攻擊操作包括:有損壓縮、多拷貝聯(lián)合攻擊、剪切攻擊、解釋攻擊等等。3.安全性。指水印信息隱藏的位置及內(nèi)容不為人所知,這需要采用隱蔽的算法,以及對(duì)水印進(jìn)行預(yù)處理(如加密)等措施。3.6.1數(shù)字水印產(chǎn)生背景多媒體通信業(yè)務(wù)和Internet——“數(shù)字化、網(wǎng)絡(luò)化”的迅猛發(fā)展給信息的廣泛傳播提供了前所未有的便利,各種形式的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論