第三章 信息加密與認(rèn)證_第1頁(yè)
第三章 信息加密與認(rèn)證_第2頁(yè)
第三章 信息加密與認(rèn)證_第3頁(yè)
第三章 信息加密與認(rèn)證_第4頁(yè)
第三章 信息加密與認(rèn)證_第5頁(yè)
已閱讀5頁(yè),還剩166頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章信息加密與認(rèn)證技術(shù)1授課人:肖敏專(zhuān)業(yè):卓越班2本章內(nèi)容概述對(duì)稱(chēng)密碼技術(shù)公鑰密碼技術(shù)信息認(rèn)證單向Hash函數(shù)與消息認(rèn)證碼的基本概念和原理數(shù)字簽名的原理和技術(shù)身份認(rèn)證的典型技術(shù)密碼學(xué)(Cryptology):是研究信息系統(tǒng)安全保密的科學(xué)密碼學(xué)包括密碼編碼學(xué)和密碼分析學(xué)密碼編碼學(xué)研究密碼體制的設(shè)計(jì)密碼分析學(xué)研究密碼體制的破譯(密碼分析科學(xué)家的工作則是評(píng)估一種密碼算法的安全性,尋找更安全的密碼算法)密碼編碼和密碼分析是既相互對(duì)立的又是相互依存的。密碼學(xué)的發(fā)展過(guò)程就是編碼與分析互相斗爭(zhēng)的過(guò)程。一個(gè)密碼體制的推出,給密碼分析提出新的挑戰(zhàn);一個(gè)密碼體制的破譯,導(dǎo)致一個(gè)新的密碼體制的誕生。這樣的過(guò)程不斷反復(fù),就構(gòu)成了密碼的歷史。密碼學(xué)概念3密碼系統(tǒng)(體制)一般模型4明文明文密文加密算法解密算法加密密鑰解密密鑰原有的消息(待加密的消息)(Plaintext,簡(jiǎn)稱(chēng)P)密碼系統(tǒng)(體制)一般模型5明文明文密文加密算法解密算法加密密鑰解密密鑰用某種方法偽裝消息以隱藏它的內(nèi)容的過(guò)程稱(chēng)為加密(Encrtption)對(duì)明文進(jìn)行加密操作時(shí)所采用的一組規(guī)則稱(chēng)作加密算法(EncryptionAlgorithm)密碼系統(tǒng)(體制)一般模型6明文明文密文加密算法解密算法解密密鑰被加密的消息(Ciphertext,簡(jiǎn)稱(chēng)C)加密密鑰密碼系統(tǒng)(體制)一般模型7明文明文密文加密算法解密算法加密密鑰解密密鑰把密文轉(zhuǎn)變?yōu)槊魑牡倪^(guò)程稱(chēng)為解密(Decryption)接收者對(duì)密文解密所采用的一組規(guī)則稱(chēng)為解密算法(DecryptionAlgorithm)密碼系統(tǒng)(體制)一般模型8明文明文密文加密算法解密算法加密密鑰解密密鑰為了有效控制加密、解密算法的實(shí)現(xiàn),在這些算法的實(shí)現(xiàn)過(guò)程中,需要有某些只被通信雙方所掌握的專(zhuān)門(mén)的、關(guān)鍵的信息參與,這些信息就稱(chēng)為密鑰。用作加密的稱(chēng)加密密鑰(EncryptionKey),用作解密的稱(chēng)作解密密鑰(DecryptionKey)。在授權(quán)方之間的密鑰關(guān)系的建立和維護(hù),是密碼系統(tǒng)有效的關(guān)鍵點(diǎn)之一,相關(guān)的技術(shù)和過(guò)程,稱(chēng)為密鑰管理。加密密鑰和解密密鑰可能相同,也可能不同密碼系統(tǒng)(體制)一般模型9明文明文密文加密算法解密算法加密密鑰解密密鑰密碼系統(tǒng)(體制)可以形式化表達(dá)為一個(gè)五元組(P,C,K,E,D):(1)M是可能明文的有限集;(明文空間)(2)C是可能密文的有限集;(密文空間)(3)K是一切可能密鑰構(gòu)成的有限集;(密鑰空間)*(4)任意k∈K,有一個(gè)加密算法和相應(yīng)的解密算法,使得和分別為加密解密函數(shù),滿(mǎn)足dk(ek(x))=x,這里x∈M。密碼系統(tǒng)(體制)一般模型明文M加密器E公開(kāi)信道密文解密器D明文發(fā)送方接收方密碼系統(tǒng)(體制)一般模型11明文明文密文加密算法解密算法加密密鑰解密密鑰在一個(gè)密碼系統(tǒng)中,算法是固定不變的運(yùn)算規(guī)則和步驟的集合,密鑰是可變的一定長(zhǎng)度的數(shù)字、符號(hào)序列。在一個(gè)密碼體制之下,以相同的明文作為輸入,密鑰不同則輸出的密文不同。收信方收到密文之后,用與發(fā)方約定的密碼算法和共享的密鑰,對(duì)密文作逆向的密碼變換得到明文。而對(duì)于未授權(quán)的不知密鑰或密碼算法與密鑰都不知道的第三者,密文是無(wú)意義的亂碼,這正是加密變換要達(dá)到的目的。防竊聽(tīng)假設(shè)破譯者Oscar是在已知密碼體制的前提下來(lái)破譯Bob使用的密鑰。這個(gè)假設(shè)稱(chēng)為Kerckhoff原則。最常見(jiàn)的破解類(lèi)型如下:1.唯密文攻擊:Oscar具有密文串y.2.已知明文攻擊:Oscar具有明文串x和相應(yīng)的密文y.3.選擇明文攻擊:Oscar可獲得對(duì)加密機(jī)的暫時(shí)訪問(wèn),因此他能選擇明文串x并構(gòu)造出相應(yīng)的密文串y。4.選擇密文攻擊:Oscar可暫時(shí)接近密碼機(jī),可選擇密文串y,并構(gòu)造出相應(yīng)的明文x.

這一切的目的在于破譯出密鑰或密文密碼分析學(xué)12無(wú)條件安全(Unconditionallysecure)無(wú)論破譯者有多少密文,他也無(wú)法解出對(duì)應(yīng)的明文,即使他解出了,他也無(wú)法驗(yàn)證結(jié)果的正確性計(jì)算上安全(Computationallysecure)破譯的代價(jià)超出信息本身的價(jià)值破譯的時(shí)間超出了信息的有效期密碼分析學(xué)13對(duì)稱(chēng)密碼體制加密密鑰和解密密鑰一樣,即加解密共用一把密鑰根據(jù)加密針對(duì)的數(shù)據(jù)單元,對(duì)稱(chēng)密碼體制又可分為:分組密碼——每次對(duì)一塊數(shù)據(jù)加密,多數(shù)網(wǎng)絡(luò)加密應(yīng)用,主要算法有DES、IDEA、TDEA、MD5、RC5、AES等流(序列)密碼——每次對(duì)一位或一字節(jié)加密,多數(shù)手機(jī)加密應(yīng)用,如One-timepadding,Vigenére,Vernam,RC4非對(duì)稱(chēng)密碼體制加密密鑰和解密密鑰不一樣,即加解密各用不同的密鑰大部分是分組密碼,只有概率密碼體制屬于流密碼,如,RSA,ECC,ElGamal主要的現(xiàn)代密碼體制14將明文劃分成字符(單個(gè)字母),或其編碼的基本單元(0,1數(shù)字)

字符分別與密鑰流作用進(jìn)行加密,解密時(shí)以同步產(chǎn)生的同樣的密鑰流實(shí)現(xiàn)kI

安全信道kI······

KGKG

ki

ki

mi

ci

ci

mi

Eki(mi)···Dki(mi)KG:密鑰流生成器kI:初始密鑰流密碼(streamcipher)的基本概念加法流密碼:

ci=Eki(mi)=miki加法流密碼:

mi=Dki(Ci)=mikiki

事實(shí)上,流密碼算法其安全性依賴(lài)于簡(jiǎn)單的異或運(yùn)算和隨機(jī)密鑰流。密鑰流發(fā)生器生成的看似隨機(jī)的密鑰流實(shí)際上是確定的,在解密的時(shí)候能很好的將其再現(xiàn)。密鑰流發(fā)生器輸出的密鑰越接近隨機(jī),對(duì)密碼分析者來(lái)說(shuō)就越困難。

如果密鑰流發(fā)生器每次都生成同樣的密鑰流的話(huà),對(duì)攻擊來(lái)說(shuō),破譯該算法就容易了。假的Alice得到一份密文和相應(yīng)的明文,她就可以將兩者異或恢復(fù)出密鑰流?,F(xiàn)在,無(wú)論她再攔截到什么密文消息,她都可以用她所擁有的密鑰流進(jìn)行解密。另外,她還可以解密,并閱讀以前截獲到的消息。一旦Alice得到一明文/密文對(duì),她就可以讀懂任何東西了。流密碼(streamcipher)的基本概念16這就是為什么所有序列密碼也有密鑰的原因。密鑰流發(fā)生器的輸出是密鑰的函數(shù)。這樣,Alice有一個(gè)明文/密文對(duì),但她只能讀到用特定密鑰加密的消息。更換密鑰,攻擊者就不得不重新分析。流密碼(streamcipher)的基本概念17流密碼強(qiáng)度完全依賴(lài)于密鑰序列的隨機(jī)性(Randomness)和不可預(yù)測(cè)性(Unpredictability)。

核心問(wèn)題是密鑰流生成器的設(shè)計(jì)。

保持收發(fā)兩端密鑰流的精確同步是實(shí)現(xiàn)可靠解密的關(guān)鍵技術(shù)同步流密碼(SSC:synchronousstreamcipher)產(chǎn)生密鑰序列的算法與明文、密文無(wú)關(guān).只要通信雙方的密鑰序列產(chǎn)生器具有相同的“種子序列”和相同的“初始狀態(tài)”,就能產(chǎn)生相同的密鑰序列.通信雙方必須保持精確同步,才能正確解密.容易檢測(cè)插入、刪除、重播等主動(dòng)攻擊.沒(méi)有差錯(cuò)傳播.流密碼的分類(lèi)18ciE(zi,mi)mizi

密鑰流生成器k自同步流密碼(SSSC:self-synchronousstreamcipher)產(chǎn)生密鑰序列的算法與以前的密文有關(guān)密鑰流生成器是一種有記憶變換器密鑰流與明文符號(hào)有關(guān):i時(shí)刻的密文不僅取決于i時(shí)刻的明文,而且與i時(shí)刻之前的l個(gè)明文符號(hào)有關(guān)具有有限的差錯(cuò)傳播具有自同步能力把明文每個(gè)字符擴(kuò)散在密文多個(gè)字符中,強(qiáng)化了抗統(tǒng)計(jì)分析的能力流密碼的分類(lèi)19E(zi,mi)mizi

密鑰流生成器kci產(chǎn)生密鑰序列的最重要部件是線性反饋移位寄存器,是因?yàn)?

(1)LFSR非常適合于硬件實(shí)現(xiàn);(2)能產(chǎn)生大的周期序列;(3)能產(chǎn)生較好統(tǒng)計(jì)特性的序列;(4)其結(jié)構(gòu)能應(yīng)用代數(shù)方法進(jìn)行很好的分析.GF(2)上一個(gè)n級(jí)反饋移位寄存器由n個(gè)二元存儲(chǔ)器與一個(gè)反饋函數(shù)f(a1,a2,…,an)組成。線性反饋移位寄存器(LFSR)20每一存儲(chǔ)器稱(chēng)為移位寄存器的一級(jí),在任一時(shí)刻,這些級(jí)的內(nèi)容構(gòu)成該反饋移位寄存器的狀態(tài),每一狀態(tài)對(duì)應(yīng)于GF(2)上的一個(gè)n維向量,共有2n種可能的狀態(tài)。每一時(shí)刻的狀態(tài)可用n長(zhǎng)序列“a1,a2,…,an”n維向量“(a1,a2,…,an)”來(lái)表示,其中ai是第i級(jí)存儲(chǔ)器的內(nèi)容。初始狀態(tài)由用戶(hù)確定,當(dāng)?shù)趇個(gè)移位時(shí)鐘脈沖到來(lái)時(shí),每一級(jí)存儲(chǔ)器ai都將其內(nèi)容向下一級(jí)ai-1傳遞,并計(jì)算f(a1,a2,…,an)作為下一時(shí)刻的an。線性反饋移位寄存器(LFSR)2023/2/521

基于LFSR的序列密碼非常適合于硬件實(shí)現(xiàn),但是不特別適合軟件實(shí)現(xiàn)。比較常用的序列密碼是A5、SEAL和RC4序列密碼算法,A5是典型的基于LFSR的序列密碼算法,SEAL和RC4不是基于LFSR的序列密碼算法,而是基于分組密碼的輸出反饋模式(OFB)和密碼反饋模式(CFB)來(lái)實(shí)現(xiàn)的。常用的流密碼算法22A5有兩個(gè)版本:A5/1和A5/2,前者有更高的安全性,根據(jù)相關(guān)法規(guī)限制被僅用于歐洲范圍,而后者用于其它地區(qū)。A5算法從未公布于眾,但因?yàn)橐恍┦杪?,該算法被Bradford大學(xué)研究人員泄密,我國(guó)學(xué)者徐勝波、何大可和王新梅也由此于1994年率先實(shí)現(xiàn)A5算法。A5是歐洲數(shù)字蜂窩移動(dòng)電話(huà)系統(tǒng)(GSM)采用的流密碼算法,用于加密從用戶(hù)到基站的連接A5算法23GSM會(huì)話(huà)每幀有228bitA5算法的密鑰長(zhǎng)64bit有一個(gè)22bit幀序號(hào)每次產(chǎn)生228bit會(huì)話(huà)密鑰逐幀加密,每個(gè)幀的加密密鑰不同A5算法24A5算法工作過(guò)程(1)將64比特密鑰輸入LFSR;(2)將22比特幀序號(hào)與LFSR反饋值模2加,再輸入LFSR;(3)LFSR開(kāi)始停走鐘控;(4)舍去產(chǎn)生的100比特輸出;(5)產(chǎn)生114比特作為密鑰流;(6)舍去產(chǎn)生的100比特輸出;(7)產(chǎn)生114比特作為密鑰流A5算法25RC4是由Rivest于1987年開(kāi)發(fā)的一種序列密碼,它已被廣泛應(yīng)用于Windows,LotusNotes和其它軟件,還被用于安全套接字(SSL)和無(wú)線通信系統(tǒng)等.RC4優(yōu)點(diǎn)是算法簡(jiǎn)單、高效,特別適于軟件實(shí)現(xiàn),加密速度比DES大約快10倍。RC4可以支持不同密鑰長(zhǎng)度,美國(guó)政府特別限定,用于出口的RC4的密鑰長(zhǎng)度不得超過(guò)40位RC4算法26RC4使用了一個(gè)28字節(jié)大小的非線性數(shù)據(jù)表(簡(jiǎn)稱(chēng)S表),S表的值S0,S1,…,S255是數(shù)字0到255的一個(gè)排列。對(duì)S表進(jìn)行非線性變換,得到密鑰流RC4算法271.I=0,J=02.I=I+1(mod256);3.J=J+SI(mod256);4.交換SI和SJ;5.t=SI+SJ(mod256);6.z=St.RC4輸出密鑰流字節(jié)z的算法對(duì)稱(chēng)密碼體制——分組密碼

28分組密碼以一個(gè)固定長(zhǎng)度的明文分組為加密變換單元。加密變換采用多層迭代方式,即同一結(jié)構(gòu)的變換多次地使用。加密變換在密鑰參與之下進(jìn)行多層迭代變換中,各層的變換除所加的層密鑰不同之外,其他的運(yùn)算皆不變。分組密碼算法的一個(gè)重要特點(diǎn)就是:當(dāng)給定一個(gè)密鑰后,若明文分組相同,那么所變換出密文分組也相同,且密文分組和明文分組長(zhǎng)度相同。分組密碼的一個(gè)重要優(yōu)點(diǎn)是不需要同步一個(gè)分組密碼有三個(gè)指標(biāo):分組長(zhǎng)度(如64,128,256)密鑰長(zhǎng)度(如56,112,128,256)變換層數(shù)(如8,10,16,32)三個(gè)主要算法加密算法解密算法密鑰擴(kuò)展算法要求:1分組長(zhǎng)度足夠大,防止窮舉攻擊;2密鑰空間足夠大,但不能太長(zhǎng),以便于密鑰的管理;3算法要足夠復(fù)雜,充分實(shí)現(xiàn)明文和密鑰的擴(kuò)散;沒(méi)有簡(jiǎn)單的關(guān)系可尋對(duì)稱(chēng)密碼體制——分組密碼

29采用分組密碼體制;用64bit密鑰來(lái)加密64bit數(shù)據(jù)的方法;DES的安全性不依賴(lài)于算法的保密,安全性?xún)H以加密密鑰的保密為基礎(chǔ);DES(DataEncryptionStandard)加密算法30DES算法的實(shí)現(xiàn)步驟第一步:初始置換IP對(duì)給定的64位比特的明文x,首先通過(guò)一個(gè)置換IP表來(lái)重新排列x,從而構(gòu)造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特,R0表示x0的后32位。第二步:16輪迭代迭代規(guī)則為L(zhǎng)i=Ri-1Ri=Li-1⊕f(Ri-1,Ki)(i=1,2,3…16)經(jīng)過(guò)第一步變換已經(jīng)得到L0和R0的值,其中符號(hào)⊕表示的數(shù)學(xué)運(yùn)算是異或,f表示一種置換,由S盒置換構(gòu)成,Ki是一些由密鑰編排函數(shù)產(chǎn)生的子密鑰。第三步:逆初始置換IP-1對(duì)L16R16進(jìn)行交換得到R16L16對(duì)R16L16利用IP-1作逆置換,就得到了密文y。16輪迭代k1+fL0R0L1=R0L15=R14組碼移位kik16+ff初始置換IP輪運(yùn)算:Li

=Ri-1Ri=Li-1⊕f(Ri-1,Ki)(i=1,2,3…16)初始逆置換IP-1DES的一輪迭代Li-1

(32bit)Ri-1

(32bit)選擇擴(kuò)展運(yùn)算E盒48bit寄存器48bit寄存器選擇壓縮運(yùn)算S盒32bit寄存器置換運(yùn)算PRi=Li-1⊕f(Ri-1,ki)(32bit)(32bit)⊕⊕Li=Ri-1輪開(kāi)始:64bit分成左右兩半子密鑰Ki

(48bit)子密鑰計(jì)算

在64位密鑰中,由于不考慮每個(gè)字節(jié)的第8位(校驗(yàn)位),DES密鑰由64位減至56位。將這56位密鑰分解成16個(gè)48位的子密鑰,每個(gè)子密鑰控制一次迭代過(guò)程。每個(gè)子密鑰參與加密或解密運(yùn)算過(guò)程,從而直接影響到加密或解密變換的結(jié)果。密鑰(56位)密鑰(64位)置換選擇1循環(huán)左移密鑰(56位)置換選擇2密鑰(48位)密鑰計(jì)算邏輯64位密鑰置換選擇1C0(28位)D0(28位)循環(huán)左移循環(huán)左移C1D1置換選擇2K1(48位)(56位)循環(huán)左移循環(huán)左移C16D16(56位)置換選擇2(48位)K16DES實(shí)際上就是一種單字符替代,而這種字符的長(zhǎng)度是64bit。也就是說(shuō),對(duì)于DES算法,相同的明文就產(chǎn)生相同的密文。這對(duì)DES的安全性來(lái)說(shuō)是不利的。為了提高DES的安全性,可采用加密分組鏈接的方法。DES的明顯缺點(diǎn)密文分組連接模式(CBCCipherBlockChaining)

X0Y0X1Y1X2Y2X3Y3X0Y0X1Y1X2Y2X3Y3……初始向量初始向量密鑰密鑰明文明文密文密文加密解密EEEEDDDD明文分組與前一個(gè)密文分組相加作為加密算法的輸入(第一個(gè)明文分組則與初始設(shè)定的向量IV相加作為加密算法的第一個(gè)輸入)。DES

的保密性DES的保密性?xún)H取決于對(duì)密鑰的保密,而算法是公開(kāi)的。盡管人們?cè)谄谱gDES方面取得了許多進(jìn)展,但至今仍未能找到比窮舉搜索密鑰更有效的方法。DES是世界上第一個(gè)公認(rèn)的實(shí)用密碼算法標(biāo)準(zhǔn),它曾對(duì)密碼學(xué)的發(fā)展做出了重大貢獻(xiàn)。目前較為嚴(yán)重的問(wèn)題是DES的密鑰的長(zhǎng)度?,F(xiàn)在已經(jīng)設(shè)計(jì)出來(lái)搜索DES密鑰的專(zhuān)用芯片。

二重DES(DoubleDES)給定明文P和兩個(gè)加秘密鑰k1和k2,采用DES對(duì)P進(jìn)行加密E,有密文C=EK2(EK1(P))對(duì)C進(jìn)行解密D,有明文P=DK1(DK2(C))EEPXCK2K1加密圖DDK2K1CXP解密圖二重DES很難抵擋住中間相遇攻擊法(Meet-in-the-MiddleAttack)二重DES(DoubleDES)40由

C=EK2(EK1(P))從圖中可見(jiàn)

X=EK1(P)=DK2(C)EEPCXK1K2DDCPXK2K1加密解密若給出一個(gè)已知的明密文對(duì)(P,C)做:對(duì)256個(gè)所有密鑰K1做對(duì)明文P的加密,得到一張密鑰對(duì)應(yīng)于密文X的一張表;類(lèi)似地對(duì)256個(gè)所有可能的密鑰K2做對(duì)密文C的解密,得到相應(yīng)的“明文”X。做成一張X與K2的對(duì)應(yīng)表。比較兩個(gè)表就會(huì)得到真正使用的密鑰對(duì)K1,K2。Tuchman給出雙密鑰的EDE模式(加密-解密-加密):

C=EK1(DK2(EK1(P)))……對(duì)P加密

P=DK1(EK2(DK1(C)))……對(duì)C解密這種替代DES的加密較為流行并且已被采納用于密鑰管理標(biāo)準(zhǔn)(TheKeyManagerStandardsANSX9.17和ISO8732).TDEA——三重DES41到目前為止,還沒(méi)有人給出攻擊三重DES的有效方法。對(duì)其密鑰空間中密鑰進(jìn)行蠻干搜索,那么由于空間太大為2112=5×1033,這實(shí)際上是不可行的。若用差分攻擊的方法,相對(duì)于單一DES來(lái)說(shuō)復(fù)雜性以指數(shù)形式增長(zhǎng),要超過(guò)1052。注意:1*.Merkle和Hellman設(shè)法創(chuàng)造一個(gè)條件,想把中間相遇攻擊(meet-in-the-middleattack)的方法用于三重DES,但目前也不太成功。2*.雖然對(duì)上述帶雙密鑰的三重DES到目前為止還沒(méi)有好的實(shí)際攻擊辦法,但人們還是放心不下,又建議使用三密鑰的三重DES,此時(shí)密鑰總長(zhǎng)為168bits.

C=EK3(DK2(EK1(P)))TDEA——三重DES2023/2/543IDEA瑞士聯(lián)邦技術(shù)學(xué)院來(lái)學(xué)嘉(X.J.Lai)和J.L.Massey提出的第1版IDEA(internationaldataencryptionalgorithm,國(guó)際數(shù)據(jù)加密算法)于1990年公布,當(dāng)時(shí)稱(chēng)為PES(proposedencryptionstandard,建議加密標(biāo)準(zhǔn))。1991年,在Biham和Shamir提出差分密碼分析之后,設(shè)計(jì)者推出了改進(jìn)算法IPES,即改進(jìn)型建議加密標(biāo)準(zhǔn)。1992年,設(shè)計(jì)者又將IPES改名為IDEA,目前已在PGP中采用。2023/2/544IDEAIDEA加密算法是在DES算法的基礎(chǔ)上發(fā)展而來(lái)的,類(lèi)似于三重DES算法,其分組長(zhǎng)度也是64位,但密鑰長(zhǎng)度是128位,增加了破譯難度。IDEA使用的運(yùn)算有異或、模216加法和模(216+1)乘法算法的強(qiáng)度主要是通過(guò)有效的混淆和擴(kuò)散特性而得以保證。IDEA可方便地通過(guò)軟件和硬件實(shí)現(xiàn)現(xiàn)代計(jì)算機(jī)速度的迅速提高,使得只有56bit密鑰的DES算法的安全性面臨著極大的挑戰(zhàn)。1997年,NIST公開(kāi)征求AES(AdvancedEncryptionStandard)作為2001年以后的數(shù)據(jù)加密標(biāo)準(zhǔn)。1998年8月,AES召開(kāi)第一次候選會(huì),確定15個(gè)算法入圍。1999年3月,AES召開(kāi)第二次候選會(huì),有5個(gè)算法入圍(MARS,RC6,Rijndael,Serpent和Twofish)。2000年10月,NIST選出由比利時(shí)的JoanDaemen和VincentRijmen提交的Rijndael算法作為AES。2001年夏天,NIST頒布新的信息處理標(biāo)準(zhǔn)(FIPS),將Rijndael算法作為AES。高級(jí)加密標(biāo)準(zhǔn)(AES,AdvancedEncryptionStandard)45高級(jí)加密標(biāo)準(zhǔn)(AES,AdvancedEncryptionStandard)46分組長(zhǎng)度(bit)128192256密鑰長(zhǎng)度(bit)128192256Rijndael是一個(gè)分組密碼算法,其分組長(zhǎng)度和密鑰長(zhǎng)度相互獨(dú)立,都可以改變。輪數(shù)(Round)的不同取值輪數(shù)(Round)BlockLength=128BlockLength=192BlockLength=256KeyLength=128101214KeyLength=192121214KeyLength=256141414高級(jí)加密標(biāo)準(zhǔn)(AES)AES算法的每一步都是可逆的。算法有多輪相同的運(yùn)算,每一輪包括4個(gè)步驟:非線性代替(S-盒)行循環(huán)左移(ShiftRow)列混合變換(MixColum)與擴(kuò)展密鑰相異或每一輪的子密鑰從擴(kuò)展密鑰中取出,輪密鑰長(zhǎng)度等于分組長(zhǎng)度密鑰擴(kuò)展過(guò)程同時(shí)應(yīng)用了非線性變換和循環(huán)左移算法定義的所有運(yùn)算都是在有限域GF(28)上進(jìn)行的AES加密算法概述1.強(qiáng)力攻擊法強(qiáng)力攻擊可用于任何分組密碼,且攻擊的復(fù)雜度僅依賴(lài)于分組長(zhǎng)度和密鑰長(zhǎng)度。工作效率包括加/解密速度、密鑰擴(kuò)展速度、存儲(chǔ)空間等2.差分密碼分析已知最有效的攻擊迭代密碼的方法之一?;舅枷胧峭ㄟ^(guò)分析明文對(duì)的差值對(duì)密文對(duì)的差值的影響來(lái)恢復(fù)某些密鑰比特。差分密碼分析最初是針對(duì)DES加密提出的一種攻擊方法,能成功破解輪數(shù)較低的DES。

對(duì)稱(chēng)密鑰的密碼分析方法493.線性密碼分析本質(zhì)上是一種已知明文攻擊法,是對(duì)DES加密方法進(jìn)行破譯的主要方法?;舅枷胧峭ㄟ^(guò)尋找一個(gè)給定密碼算法的有效的線性近似表達(dá)式來(lái)破譯密碼系統(tǒng)。4、差分-線性密碼分析對(duì)差分密碼分析和線性密碼分析進(jìn)行改進(jìn),是降低它們復(fù)雜度的眾多改進(jìn)之一。它利用的是差分密碼分析和線性密碼分析相結(jié)合的技術(shù)。

對(duì)稱(chēng)密鑰的密碼分析方法505、插值攻擊利用了拉格朗日插值公式的思想。如果一個(gè)密碼算法是固定的密鑰的低次多項(xiàng)式函數(shù),或項(xiàng)數(shù)較少的多項(xiàng)式,其項(xiàng)數(shù)可以估算出來(lái),則通過(guò)插值法可以得到其代數(shù)表達(dá)式,從而可能恢復(fù)出密鑰。對(duì)稱(chēng)密鑰的密碼分析方法51非對(duì)稱(chēng)密鑰體制(公鑰密碼體制)在擁有大量用戶(hù)的通信網(wǎng)絡(luò),若想讓兩兩用戶(hù)都能進(jìn)行保密通信,即要求(1)任意一對(duì)用戶(hù)共享一個(gè)會(huì)話(huà)密鑰(2)不同的用戶(hù)對(duì)共享的會(huì)話(huà)密鑰不相同對(duì)于分配中心,N個(gè)用戶(hù)則需要分配CN2個(gè)會(huì)話(huà)密鑰,大量的數(shù)據(jù)存儲(chǔ)和分配是一件很麻煩的事,在計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境下顯的尤為突出。另外傳統(tǒng)密碼不易實(shí)現(xiàn)數(shù)字簽名,也進(jìn)一步限制了其發(fā)展。公開(kāi)密鑰算法的提出非對(duì)稱(chēng)密鑰體制(公鑰密碼體制)公鑰密碼學(xué)是1976年由Diffie和Hellman在其“密碼學(xué)新方向”一文中提出的,見(jiàn)文獻(xiàn):

W.DiffieandM.E.Hellman,NewDirectrionsinCryptography,

IEEETransactiononInformationTheory,V.IT-22.No.6,Nov1976,PP.644-654公開(kāi)密鑰算法是非對(duì)稱(chēng)算法,即密鑰分為公鑰和私鑰,因此稱(chēng)雙密鑰體制雙鑰體制的公鑰可以公開(kāi),因此也稱(chēng)公鑰算法公鑰算法的出現(xiàn),給密碼的發(fā)展開(kāi)辟了新的方向。公鑰算法雖然已經(jīng)歷了30多年的發(fā)展,但仍具有強(qiáng)勁的發(fā)展勢(shì)頭,在鑒別系統(tǒng)和密鑰交換等安全技術(shù)領(lǐng)域起著關(guān)鍵的作用非對(duì)稱(chēng)密鑰體制(公鑰密碼體制)加密與解密由不同的密鑰完成已知密碼算法和加密密鑰,求解密密鑰在計(jì)算上是不可行的兩個(gè)密鑰中任何一個(gè)都可以作為加密密鑰,而另一個(gè)用作解密密鑰公開(kāi)密鑰算法的基本要求

用公鑰密碼實(shí)現(xiàn)保密PKB是公開(kāi)鑰,SKB是秘密鑰因?yàn)橹挥蠦知道SKB,所以其他人都無(wú)法對(duì)c解密。c=EPKB[m]m=DSKB[EPKB[m]]用公鑰密碼實(shí)現(xiàn)鑒別c=ESKA[m]m=DPKA[c]因?yàn)閺膍得到c是經(jīng)過(guò)A的秘密鑰SKA加密,只有A才能做到。因此c可當(dāng)做A對(duì)m的數(shù)字簽字。另一方面,任何人只要得不到A的秘密鑰SKA就不能篡改m,所以以上過(guò)程獲得了對(duì)消息來(lái)源和消息完整性的認(rèn)證。用公鑰密碼體制實(shí)現(xiàn)認(rèn)證和保密58c=EPKB[ESKA[m]]m=DPKA[DSKB[c]]公鑰密碼體制往往基于一個(gè)數(shù)學(xué)難題基于離散對(duì)數(shù)求解困難性(DLP)的公開(kāi)密鑰密碼體制

離散對(duì)數(shù)難題是多個(gè)公開(kāi)密鑰密碼算法的基礎(chǔ),如Diffie-Hellman的密鑰交換算法和DSA數(shù)字簽名算法?;诖笳麛?shù)分解難題(IFP)的公開(kāi)密鑰密碼體制

第一個(gè)完全意義上的公開(kāi)密鑰密碼體制是由RonRivest,AdiShamir和LenAdleman創(chuàng)設(shè)的RSA算法。這是一個(gè)基于大整數(shù)分解困難性的密碼算法。非對(duì)稱(chēng)密鑰體制(公鑰密碼體制)59在模p運(yùn)算下,已知p和a,對(duì)任意的整數(shù)Y,存在唯一的1≤i≤P-1,使得Y≡ai(modP),i被稱(chēng)為以a為底(模p)Y的離散對(duì)數(shù),記為INDa,p(y)。模數(shù)為p=11,以a=7為底,可得數(shù)值y的離散對(duì)數(shù)的列表離散對(duì)數(shù)求解困難性60i123456789107i(mod11)75231046981設(shè)a為模p的本原根,p是一個(gè)素?cái)?shù),則在模p運(yùn)算下底a的冪ai(i=1,2,3,…P-1)互不相同,取遍1,2,3,…P-1。如p=11,a=7y12345678910IND7,11(y)10346271985求離散對(duì)數(shù)是求冪運(yùn)算的逆運(yùn)算。求冪運(yùn)算與其逆運(yùn)算相比,前者易于計(jì)算,而后者則難計(jì)算。特別在模數(shù)很大(如100位以上的大素?cái)?shù))的運(yùn)算中,求離散對(duì)數(shù)成為數(shù)學(xué)的難題。離散對(duì)數(shù)求解困難性61Diffie-Hellman的密鑰交換算法是基于離散對(duì)數(shù)難解這一數(shù)學(xué)難題構(gòu)建的。設(shè)p為一個(gè)大素?cái)?shù),給定模p的一個(gè)本原元a,(p,a)是公開(kāi)的。A,B雙方為建立共享的密鑰,執(zhí)行如下的協(xié)議:①AB:ax(modp)②BA:ay(modp)③A對(duì)收到的ay求(ay)x=ayx(modp)④B對(duì)收到的ax求(ax)y=axy(modp)A,B雙方建立了共享的密鑰K=

(ay)x(modp)=axy(modp)在該協(xié)議中,x是A的秘密密鑰,y是B的秘密密鑰。第三者獲得ax和ay,無(wú)論由ax求x或由ay求y都是離散對(duì)數(shù)求解的難題。而無(wú)法求得x或y,就不能獲得A,B的共享密鑰axy(modp)。Diffie-Hellman的密鑰交換算法62D-H算法可能遭受中間人攻擊ManintheMiddleAttack

63YC=azYA=axYB=ayYC=azK2=azxK1=azyD-H算法沒(méi)有提供關(guān)于雙方身份的任何信息,容易遭受中間人攻擊D-H的改進(jìn)措施1992年Diffie,vanOorschot和Wiener開(kāi)發(fā)了authenticatedDiffie-Hellmankeyagreementprotocol,或稱(chēng)為Station-to-Station(STS)協(xié)議,它用于防止在Diffie-Hellmankeyagreementprotocol上的中間人攻擊。它對(duì)中間人攻擊的免疫來(lái)自于兩方面,一個(gè)是使用數(shù)字簽名來(lái)相互認(rèn)證,另一個(gè)是使用public-keycertificate。

D-H算法的改進(jìn)65Diffie-Hellmankeydistributionscheme的變形能夠用于安全交換密鑰publishedin1985byElGamal:T.ElGamal,"APublicKeyCryptosystemandaSignatureSchemeBasedonDiscreteLogarithms",IEEETrans.InformationTheory,volIT-31(4),pp469-472,July1985.

安全性是基于離散對(duì)數(shù)缺點(diǎn):增加了消息長(zhǎng)度(2倍)ElGamal公鑰加密方案密鑰建立密鑰生成:選取一個(gè)大素?cái)?shù)p及本原根a接收者Bob有一個(gè)密秘鑰

XB

計(jì)算yB=aXB

modp

公開(kāi)yBElGamal加密為加密M,發(fā)送者選擇隨機(jī)數(shù)k,0<=k<=p-1,(發(fā)送者私鑰)

計(jì)算消息密鑰K:K=yBkmodp

=(aXB)kmodp

計(jì)算密文對(duì):C={C1,C2}

C1=akmodp

C2=K.Mmodp

=(aXB)kMmodp

發(fā)送到接收者k

需要永久保密ElGamal解密首先計(jì)算messagekeyKK=C1XB

modp=ak.XBmodp

計(jì)算明文:M=C2.K-1

modp

ElGamal方法是概率密碼系統(tǒng),即同一個(gè)明文在不同的時(shí)間由相同加密者加密會(huì)產(chǎn)生不同的密文①系統(tǒng)不需要保存秘密參數(shù),所有的系統(tǒng)參數(shù)均可公開(kāi);②復(fù)雜度比RSA方法要大。

ElGamal方法的優(yōu)點(diǎn)70RSA算法是1978年由R.Rivest,A.Shamir和L.Adleman提出的一種用數(shù)論構(gòu)造的、也是迄今為止理論上最為成熟完善的公鑰密碼體制,該體制已得到廣泛的應(yīng)用。

RSA算法9p和q是素?cái)?shù) (秘密的)n=p×q

(公開(kāi)密鑰)

(非秘密的)(n)=(p-1)(q-1)

(秘密的)e是公開(kāi)密鑰(加密密鑰) (非秘密的)d是秘密密鑰(解密密鑰) (秘密的)m是明文 (秘密的)c是密文 (非秘密的)加密算法:c=E(m)≡me(modn)解密算法:m=D(c)≡cd(modn)e滿(mǎn)足條件:e和(p-1)(q-1)互素,即(e,

(n))=1d滿(mǎn)足條件:ed≡1mod(p-1)(q-1)RSA描述RSA密鑰產(chǎn)生1.隨機(jī)選擇兩素?cái)?shù)p和q

(長(zhǎng)度在100位左右)2.計(jì)算公開(kāi)模數(shù):n=p×q3.計(jì)算秘密的歐拉指示函數(shù):(n)=(p-1)(q-1)

4.選擇隨機(jī)數(shù)e(即加密密鑰),使之與(n)互素即gcd(e,(n))=15.計(jì)算解密密鑰d=e-1mod(n)6.公布整數(shù)n和加密密鑰e,并將d秘密保存為其秘密密鑰。p和q

可以毀去不用,以增加其安全性。RSA加解密過(guò)程設(shè)B欲將明文m秘密傳送給A1.B在公開(kāi)檔案庫(kù)中找出A的公開(kāi)密鑰E(e,n)。2.將m分組為m=m1m2…mr,使得每個(gè)分組對(duì)應(yīng)的十進(jìn)制數(shù)小于n3.B對(duì)每一分組執(zhí)行加密操作:c=me(modn)4.B將c傳送給A。5.A收到密文c后,利用其私有密鑰d,執(zhí)行解密操作:m=cd(modn)RSA的安全性是基于分解大整數(shù)的困難性假定,之所以為假定是因?yàn)橹两襁€未能證明分解大整數(shù)就是NP問(wèn)題,也許有尚未發(fā)現(xiàn)的多項(xiàng)式時(shí)間分解算法。如果RSA的模數(shù)n被成功地分解為p×q,則立即獲得φ(n)=(p-1)(q-1),從而能夠確定e模φ(n)的乘法逆元d,即d≡e-1modφ(n),因此攻擊成功。RSA的安全性26隨著人類(lèi)計(jì)算能力的不斷提高,原來(lái)被認(rèn)為是不可能分解的大數(shù)已被成功分解。

例如RSA-129(即n為129位十進(jìn)制數(shù),大約428個(gè)比特)已在網(wǎng)絡(luò)上通過(guò)分布式計(jì)算歷時(shí)8個(gè)月于1994年4月被成功分解RSA-130已于1996年4月被成功分解RSA-140已于1999年2月被成功分解RSA-155(512比特)已于1999年8月被成功分解,得到了兩個(gè)78位(十進(jìn)制)的素?cái)?shù)。RSA的安全性27對(duì)于大整數(shù)的威脅除了人類(lèi)的計(jì)算能力外,還來(lái)自分解算法的進(jìn)一步改進(jìn)。分解算法過(guò)去都采用二次篩法,如對(duì)RSA-129的分解。而對(duì)RSA-130的分解則采用了一個(gè)新算法,稱(chēng)為推廣的數(shù)域篩法,該算法在分解RSA-130時(shí)所做的計(jì)算僅比分解RSA-129多10%。將來(lái)也可能還有更好的分解算法因此在使用RSA算法時(shí)對(duì)其密鑰的選取要特別注意其大小。估計(jì)在未來(lái)一段比較長(zhǎng)的時(shí)期,密鑰長(zhǎng)度介于1024比特至2048比特之間的RSA是安全的。RSA的安全性28RSA參數(shù)的選擇1.P與q必須為強(qiáng)素?cái)?shù)2.P與q的差必須很大(差幾個(gè)位以上)3.p-1與q-1的最大公因子應(yīng)很小4.e不可以太小5.d的長(zhǎng)度不得小于N長(zhǎng)度的1/4DES與RSA的比較1.處理效率方面:DES優(yōu)于RSA2.密鑰管理方面:RSA優(yōu)于DES3.安全性方面:一樣4.簽名和認(rèn)證方面:RSA可以RSA的安全性橢圓曲線系統(tǒng)第一次應(yīng)用于密碼學(xué)上是于1985年由Koblitz與Miller分別提出橢圓曲線密碼體制在相同的安全強(qiáng)度下所要求的密鑰強(qiáng)度僅是RSA的1/6,因此在運(yùn)算速度和存儲(chǔ)空間方面具有很大的優(yōu)勢(shì),在實(shí)際應(yīng)用中具有很大的使用價(jià)值。橢圓曲線密碼79令p>3為質(zhì)數(shù),在GF(p)中的橢圓曲線E:y2=x3+ax+bmodp,其中,4a3+27b2≠0(modp)。曲線上另定義一個(gè)無(wú)窮遠(yuǎn)點(diǎn)O,對(duì)任一點(diǎn)A∈E,A+O=O+A=A。在E上定義加法運(yùn)算令A(yù)=(x1,y1)與B=(x2,y2)為E上的點(diǎn)。若x2=x1,且y2=-y1,則A+B=O;

否則A+B=(x3,y3),其中:x3=λ2-x1-x2,y3=λ(x1-x3)-y1,且λ=(y2-y1)/(x2-x1)在此加法運(yùn)算下,E為Abel群。橢圓曲線定義80橢圓曲線密碼體制是基于橢圓曲線群上的離散對(duì)數(shù)問(wèn)題(ECDLP)的難解性。K=tG

[其中K,G為Ep(a,b)上的點(diǎn),t為小于n(n是點(diǎn)G的階)的整數(shù)](相當(dāng)于冪運(yùn)算)給定t和G,根據(jù)加法法則,計(jì)算K很容易;

但給定K和G,求t就相對(duì)困難(稱(chēng)為橢圓曲線上的離散對(duì)數(shù),ECDLP)橢圓曲線密碼體制(ECC,EllipticCurveCryptosystem)81橢圓曲線密碼體制橢圓曲線密碼體制橢圓曲線密碼體制一個(gè)利用橢圓曲線進(jìn)行加密通信的過(guò)程:

1、用戶(hù)A選定一條橢圓曲線Ep(a,b),并取橢圓曲線上一點(diǎn),作為基點(diǎn)G。2、用戶(hù)A選擇一個(gè)私有密鑰t,并生成公開(kāi)密鑰K=tG。3、用戶(hù)A將Ep(a,b)和點(diǎn)K,G傳給用戶(hù)B。4、用戶(hù)B接到信息后,將待傳輸?shù)拿魑木幋a到Ep(a,b)上一點(diǎn)M(編碼方法很多),并產(chǎn)生一個(gè)隨機(jī)整數(shù)r(r<n)。5、用戶(hù)B計(jì)算點(diǎn)C1=M+rK;C2=rG。6、用戶(hù)B將C1、C2傳給用戶(hù)A。7、用戶(hù)A接到信息后,計(jì)算C1-tC2,結(jié)果就是點(diǎn)M。因?yàn)?/p>

C1-tC2=M+rK-t(rG)=M+rK-r(tG)=M8、再對(duì)點(diǎn)M進(jìn)行解碼就可以得到明文。橢圓曲線密碼體制的優(yōu)勢(shì)85橢圓曲線密碼體制的優(yōu)勢(shì)86混合加密算法

87如果RSA和DES結(jié)合使用,則正好彌補(bǔ)RSA的缺點(diǎn)。即DES用于明文加密,RSA用于DES密鑰的加密。一種混合了非對(duì)稱(chēng)和對(duì)稱(chēng)加密算法的加密方式如圖:混合加密算法

88認(rèn)證又稱(chēng)為鑒別,是防止主動(dòng)攻擊(如篡改、偽造信息等)的一項(xiàng)重要技術(shù),解決網(wǎng)絡(luò)數(shù)據(jù)傳輸過(guò)程中可能出的非法訪問(wèn)與篡改、假冒偽造、拒絕服務(wù)、抵賴(lài)等安全問(wèn)題。

根據(jù)認(rèn)證的目的,認(rèn)證可包括:消息認(rèn)證:證實(shí)收到的消息來(lái)自可信的源點(diǎn)且數(shù)據(jù)在傳輸和存儲(chǔ)過(guò)程中是否會(huì)被篡改、重放或延遲,常見(jiàn)的方法有:散列函數(shù)(Hash):一個(gè)將任意長(zhǎng)度的消息映射為定長(zhǎng)的散列值的公共函數(shù),以散列值作為認(rèn)證碼。消息認(rèn)證碼(MAC):以一個(gè)消息的公共函數(shù)和用于產(chǎn)生一個(gè)定長(zhǎng)值的密鑰作為認(rèn)證碼。身份認(rèn)證:驗(yàn)證信息的發(fā)送者是否是合法的,即實(shí)體認(rèn)證,包括信源、信宿的認(rèn)證與識(shí)別。常用的方法包括:數(shù)字簽名身份識(shí)別技術(shù)3.5信息認(rèn)證技術(shù)概述

89驗(yàn)證某個(gè)指定的數(shù)據(jù)是否來(lái)源于某個(gè)特定的實(shí)體。為了確定被認(rèn)證的實(shí)體與一些特定數(shù)據(jù)項(xiàng)有著靜態(tài)的不可分割的聯(lián)系。包括信源、信宿的認(rèn)證與識(shí)別。典型技術(shù)有數(shù)字簽名技術(shù) 驗(yàn)證消息的完整性以及數(shù)據(jù)在傳輸和存儲(chǔ)過(guò)程中是否會(huì)被篡改、重放或延遲。典型技術(shù)有Hash函數(shù)、消息認(rèn)證碼3.6Hash函數(shù)與消息認(rèn)證90Hash函數(shù):把可變長(zhǎng)度的輸入串M轉(zhuǎn)換成固定長(zhǎng)度的輸出串h的一種函數(shù)。h=H(M)Hash函數(shù)具備以下性質(zhì):Hash函數(shù)H可適用于任意長(zhǎng)度的輸入數(shù)據(jù)塊,產(chǎn)生固定長(zhǎng)度的Hash值。(數(shù)據(jù)指紋)對(duì)于每一個(gè)給定輸入數(shù)據(jù)M,都能很容易計(jì)算出它的Hash值H(M)。使得硬件和軟件實(shí)現(xiàn)成為實(shí)際可行如果給定Hash值h,要逆向推出輸入數(shù)據(jù)M在計(jì)算上不可行,即Hash函數(shù)具備單向性對(duì)于給定的消息M1和其Hash值H(M1),找到滿(mǎn)足M2≠M(fèi)1,且H(M2)=H(M1)的M2在計(jì)算上是不可行的,即抗弱碰撞性要找到任何滿(mǎn)足H(M1)=H(M2)且M1≠M(fèi)2的消息對(duì)(M1,M2)在計(jì)算上是不可行的,即抗強(qiáng)碰撞性雪崩效應(yīng):當(dāng)一個(gè)輸入位發(fā)生變化時(shí),輸出位將有一半會(huì)發(fā)生變化3.6Hash函數(shù)與消息認(rèn)證——

Hash函數(shù)91Hash函數(shù)92Hash函數(shù)的一般結(jié)構(gòu)哈希函數(shù)的核心技術(shù)——設(shè)計(jì)無(wú)碰撞的壓縮函數(shù)f攻擊者對(duì)算法的攻擊重點(diǎn)是壓縮函數(shù)f

的內(nèi)部結(jié)構(gòu),分析過(guò)程常常需要先找出壓縮函數(shù)f

的碰撞。由于是壓縮函數(shù),其碰撞是不可避免的。因此,在設(shè)計(jì)壓縮函數(shù)f

時(shí)就應(yīng)保證找出其碰撞在計(jì)算上是不可行的。常用的散列函數(shù):MD5;SHA系列;Hash函數(shù)9390年代初由MIT(麻省理工學(xué)院MassachusettsInstituteofTechnology)

LaboratoryforComputerScience和RSADataSecurityinc.(RSA數(shù)碼保安公司)的RonaldRivest開(kāi)發(fā)出來(lái),經(jīng)MD2、MD3和MD4發(fā)展而來(lái)MD5的典型應(yīng)用是對(duì)一段信息(message)產(chǎn)生信息摘要(message-digest),以防止被篡改

MD5還廣泛用于加密和解密技術(shù)上

廣泛的應(yīng)用于unix系統(tǒng)中

MD5(Message-DigestAlgorithm5)94MD5以512位分組來(lái)處理輸入文本,每一分組又劃分為16個(gè)32位子分組。算法的輸出由四個(gè)32位分組組成,將它們級(jí)聯(lián)形成一個(gè)128位散列值。MD595壓縮函數(shù)算法邏輯包含4個(gè)具有相似結(jié)構(gòu)的“循環(huán)”,但每個(gè)循環(huán)使用不同的原始邏輯函數(shù)。每一循環(huán)都以當(dāng)前的正在處理的512bit分組(Yq)和128bit的緩存值A(chǔ)BCD為輸入,然后更新緩存的內(nèi)容。每一循環(huán)還使用一個(gè)64元素表T[1…64]的四分之一,該表通過(guò)正弦函數(shù)構(gòu)建。這個(gè)表提供了一個(gè)“隨機(jī)化“的32bit模式集,它將消除輸入數(shù)據(jù)的任何規(guī)律性。第4次循環(huán)的輸出加到第1次循環(huán)的輸入(CVq)上產(chǎn)生CVq+1。相加是緩存中4個(gè)字分別與CVq中對(duì)應(yīng)的4個(gè)字以模232相加。MD596壓縮函數(shù)單循環(huán)算法邏輯MD597循環(huán)原始函數(shù)g(b,c,d)1F(b,c,d)2G(b,c,d)3H(b,c,d)4I(b,c,d)每一循環(huán)由對(duì)緩存ABCD的16步操作組成。每一步操作的形式為:a←b+((a+g(b,c,d)+X[k]+T[i])<<<s)算法邏輯要點(diǎn)在一次循環(huán)的一步中,表T中64個(gè)32bit字元素中的每一個(gè)也只被使用一次。在每一步中,只有緩存ABCD的四個(gè)字節(jié)中的一個(gè)被更新。因此,該緩存的每個(gè)字節(jié)在這次循環(huán)中將被更新四次,然后在最后第五次產(chǎn)生這個(gè)分組的最后輸出。注意每一循環(huán)均要使用四個(gè)不同的循環(huán)左移,且在不同的循環(huán)中使用的不同。所有這些復(fù)雜操作的意義在于使產(chǎn)生沖突(兩個(gè)512bit分組產(chǎn)生相同的輸出)非常困難。MD598算法由來(lái)安全散列算法(SHA)由美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)協(xié)會(huì)(NIST)提出,并作為聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPSPUB180)在1993年公布;1995年又發(fā)布了一個(gè)修訂版FIPSPUB180-1,通常稱(chēng)之為SHA-1算法邏輯圖消息的總體算法邏輯圖與MD5的總體算法邏輯圖類(lèi)似。算法輸入消息的最大長(zhǎng)度不超過(guò)264

bit,輸入是按512bit的分組進(jìn)行處理的,最后產(chǎn)生的輸出是一個(gè)160bit的消息摘要。SHA-199壓縮函數(shù)算法邏輯包含四個(gè)具有相似結(jié)構(gòu)的“循環(huán)”,但每循環(huán)使用不同的原始邏輯函數(shù)。每一循環(huán)都以當(dāng)前正在處理的512bit(Yq)和160bit的緩存值A(chǔ)BCDE為輸入,然后更新緩存的內(nèi)容。第四循環(huán)(第80步)的輸出加到第一循環(huán)的輸入(CVq)產(chǎn)生CVq+l。相加是緩存中5個(gè)字分別與CVq中對(duì)應(yīng)的5個(gè)字以模232相加。SHA-1100壓縮函數(shù)單循環(huán)算法邏輯SHA-1每一循環(huán)的操作邏輯為:A,B,C,D,E←(E+f(t,B,C,D)+S5(A)+Wt+Kt),A,S30(B),C,D其中A,B,C,D,E=緩存中的5個(gè)字t=

步驟數(shù);0≤t≤79f(t,B,C,D)=步驟t的原始邏輯函數(shù)Sk=32bit參數(shù)循環(huán)左移(旋轉(zhuǎn))k位Wt=由當(dāng)前512bit輸入分組導(dǎo)出的一個(gè)32bit字Kt=一個(gè)額外的常數(shù);使用四個(gè)不同的值+=模232加法壓縮函數(shù)單循環(huán)算法邏輯Wt前16個(gè)字的值直接取自當(dāng)前分組中16個(gè)字的值。余下字的值定義如下:Wt=S1(Wt-16⊕Wt-14⊕Wt-8⊕Wt-3)SHA-1SHA-l利用Wt在壓縮函數(shù)中將16個(gè)分組字?jǐn)U展為80個(gè)字,這將在壓縮的消息分組內(nèi)引入許多冗余和相關(guān),使尋找產(chǎn)生相同壓縮函數(shù)輸出的不同消息分組的工作更加復(fù)雜。對(duì)強(qiáng)行攻擊的安全性:最顯著和最重要的區(qū)別是SHA-1摘要比MD5摘要長(zhǎng)32bit。使用強(qiáng)行技術(shù),產(chǎn)生任何一個(gè)消息使其摘要等于給定消息摘要的難度對(duì)MD5是2128數(shù)量級(jí)的操作,而對(duì)SHA-l則是2160數(shù)量級(jí)的操作。此外,使用強(qiáng)行技術(shù),產(chǎn)生具有相同消息摘要的兩個(gè)消息的難度對(duì)MD5是264數(shù)量級(jí)的操作,而對(duì)SHA-1則是280數(shù)量級(jí)的操作。這樣,SHA-1對(duì)強(qiáng)行攻擊有更大的強(qiáng)度。對(duì)密碼分析的安全性:由于MD5的設(shè)計(jì),它易受密碼分析的攻擊。SHA-l顯得不易受這樣的攻擊。由于有關(guān)SHA-1的設(shè)計(jì)標(biāo)準(zhǔn)幾乎沒(méi)有公開(kāi),因此很難判斷其強(qiáng)度。速度:因?yàn)閮蓚€(gè)算法都在很大程度上依賴(lài)模232的加法,因此兩者在32bit結(jié)構(gòu)的機(jī)器上速度均很好。SHA-l有更多的步驟(80對(duì)64)且要處理160bit的緩存,相比之下MD5僅處理128bit的緩存。這樣在相同的硬件上,SHA-l的行速度應(yīng)該比MD5慢。簡(jiǎn)單性和緊湊性:兩個(gè)算法均描述簡(jiǎn)單、易于實(shí)現(xiàn),并且無(wú)需冗長(zhǎng)的程序或很大的替換表。SHA-1與MD5的比較NIST已經(jīng)在FIPS1820-2中頒布了三個(gè)修訂的sha標(biāo)準(zhǔn)。SHA-256,SHA-384,SHA-512修訂的sha標(biāo)準(zhǔn)2004年8月,在美國(guó)加州圣芭芭拉召開(kāi)的國(guó)際密碼大會(huì)上,并沒(méi)有被安排發(fā)言的王小云教授拿著自己的研究成果找到會(huì)議主席,要求進(jìn)行大會(huì)發(fā)言。就這樣,王小云在國(guó)際會(huì)議上首次宣布了她及她的研究小組的研究成果——對(duì)MD5、HAVAL-128、MD4和RIPEMD等四個(gè)著名密碼算法的破譯結(jié)果。在MD5被王小云為代表的中國(guó)專(zhuān)家破譯之后,世界密碼學(xué)界仍然認(rèn)為SHA-1是安全的。2005年2月7日,美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究院發(fā)表申明,SHA-1沒(méi)有被攻破,并且沒(méi)有足夠的理由懷疑它會(huì)很快被攻破,開(kāi)發(fā)人員在2010年前應(yīng)該轉(zhuǎn)向更為安全的SHA-256和SHA-512算法。而僅僅在一周之后,王小云就宣布了破譯SHA-1的消息。MD5和SHA-1的破解105TigerHash106TigerHash結(jié)構(gòu)比MD5和SHA-1更復(fù)雜,接近于分組密碼。為了適應(yīng)64位處理器,Tiger選擇輸出位數(shù)是192位。使用了4個(gè)S盒,每個(gè)S盒將8位映射成64位。還應(yīng)用了密鑰擴(kuò)展算法,對(duì)輸入分組進(jìn)行擴(kuò)展

MAC實(shí)質(zhì)上是一個(gè)將雙方共享的密鑰k和消息m作為輸入的函數(shù),如果將函數(shù)值記為MACK(M),

,這個(gè)函數(shù)值就是一個(gè)認(rèn)證標(biāo)記,用δ表示。將MAC附加到消息中。接收者通過(guò)重新計(jì)算MAC來(lái)對(duì)消息進(jìn)行認(rèn)證。消息認(rèn)證碼(MAC,Messages

Authentication

Codes)107MAC應(yīng)具有的性質(zhì)如果對(duì)手竊取到M和MACK(M),試圖生成一個(gè)消息M’,使得MACK(M’)=MACK(M),這在計(jì)算上不可行。MACK(M)應(yīng)該能夠均勻分布。對(duì)于隨機(jī)選擇的消息M和M’,MACK(M)=MACK(M’)的概率為2-n,其中n為MAC的比特長(zhǎng)度。讓M'為M的某種已知變換,即M'=f(M)。例如,f可能為將一個(gè)或多個(gè)特定的比特取反。在對(duì)種情況下,Pr[MACK(M)=MACK(M')]=2-n。MAC的構(gòu)造方法有很多,主要類(lèi)型是基于帶密鑰的Hash函數(shù)和基于分組密碼的構(gòu)造方法消息認(rèn)證碼利用對(duì)稱(chēng)分組密碼體制(如DES、AES)的密碼分組鏈接模式(CBC)一直是構(gòu)造MAC的最常見(jiàn)的方法。如CBC-MAC、XOR-MAC、EMAC(加密的CBC-MAC)、PMAC、XECB-MAC等CBC-MAC對(duì)消息使用CBC模式進(jìn)行加密,取密文的最后一塊作為認(rèn)證標(biāo)記。被認(rèn)證的數(shù)據(jù)(例如消息、記錄文件或者程序)被分為連續(xù)的等長(zhǎng)的分組:D1,D2,…,DN?;诜纸M密碼的MAC基于DES的消息認(rèn)證碼基于分組密碼的MACXOR-MACXOR-MAC有兩種方式:無(wú)狀態(tài)(XMACR)和有狀態(tài)(XMACC)。在計(jì)算過(guò)程中引入索引值使得分組密碼每次加密的明文各不相同,最后再將所有的密文異或。由于XOR-MAC使用異或來(lái)生成標(biāo)記,這就為其帶來(lái)了并行性、增量式、亂序驗(yàn)證等優(yōu)點(diǎn)。攻擊XOR-MAC成功的概率要比攻擊CBC-MAC成功的概率低,并且這個(gè)概率跟消息長(zhǎng)度沒(méi)有關(guān)系。缺點(diǎn)是在算法中引入了索引信息,引起了消息的擴(kuò)展,導(dǎo)致了加密次數(shù)的成倍增加,降低了運(yùn)算速度

基于分組密碼的MAC111XECB-MACXECB-MAC也可看成是XOR-MAC的一種改進(jìn),支持并行計(jì)算、增量式操作、亂序驗(yàn)證等特性。

XECB-MAC沒(méi)有使用消息的有效位來(lái)記錄消息的位置,減少了加密的次數(shù),因此它的速度要高于XOR-MAC,但低于CBC-MAC。該方法的不足之處在于使用了兩個(gè)密鑰,這給密鑰的存儲(chǔ)和分發(fā)帶來(lái)了困難?;诜纸M密碼的MAC112PMAC

PMAC可以看成是對(duì)XOR-MAC的改進(jìn),具有可并行、支持消息的添加、截短和替換等優(yōu)點(diǎn)。PMAC在計(jì)算MAC的時(shí)候不需要事先知道消息的長(zhǎng)度,且不需要一個(gè)隨機(jī)數(shù)或維持一個(gè)計(jì)數(shù)。但是,它的速度比CBC-MAC要慢,且該算法受專(zhuān)利保護(hù),不能免費(fèi)使用?;诜纸M密碼的MAC113OCBOCB是在綜合了PMAC和XCBC-MAC的構(gòu)造方法的基礎(chǔ)上提出來(lái)的,同時(shí)提供了加密和認(rèn)證。

OCB的優(yōu)點(diǎn)有:能處理任意長(zhǎng)度的消息、運(yùn)算速度快、支持并行處理。缺點(diǎn)在于算法復(fù)雜并且受專(zhuān)利保護(hù),不可免費(fèi)使用?;诜纸M密碼的MAC114近幾年,人們?cè)絹?lái)越感興趣于利用哈希函數(shù)來(lái)設(shè)計(jì)MAC,這是因?yàn)橄馦D5、SHA-1這樣的哈希函數(shù),其軟件執(zhí)行速度比諸如DES這樣的對(duì)稱(chēng)分組密碼要快?;趲荑€的Hash函數(shù)的構(gòu)造方法最早是由M.Bellare等人提出的。它要求所使用的Hash函數(shù)具有迭代結(jié)構(gòu)(如MD5,SHA-1等),即反復(fù)地使用壓縮函數(shù)f將長(zhǎng)消息映射為短消息。然而,諸如SHA-1這樣的哈希函數(shù)并不是專(zhuān)門(mén)為MAC而設(shè)計(jì)的,由于哈希函數(shù)不依賴(lài)于密鑰,所以它不能直接用于MAC。目前,已經(jīng)提出了許多方案將密鑰加到現(xiàn)有的哈希函數(shù)中。HMAC是最受支持的方案,并且在Internet協(xié)議中(如SSL)中有應(yīng)用HMAC115算法由來(lái)HMAC是針對(duì)MAC設(shè)計(jì)的,是一個(gè)將一個(gè)密鑰與一個(gè)現(xiàn)有的散列函數(shù)結(jié)合起來(lái)的提議,是針對(duì)MAC設(shè)計(jì)的,能直接用作MAC。發(fā)表為RFC2104,已經(jīng)作為IP安全中強(qiáng)制實(shí)行的MAC,同時(shí)也被其他的Internet協(xié)議如SSL使用。設(shè)計(jì)目標(biāo)無(wú)需修改地使用現(xiàn)有的散列函數(shù)。特別是,散列函數(shù)的軟件實(shí)現(xiàn)執(zhí)行很快,且程序代碼是公開(kāi)的和容易獲得的。當(dāng)出現(xiàn)或獲得更快的或更安全的散列函數(shù)時(shí),對(duì)算法中嵌入的散列函數(shù)要能輕易地進(jìn)行替換。保持散列函數(shù)的原有性能不會(huì)導(dǎo)致算法性能的降低。使用和處理密鑰的方式很簡(jiǎn)單?;趯?duì)嵌入散列函數(shù)合理的假設(shè),對(duì)認(rèn)證機(jī)制的強(qiáng)度有一個(gè)易懂的密碼編碼分析。HMAC算法邏輯圖Yi=M中的第i個(gè)分組,0≤i≤L-1K=密鑰;如果密鑰的長(zhǎng)度大于b,該密鑰輸入散列函數(shù)產(chǎn)生一個(gè)n比特的密鑰;推薦密鑰長(zhǎng)度大于等于nK+=在K的左邊填充0,使總長(zhǎng)度等于bipad=將00110110重復(fù)b/8次opad=將01011010重復(fù)b/8次HMACHMACK=H[(K+

⊕opad)||H[(K+

⊕ipad)||M]]和ipad異或的結(jié)果是使K中一半的比特值反轉(zhuǎn)。同樣的opad異或的結(jié)果也是使K中一半的比特值反轉(zhuǎn),不同的是反轉(zhuǎn)的比特不同。從效果上看,Si和So通過(guò)散列函數(shù)中的壓縮函數(shù)將從K產(chǎn)生兩個(gè)偽隨機(jī)密鑰。對(duì)于長(zhǎng)消息,HMAC的執(zhí)行時(shí)間近似等于嵌入散列函數(shù)的執(zhí)行時(shí)間。HMAC增加了三個(gè)散列壓縮函數(shù)(對(duì)Si、So和從內(nèi)部散列函數(shù)產(chǎn)生的分組)的執(zhí)行時(shí)間。對(duì)HMAC攻擊成功的概率等價(jià)于對(duì)嵌入散列函數(shù)進(jìn)行如下攻擊中的一種:攻擊者能夠計(jì)算出壓縮函數(shù)的輸出,即使對(duì)攻擊來(lái)說(shuō)IV是隨機(jī)的,秘密的和未知的?!羲柽\(yùn)算的數(shù)量級(jí)為2n。攻擊者能夠找到散列函數(shù)的碰撞,即使IV是隨機(jī)的和秘密的?!羲柽\(yùn)算的數(shù)量級(jí)雖為2n/2,但由于密鑰的存在,需要在線觀察由同一個(gè)密鑰產(chǎn)生的2n/2個(gè)分組,這在實(shí)際中是不可能的。HMAC1183.7數(shù)字簽名(DigitalSignature)技術(shù)每天都在使用簽名,如簽訂合同,在銀行取款,批復(fù)文件等等,但這些都是手寫(xiě)簽名。數(shù)字簽名以電子方式存儲(chǔ)簽名消息,是在數(shù)字文檔上進(jìn)行身份驗(yàn)證的技術(shù)。數(shù)字簽名是附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對(duì)數(shù)據(jù)單元所做的密碼變換,這些數(shù)據(jù)變換允許數(shù)據(jù)的接受者用來(lái)確認(rèn)數(shù)據(jù)單元來(lái)源和數(shù)據(jù)單元的完整性,并保護(hù)數(shù)據(jù),防止被人偽造通過(guò)電子設(shè)備實(shí)現(xiàn)快速、遠(yuǎn)距離交易,用于商業(yè)系統(tǒng)。數(shù)字簽名的要求類(lèi)似于手寫(xiě)簽名,數(shù)字鑒名也應(yīng)滿(mǎn)足以下要求:(1)收方能夠確認(rèn)或證實(shí)發(fā)方的簽名,但不能偽造(2)發(fā)方發(fā)出簽名的消息送收方后,就不能再否認(rèn)他所簽發(fā)的消息:(3)收方對(duì)已收到的簽名消息不能否認(rèn),即有收到認(rèn)證。(4)第三者可以確認(rèn)收發(fā)雙方之間的消息傳送,但不能偽造這一過(guò)程。相比于MAC,數(shù)字簽名可以支持不可否認(rèn)服務(wù)121數(shù)字簽名的特征簽名是不可偽造的:數(shù)字簽名證明是簽名者本人而不是別人簽署了文件簽名是可信的:簽名使文件的接受者相信簽名者慎重的簽署了該文件數(shù)字簽名不能重復(fù)使用:簽名是文件的一部分,任何人都不能把它轉(zhuǎn)移到別的文件上簽名后的文件是不能改變的簽名是不可否認(rèn)的:簽名者不能事后聲稱(chēng)他沒(méi)有簽署過(guò)文件數(shù)字簽名的組成簽名過(guò)程:包括數(shù)字簽名生成算法,以及某種將數(shù)據(jù)編碼成可簽名消息的方法。驗(yàn)證過(guò)程:包括驗(yàn)證算法,以及某種將消息恢復(fù)數(shù)據(jù)的解碼方法。數(shù)字簽名的組成122基于公鑰密碼體制和私鑰密碼體制都可以獲得數(shù)字簽名,目前主要是基于公鑰密碼體制的數(shù)字簽名,包括普通數(shù)字簽名和特殊數(shù)字簽名普通數(shù)字簽名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir數(shù)字簽名算法、DES/DSA、橢圓曲線數(shù)字簽名算法和有限自動(dòng)機(jī)數(shù)字簽名算法等特殊數(shù)字簽名有盲簽名、代理簽名、群簽名、不可否認(rèn)簽名、公平盲簽名、門(mén)限簽名、具有消息恢復(fù)功能的簽名等,它與具體應(yīng)用環(huán)境密切相關(guān)數(shù)字簽名的執(zhí)行方法123基于公鑰密碼體制的數(shù)字簽名124BobAlice簽名驗(yàn)證公共信道SKBPKBsigsig只有B知道SKB,能用它對(duì)消息進(jìn)行簽名。傳輸中無(wú)法篡改。任何第三方可以用PKB驗(yàn)證簽名?;緦?shí)現(xiàn)方案12023/2/5125基于公鑰密碼體制的數(shù)字簽名改進(jìn)措施采用對(duì)稱(chēng)密碼體制對(duì)簽名進(jìn)行加密保護(hù)只有知道該密鑰的人才能對(duì)簽名進(jìn)行解密,進(jìn)而可以驗(yàn)證簽名并獲得消息m的內(nèi)容。

AB:Ek(ESK(m))MSEDVKKPKSKM公鑰加密速度比較慢2023/2/5126基于公鑰密碼體制的數(shù)字簽名基本方案2AB:m||ESK(h(m))Alice簽名驗(yàn)證公共信道SKBPKBsigsigh(m)同時(shí)提供了消息完整性和消息源認(rèn)證功能,由于h(m)具有數(shù)據(jù)壓縮功能,使得簽名處理的內(nèi)容減少,速度加快。RSA數(shù)字簽名2023/2/5127簽名發(fā)送者簽名接收者原始消息mSHA-1H(m)RSA加密算法A的私鑰消息m摘要RSA解密算法消息m摘要A的公鑰SHA-1H(m)H’(m)?2023/2/5128ElGamal簽名方案該方案是由1985年提出的簽名方案,其變型已被美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所采納為數(shù)字簽名算法(DSA)。DSA同時(shí)吸收了被稱(chēng)為schnorr簽名方案的一些思想。ElGamal簽名方案是一個(gè)隨機(jī)化簽名方案,他對(duì)任意長(zhǎng)度的二元消息生成數(shù)字簽名,且需要一個(gè)雜湊函數(shù)h:{0,1}Zp,其中p是大素?cái)?shù)。2023/2/5129ElGamal簽名方案ElGamal簽名方案的密鑰生成每個(gè)實(shí)體產(chǎn)生各自的公鑰和相應(yīng)私鑰,實(shí)體A:2023/2/5130ElGamal簽名方案ElGamal簽名生成即使對(duì)同一個(gè)消息,不同的時(shí)間簽名也不同2023/2/5131ElGamal簽名方案ElGamal簽名驗(yàn)證er×rs=

(αd)

αk×αkk-1{m-dαk}=αm公布于1994年5月19日的聯(lián)邦記錄上,并于1994年12月1日采納為標(biāo)準(zhǔn)DSS。DSS最初只支持DSA簽名算法,是ElGamal簽名方案的改進(jìn)。(目前的標(biāo)準(zhǔn)增加

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論