SHA-256とは?
SHA-256(Secure Hash Algorithm 256) 任意の入力から固定の256ビット(64桁の16進数)ダイジェストを生成します。SHA-2ファミリーの一部であり、 NSA によって標準化されています。 NIST 2001年に標準化され、世界中のセキュリティ重要なアプリケーションで広く使用されています。
セキュリティ注意事項: SHA-256は現在の衝突攻撃や原像攻撃に対して安全であり、ファイルの整合性、デジタル署名、ブロックチェーンに最適です。
SHA-256の動作原理
- メッセージをパディング → 長さ ≡ 448 (mod 512) ビット
- 64ビットのビッグエンディアンメッセージ長を追加
- 8つの32ビットワードを初期化(素数の平方根の最初の32ビット)
- 各512ビットブロックを64ラウンドのビット演算で処理
- 結果を組み合わせて256ビットのダイジェストを生成
ハッシュの例
Input | SHA-256ハッシュ |
---|---|
Hello World | a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e |
password | 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 |
test123 | ecd71870d1963316a97e3ac3408c9835ad8cf0f3c1bc703527c30265534f75ae |
(空) | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
SHA-256と他のハッシュ関数の比較
Algorithm | Output | Security | Speed |
---|---|---|---|
MD5 | 128ビット | ❌ 壊れている | ⚡ 非常に高速 |
SHA-1 | 160ビット | ❌ 壊れている | ⚡ 高速 |
SHA-256 | 256ビット | ✅ 安全 | 🚀 中程度 |
SHA-384 | 384ビット | ✅ 安全 | 🚀 中程度-遅い |
SHA-512 | 512ビット | ✅ 非常に安全 | 🚀 遅い |
よくある質問
SHA-256はパスワードに安全ですか?
SHA-256は暗号学的に強力ですが、パスワード保存にはソルト付きのbcrypt、Argon2、PBKDF2などの専門的なパスワードハッシュアルゴリズムを使用してください。
SHA-256は逆変換できますか?
いいえ。SHA-256は一方向であり、逆変換にはブルートフォースやレインボーテーブルが必要で、複雑な入力には実用的ではありません。
なぜSHA-256をSHA-1より使うのか?
SHA-256はより強力な衝突耐性を提供し、安全なアプリケーションのためにNISTによって承認されています。