読み方:えっちまっく《hashed based message authentication code》インターネットのメッセージ認証でメッセージに付与される符号MACのうち、ハッシュ値を用いたもののこと。Weblio国語辞典では「HMAC」の意味や使い方、用例、類似表現などを解説しています。">

「HMAC」の意味や使い方 わかりやすく解説 Weblio辞書 (original) (raw)

HMAC-SHA1の生成

HMAC (Hash-based Message Authentication Code または keyed-Hash Message Authentication Code) とは、メッセージ認証符号 (MAC; Message Authentication Code) の一つであり、秘密鍵とメッセージ(データ)とハッシュ関数をもとに計算される。

1997年2月、IBMのKrawczykらにより提唱され、RFC 2104として公開されている。また、FIPS PUB 198にも採用されている。

概要

MACは認証及び改竄検出技術の核となるアルゴリズムである。HMACアルゴリズムは、MAC値(タグ)の算出に暗号学的ハッシュ関数を用いる。ハッシュ関数としては、SHA-2SHA-3など任意の繰返し型ハッシュ関数を適用可能であり、ハッシュ関数Xを用いるHMACは、HMAC-Xと呼ばれる。例えば、SHA256を用いた場合にはHMAC-SHA256となる。 HMACのMAC値(タグ)の長さは、利用されるハッシュ関数の出力長と等しい。例えばHMAC-SHA256であればタグは256ビットである。

他のMACと同様に、HMACは暗号化機能は持たない。タグはメッセージ(あるいは暗号化したメッセージでもよい)と共に送信される。秘密鍵を共有している受信者は、受け取ったメッセージと秘密鍵からHMACアルゴリズムを用いてMAC値を再計算し、送られてきたタグと等しいかどうかをチェックすることで、受け取ったメッセージが同じ鍵を共有している者から送られてきたことを確認できる。

定義

HMACは次のように定義される:

H M A C K ( m ) = h ( ( K ⊕ o p a d ) | | h ( ( K ⊕ i p a d ) | | m ) ) . {\displaystyle {\mathit {HMAC}}_{K}(m)=h\left((K\oplus opad)\;||\;h((K\oplus ipad)\;||\;m)\right).} カテゴリ:ハッシュ関数メッセージ認証コード認証付き暗号

暗号
暗号史 暗号解読 Cryptography portal en:Outline of cryptography
共通鍵暗号 ブロック暗号 ストリーム暗号 暗号利用モード 公開鍵暗号 暗号学的ハッシュ関数 メッセージ認証コード 認証付き暗号 乱数生成器 ステガノグラフィー

カテゴリ