計算HMAC
Message Authentication Code (MAC) 是用于確信信息在傳輸過程中沒有被修改過,體現了信息完整性, MAC 有很多種算法,大部分算法用于簡單的場景(如文件傳輸),他們都有效,但如果用于都未曾考慮會被惡意攻擊的情況,在密碼學領域中,更多被應用的是 HMAC , HMAC 更安全,因為它是基于 Key 的。 HMAC 是使用諸如 MD5,SHA-1 等散列算法構造 MAC 。
HMAC 在這樣一種場景中被應用:
巴赫爾、穆罕默德是為伊拉克臨時政府中不同的伊斯蘭派系,由于美國已經在伊拉克設置了大量情報機構,他們擔心政府部內部文件在網絡傳輸可能被美國情報局修改,考慮起見,巴赫爾、穆罕默德決定使用 MAC 技術:
1,? 他們商榷一個簡單的密鑰 Key1
2,? 他們商榷一種可靠的 HMAC 算法,如 HMACSHA1
3,? 他們每次發送政府審批報告前,都用 HMACSHA1 進行計算,并將該 hmac 值 x1 附帶發送給對方
4,? 對方接收到文件,將文件進行一次 HMAC 的計算,得出新的 hmac 值 x2 ,對比 x1 和 x2 ,可以知道文件是否在中途被修改過。
注意,上述的步驟如果不考慮惡意攻擊者,可以使用消息摘要,惡意攻擊者可以修改你的文件,然后重新幫你計算摘要,最后替換你的摘要:(
?????? 關于 HMAC 的更多標準,可以參考 RFC2104 。




























??????????????// 本例子用KeyGenerator生成key,實際上,key可以保存起來,也可以被分發給其他人



































posted on 2006-05-21 17:05 david.turing 閱讀(1582) 評論(1) 編輯 收藏 所屬分類: BounyCastle&JCE