テキスト

SHA-1ハッシュの計算

入力した文字列のSHA-1ハッシュ値をブラウザ上でリアルタイムに計算します。160ビットのハッシュ値を生成しますが、2017年にSHAttered攻撃で衝突が実証されており、新規用途への使用は推奨されません。


SHA-1

Tips

  • SHA-1(Secure Hash Algorithm 1)はNSAが設計し1995年にNISTが標準化した160ビットのハッシュ関数です。出力は40文字の16進数で表現されます。
  • 2017年、GoogleとCWIアムステルダムの研究チームがSHAttered攻撃を発表。同一のSHA-1ハッシュを持つ2つの異なるPDFファイルを実際に作成することに成功し、SHA-1の終焉を決定づけました。
  • 主要ブラウザはSSL/TLS証明書のSHA-1署名を2017年以降無効として扱っています。Gitはコミット識別にSHA-1を使用してきましたが、SHA-256への移行が進んでいます。
  • SHA-1はGitのコミットハッシュとして目にする機会が多いですが、Gitはセキュリティ目的でハッシュを使うわけではないため、現時点では実用上の問題は少ないとされています。
  • 新規システムの設計では SHA-1 の代わりに SHA-256 以上のアルゴリズムを選択してください。

余談ですが ― SHAttered:922京回の計算で実証された衝突攻撃

2017年2月、Googleと蘭CWI研究所のチームが「SHAttered」と名付けた衝突攻撃を発表しました。同一のSHA-1ハッシュを持つ2つの異なるPDFを作成するのに要した計算量は、Google Cloud Platform上で99,000コアを2年以上動かし続けた膨大な量でした。

SHA-1への攻撃が「理論上可能」から「実際に実証」へと変わった瞬間でした。直後、GitHubやGoogleなどの主要サービスがSHA-1依存の廃止を加速。GitもSHA-256への移行計画を正式に始動させました。

「壊れた」とはいえ、今でもSHA-1を使っている実装は世界中に残っています。特に組み込み機器や古い企業システムはアップデートが難しく、レガシーSHA-1の廃止は業界全体の課題として続いています。