HMAC
出典: フリー百科事典『ウィキペディア(Wikipedia)』
HMAC(Keyed-Hashing for Message Authentication code)とは、MAC(Message Authentication Code)の一つで、ハッシュ関数を使って秘密鍵と組み合わせて計算するMACである。
1997年2月、IBMのKrawczyk達により提唱され、RFC 2104として公開されている。 また、FIPS PUB 198にも採用されている。
[編集] 概要
MACは認証及び改竄検出技術の核となるアルゴリズムである。 MAC値の算出時にHMACアルゴリズムの中で用いられるハッシュアルゴリズムは、MD5やSHA-1など任意のハッシュ関数が適用可能であり、それぞれHMAC-MD5、HMAC-SHA1などと呼ばれる。
HMACは次のように定義される:
ここで、"h" は繰り返し型ハッシュ関数, "K" は秘密鍵で、ハッシュ関数のブロックサイズより短い場合は0でパディングを行う。"m" は認証対象メッセージである。"||" は連結、""は排他的論理和を表す。2つの定数 "ipad" と "opad" は、各々ブロック長サイズで、"ipad" = 0x363636...3636 と "opad" = 0x5c5c5c...5c5c と定義する。つまり、ハッシュ関数のブロック長が 512bitの場合ならば、"ipad" と "opad" は、それぞれ64個の 0x36 や 0x5c の連続である。
HMACにより算出された値はMAC値と呼ばれる。
[編集] 参考文献
- Mihir Bellare, Ran Canetti and Hugo Krawczyk, "Keying Hash Functions for Message Authentication", CRYPTO'96, pp1–15, 1996.