SHA-1
SHA-1 は NSA が設計した 160 ビットの暗号学的ハッシュ関数である。Google は 2017 年に SHAttered 衝突を公表し、各規格で廃止が進んでいる。
目的
160 ビットのメッセージダイジェストを提供する。かつて TLS 証明書や Git で使われたが、衝突攻撃のため廃止された。
メカニズム
入力を 512 ビットブロックで処理し、160 ビット(32 ビット語 5 個)の状態を維持する。各ブロックは 80 ステップの非線形変換で状態を更新する。2017 年の SHAttered 攻撃は約 2^63 の計算量で衝突を構成した。
ユースケース
- Git オブジェクトのハッシュ(SHA-256 へ移行中)
- HMAC-SHA1(依然として安全)
- 旧式のデジタル証明書
- 教育用のサンプル
例
- 入力
helloOutputaaf4c61ddcc5e8a2dabeede0f3bde2d0d4b2f2160 bits = 40 hex characters
よくあるエラー
- Using SHA-1 for signatures in new systems
- Use SHA-256 or SHA-3
関連用語
MD5
MD5 は Ronald Rivest が設計した 128 ビットの暗号学的ハッシュ関数である。衝突攻撃により安全性が崩れており、現在はチェックサムなどセキュリティを要しない用途に限られる。 用語集
SHA-256
SHA-256 は SHA-2 ファミリーの 256 ビット出力版である。TLS、ブロックチェーン、暗号応用で広く使われ、現実的な攻撃は知られていない。 用語集
SHA-512
SHA-512 は SHA-2 ファミリーの 512 ビット出力版である。64 ビットプラットフォームでは SHA-256 より高速で、より高いセキュリティ余裕を提供する。 用語集
Collision Resistance
衝突耐性とは、同じハッシュ出力を生む 2 つの異なる入力を見つけることが実行不可能であるというハッシュ関数の性質である。必要な出力長は誕生日攻撃が決める。 用語集