SHA-1とは、認証やデジタル署名等に使われる暗号学的ハッシュ関数の1つです。アメリカ国家安全保障局 (NSA) によって設計され、アメリカ国立標準技術研究所 (NIST) によって1995年に「FIPS PUB 180-4」として標準化されました。
ハッシュ関数とは、あるデータが与えられた時に、そのデータを代表する数値(要約値)を出力する関数のことです。このハッシュ関数のうち、情報セキュリティの用途に適するように暗号学的な性質をもたせたものが、暗号学的ハッシュ関数です。暗号学的ハッシュ関数が生成する値を「メッセージ ダイジェスト」と言います。メッセージをやり取りする際に、メッセージを元にしたメッセージ ダイジェストを送信側と受信側で作成し、その比較を行うことで、通信経路でのメッセージ改ざんを検出できます。
「SHA」は「Secure Hash Algorithm」の略であり、SHA-0、SHA-1、SHA-2、SHA-3の4種類が存在します。SHA-1は1993年に公開されたSHA-0の問題点を改善したものであり、暗号を利用する数多くのアプリケーションやプロトコルに採用されています。その例としては、IPsec、SSL/TLS、SSH、S/MIME等が挙げられます。その後、2001年にSHA-2、2015年にSHA-3が公開されています。
広く利用されてきたSHA-1ですが、2005年に攻撃法が発見され、十分な安全性を有していないことが判明しています。すでに米国政府関連のシステムでは、2013年末までにSHA-1の利用を停止するという勧告が出ています。またWebブラウザでは、Microsoftが2016年6月以降にSHA-1版SSLサーバ証明書に対する警告表示を行う旨の発表を行っており、Googleも2016年1月1日以降に発行されたSHA-1版SSLサーバ証明書に対しエラー表示を行うことを発表しています。現在SHA-1版SSLサーバ証明書を使用しているWebサイトは、できるだけ早くSHA-2への移行を実施すべきだと言えます。