SHA-1(Secure Hash Algorithm 1)
SHA-1とは
SHA-1(シャーワン)とは Secure Hash Algorithm 1の略で、入力データを一定の手順で計算を行い、入力値のデータの長さに関わらず決まった長さの文字列を出力するハッシュ関数の一つです。SHA-1は、160ビット(16進数では40桁)のハッシュ値を生成します。
上記図はSHA-1を利用してハッシュ値を生成する例です。ハッシュ関数により得られたデータのことを「ハッシュ値」と呼びます。
ハッシュ関数は、入力データが同じであれば、必ず同じハッシュ値を出力し、入力データが少しでも異なればまったく異なるハッシュ値が出力されます。
そして、ハッシュ値への変換は簡単に計算できるが、元に戻すことは非常に困難である「一方向性関数」の特性があります。
SHA-2へ移行
1993年にNIST(アメリカ国立標準技術研究所)によって初期のバージョンである「SHA-0」が発表、このバージョンは発表からしばらくしてNSA(アメリカ国家安全保障局)によって撤回され、1995年に改訂版として「SHA-1」が登場しています。
「SHA-1」は広く用いられていたものであり、多くのアプリケーションやプロトコルに採用されていたが、2005年頃から「SHA-1」に対する効率的に攻撃する手法がいくつか発見されたため、後続バージョンである「SHA-2」への移行が進んでいます。
2013年11月にはマイクロソフトが、2017年までにMicrosoft WindowsのTLS/SSLにおいて「SHA-1」を利用した証明書を受け入れないようにすることを表明、2014年9月にはGoogleも2017年までにGoogle Chromeにおいて「SHA-1」による証明書を受け入れないようにすることを表明するなど、セキュリティ用途で「SHA-1」が使われる機会はなくなっています。