SHA-1とは?

SHA-1は、認証やデジタル署名などの用途で使用される暗号学的ハッシュ関数の1つです。米国国家安全保障局(NSA)によって設計され、1995年に米国国立標準技術研究所(NIST)によってFIPS PUB 180-4として標準化されました。

ハッシュ関数とは、与えられたデータを表す数値(ハッシュ値)を生成する関数です。セキュリティ用途に適した暗号学的特性を持つハッシュ関数は、暗号学的ハッシュ関数と呼ばれます。暗号学的ハッシュ関数によって生成される値は、メッセージダイジェストと呼ばれます。メッセージを交換する際、送信者と受信者はそれぞれ元のデータに基づいてメッセージダイジェストを作成し、両者を比較することで、送信中に改ざんされた可能性を検出します。

SHAはSecure Hash Algorithmの略で、SHA-0、SHA-1、SHA-2、SHA-3の4つのバージョンがあります。SHA-1は、SHA-0で特定された問題に対処する後継として1993年に公開され、暗号化を利用する多くのアプリケーションやプロトコルで広く採用されています。例として、IPsec、SSL/TLS、SSH、S/MIMEが挙げられます。その後のバージョンであるSHA-2とSHA-3は、それぞれ2001年と2015年に公開されました。

SHA-1は広く使用されていましたが、2005年に攻撃手法が発見され、セキュリティが不十分であることが明らかになりました。米国政府は、関連システムでのSHA-1の使用を2013年末までに中止するよう勧告しました。Webブラウザー分野では、Microsoftが2016年6月、SHA-1を使用するSSLサーバー証明書に対して警告を表示すると発表し、Googleは2016年1月1日以降に発行されたSHA-1サーバー証明書に対してエラーを表示すると表明しました。SHA-1を使用するSSLサーバー証明書を現在も利用しているWebサイトは、直ちにSHA-2へ移行することが推奨されます。