暗号
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 リクエストを署名する。
関連用語
メッセージ認証コード(MAC)
共有秘密鍵で計算・検証される短い対称鍵タグで、メッセージの認証と改ざん検知を行う仕組み。
暗号学的ハッシュ関数
任意長の入力を固定長のダイジェストへ写す決定的な一方向関数で、衝突耐性・原像耐性・第二原像耐性を備える。
SHA-256
SHA-2 ファミリーに属する 256 ビットの暗号学的ハッシュ関数で、デジタル署名、TLS、ブロックチェーン、完全性検証で広く利用される。
PBKDF2
PKCS #5 / RFC 8018 で定義されたパスワードベースの鍵導出関数で、設定可能な反復回数とソルトを用いて擬似乱数関数を繰り返し適用する。
デジタル署名
メッセージや文書の真正性・完全性・否認防止を証明する公開鍵暗号方式のメカニズム。
TLS (Transport Layer Security)
TLS (Transport Layer Security) — definition coming soon.