hmac的設(shè)計目標(biāo)是什么?
HMAC是密鑰相關(guān)的哈希運算消息認(rèn)證碼(Hash-based Message Authentication Code)的縮寫,由H.Krawezyk,M.Bellare,R.Canetti于1996年提出的一種基于Hash函數(shù)和密鑰進行消息認(rèn)證的方法,并于1997年作為RFC2104被公布,并在IPSec和其他網(wǎng)絡(luò)協(xié)議(如SSL)中得以廣泛應(yīng)用,現(xiàn)在已經(jīng)成為事實上的Internet安全標(biāo)準(zhǔn)。它可以與任何迭代散列函數(shù)捆綁使用。
中文名
哈希消息認(rèn)證碼
外文名
Hash-based Message Authentication Code
縮寫
HMAC
功能
提供消息認(rèn)證
應(yīng)用
IPSec協(xié)議等
快速
導(dǎo)航
設(shè)計目標(biāo)算法描述算法密鑰安全性典型應(yīng)用
產(chǎn)生背景
隨著Internet的不斷發(fā)展,網(wǎng)絡(luò)安全問題日益突出。為了確保接收方所接收到的報文數(shù)據(jù)的完整性,人們采用消息認(rèn)證來驗證上述性質(zhì)。用來對消息進行認(rèn)證的主要方式有以下3種:消息認(rèn)證碼、散列函數(shù)和消息加密。
消息認(rèn)證碼:它是一個需要密鑰的算法,可以對可變長度的消息進行認(rèn)證,把輸出的結(jié)果作為認(rèn)證符。
散列函數(shù):它是將任意長度的消息映射成為定長的散列值的函數(shù),以該散列值消息摘要)作為認(rèn)證符。
消息加密:它將整個消息的密文作為認(rèn)證符。
近年來,人們越來越感興趣于利用散列函數(shù)來設(shè)計MAC,原因有二:
①一般的散列函數(shù)的軟件執(zhí)行速度比分組密碼的要快。
②密碼散列函數(shù)的庫代碼來源廣泛。
因此HMAC應(yīng)運而生,HMAC是一種利用密碼學(xué)中的散列函數(shù)來進行消息認(rèn)證的一種機制,所能提供的消息認(rèn)證包括兩方面內(nèi)容:
①消息完整性認(rèn)證:能夠證明消息內(nèi)容在傳送過程沒有被修改。
②信源身份認(rèn)證:因為通信雙方共享了認(rèn)證的密鑰,接收方能夠認(rèn)證發(fā)送該數(shù)據(jù)的信源與所宣稱的一致,即能夠可靠地確認(rèn)接收的消息與發(fā)送的一致。
HMAC是當(dāng)前許多安全協(xié)議所選用的提供認(rèn)證服務(wù)的方式,應(yīng)用十分廣泛,并且經(jīng)受住了多種形式攻擊的考驗。[1]