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攻撃に耐性
適切なハッシュ関数の選択
|-----|-----|
ハッシュジェネレーターツールで、テキストのハッシュを即座に計算できます。