SHA-256とは?
SHA-256(Secure Hash Algorithm 256-bit)は256ビットのダイジェストを生成する暗号ハッシュ関数です。SHA-256の仕組み・安全性・使用場面を解説します。
SHA-256はSHA-2ファミリーの暗号ハッシュ関数で、米国国家安全保障局(NSA)が設計し2001年に公開されました。どんな入力でも受け取り固定の256ビット(32バイト)のハッシュ値を生成し、64文字の16進数文字列として表現されます。SHA-256は現在、暗号学的に安全とみなされており、セキュリティが重要なアプリケーションに広く使用されています。
SHA-256の仕組み
SHA-256は入力を512ビットブロックで処理し64ラウンドの数学的演算を行います: • "hello" → 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 • "Hello" → 185f8db32921bd46d35b1895a214b3e861c7e0b5d49275e0cfb99d33da37ffb2 • どんな小さな変更でも完全に異なる64文字のハッシュが生成されます 雪崩効果によりSHA-256は改ざん検出に優れています。
SHA-256のセキュリティ特性
SHA-256は強力なセキュリティ保証を提供します: • 原像抵抗性——ハッシュが与えられても元の入力を見つけられない • 第二原像抵抗性——入力が与えられても同じハッシュを持つ別の入力を見つけられない • 衝突耐性——同じハッシュを生成する2つの入力を見つけることは計算上不可能 • 2025年時点でSHA-256への実用的な攻撃は実証されていない • 量子コンピュータでも〜2^128の演算が必要(SHA-256は安全なまま)
SHA-256が使われている場面
SHA-256は現代のセキュリティの基盤です: • ビットコイン——プルーフ・オブ・ワークのマイニングアルゴリズム • TLS/HTTPS——サーバー証明書の認証 • デジタル署名——コード署名・文書署名 • パスワードハッシュ——ソルトと組み合わせて使用(bcrypt/Argon2が推奨) • Git——すべてのコミット・ツリー・ブロブがSHA-256(Git 2.29+)またはSHA-1ハッシュで識別 • ファイル整合性——ソフトウェアダウンロードのチェックサム
Try it yourself
UUIDを生成するSHA-256について
SHA-256はNIST(米国国立標準技術研究所)がFIPS PUB 180-4で標準化したSHA-2ファミリーの一部です。2017年に衝突攻撃の脆弱性が見つかったSHA-1の後継です。全く異なるアルゴリズムであるSHA-3が2015年に代替として標準化されましたが、SHA-256は広範な採用と実証済みの安全性から主流の標準であり続けています。
FAQ
- SHA-256とは何の略ですか?
- SHA-256はSecure Hash Algorithm with a 256-bit output(256ビット出力のセキュアハッシュアルゴリズム)の略です。SHA-2ファミリーのハッシュ関数の一部です。
- SHA-256とMD5の違いは何ですか?
- SHA-256は256ビット(64文字16進数)のハッシュを生成しMD5は128ビット(32文字16進数)を生成します。より重要なのは、SHA-256は暗号学的に安全ですがMD5は既知の衝突攻撃により破られたと見なされています。
- SHA-256は逆算(復号)できますか?
- いいえ。SHA-256は一方向関数——SHA-256ハッシュから元の入力を逆算することは計算上不可能です。これは設計上の特性であり、セキュリティにとって有用な理由です。