mac

消息認證碼(帶密鑰的hash函數)

消息認證碼(帶密鑰的Hash函數):密碼學中,通信實體雙方使用的一種驗證機制,保證消息數據完整性的一種工具。構造方法由M.Bellare提出,安全性依賴於Hash函數,故也稱帶密鑰的Hash函數。消息認證碼是基於密鑰和消息摘要所獲得的一個值,可用於數據源發認證和完整性校驗。

MAC


mac[消息認證碼(帶密鑰的hash函數)]
mac[消息認證碼(帶密鑰的hash函數)]
消息認證碼(帶密鑰的Hash函數):密碼學中,通信實體雙方使用的一種驗證機制,保證消息數據完整性的一種工具。構造方法由M.Bellare提出,安全性依賴於Hash函數,故也稱帶密鑰的Hash函數。消息認證碼是基於密鑰和消息摘要所獲得的一個值,可用於數據源發認證和完整性校驗。
在發送數據之前,發送方首先使用通信雙方協商好的散列函數計算其摘要值。在雙方共享的會話密鑰作用下,由摘要值獲得消息驗證碼。之後,它和數據一起被發送。接收方收到報文後,首先利用會話密鑰還原摘要值,同時利用散列函數在本地計算所收到數據的摘要值,並將這兩個數據進行比對。若兩者相等,則報文通過認證。

MAC計算方式


消息驗證碼有兩種計算方式:
一種是利用已有的加密演演算法,如DES等直接對摘要值進行加密處理;另一種是使用專門的MAC演演算法。HMAC,它基於MD5或者SHA-1,在計算散列值時將密鑰和數據同時作為輸入,並採用了二次散列迭代的方式,實際計算方法如下:
HMAC(K,M)=H(K⊕opad∣H(K⊕ipad∣M))
其中K是密鑰,長度應為64位元組,若小於該長度,則自動在密鑰後面用“0”填充補足。M是消息;H是散列函數;opad和Ipad分別是由若干個0x5c和0x36組成的字元串;⊕表示異或運算,∣表示連接操作。