SHA-256 (2001, 米国標準ハッシュ関数)(エスエイチエーニゴロク)
NIST が 2001 年策定の SHA-256 (Secure Hash Algorithm 256-bit、FIPS 180-2・SHA-2 ファミリーの一部)、SHA-1 (1995・脆弱性) の後継・MD5 (1991・完全に破られた) の業界後継・256-bit ハッシュ・SHA-2 ファミリー (SHA-224/256/384/512)・Bitcoin (2009 年 Proof of Work)・Git (2005 年 Linus Torvalds + Linux カーネル) + TLS 1.2/1.3 + デジタル署名 + パスワードハッシュで現代世界全 IT 業界の中核ハッシュ関数。
概要
SHA-256 (Secure Hash Algorithm 256-bit、FIPS 180-2、SHA-2 ファミリーの一部) は NIST が 2001 年策定の暗号学的ハッシュ関数、SHA-1 (1995 年・160-bit ハッシュ・2017 年 Google + CWI Amsterdam が衝突攻撃 SHAttered で破った) の後継・MD5 (1991 年・128-bit ハッシュ・2004 年に完全に破られた) の業界後継・256-bit ハッシュ (2^256 = 1.16×10^77 の通り数で衝突攻撃が事実上不可能)・SHA-2 ファミリー (SHA-224/256/384/512・ハッシュ長 224/256/384/512-bit の 4 種類)・Bitcoin (2009 年 1 月 Satoshi Nakamoto Proof of Work で SHA-256 採用・暗号通貨業界の中核ハッシュ関数)・Git (2005 年 Linus Torvalds + Linux カーネル開発のためのバージョン管理システム・SHA-1 採用後 2018 年 SHA-256 移行発表) + TLS 1.2/1.3 + デジタル署名 (RSA-SHA256 + ECDSA-SHA256) + パスワードハッシュ (Argon2 + bcrypt + scrypt + PBKDF2 等の派生) + ファイル整合性検証 (sha256sum + Linux md5sum 後継) で現代世界全 IT 業界の中核ハッシュ関数として位置付け、Intel SHA Extensions (2018 年 Cannon Lake CPU から・SHA1 + SHA256 ハードウェア命令)・AMD SHA Extensions (2017 年 Ryzen から) のハードウェア SHA-256 命令で高速化、現代暗号化処理の基盤。
主な特徴・仕組み
- 策定: 2001 年 NIST
- 規格: FIPS 180-2
- ハッシュ長: 256-bit (2^256 通り数)
- SHA-2 ファミリー: SHA-224/256/384/512
- Bitcoin: 2009 Proof of Work
- Git: 2005 + 2018 SHA-256 移行
- TLS 1.2/1.3: 採用
- デジタル署名: RSA-SHA256・ECDSA-SHA256
- CPU 命令: Intel SHA Ext (2018)・AMD SHA Ext (2017)
- 後継: SHA-3 (Keccak 2015・FIPS 202)
まとめ
- SHA-256 = 2001 年 NIST FIPS 180-2、256-bit
- SHA-1 後継・MD5 後継・SHA-2 ファミリー
- Bitcoin + Git + TLS + デジタル署名で業界標準
- 現代世界全 IT 業界の中核ハッシュ関数