《信息安全工程》課件第7章_第1頁
《信息安全工程》課件第7章_第2頁
《信息安全工程》課件第7章_第3頁
《信息安全工程》課件第7章_第4頁
《信息安全工程》課件第7章_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第7章雜湊函數(shù)7.1概述7.2

MD-5算法7.3

SHA算法7.4

SHA-256算法7.5雜湊函數(shù)的應(yīng)用7.6其他算法7.1.1雜湊函數(shù)的定義

雜湊(Hash)函數(shù)是將任意長的數(shù)字串m映射成一個較短的定長輸出數(shù)字串H的函數(shù),以h表示,為便于計算也可表示為h(m)。通常稱H=h(m)為m的雜湊值,也稱為雜湊碼、雜湊結(jié)果、哈希值或簡稱雜湊。

該定義包含兩個層面的意思:①這個H無疑打上了輸入數(shù)字串的烙印,因此又稱其為輸入m的數(shù)字指紋(DigitalFingerPrint);②h是多對一映射,因此不能從H求出原來的m,但可以驗(yàn)證任一給定序列m′是否與m有相同的雜湊值。因此,我們經(jīng)常將雜湊函數(shù)稱為單向雜湊函數(shù)。雜湊函數(shù)還可按其是否有密鑰控制劃分為兩大類:一類有密鑰控制,以h(k,m)表示,為密碼雜湊函數(shù)或鑰控雜湊函數(shù);另一類無密鑰控制,為一般雜湊函數(shù)或非鑰控雜湊函數(shù)。

無密鑰控制的單向雜湊函數(shù)其雜湊值只是輸入字串的函數(shù),任何人都可以計算,因而不具有身份認(rèn)證功能,只用于檢測接收數(shù)據(jù)的完整性,如篡改檢測碼MDC用于非密碼計算機(jī)應(yīng)用中。有密鑰控制的單向雜湊函數(shù)要滿足各種安全性要求,其雜湊值不僅與輸入有關(guān),而且與密鑰有關(guān),只有持此密鑰的人才能計算出相應(yīng)的雜湊值,因而具有身份驗(yàn)證功能,如消息認(rèn)證碼MAC,此時的雜湊值也稱做認(rèn)證符(Authenticator)或認(rèn)證碼。說明:

(1)盡管雜湊函數(shù)根據(jù)是否帶有密鑰分為兩類,但這兩類在應(yīng)用中是可以相互轉(zhuǎn)換的,因此事實(shí)上在設(shè)計雜湊算法時,一般不會根據(jù)是否帶密鑰而設(shè)計兩套算法。對于一個鑰控雜湊函數(shù),我們隨機(jī)選取一個密鑰并將其公開,這時該鑰控雜湊函數(shù)就失去了密鑰的意義,從而變成了一個非鑰控雜湊函數(shù)。對于一個非鑰控雜湊函數(shù),我們要求通信雙方在使用雜湊函數(shù)時,將他們共享的某個密鑰作為雜湊函數(shù)的一個參數(shù),這時該雜湊函數(shù)實(shí)質(zhì)上等價于一個鑰控雜湊函數(shù)。可見,兩類雜湊函數(shù)在本質(zhì)上是完全一致的。

(2)根據(jù)雜湊函數(shù)所帶密鑰的個數(shù)也可以進(jìn)行分類。例如,上面所說的鑰控雜湊函數(shù)只帶一個密鑰,則稱其為單變量雜湊函數(shù);如果帶兩個獨(dú)立密鑰,則稱其為雙變量雜湊函數(shù)。

下面給出雙變量雜湊函數(shù)的定義。定義7.1.1雙變量雜湊函數(shù)。f(r,s;m)表示一個有兩個變量的雜湊函數(shù),能夠?qū)⑷我忾L的消息m在密鑰r和s的控制下,映射為固定長的函數(shù)值f(r,s;m)。該函數(shù)具有以下性質(zhì):

(1)已知r和s,f(r,s;m)易于計算。

(2)已知s和f(r,s;m),求r在計算上是不可行的。

(3)在s未知的情況下,對于任意的r,難以計算f(r,s;m)。

(4)已知s的情況下,找到不同的r1和r2滿足f(r1,s;m)=f(r2,s;m)是不可行的。

(5)已知r和f(r,s;m),求s在計算上是不可行的。

(6)已知任意多個(ri,f(ri,s);m)對,求f(r′,s;m)是不可行的,其中r′≠ri。7.1.2對雜湊函數(shù)的攻擊方法

密碼學(xué)上的雜湊函數(shù)是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數(shù)。雜湊函數(shù)可用于數(shù)字簽名、消息的完整性檢測、消息的起源認(rèn)證檢測等。安全的雜湊函數(shù)的存在性依賴于單項(xiàng)函數(shù)的存在性。也就是說,已知雜湊函數(shù)值,構(gòu)造一個消息,使其雜湊函數(shù)值相同,應(yīng)具有計算復(fù)雜性意義下的不可行性。評價雜湊方案的一個辦法是看一下找到一對碰撞消息所花的代價有多高。攻擊雜湊函數(shù)的主要目標(biāo)是找到一對或更多對碰撞消息。在目前已有的攻擊雜湊方案中,一些是一般的方法,可攻擊任何類型的雜湊方案,例如生日攻擊方法;另一些是特殊的方法,只能用于攻擊某些特殊類型的雜湊方案,例如適用于攻擊具有分組鏈結(jié)構(gòu)的雜湊方案的中間相遇攻擊和適用于攻擊基于模算術(shù)的雜湊函數(shù)的修正分組攻擊。生日攻擊方法沒有利用雜湊函數(shù)的結(jié)構(gòu)和任何代數(shù)的弱安全性,它只依賴于消息摘要的長度,即雜湊值的長度。這種攻擊對雜湊函數(shù)提出了一個必要的安全條件,即消息摘要必須足夠長?!吧展簟边@個術(shù)語來自于所謂的生日問題,即在一個教室中最少應(yīng)有多少學(xué)生才使得至少有兩個學(xué)生的生日在同一天的概率不小于1/2。這個問題的答案為23。下面詳細(xì)描述生日攻擊的方法。設(shè)h:X→Y是一個雜湊函數(shù),X和Y都是有限的,并且|X|≥2|Y|,記|X|=m,|Y|=n。顯然,至少有n個碰撞,問題是如何去找到這些碰撞。一個很自然的方法是隨機(jī)選擇k個不同的元素x1,x2,x3,…,xk∈X,計算yi=h(xi),1≤i≤k,然后確定是否有一個碰撞發(fā)生。這個過程類似于把k個球隨機(jī)地扔到n個箱子里,然后查看是否某一箱子里邊至少有兩個球。k個球?qū)?yīng)于k個隨機(jī)數(shù)x1,x2,x3,…,xk,n個箱子對應(yīng)于Y中的n個可能的元素。下面我們將計算用這種方法找到一個碰撞的概率的下界,該下界只依賴于k和n,而不依賴于m。因此,沒有碰撞的概率是(1-1/n)(1-2/n)······(1-(k-1)/n)。如果x是一個比較小的實(shí)數(shù),那么1-x≈e-x,這個估計可由下式推出:現(xiàn)在估計沒有碰撞的概率(1-1/n)(1-2/n)…(1-(k-1)/n)約為1-e-k(k-1)/(2n)。設(shè)ε是至少有一個碰撞的概率,則ε≈1-e-k(k-1)/(2n),從而有:去掉-k這一項(xiàng),有:即如果取ε=0.5,那么k≈1.17sqrt(n)。這表明僅sqrt(n)個X的隨機(jī)元素就能以50%的概率產(chǎn)生一個碰撞。注意:ε的不同選擇將導(dǎo)致一個不同的常數(shù)因子,但k與sqrt(n)仍成正比例。如果X是一個教室中所有學(xué)生的集合,Y是一個非閏年的365天的集合,h(x)表示學(xué)生x的生日,這時n=365,ε=0.5,則由k≈1.17sqrt(n)可知,k≈22.4。因此,此生日問題的答案為23。

生日攻擊隱含著消息摘要的長度的一個下界。一個40bit長的消息摘要是很不安全的,因?yàn)閮H僅用220(大約100萬)次隨機(jī)雜湊可至少以1/2的概率找到一個碰撞。為了抵抗生日攻擊,通常建議消息摘要的長度至少應(yīng)取為128bit,此時生日攻擊需要約264次雜湊。安全雜湊標(biāo)準(zhǔn)的輸出長度選為160bit正是出于這種考慮。中間相遇攻擊是生日攻擊的一種變形,它不比較雜湊值,而是比較鏈中的中間變量。這種攻擊主要適用于攻擊具有分組鏈結(jié)構(gòu)的雜湊方案。中間相遇攻擊的基本原理為:將消息分成兩部分,對偽造消息的第一部分從初始值開始逐步向中間階段產(chǎn)生r1個變量;對偽造消息的第二部分從雜湊結(jié)果開始逐步退回中間階段產(chǎn)生r2個變量。在中間階段有一個匹配的概率與生日攻擊成功的概率一樣。在修正分組攻擊中,為了修正雜湊結(jié)果并獲得期望的值,偽造消息和一個分組級聯(lián)。這種攻擊通常應(yīng)用于最后一個組,因此也稱為修正最后分組攻擊。差分分析是攻擊分組密碼的一種方法。這種攻擊也可用來攻擊某些雜湊算法。

針對雜湊算法的一些弱點(diǎn),可對雜湊算法進(jìn)行攻擊,可利用雜湊算法的代數(shù)結(jié)構(gòu)及其所使用的分組密碼的弱點(diǎn)來攻擊一些雜湊方案。例如,針對DES的一些弱點(diǎn)(即互補(bǔ)性、弱密鑰、密鑰碰撞等),可攻擊基于DES的雜湊方案。7.1.3雜湊函數(shù)的性質(zhì)

雜湊函數(shù)是一個確定的函數(shù),它將任意長的比特串映射為固定長比特串的雜湊值。設(shè)h表示一個雜湊函數(shù),其固定的輸出長度用|h|表示。我們希望h具有以下性質(zhì):

(1)混合變換(Mixing-transformation):對于任意的輸入x,輸出的雜湊值h(x)應(yīng)當(dāng)和區(qū)間[0,2|h|)中均勻的二進(jìn)制串在計算上是不可區(qū)分的。

(2)抗碰撞攻擊(CollisionResistance):找兩個輸入x和y,且x≠y,使得f(x)=f(y)在計算上是不可行的。為使這個假設(shè)成立,要求h的輸出空間應(yīng)當(dāng)足夠大。|h|最小為128,其典型值為160。

(3)抗原像攻擊(Pre-imageResistance):已知一個雜湊值H,找一個輸入串x,使得H=h(x),這在計算上是不可行的。這個假設(shè)同樣也要求h的輸出空間足夠大。

(4)實(shí)用有效性(PracticalEfficiency):給定一個輸入串x,h(x)的計算可以在關(guān)于x的長度規(guī)模的低階多項(xiàng)式(理想情況是線性的)時間內(nèi)完成。

密碼學(xué)中所用的雜湊函數(shù)必須滿足安全性的要求,要能防偽造,并能抗擊各種類型的攻擊,如生日攻擊、中途相遇攻擊等。為此,必須深入研究雜湊函數(shù)的性質(zhì),從中找出能滿足密碼學(xué)需要的雜湊函數(shù)。 7.2

MD-5算法

7.2.1算法步驟

MD-5算法的步驟如下(參看圖7.2.1):

(1)對明文輸入按512bit分組,最后填充使其成為512bit的整數(shù)倍,且最后一組的后64bit用來表示消息長在mod264下的值K,故填充位數(shù)為1~512bit,填充數(shù)字圖樣為(100…0),得Y0,Y1,…,YL-1。其中,Y1為512bit,即16個長為32bit的字,按字計消息長N=L×16。

(2)每輪輸出為128bit,可用下述4個32bit字表示:A、B、C、D。其初始存數(shù)以十六進(jìn)制表示為:A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210。

(3)對512bit(16個32bit字)組進(jìn)行運(yùn)算,Yq表示輸入的第q組512bit數(shù)據(jù),在各輪中參加運(yùn)算。T[1,…,64]為64個元素表,分四組參與不同輪的計算。T[i]為232×abs(sine(i))的整數(shù)部分,i是弧度。T[i]可用32bit二元數(shù)表示,T是32bit隨機(jī)數(shù)源。圖7.2.1MD-5的一個512-bit組的處理

MD-5是4輪運(yùn)算,各輪的邏輯函數(shù)不同,每輪又要進(jìn)行16步迭代運(yùn)算,因此4輪共需64步完成。每步完成(參看圖7.2.2):圖7.2.2MD-5的基本運(yùn)算表7.2.1各輪的邏輯函數(shù)表7.2.2

邏輯函數(shù)的真值表圖7.2.3

MD-5所使用的T[i](i=1~64)值 7.3

SHA算法

7.3.1

SHA家族

SHA是由美國國家安全局(NSA)設(shè)計,并由美國國家標(biāo)準(zhǔn)與技術(shù)協(xié)會(NIST)發(fā)布的一系列密碼雜湊函數(shù)。SHA家族的第一個成員SHA-0發(fā)布于1993年。1995年,SHA-1發(fā)布(一般SHA指的就是SHA-1)。另外,還有四種變體:SHA-224、SHA-256、SHA-384和SHA-512(它們有時也被稱做SHA-2),用以提升輸出范圍和更變一些細(xì)微設(shè)計的算法。

SHA-1、SHA-224、SHA-256、SHA-384和SHA-512都被需要安全雜湊算法的美國聯(lián)邦政府所應(yīng)用,他們也使用其他密碼算法和協(xié)定來保護(hù)敏感的未保密資料。美國聯(lián)邦信息處理標(biāo)準(zhǔn)FIPSPUB180-1也鼓勵私人或商業(yè)組織使用SHA-1加密。弗里茨芯片F(xiàn)ritz-chip將很可能使用SHA-1雜湊函數(shù)來實(shí)現(xiàn)個人電腦上的數(shù)字內(nèi)容版權(quán)管理。

7.3.2算法描述

1.主環(huán)路

消息Y0,Y1,…,YL為512bit分組,每組有16個32bit字,每送入512bit,先將A,B,C,D,EAA,BB,CC,DD,EE,進(jìn)行四輪迭代,每輪完成20個運(yùn)算,每個運(yùn)算對A,B,C,D,E中的三個進(jìn)行非線性運(yùn)算,而后進(jìn)行移位運(yùn)算(類似于MD-5),如圖7.3.1所示。每輪有一常數(shù)Kt,實(shí)際上僅用4個常數(shù),即圖7.3.1

SHA各512bit組的處理表7.3.1各輪的基本運(yùn)算

2.SHA的基本運(yùn)算

如圖7.3.2所示,每輪基本運(yùn)算如下:(0

t

79)Wt=Wt-3XORWt-8XORWt-14XORWt-16,16

t

79其中:A,B,C,D,E為五個32bit存儲單元(共160bit);t為輪數(shù),0≤t≤79;ft為基本邏輯函數(shù)(如表7.3.1所示);CLSs表示循環(huán)左移s位;Wt由當(dāng)前輸入導(dǎo)出,為一個32bit字;Kt為常數(shù);+表示mod232加。圖7.3.2

SHA的基本運(yùn)算框圖

7.3.3

SHA與MD-4和MD-5的比較

總之,它們之間的比較可簡單地表示如下:

SHA=MD-4+擴(kuò)展變換+外加一輪+更好的雪崩

MD-5=MD-4+改進(jìn)的比特雜湊+外加一輪+更好的雪崩 7.4

SHA-256算法

自從2004年王小云提出一種新的碰撞攻擊方法后,雜湊函數(shù)的安全性就受到了很大的挑戰(zhàn),目前MD-5和SHA-1一般都不建議再使用。為了安全起見,應(yīng)該使用更長的雜湊算法,目前SHA-256算法很受青睞。中國無線局域網(wǎng)國家安全標(biāo)準(zhǔn)WAPI就采用了SHA-256算法。自2005年起,IEEE802.11(i)也認(rèn)為僅支持SHA-1很難滿足一些高安全性要求的應(yīng)用,并決定將SHA-256作為其中一個算法選項(xiàng)。下面我們簡單介紹一下SHA-256算法。圖7.4.1SHA-256的壓縮函數(shù) 7.5雜湊函數(shù)的應(yīng)用

7.5.1

MAC算法

MAC(MessageAuthenticationCode)是一種與密鑰相關(guān)的單向雜湊函數(shù),稱為消息鑒別碼。MAC除了具有與上述單向雜湊函數(shù)同樣的性質(zhì)外,還包括一個密鑰。只有擁有相同密鑰的人才能鑒別這個雜湊值,這對于在沒有保密的情況下提供消息的可鑒別性是非常有用的。

MAC既可用于驗(yàn)證多個用戶之間數(shù)據(jù)通信的完整性,也可用于單個用戶鑒別磁盤文件的完整性。對于后者,用戶首先計算磁盤文件的MAC,并將MAC存放在一個表中。如果用戶的磁盤文件被黑客或病毒修改,則可以通過計算和比較MAC來鑒別。同時,由于MAC受到密鑰的保護(hù),黑客并不知道該密鑰,因而防止了對原來MAC的修改。如果使用單純的雜湊函數(shù),則黑客在修改文件的同時,也可能重新計算其雜湊值,并替換原來的雜湊值,這樣磁盤文件的完整性就得不到有效的保護(hù)。

將單向雜湊函數(shù)轉(zhuǎn)換成MAC可以通過對稱加密算法加密雜湊值來實(shí)現(xiàn)。相反,將MAC轉(zhuǎn)換成單向雜湊函數(shù)只需將密鑰公開即可。

MAC算法有很多種,常用的MAC是基于分組加密算法和單向雜湊函數(shù)組合的實(shí)現(xiàn)方案。有兩種組合方案:一是先對消息求雜湊值,然后加密雜湊值;二是先加密消息,然后對密文求雜湊值。兩者相比,前者的安全性要高得多。例如,在CBC-MAC方法中,首先使用分組加密算法的CBC或CFB模式加密消息,然后計算最后一個密文分組的雜湊值,再用CBC或CFB模式加密該雜湊值。CBC-MAC方法被ISO8731-1、ISO9797和ANSIX9.9等國際標(biāo)準(zhǔn)所采納。7.5.2基于密鑰雜湊函數(shù)的消息完整性校驗(yàn)碼MAC

密碼雜湊函數(shù)為數(shù)據(jù)完整性的一種密碼原型。在共享密鑰的情況下,雜湊函數(shù)將密鑰作為它的一部分輸入,另一部分輸入為需要認(rèn)證的消息。因此,為了認(rèn)證一個消息m,發(fā)送者計算:MAC=h(k‖m)(7.5.1)其中,k為發(fā)送者和接收者的共享密鑰,“‖”表示比特串的鏈接。依據(jù)雜湊函數(shù)的性質(zhì),我們可以假設(shè),為了用雜湊函數(shù)關(guān)于密鑰k和消息m生成一個有效的MAC,該主體必須擁有正確的密鑰和正確的消息。與發(fā)送者共享密鑰k的接收者應(yīng)當(dāng)由所接收的消息m重新計算出MAC,并檢驗(yàn)同所收到的MAC是否一致。如果一致,就可以相信該消息來自所聲稱的發(fā)送者。由于這樣的MAC是使用雜湊函數(shù)構(gòu)造的,因此也稱為HMAC(用雜湊函數(shù)構(gòu)造的MAC)。為謹(jǐn)慎起見,HMAC通常通過下面的形式進(jìn)行計算:HMAC=h(k‖m‖k)(7.5.2)也就是說,密鑰是要認(rèn)證消息的前綴和后綴,這是為了阻止攻擊者利用某些雜湊函數(shù)的“輪函數(shù)迭代”結(jié)構(gòu)。如果不用密鑰保護(hù)消息的兩端,則某些雜湊函數(shù)具有的這樣的已知結(jié)構(gòu),使得攻擊者不必知道密鑰k就可以選擇一些數(shù)據(jù)用作消息前綴或后綴來修改消息。7.5.3完整性校驗(yàn)與數(shù)據(jù)源認(rèn)證的區(qū)別

認(rèn)證這一概念可以分為三個子概念:數(shù)據(jù)源認(rèn)證(Data-originAuthentication)、實(shí)體認(rèn)證(EntityAuthentication)和認(rèn)證的密鑰建立(AuthenticatedKeyEstablishment)。第一個概念主要涉及驗(yàn)證消息的某個聲稱屬性;第二個概念則更多地涉及驗(yàn)證消息發(fā)送者所聲稱的身份;第三個概念進(jìn)一步致力于產(chǎn)生一條安全信道,用于后繼的應(yīng)用層安全通信會話。

數(shù)據(jù)源認(rèn)證(也稱為消息認(rèn)證,MessageAuthentication)與數(shù)據(jù)完整性密切相關(guān)。早期的密碼和信息安全教程認(rèn)為這兩個概念沒有本質(zhì)區(qū)別。這種觀點(diǎn)考慮到使用被惡意修改過的信息和使用來源不明的消息具有相同的風(fēng)險。然而,數(shù)據(jù)源認(rèn)證和數(shù)據(jù)完整性是兩個差別很大的概念。這兩個概念在很多方面都是可以區(qū)分的。

首先,數(shù)據(jù)源認(rèn)證必然涉及通信。它是一種安全服務(wù),消息接收者用它來驗(yàn)證消息是否來源于所聲稱的消息源。數(shù)據(jù)完整性則不一定包含通信過程,該安全服務(wù)還可以用于存儲的數(shù)據(jù)。

其次,數(shù)據(jù)源認(rèn)證必然涉及消息源的識別,而數(shù)據(jù)完整性則不一定涉及該過程。再次,也是最重要的一點(diǎn),數(shù)據(jù)源認(rèn)證必然涉及確認(rèn)消息的新鮮性(Fressness),而數(shù)據(jù)完整性卻無此必要,即一組老的數(shù)據(jù)可能有完善的數(shù)據(jù)完整性。為了獲得數(shù)據(jù)源認(rèn)證服務(wù),消息的接收者應(yīng)該驗(yàn)證該消息是否是在新近發(fā)送的(也就是說,消息的發(fā)送和接收之間的時間間隔應(yīng)該足夠小)。接收者認(rèn)定的在新近發(fā)送的消息通常稱為新鮮的消息。要求消息的新鮮性是符合常識的,即新鮮的消息意味著在通信雙方存在著一個良好的通信,并且進(jìn)一步意味著對等的通信方、通信設(shè)備、系統(tǒng)或者消息本身遭到阻撓或破壞的可能性很小。7.5.4雜湊函數(shù)的使用模式

楊波(《現(xiàn)代密碼學(xué)(第二版)》)對雜湊函數(shù)在數(shù)據(jù)完整性校驗(yàn)方面的基本使用進(jìn)行了非常全面的歸納,共有以下6種方式。

(1)消息與雜湊碼鏈接后用單鑰算法加密。由于所用密鑰k僅為收發(fā)雙方A、B共享,因此可保證消息的確來自A并且未被篡改。同時由于消息和雜湊碼都被加密,因此這種方式還提供了保密性,見圖7.5.1。圖7.5.1方式一

(2)用單鑰加密算法僅對雜湊碼加密。這種方式用于不要求保密性的情況下,可減少處理負(fù)擔(dān)。注意:這種方式和圖7.5.1所示的MAC結(jié)果完全一樣,即將Ek[h(m)]看做一個函數(shù),函數(shù)的輸入為消息m和密鑰k,輸出為固定長度的密文,見圖7.5.2。圖7.5.2方式二

(3)用公鑰加密算法和發(fā)送方的私鑰僅加密雜湊碼。和方式二一樣,這種方式提供認(rèn)證性,又由于只有發(fā)送方能產(chǎn)生加密的雜湊碼,因此這種方式還對發(fā)送方發(fā)送的消息提供了數(shù)字簽名,事實(shí)上這種方式就是數(shù)字簽名,見圖7.5.3。

(4)消息的雜湊值用公鑰加密算法和發(fā)送方的私鑰加密后與消息鏈接,再對鏈接后的結(jié)果用單鑰加密算法加密,這種方式提供了保密性和數(shù)字簽名,見圖7.5.4。圖7.5.3方式三圖7.5.4方式四

(5)使用這種方式時要求通信雙方共享一個秘密值s,A計算消息m和秘密值s鏈接在一起的雜湊值,并將此雜湊值附加到m后發(fā)往B。因B也知s,所以可重新計算雜湊值以對消息進(jìn)行認(rèn)證。由于秘密值s本身未被發(fā)送,因此敵手無法對截獲的消息加以篡改,也無法產(chǎn)生假消息。這種方式僅提供認(rèn)證,見圖7.5.5。圖7.5.5方式五

(6)這種方式是在方式五中消息與雜湊值鏈接以后再增加單鑰加密運(yùn)算,從而又可提供保密性,見圖7.5.6。圖7.5.6方式六

7.5.5基于雜湊函數(shù)的密鑰導(dǎo)出

在任何一個信息系統(tǒng)中,密鑰的安全性都是整個系統(tǒng)安全的核心所在。一個密鑰只能對應(yīng)一種業(yè)務(wù),不能同時有多種用途。例如,對于單播通信,必須協(xié)商單播會話加密密鑰和單播會話完整性校驗(yàn)密鑰;對于組播通信,必須協(xié)商組播會話加密密鑰和組播會話完整性校驗(yàn)密鑰。在大型的安全系統(tǒng)中,密鑰的層次設(shè)計都是非常嚴(yán)格的。下面以中國無線局域網(wǎng)國家安全標(biāo)準(zhǔn)WAPI為例來介紹WAPI中密鑰的層次關(guān)系,如圖7.5.7所示。圖7.5.7

WAPI鑒別協(xié)議框架由圖7.5.7可知,除了初始密鑰(即根密鑰)外,WAPI本身有三個層次的密鑰:基密鑰BK、單播會話密鑰U_K和組播會話密鑰B_K。它們的功能分別是身份鑒別、單播安全通信和組播安全通信。對于這三種密鑰,在通信中都不直接使用,而是將其分別通過密鑰導(dǎo)出函數(shù)(基于SHA-256的KD-HMAC-SHA-256)對其進(jìn)行計算,將計算結(jié)果的前、后半部分分別用于加密和完整性校驗(yàn)。

圖7.5.8為WAPI基于證書的BK導(dǎo)出算法。圖7.5.8中的符號解釋見5.3.5節(jié)。圖7.5.8基于證書的BK導(dǎo)出圖7.5.9基于預(yù)共享密鑰的BK導(dǎo)出圖7.5.10

WAPI單播密鑰的導(dǎo)出圖7.5.11

WAPI組播密鑰的導(dǎo)出以上算法是WAPI協(xié)議中所有關(guān)于密鑰導(dǎo)出的算法??梢钥闯?雜湊函數(shù)的密鑰導(dǎo)出功能在信息安全系統(tǒng)的設(shè)計和實(shí)現(xiàn)中占據(jù)很重要的地位。

另外,雜湊函數(shù)除了可以用于密鑰導(dǎo)出外,還可以用于隨機(jī)數(shù)的產(chǎn)生。值得注意的是,在進(jìn)行隨機(jī)數(shù)生成時,必須以某個私鑰作為參數(shù)或隨機(jī)種子。這種方式產(chǎn)生的隨機(jī)數(shù)對于私鑰擁有者之外的其他用戶來說是不可預(yù)知的和隨機(jī)的。

7.5.6基于雜湊函數(shù)的身份認(rèn)證

基于雜湊函數(shù)的身份認(rèn)證一般包括兩種常見形式:一種是單機(jī)對用戶的認(rèn)證(如Windows登錄時認(rèn)證用戶);另一種是用戶之間的認(rèn)證。

圖7.5.12簡單地給出了單機(jī)對用戶認(rèn)證的原理。圖7.5.12單機(jī)對用戶認(rèn)證的原理圖7.5.13用戶之間認(rèn)證的原理 7.6其他算法

7.6.1

GOST雜湊算法

GOST雜湊算法由俄羅斯國家標(biāo)準(zhǔn)GOSTR34.11-94給出,于1995年1月1日合法使用。它是利用分組大小為64bit的GOST28147-89分組密碼構(gòu)造的256bit雜湊算法,密鑰k、消息分組Mi和雜湊值的長度均為256bit,是GOSTR34.10-94的一個重要組成部分。

算法要點(diǎn):Hi=f(Mi,Hi-1)

(2)用每個密鑰在ECB模式下對Hi-1的各64bit組加密,將所得的新的256bit作為暫時變量S存儲。

(3)Hi是S、Mi和Hi-1的復(fù)雜的線性函數(shù)。消息M的雜湊值并非最后一次迭代的結(jié)果Ht,而是由Ht、所有消息組的異或值Z、消息總長L按下式來確定的:H(M)=f(Z

M’,f(L,f(M’,Ht)))其中,M′是M經(jīng)過填充后的最后一組。圖7.6.1

SNEFRU雜湊算法

(3)其非線性函數(shù)分析類似于DES的S盒,可用差值分析法。Biham和Shamir曾證明,2回合SNEFRU(128bit)可找出兩個不同消息有相同雜湊值,且找到了四個消息有相同雜湊值。用微機(jī)發(fā)現(xiàn)一對消息有相同雜湊值只要3分鐘,而對給定雜湊值找到另一個消息具有此雜湊值需1小時左右。(3)其非線性函數(shù)分析類似于DES的S盒,可用差值分析法。Biham和Shamir曾證明,2回合SNEFRU(128bits)可找出兩個不同消息有相同值。且找到了四個消息有相同雜湊值。用微機(jī)發(fā)現(xiàn)

溫馨提示

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

最新文檔

評論

0/150

提交評論