読み方 : エイチマック
HMAC【Hash-based Message Authentication Code】
概要

送信者はメッセージ本文と暗号鍵からMAC値を算出して本文と共に送信する。受信者はあらかじめ共有しておいた暗号鍵と受信した本文から同じようにMAC値を算出する。これが受信メッセージに添付された符号に等しければ、送信者は暗号鍵を知っている本人であり、かつ、伝送途上で改竄されていないことを確認できる。
具体的には、まず何らかのハッシュ関数を用いて、暗号鍵と定数 “3636…36”(16進数)の排他的論理和(XOR)にメッセージ本文を連結したものからハッシュ値を算出する。これを、暗号鍵と定数 “5C5C…5C”(16進数)のXORに連結し、再度ハッシュ値を算出する。これがMAC値となる。
ハッシュ関数には反復型の暗号学的ハッシュ関数ならば任意のものを利用できる。MD5を用いたものを「HMAC-MD5」、SHA-1を用いたものを「HMAC-SHA1」、SHA-2のSHA-256を用いたものを「HMAC-SHA256」というように呼ぶ。
(2020.6.2更新)