Secure Hash Algorithm
![]() |
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-224、SHA-256、SHA-384、SHA-512と4つの変形が、増加する出力の範囲とわずかなデザインの違いで発行されている。それらはしばしばまとめてSHA-2といわれている。
SHA-0、SHA-1ともに、対象とした攻撃(ハッシュ値の強衝突耐性突破)が見つかっているが、SHA-2には攻撃された記事はまだない。「MD5」の「ハッシュの衝突耐性について」の項も参照。
SHA-1
一般 | |
---|---|
設計者 | NSA |
初版発行日 | 1993 (SHA-0), 1995 (SHA-1) |
シリーズ | (SHA-0), SHA-1, SHA-2, SHA-3 |
認証 | FIPS PUB 180-4, CRYPTREC (運用監視) |
詳細 | |
ダイジェスト長 | 160 bits |
構造 | Merkle–Damgård construction |
ラウンド数 | 80 |
最良の暗号解読法 | |
2011年にMarc Stevensによって261回の試行で強衝突耐性突破[1]。弱衝突耐性突破には至っていない。 |
SHA1のハッシュキーの長さは、160ビット= 2160(約 1.4615×1048 = 1.5極(ごく) = 1.5京の1京倍の1京倍)通りのハッシュ値をとる。 GNU/Linux上ではmd5sumとほぼ同じインターフェイスを持つsha1sumというコマンドがあり、SHA-1メッセージダイジェストの生成と検証が可能で、40桁の16進数で表される。
SHA1("") = da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709(入力データ長が0バイトの場合)
SHA-2
一般 | |
---|---|
設計者 | NSA |
初版発行日 | 2001 |
シリーズ | (SHA-0), SHA-1, SHA-2, SHA-3 |
認証 | FIPS PUB 180-4, CRYPTREC, NESSIE |
詳細 | |
ダイジェスト長 | 224/256 bits or 384/512 bits |
構造 | Merkle–Damgård construction |
ラウンド数 | 64 or 80 |
最良の暗号解読法 | |
2008年に原像攻撃によってSHA-512の80ラウンド中46ラウンドまで、SHA-256の64ラウンド中41ラウンドまで[2]。衝突攻撃はSHA-256の24ステップまで[2]。 |
SHA2のハッシュキーの長さは、256ビット=2256(約 1.579×1077)通りのハッシュ値をとり、64桁の16進数で表される。SHA-2を求めるには、例えば、
gpg --print-md SHA256 filename
などとすることもできる。
SHA256("") = e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855(入力データ長が0バイトの場合)
SHA-3
一般 | |
---|---|
設計者 | Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche. |
認証 | SHA-3採用 |
詳細 | |
ダイジェスト長 | arbitrary |
速度 | 12.5 cpb on Core 2 [r=1024,c=576]. |
SHA-3としてKeccakが、アメリカ国立標準技術研究所 (NIST) が公募した新しいハッシュ関数アルゴリズムとして、2012年10月2日に選出された[3]。
関連項目
脚注
- ^ Marc Stevens. hashclash - Framework for MD5 & SHA-1 Differential Path Construction and Chosen-Prefix Collisions for MD5 .
- ^ a b Yu Sasaki, Lei Wang, and Kazumaro Aoki (2008-11-25). Preimage Attacks on 41-Step SHA-256 and 46-Step SHA-512 . 引用エラー: 無効な
<ref>
タグ; name "preimage-sasaki"が異なる内容で複数回定義されています - ^ “NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition”. NIST. 2012年10月2日閲覧。
外部リンク
- FIPS PUB 180-1, SECURE HASH STANDARD
- (PDF) FIPS PUB 180-2, SECURE HASH STANDARD
- SHA-0、MD5、 MD4にコリジョン発見、reduced SHA-1も スラッシュドットジャパン
- オンラインでSHA256ハッシュ関数ツール
- オンラインでSHA512ハッシュ関数ツール
- SHA1, SHA-256, SHA-384, SHA-512 Online Calculator Calculate SHA file hashes using an on-line web form.