コンテンツにスキップ

Secure Hash Algorithm

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。125.0.67.157 (会話) による 2012年12月15日 (土) 18:11個人設定で未設定ならUTC)時点の版であり、現在の版とは大きく異なる場合があります。

SHAエスエイチエー、Secure Hash Algorithm)は、一群の関連したハッシュ関数であり、アメリカ国立標準技術研究所(NIST)によってアメリカ政府標準のハッシュ関数 Secure Hash Standard (SHS) として採用されている。

アルゴリズムはMD4を元にしており、MD5よりも攻撃に対して強いと考えられている。

2007年現在、SHAは生成するビット長が異なるSHA-1 (160ビット)、SHA-224、SHA-256、SHA-384、SHA-512の5種類が存在している。このうちSHA-224以外は2002年8月のFIPS Publication 180-2の初版に含まれている。SHA-224はChange Notice 1として、2004年2月に同規格に追加された。

もっともよく使われる関数SHA-1でTLS、SSL、PGP、SSH、S/MIME、IPSecなど、さまざまなセキュリティアプリケーションプロトコルに採用されている。 SHA-1は、以前から広範囲に使われているハッシュ関数であるMD5に代わるものであると考えられている。SHAアルゴリズムは国家安全保障局(NSA)によって開発され、アメリカ政府の標準として発表された。

グループのメンバーで1993年にはじめに発表されたものは、公式にはSHAと呼ばれている。しかしその後のものと区別するためにしばしばSHA-0と呼ばれている。2年後、SHAに初めての後継となるSHA-1が発表された。さらにSHA-224SHA-256SHA-384SHA-512と4つの変形が、増加する出力の範囲とわずかなデザインの違いで発行されている。それらはしばしばまとめてSHA-2といわれている。

SHA-0、SHA-1ともに、対象とした攻撃(ハッシュ値の強衝突耐性突破)が見つかっているが、SHA-2には攻撃された記事はまだない。「MD5」の「ハッシュの衝突耐性について」の項も参照。

GNU/Linux上ではmd5sumとほぼ同じインターフェイスを持つsha1sumというコマンドがあり、SHA-1メッセージダイジェストの生成と検証が可能である。

SHA1("") = da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709 (入力データ長が0バイトの場合)

SHA-2を求めるには、例えば、

gpg --print-md SHA256 filename

などとすることもできる。

SHA256("") = e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855 (入力データ長が0バイトの場合)

現在、SHA-3となるべきハッシュ関数を公募中である。選定の結果にもよるが、SHA-3はSHA-1やSHA-2とは大きく異なった構造となる可能性がある。

関連項目

外部リンク