SHAとは
SHA(Secure Hash Algorithm)とは、世界標準のハッシュ関数の一群です。
米国国立標準技術研究所(NIST)が推進するハッシュ関数であり、連邦情報処理規格 (FIPS)180としても知られる政府公式出版物 Secure Hash Standard (SHS) で指定されている。つまり、世界のトップの研究機関がこのハッシュ関数を利用することを宣言しています。
SHA-1
SHA-1は、様々な長さの入力を受け取り、160ビットのハッシュ値を生成します。SHA-1は、512ビットのブロック単位でメッセージを処理するために、メッセージ長が512の倍数でない場合、倍数になるようにデータを追加しメッセージを埋め合わせようとします。
暗号解読の結果、SHA-1には弱点があることが判明しており、NISTはSHA-1を非推奨としています。つまりは、電子署名やパスワードハッシュなどのあらゆる目的での使用を推奨していません。代替品として、NISTはSHA-2を発表しました。
SHA-2
SHA-2にはいくつかのバリエーションがあり、SHA-2だからこのハッシュ計算をしているということを意味しません。システム設計でSHA-2を利用するといっても、共通鍵暗号化方式のAES(AESはRijndaelのみが採用されている)と異なり、実際にはシステムの詳細設計になっていません。
SHA-3
SHA-3は、SHA-2の既存影響を少なくするように設計された新しいハッシュ関数です。SHA-2と異なる計算アルゴリズムを使用していますが、同じハッシュ長を提供します。
ただ、SHA-3はSHA-2と同じレベルのセキュリティを提供できますが、SHA-2よりも計算が遅く、わざわざ利用しようという声は少ないです。