暗号
SHA-256
別称: SHA-2(256 ビット), FIPS 180-4 SHA-256
定義
SHA-2 ファミリーに属する 256 ビットの暗号学的ハッシュ関数で、デジタル署名、TLS、ブロックチェーン、完全性検証で広く利用される。
SHA-256 は NIST が FIPS 180-4 で標準化した SHA-2 ファミリーの一員で、最大 2^64 ビットの入力から 256 ビット(32 バイト)のダイジェストを生成します。Merkle-Damgård 構造を採用し、512 ビットブロックに対して Davies-Meyer 型の圧縮関数を 64 ラウンド適用します。TLS 1.2/1.3、X.509 証明書、Bitcoin の Proof-of-Work、コード署名、HMAC-SHA-256 など現代の多くのプロトコルの土台となっています。一般的な 2^128 衝突・2^256 原像の上界を上回る実用攻撃は知られておらず安全性は維持されていますが、パスワードハッシュ用途では Argon2・scrypt・PBKDF2 などの低速 KDF で包む必要があります。
例
- Bitcoin はブロックハッシュと Proof-of-Work に二重 SHA-256 を使用。
- 最新の X.509 証明書は SHA-256(sha256WithRSAEncryption)で署名される。
関連用語
暗号学的ハッシュ関数
任意長の入力を固定長のダイジェストへ写す決定的な一方向関数で、衝突耐性・原像耐性・第二原像耐性を備える。
SHA-1
1995 年に NSA が設計した暗号学的ハッシュ関数で、160 ビットのダイジェストを出力するが、現在では衝突耐性が破られている。
SHA-3
Keccak のスポンジ構造に基づくハッシュ関数ファミリーで、SHA-2 とは構造的に異なる代替として NIST が標準化した。
HMAC
RFC 2104 と FIPS 198-1 で定義された、暗号学的ハッシュ関数を土台とする鍵付きメッセージ認証コード(MAC)構造。
デジタル署名
メッセージや文書の真正性・完全性・否認防止を証明する公開鍵暗号方式のメカニズム。
BLAKE2
RFC 7693 で規定された高速かつ現代的な暗号学的ハッシュ関数で、SHA-3 に匹敵する安全性とソフトウェア上での圧倒的な高速性を提供する。