ブログに戻る
hash 2025-01-30

暗号学的ハッシュ関数の解説

暗号学的ハッシュ関数の仕組み、特性、MD5、SHA-256、bcryptの使い分けを学びます。

暗号学的ハッシュ関数は、現代のセキュリティシステムの基本的な構成要素です。任意のデータをデジタル指紋として機能する固定サイズの出力に変換します。

暗号学的ハッシュ関数の特性

良い暗号学的ハッシュ関数は以下の特性を持ちます:

1. 決定論的:同じ入力は常に同じ出力を生成

2. 高速計算:任意の入力のハッシュを素早く計算

3. 原像耐性:ハッシュから入力を逆算できない

4. 衝突耐性:同じハッシュを持つ異なる入力を見つけることが極めて困難

5. アバランシェ効果:小さな入力変更が劇的な出力変更を引き起こす

一般的なハッシュアルゴリズム

MD5(128ビット)

  • 状態:破られている、安全ではない
  • 用途:ファイルチェックサム、レガシーシステム

SHA-256(256ビット)

  • 状態:安全、広く使用されている
  • 用途:デジタル署名、ブロックチェーン、ファイル整合性

パスワード用ハッシュ関数

パスワードハッシュにMD5、SHA-1、SHA-256を単体で使用しないでください! 高速すぎてブルートフォース攻撃が可能です。

bcrypt

  • 組み込みソルトを含む
  • 設定可能なワークファクター

Argon2(PHC 2015優勝)

  • 設定可能なメモリ、時間、並列性
  • GPUおよびASIC攻撃に耐性

適切なハッシュ関数の選択

目的推奨

|-----|-----|

パスワード保存Argon2またはbcrypt ファイル整合性SHA-256 デジタル署名SHA-256またはSHA-512 非セキュリティチェックサムMD5またはCRC32

ハッシュジェネレーターツールで、テキストのハッシュを即座に計算できます。