Hash函數(shù)(消息認證)_第1頁
Hash函數(shù)(消息認證)_第2頁
Hash函數(shù)(消息認證)_第3頁
Hash函數(shù)(消息認證)_第4頁
Hash函數(shù)(消息認證)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

哈希函數(shù)——消息認證認證(authentication)是防止網(wǎng)絡(luò)系統(tǒng)遭受主動攻擊的重要技術(shù)認證的主要目的有兩個第一,驗證消息的發(fā)送者是真的,而不是冒充的,稱為實體認證,包括信源、信宿等的認證和識別。第二,驗證信息的完整性,即驗證數(shù)據(jù)在傳送或存儲過程中未被篡改、重放或延遲,稱為消息認證。11消息認證碼帶密鑰的Hash函數(shù)稱為消息認證碼(MAC:messageauthenticationcode).消息認證碼是實現(xiàn)消息認證的重要工具.MAC有兩個不同的輸入,一個是消息x,另一個是密鑰K.MAC產(chǎn)生定長的輸出.實例:某一個大公司A想給它的客戶發(fā)布一個新產(chǎn)品的廣告,A希望不對廣告內(nèi)容加密,但又希望其它公司不能修改廣告內(nèi)容或冒充公司A發(fā)布同樣的廣告,或者當廣告內(nèi)容被修改后能夠發(fā)現(xiàn).如果使用不帶密鑰的Hash函數(shù),由于其它公司可能在修改廣告內(nèi)容后產(chǎn)生新的散列值,從而使A無法確認原廣告是否被修改.

設(shè)計MAC算法的要求在不知道密鑰的情況下,難以找到兩個不同的消息具有相同的輸出。21消息認證碼基于分組密碼CBC工作模式構(gòu)造MAC基于分組密碼CBC工作模式構(gòu)造MAC算法已經(jīng)成為ISO/IEC9797標準,它使用密文鏈接和雙密鑰三重加密技術(shù)。設(shè)EK表示以K為密鑰的加密算法,設(shè)K’是一個與K不同的密鑰,消息分組長度為n。首先把消息x分成L個n位塊x=x1x2…xL,計算:hK是一個n位MAC.記為CBC-MAC.31消息認證碼基于Hash函數(shù)構(gòu)造MAC設(shè)h是一個(不帶密鑰)Hash函數(shù),K是密鑰,x是消息,則定義消息認證碼hK如下:基于MD5算法直接構(gòu)造消息認證碼MD5-MACMD5-MAC算法使用96字節(jié)的常數(shù)其中下標加法運算是模3相加.如果密鑰K的長度小于128位,則通過多次自行鏈接,最后截取左邊128位作為以下算法中使用的密鑰K。41消息認證碼將密鑰K擴展成3個16字節(jié)的子密鑰K0,K1,K2,其中把K0,K1分成4個32位的子串Kj[i](j=0,1,i=0,1,2,3)對MD5進行修改:用K0代替MD5的4個32位寄存器ABCD.把K1[i]與MD5第i+1遍中每個常數(shù)232sin(j)進行模232加法.將512位的分組鏈接到消息x右邊,再按MD5的要求進行填充.

將上一步的結(jié)果輸入到修改后的MD5中,取其輸出的前一半(64位)作為消息x的消息認證碼MD5-MAC(x).MD5-MAC軟件實現(xiàn)比較容易,其運算速度與MD5大體相近.52HMAC算法

消息認證碼HMAC(keyed-hashingformessageauthenticationcode)是Bellare等人于1996年提出,1997年作為RFC2104發(fā)表,成為事實上的Internet標準,包括IPSec協(xié)議在內(nèi)的一些安全協(xié)議都使用了HMAC算法。HMAC算法利用已有的Hash函數(shù),關(guān)鍵問題是如何使用密鑰。使用不同的Hash函數(shù),就可以得到不同的HMAC。選用MD5時的HMAC記為HMAC-MD5,選用SHA-1時的HMAC記為HMAC-SHA1。62HMAC算法

HMAC算法描述設(shè)HMAC使用的Hash函數(shù)為h,每次處理的輸入分組長度為b比特(使用MD5與SHA-1時,b=512),最后的輸出長度為l比特(使用MD5時,l=128;使用SHA-1時,l=160)。如果HMAC的輸入消息為x,則x=x1x2…xL,其中每一個分組xi(1≤i≤L)的長度為b比特。令HMAC使用的密鑰為K,密鑰K可以是任意的、長度不超過b比特的比特串(HMAC算法推薦密鑰最小長度為l比特)。當密鑰K的長度超過b比特時,使用Hash函數(shù)h對K進行壓縮,把K作為h的輸入,并將輸出的l比特作為密鑰K。72HMAC算法

HMAC算法的流程圖

x2

x1

Si

xL…KipadSo

h(Si||x)KopadHMAC(x)Hash函數(shù)hHash函數(shù)h82HMAC算法

HMAC算法具體執(zhí)行步驟(1)如果密鑰K的長度小于b比特,則在其右邊填充一些“0”,使其成為長度為b比特的比特串,仍記為K。(2)計算Si=Kipad,其中ipad是HMAC算法中規(guī)定的一個長度為b比特的比特模式串,它等于將00110110重復b/8次后得到的比特串。(3)把HMAC的輸入消息x=x1x2…xL附加在Si的右端,得到Si||x=Si||x1x2…xL,將該比特串作為Hash函數(shù)h的輸入,得到l比特的輸出h(Si||x)。(4)計算So=Kopad,其中opad是HMAC算法中規(guī)定的另一個長度為b比特的比特模式串,它等于將01011010重復b/8次后得到的比特串。(5)將第(3)步得到的h(Si||x)附加在So的右端,并以該比特串作為Hash函數(shù)h的輸入,得到l比特的輸出。(6)將第(5)步的輸出作為HMAC算法的最終輸出結(jié)果,即消息x的消息認證碼HMAC(x)。92HMAC算法

HMAC的安全性建立在嵌入Hash函數(shù)基礎(chǔ)上的所有MAC,其安全性在某種程度上都依賴于該Hash函數(shù)的強度。對于HMAC,可以給出HMAC的強度與所嵌入Hash函數(shù)強度之間的關(guān)系。根據(jù)偽造者在給定時間內(nèi)偽造成功和用相同密鑰產(chǎn)生給定數(shù)量的消息-MAC對的概率,可以用于描述MAC的安全性。Bellare等人(1996年)已經(jīng)證明,如果攻擊者已知若干(時間、消息-MAC)對,則成功攻擊HMAC的概率等價于對所嵌入Hash函數(shù)的下列攻擊之一:(1)即使對于攻擊者而言,IV是隨機的、秘密的和未知的,攻擊者也能計算壓縮函數(shù)的輸出。(2)即使IV是隨機的和秘密的,攻擊者也能找到Hash函數(shù)的碰撞。在目前的計算水平下,使用MD5和SHA-1等作為HMAC算法所嵌入的Hash函數(shù),HMAC的安全性是可以保證的。103應(yīng)用數(shù)據(jù)完整性數(shù)據(jù)完整性是指數(shù)據(jù)在生成、傳送或存儲過程中沒有被非法篡改.使用Hash函數(shù)可以保證數(shù)據(jù)的完整性使用MAC

設(shè)用戶A將消息x發(fā)送給接收者B,A與B共享秘密的MAC密鑰K,hK是MAC。用戶A計算x的MAChK(x),將數(shù)據(jù)C=x||hK(x)發(fā)送給B。B通過其它方法確定用戶A的身份,分開接收到的數(shù)據(jù)x’,使用共享密鑰K計算hK(x’),并與接收到的hK(x)相比較。如果hK(x’)=hK(x),則B確定消息x’是來自于具有密鑰K的用戶A,在傳輸過程中未被篡改。C發(fā)送方A接收方B比較x1xx1hK||xhK113應(yīng)用

使用Hash函數(shù)和加密

設(shè)A與B共享分組密碼的密鑰K,EK是加密算法,h是公開的Hash函數(shù).用戶A計算C=EK(x||h(x)),并將數(shù)據(jù)C發(fā)送給B.B利用密鑰K進行解密,得到x’和h(x),然后計算h(x’),并與接收到的h(x)相比較.如果h(x’)=h(x),則B確定消息x’是真實的.由于這里對h(x)進行了加密,所以對Hash函數(shù)h的要求可以適當降低.C發(fā)送方A接收方B比較x1xx1hEK||DKxh123應(yīng)用

加密使用MAC和加密

設(shè)A與B共享分組密碼的密鑰K和MAC的密鑰K’,EK是加密算法,hK’是MAC。用戶A計算C=EK(x||hK’(x)),并將數(shù)據(jù)C發(fā)送給B.B利用密鑰K進行解密,得到x’和hK’(x),然后計算hK’(x’),并與接收到的hK’(x)相比較.如果hK’(x’)=hK’(x),則B確定消息x’是真實的.該技術(shù)的優(yōu)點是即使加密算法被攻破,MAC仍然能提供完整性保護作用.其缺點是需要管理K和K’兩個密鑰.C發(fā)送方A接收方B比較x1xx1hK’EK||DKxhK’133應(yīng)用

實現(xiàn)數(shù)據(jù)源認證數(shù)據(jù)源認證也稱為消息認證,它是要求證實一個實體在過去某個時刻建立的數(shù)據(jù)源.數(shù)據(jù)源認證也包括數(shù)據(jù)完整性.提供數(shù)據(jù)源認證的方法有:(1)使用消息認證碼MAC;(2)對附加上散列值的消息進行加密.設(shè)用戶A將消息x發(fā)送給接收者B,A與B共享密鑰K,則用戶A向B發(fā)送以下數(shù)據(jù)可實現(xiàn)數(shù)據(jù)源的認證.(1)EK(x||h(x)):提供保密(僅雙方共享K)和認證(加密保護散列值);(2)x||EK(h(x)):提供認證(加密保護散列值);(3)x||h(x||S):提供認證(僅雙方共享隨機數(shù)S);(4)EK(x||h(x||S)):提供保密和認證(僅雙方共享K、S)。143應(yīng)用

由于加密軟件慢、硬件費用高、

溫馨提示

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

評論

0/150

提交評論