SHA-256 (2001)(シャーニゴロク)
NIST が 2001 年に FIPS 180-2 として SHA-2 系列の一部として標準化した 256-bit ハッシュ関数。SHA-1 の後継として 64 ラウンド・Merkle-Damgård 構造で、TLS 1.2/1.3・Bitcoin Proof of Work・現代電子署名・SSH-2 で広く採用される現代世界標準ハッシュ関数。
概要
SHA-256 は、NIST が 2001 年に FIPS 180-2 として SHA-2 系列の一部として標準化した 256-bit ハッシュ関数で、SHA-1 (1993) の後継として 64 ラウンド・Merkle-Damgård 構造・32-bit ワード演算で動作し、TLS 1.2/1.3・Bitcoin Proof of Work (2009 年から)・現代電子署名・SSH-2・GPG 4.0+ 主鍵で広く採用される現代世界標準ハッシュ関数です。SHA-2 ファミリーは SHA-224・SHA-256・SHA-384・SHA-512・SHA-512/224・SHA-512/256 の 6 種類があり、SHA-256 が最も普及して事実上の標準となっています。NIST + NSA 共同設計で、SHA-1 への Wang 攻撃 (2005 年理論的衝突 2^69) ・Google SHAttered (2017 年実際の衝突) を受けて、2010 年代後半に事実上の世界標準ハッシュアルゴリズムとなりました。Bitcoin の Proof of Work (2009 年、Satoshi Nakamoto 設計、Double SHA-256 ハッシュベース)・Ethereum 初期 (2015、現在は Keccak-256 ベース)・全現代 SSL/TLS の証明書署名 (Let's Encrypt・DigiCert・Comodo) ・GPG 4.0+ 主鍵で必須技術として君臨し、AI 時代の 2026 年現在も最も広く使われているハッシュ関数です。
主な特徴・仕組み
- 発表: 2001 年 NIST FIPS 180-2
- 設計: NIST + NSA 共同
- ハッシュ値長: 256-bit (32 バイト)
- 構造: Merkle-Damgård
- ブロックサイズ: 512-bit
- 状態サイズ: 256-bit (8 ×32-bit ワード A-H)
- 計算: 64 ラウンド
- 演算: 32-bit 加算・XOR・ローテーション・条件分岐 (Ch・Maj)
- 衝突耐性: 2^128 計算量 (Birthday paradox)
- HW アクセラ: Intel SHA Extensions (2016 Goldmont)・AMD Zen+ (2018)
- 採用: TLS 1.2/1.3 電子証明書・Bitcoin PoW・Git SHA-256 (Git 2.29+)・GPG 4.0+
スペック比較表 (SHA-2 ファミリー)
| ハッシュ | bit | 状態サイズ | ブロック | ラウンド |
|---|---|---|---|---|
| SHA-224 | 224 | 256-bit | 512-bit | 64 |
| SHA-256 | 256 | 256-bit | 512-bit | 64 |
| SHA-384 | 384 | 512-bit | 1024-bit | 80 |
| SHA-512 | 512 | 512-bit | 1024-bit | 80 |
| SHA-512/256 | 256 | 512-bit | 1024-bit | 80 |
具体例・対応技術 / 採用システム
- TLS 1.2/1.3 電子証明書: 全現代 SSL 証明書が SHA-256 RSA 署名
- Bitcoin Proof of Work (2009): Double SHA-256、ASIC マイニング標準
- Git SHA-256 (2020-): Git 2.29+ オプション、新規リポジトリで利用可能
- GPG 4.0+ (2014-): 主鍵を SHA-256 ハッシュ
- Linux パッケージ署名: APT/DNF・apt-key で SHA-256 標準
- OAuth 2.0 JWT: JSON Web Token の HS256・RS256 で SHA-256
自作PCでの選び方・注意点
SHA-256 は 2026 年現在、自作 PC で扱う全ハッシュ用途の現代標準で、Linux/Mac の sha256sum ・shasum -a 256・Windows PowerShell の Get-FileHash で SHA-256 ハッシュ計算が日常的に利用される。Intel CPU (2016 Goldmont 以降の Atom・2017 Kaby Lake 以降の Core 第 7 世代) ・AMD CPU (Zen+ 2018 以降の Ryzen 2000 シリーズ) で Intel SHA Extensions (SHA-NI) がハードウェア実装され、現代 PC で SHA-256 計算速度 3-10 GB/s と高速 (ソフトウェア実装の 5-10 倍)。Bitcoin マイニング (2026 年現在も SHA-256 ASIC マイニング継続、Antminer S21 Hyd 等の 335 TH/s ASIC) は世界最大級の SHA-256 計算インフラ、年間電力消費 175 TWh (アルゼンチン全土相当) と桁外れな規模。AI 時代の 2026 年現在、Git の SHA-256 移行 (Git 2.29+) は徐々に進行中、GitHub も SHA-256 リポジトリのサポートを 2025 年に拡張、新規 Git リポジトリで git init --object-format=sha256 推奨。HTTPS 証明書も全て SHA-256 RSA / ECDSA 署名が標準、Let's Encrypt 無料証明書もデフォルトで SHA-256。ファイルダウンロード時の整合性確認 (Linux ISO・ソフトウェア配布) でも SHA-256 ハッシュが事実上標準、配布元が SHA-256 ハッシュを公開・ユーザが計算結果と比較する習慣が定着。Llama 3 などの AI モデル配布でも Hugging Face が SHA-256 ハッシュを提供、ダウンロード整合性確認に重要。
関連用語との違い
- SHA-1: 前世代、2017 年 SHAttered で廃止
- SHA-3 (Keccak): NIST 第二標準、SHA-2 と全く別構造
- BLAKE3 (2020): 現代最速ハッシュ、SHA-2 の競合候補
よくある質問(FAQ)
Q1: SHA-256 と SHA-3 どちらを選ぶ? A: 互換性・採用率で SHA-256 圧倒、新規高セキュリティ用途は SHA-3。両者とも安全性は同等、SHA-3 は SHA-256 の理論的脆弱性が将来発見されても置換可能な保険的選択。
Q2: SHA-256 は量子コンピュータで破られる? A: Grover アルゴリズムで実効強度が 128-bit に低下、当面安全だが SHA-512 への移行が量子時代に推奨。NIST は PQC 移行に SHA-3 / SHA-512 を含めている。
Q3: Bitcoin が SHA-256 を選んだ理由? A: 2009 年 Satoshi Nakamoto 設計時、SHA-256 が最も普及・安全・ASIC 化可能な実装容易性で選択。SHA-3 (2015 標準化) 登場前のため Bitcoin は SHA-256 ベース、Ethereum は Keccak-256 を採用。
まとめ
- SHA-256 = 2001 年 NIST FIPS 180-2 標準化、SHA-2 ファミリー代表
- 256-bit・Merkle-Damgård 構造・64 ラウンド
- TLS 1.2/1.3・Bitcoin PoW・GPG・Git で現代世界標準
- Intel SHA-NI で 2016+ ハードウェアアクセラ、AI 時代の必須技術