CyberGlossary

暗号

HMAC

別称: 鍵付きハッシュ MAC, RFC 2104 HMAC

定義

RFC 2104 と FIPS 198-1 で定義された、暗号学的ハッシュ関数を土台とする鍵付きメッセージ認証コード(MAC)構造。

HMAC(Hash-based Message Authentication Code)は、RFC 2104 と FIPS 198-1 で定義された対称 MAC 構造で、秘密鍵 K とハッシュ関数 H を組み合わせてタグを生成します:HMAC(K,m) = H((K' XOR opad) || H((K' XOR ipad) || m))。この入れ子構造により、SHA-256 のような Merkle-Damgård ハッシュと組み合わせても長さ拡張攻撃に耐えられ、安全性は弱衝突耐性と圧縮関数の擬似乱数性に帰着されます。HMAC-SHA-256 や HMAC-SHA-512 が広く利用され、TLS のレコード保護、JWT 署名、OAuth、IPsec、また PBKDF2 や HKDF の内部 PRF として使われています。HMAC は対称メッセージ認証における堅牢なデフォルトとして現在も推奨されます。

  • HS256 アルゴリズムの JWT は HMAC-SHA-256 で署名される。
  • AWS Signature Version 4 は HMAC-SHA-256 で API リクエストを署名する。

関連用語