本文へスキップ
ecdsa.com

SHA-1

FIPS 180-1(1995年)で規定された 160 ビットのハッシュ関数です。現在では衝突耐性が実際に破られており、NIST は 2030年12月31日までに、あらゆる暗号的保護の用途から廃止する予定です。
別表記SHA1SHA-160sha1WithRSAEncryption

最初に公開された衝突である SHAttered(CWI と Google の Stevens らによる、2017年2月)では、SHA-1 ダイジェストが同じになる 2 つの異なる PDF ファイルが作成されました。2020年には Leurent と Peyrin の『SHA-1 is a Shambles』が選択プレフィックス衝突を実用的なものにしました。そのコストは GPU 時間にして数万ドル分で、PGP 鍵の証明(他者の鍵への署名)の偽造が可能になりました。原像耐性は破られていません。

現状:NIST は 2013年にデジタル署名の生成への SHA-1 の使用を禁止し、2022年12月には、2030年12月31日までにすべてのアプリケーションで保護の適用から SHA-1 を廃止すると発表しました。RFC 9155 は TLS 1.2 での MD5 と SHA-1 による署名を非推奨とし、ブラウザーは 2017年に SHA-1 証明書を信頼しなくなりました。また、OpenSSH 8.8 は SHA-1 を使う ssh-rsa 署名アルゴリズムをデフォルトで無効にしました。

残っている用途:Git のオブジェクト ID(衝突を検出する実装を使用。SHA-256 のリポジトリもあります)、OpenPGP v4 のフィンガープリント、HMAC-SHA1(衝突の影響を受けず、TOTP や一部の古いプロトコルで今も使われています)、レガシーな証明書です。ハッシュ対象のデータに攻撃者が一切影響を与えられない場合にのみ、許容できるものとして扱ってください。

規格と参考文献

すべての用語