暗号
SHA-3
別称: Keccak, FIPS 202
定義
Keccak のスポンジ構造に基づくハッシュ関数ファミリーで、SHA-2 とは構造的に異なる代替として NIST が標準化した。
SHA-3 は NIST が 2015 年に FIPS 202 として発行したハッシュ標準で、2007〜2012 年の公開コンペで選定された Keccak アルゴリズムに基づきます。SHA-2 と異なり、1600 ビットの置換を用いるスポンジ構造を採用しており、メッセージを吸収してからダイジェストを絞り出すため、長さ拡張攻撃に本質的に耐性があります。ファミリーには SHA3-224、SHA3-256、SHA3-384、SHA3-512 と可変長出力関数 SHAKE128/SHAKE256 が含まれます。既知の実用的弱点はなく、SHA-2 とのドメイン分離を要する場合や、KMAC、耐量子署名方式など可変長出力が必要な場面で推奨されます。
例
- Ethereum はアドレスと Merkle ツリーに Keccak-256(SHA-3 の変種)を使用。
- SHAKE128 は CRYSTALS-Dilithium で可変長出力関数として使用される。
関連用語
暗号学的ハッシュ関数
任意長の入力を固定長のダイジェストへ写す決定的な一方向関数で、衝突耐性・原像耐性・第二原像耐性を備える。
SHA-256
SHA-2 ファミリーに属する 256 ビットの暗号学的ハッシュ関数で、デジタル署名、TLS、ブロックチェーン、完全性検証で広く利用される。
BLAKE2
RFC 7693 で規定された高速かつ現代的な暗号学的ハッシュ関数で、SHA-3 に匹敵する安全性とソフトウェア上での圧倒的な高速性を提供する。
HMAC
RFC 2104 と FIPS 198-1 で定義された、暗号学的ハッシュ関数を土台とする鍵付きメッセージ認証コード(MAC)構造。
耐量子暗号
古典計算機と大規模量子計算機の両方からの攻撃に耐えるよう設計された古典的な暗号アルゴリズム群。
デジタル署名
メッセージや文書の真正性・完全性・否認防止を証明する公開鍵暗号方式のメカニズム。