CyberGlossary

暗号

暗号学的ハッシュ関数

別称: ハッシュ関数, メッセージダイジェスト

定義

任意長の入力を固定長のダイジェストへ写す決定的な一方向関数で、衝突耐性・原像耐性・第二原像耐性を備える。

暗号学的ハッシュ関数は、任意長の入力を固定長の出力(ダイジェスト)に圧縮し、原像耐性(H(x) から x を求めにくい)、第二原像耐性(x が与えられたとき H(x') = H(x) となる x' ≠ x を見つけにくい)、衝突耐性(同じハッシュを持つ任意の x ≠ x' を見つけにくい)を満たします。決定的で高速、出力は擬似ランダムに見えます。デジタル署名、MAC(HMAC、KMAC)、Argon2 や scrypt などの KDF と組み合わせたパスワード保存、完全性チェック、マークル木、ブロックチェーン、コンテンツアドレッシングなどの基盤です。MD5 や SHA-1 は実用的な衝突が見つかっており破られているため、セキュリティ目的では使用できません。現代の推奨は SHA-256、SHA-3、BLAKE2/BLAKE3 などの系統です。

  • Git は SHA-1(SHA-256 への移行中)でコミットやオブジェクトを識別する。
  • TLS 証明書のフィンガープリントは通常 SHA-256 ハッシュ。

関連用語