(Translated by https://www.hiragana.jp/)
SHA-1 - Wikipedia

SHA-1

暗号あんごうがくてきハッシュ関数かんすう

SHA-1(シャーワン[3][4])は、Secure Hash Algorithmシリーズの暗号あんごうがくてきハッシュ関数かんすうで、SHAの最初さいしょのバージョンであるSHA-0の弱点じゃくてん修正しゅうせいしたものである。National Security Agency(NSA)によって設計せっけいされ、National Institute of Standards and Technology(NIST)によってFederal Information Processing Standard(FIPS) PUB 180-4として標準ひょうじゅんされている。NISTは2030ねん12月31にち仕様しよう廃止はいし予定よてい[5]

SHA-1
一般いっぱん
設計せっけいしゃ アメリカ国家こっか安全あんぜん保障ほしょうきょく
初版しょはん発行はっこう 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][2]

概要がいよう

編集へんしゅう

SHAシリーズ全体ぜんたい俯瞰ふかんについてはSecure Hash Algorithm記事きじ参照さんしょうのこと。

SHA-1は、160ビット(20バイト)のハッシュ生成せいせいする。SHA-1はSHA-0にきわめて類似るいじしており、SHA-0において脆弱ぜいじゃくせい原因げんいんとなっていた仕様しようのエラーを修正しゅうせいしたものがSHA-1であるため、SHA-0は基本きほんてきまったもちいられない。

以前いぜんは、SHA-1はSHAシリーズのなかもっとひろもちいられていたものであり、おおくのアプリケーションやプロトコルに採用さいようされていたが、2017ねん2がつには衝突しょうとつ攻撃こうげきつよ衝突しょうとつたいせい突破とっぱ)の成功せいこう現実げんじつしめされている。そのため、下記かきとおりセキュリティの懸念けねんから利用りようひかえられつつある状況じょうきょうにある。

2005ねん、SHA-1にたいする攻撃こうげきほう発見はっけんされ、将来しょうらいてき利用りよう十分じゅうぶん安全あんぜんせいゆうしていないことが示唆しさされた[6]。NISTは、合衆国がっしゅうこく政府せいふ組織そしきたいして、2010ねんまでにSHA-1からSHA-2へ移行いこうするよう要請ようせいした[7]。SHA-2にたいする有効ゆうこう攻撃こうげきほうはいまだ報告ほうこくされていないが、その構造こうぞうはSHA-1に類似るいじしたものである。2012ねん公募こうぼて、KeccakがSHA-3として選定せんていされた[7]。2013ねん11月にはマイクロソフトが、2017ねんまでにMicrosoft WindowsTLS/SSLにおいてSHA-1を利用りようした証明しょうめいしょれないようにすることを表明ひょうめいした[8]。2014ねん9がつにはGoogleも2017ねんまでにGoogle ChromeにおいてSHA-1による証明しょうめいしょれないようにすることを表明ひょうめいした[9]Mozillaでも同様どうように2017ねんまでにSHA-1による証明しょうめいしょれないようにすることを検討けんとうしている[10][11][12]

日本にっぽんにおいても、CRYPTRECが2003ねん初版しょはんでは推奨すいしょうリストに掲載けいさいされていたSHA-1を2013ねん改訂かいていにおいて互換ごかんせい維持いじのための利用りよう限定げんていした運用うんよう監視かんしリストに移行いこう[13]総務そうむしょうおよび法務省ほうむしょうでは、政府せいふ認証にんしょう基盤きばんおよび電子でんし認証にんしょう登記とうきしょ商業しょうぎょう登記とうき認証にんしょうきょく)においてSHA-1をもちいた電子でんし証明しょうめいしょ検証けんしょうを2015年度ねんどまで(特別とくべつ事情じじょうがある場合ばあいは2019年度ねんどまで)に終了しゅうりょうすることとしている[14]。 これらをけて、SHA-1を使つかっているウェブサイトはSHA-2への移行いこう予定よていされており、SHA-2に対応たいおうできないソフトや機器ききによるアクセスは不能ふのうになる[15]とくに2009ねん以前いぜん携帯けいたい電話機でんわき一部いちぶのぞ内蔵ないぞうソフト更新こうしんおこなわれないため、ハードウェアのえを余儀よぎなくされる[16][17][18]

NISTは2030ねん12月31にち仕様しよう廃止はいしする予定よていで、それ以降いこう米国べいこく政府せいふはSHA-1を使用しようしている商品しょうひん購入こうにゅうしない予定よてい[5]

SHA-1 ハッシュ関数かんすう

編集へんしゅう
 
SHA-1 圧縮あっしゅく関数かんすうの1回分かいぶんかえ
A, B, C, D, E:32ビットの状態じょうたいワード
F非線形ひせんけい関数かんすう
 n nだけひだりローテート
n操作そうさごとに変化へんか
Wt:ラウンドtにおける拡張かくちょうメッセージワード
Kt:ラウンドtにおける定数ていすう
 :addition modulo 232

SHA-1は、マサチュまさちゅセッツ工科大学せっつこうかだいがくロナルド・リベストMD4MD5設計せっけいもちいたものと同様どうよう原理げんりもとづいているが、より保守ほしゅてき設計せっけいとなっている。

オリジナルの仕様しようは、1993ねんにNISTによってFIPS 180 "Secure Hash Standard" として発表はっぴょうされた。このバージョンは現在げんざいではしばしば SHA-0ばれる。このバージョンは発表はっぴょうからしばらくしてNSAによって撤回てっかいされ、1995ねん改訂かいていばんがFIPS PUB 180-1として発表はっぴょうされた。これがSHA-1とばれるものであり、SHA-0とは圧縮あっしゅく関数かんすうにおけるビット演算えんざんのローテートが1つことなるのみである。NSAによれば、これによってSHA-0においてセキュリティを低下ていかさせていたフローが修正しゅうせいされたとしているが、NSAはそれ以上いじょう説明せつめい証拠しょうこ提示ていじおこなわなかった。そのも、SHA-0、SHA-1の双方そうほうについてセキュリティ脆弱ぜいじゃくせい報告ほうこくがなされている。

暗号あんごう

編集へんしゅう

SHA-1は暗号あんごうかんするおおくのアプリケーションやプロトコルにもちいられている。れいとしては、TLS/SSLOpenPGPSSHS/MIMEIPsecなどがげられる。これらではMD5もよくもちいられる(SHA-1とMD5はともにMD4の後継こうけいである)。

SHA-1とSHA-2は、アメリカ合衆国あめりかがっしゅうこくにおいて機密きみつ情報じょうほうあつかさい法律ほうりつによって要求ようきゅうされるハッシュアルゴリズムのひとつである。FIPS 180-1では、SHA-1を私的してきにあるいは商業しょうぎょうもちいることも推奨すいしょうしている。SHA-1は合衆国がっしゅうこく政府せいふでの利用りようはほぼ終了しゅうりょうしており、NISTでは「連邦れんぽう組織そしきは、電子でんし署名しょめいタイムスタンプ衝突しょうとつへのたいせい必要ひつようとするアプリケーションでのSHA-1の利用りよう可及的かきゅうてきすみやかに中止ちゅうしすべきである。2010ねん以降いこうはSHA-2を利用りようすべきである」としている[19]

SHA制定せいてい重要じゅうよう動機どうきDigital Signature Standardであった。DSAの仕様しようには、SHA-1を利用りようする過程かていふくまれている。

SHAハッシュ関数かんすうブロック暗号あんごうであるSHACAL基礎きそとなっている。

データ完全かんぜんせい

編集へんしゅう

SHA-1ハッシュはGitMercurialMonotoneといった分散ぶんさんがたバージョン管理かんりシステムにおいても、バージョンの管理かんりやデータの破損はそん改竄かいざん検出けんしゅつもちいられている。任天堂にんてんどうWiiにおいては、起動きどうにSHA-1による署名しょめい検証けんしょうしているが、これを回避かいひする手法しゅほう開発かいはつされている[20]

攻撃こうげき認証にんしょう

編集へんしゅう

ハッシュちょうL ビットであるハッシュ関数かんすうにおいて、あたえられた特定とくていのハッシュに対応たいおうするもとのメッセージをつけることは、そうたり攻撃こうげきでは 2L試行しこう可能かのうである。これははらぞう攻撃こうげきばれる。一方いっぽうおなじハッシュをあたえる2つのことなるメッセージをつけることは衝突しょうとつ攻撃こうげきばれ、およそ 1.2 * 2L / 2試行しこう可能かのうである。後者こうしゃ理由りゆうにより、ハッシュ関数かんすう強度きょうどはハッシュちょう半分はんぶんかぎちょう共通きょうつうかぎ暗号あんごう比較ひかくされる。これより、SHA-1の強度きょうどは80ビットであるとかんがえられてきた。

暗号あんごう研究けんきゅうしゃによって、SHA-0については衝突しょうとつペアが発見はっけんされ、SHA-1についても当初とうしょ想定そうていされていた 280試行しこうよりもずっとすくない試行しこう衝突しょうとつ発生はっせいさせうる手法しゅほう発見はっけんされた。

そのブロック構造こうぞうかえ構造こうぞうと、追加ついかてき最終さいしゅうステップの欠如けつじょにより、SHAシリーズは伸長しんちょう攻撃こうげきおよびpartial-message collision attacksにたいして脆弱ぜいじゃくである[21]。これらの攻撃こうげきほうにより、  または   のようなかぎをつけたハッシュだけでメッセージが署名しょめいされている場合ばあい攻撃こうげきしゃは、そのメッセージを伸長しんちょうしハッシュをさい計算けいさんする(かぎることなしにできる)ことでメッセージを改竄かいざんすることができる。この攻撃こうげきたいするもっとも単純たんじゅん対処たいしょほうは、ハッシュ計算けいさんを2かいおこなうことである。 (ゼロのみからなるブロック  ながさはハッシュ関数かんすうのブロックちょうひとしい)。

攻撃こうげき

編集へんしゅう

2005ねん初頭しょとうフィンセント・ライメンとElisabeth Oswaldは80ラウンドから53ラウンドに削減さくげんされたSHA-1において 280 よりすくない試行しこうにおいて衝突しょうとつ発見はっけんする攻撃こうげき報告ほうこくした[22]

2005ねん2がつ、Xiaoyun Wang、Yiqun Lisa Yin、Hongbo Yuによって、フルバージョン(80ラウンド)のSHA-1において 269 よりすくない試行しこう衝突しょうとつ発見はっけんできる攻撃こうげき報告ほうこくされた[23]そうたり攻撃こうげきでは 280試行しこう必要ひつようとする。

2005ねん8がつ17にち、Xiaoyun Wang、Andrew Yao、Frances Yaoによって改良かいりょうされた攻撃こうげき報告ほうこくされ、必要ひつようとする試行しこうは 263 まで削減さくげんされた[24]。2007ねん12月18にちに、Martin Cochranによってこの結果けっか詳細しょうさい説明せつめい検証けんしょうされた[25]

Christophe De CannièreとChristian Rechbergerは"Finding SHA-1 Characteristics: General Results and Applications,"[26]においてさらに攻撃こうげき改良かいりょうし、ASIACRYPT 2006においてBest Paper Awardを受賞じゅしょうした。64ラウンドに削減さくげんされたSHA-1において、235圧縮あっしゅく関数かんすう試行しこうで2ブロックの衝突しょうとつ発見はっけんされた。この攻撃こうげきでは 235試行しこうしかようしないことから、理論りろんてきやぶられたものとみなされている[27]。さらに、2010ねんにはGrechnikovがこの攻撃こうげきを73ラウンドのSHA-1に対応たいおうするよう拡張かくちょうしている[28]。80ラウンドのSHA-1で実際じっさい衝突しょうとつ発見はっけんするには、膨大ぼうだい計算けいさん資源しげん必要ひつようとされる。そのため、グラーツ工科こうか大学だいがくによってSHA-1での衝突しょうとつ発見はっけんのためのBOINCプロジェクトが開始かいしされたが、進展しんてんがなかったことから2009ねん中止ちゅうしされた[29]

CRYPTO 2006のRump SessionにおいてChristian RechbergerとChristophe De Cannièreは、攻撃こうげきしゃすくなくともメッセージの一部いちぶえらぶことができるSHA-1での衝突しょうとつ発見はっけんしたと主張しゅちょうした[30][31]

2008ねん、Stéphane Manuelによって理論りろんてきに 251 to 257試行しこう衝突しょうとつ発見はっけんしうる攻撃こうげきほう報告ほうこくされた[32]。しかし、ローカル衝突しょうとつパスが独立どくりつでなく、もっと効率こうりつ衝突しょうとつベクトルが既知きちであったことがあきらかとなり、この報告ほうこく撤回てっかいされた[33]

Cameron McDonald、Philip Hawkes、Josef Pieprzykは、Eurocrypt 2009のRump sessionにおいて 252試行しこうでの衝突しょうとつ攻撃こうげき報告ほうこくしたが[34]、それにともな論文ろんぶん "Differential Path for SHA-1 with complexity O(252)" は著者ちょしゃによって推定すいていあやまりであることが発見はっけんされ撤回てっかいされた[35]

2012ねんには、Marc Stevensによる攻撃こうげきほう報告ほうこくされている[36]。この攻撃こうげきでは1つのハッシュをやぶるためにクラウドサーバからCPUリソースをけるためのコストは277まんドルと見積みつもられている[37]。Stevensは、差分さぶん経路けいろ攻撃こうげき実装じっそうし、この手法しゅほうをHashClashとばれるプロジェクト[38]開発かいはつした。2010ねん11月8にち、StevensはフルバージョンのSHA-1にたいして 257.5圧縮あっしゅく試行しこう衝突しょうとつ攻撃こうげきちかいものを達成たっせいしたと主張しゅちょうし、完全かんぜん衝突しょうとつ攻撃こうげきには 261試行しこう可能かのうだと見積みつもっている。

2015ねん10がつ8にち、Marc Stevens、Pierre Karpman、Thomas Peyrinによって257試行しこう可能かのうなSHA-1の圧縮あっしゅく関数かんすうたいする衝突しょうとつ攻撃こうげき報告ほうこくされた。この攻撃こうげきでは攻撃こうげきしゃ初期しょき状態じょうたい自由じゆう決定けっていできる必要ひつようがあるため、内部ないぶ状態じょうたい初期しょき状態じょうたい選択せんたくすることができない完全かんぜんなSHA-1そのものにおける衝突しょうとつ攻撃こうげき成功せいこう直接ちょくせつ意味いみするものではないが、SHA-1の安全あんぜんせいたいする懸念けねんとなる。とくに、これまでに報告ほうこくされている攻撃こうげきほう膨大ぼうだい計算けいさん資源しげん資金しきん必要ひつようとしていたことにたいして、今回こんかい報告ほうこく完全かんぜんなSHA-1にたいする実用じつようてき攻撃こうげき可能かのうであることをしめしたものである。報告ほうこくしゃによって、この攻撃こうげきほうThe SHAppening命名めいめいされた[39]

この攻撃こうげきほう報告ほうこくしゃによる既知きち攻撃こうげきほうもとづいており、高性能こうせいのうかつコストパフォーマンスにすぐれたNVIDIAのGPUカードをもちいたものである。衝突しょうとつけい64まいのグラフィックカードからなる16ノードのクラスタによって発見はっけんされた。報告ほうこくしゃによれば、同様どうよう衝突しょうとつ発見はっけんするためにはAmazon EC2で2000あめりかドルぶんのGPU時間じかん購入こうにゅうすれば可能かのうであると見積みつもられている[39]

また、完全かんぜんなSHA-1において衝突しょうとつ発見はっけんするためには、EC2において7まん5000から12まんあめりかドル程度ていどのGPU時間じかん可能かのうであると報告ほうこくしゃ見積みつもっている。これは、国家こっか規模きぼ情報じょうほう機関きかんなどにとどまらず、一般いっぱんてき犯罪はんざい組織そしきでさえ用意よういできるレベルとえる。このため、報告ほうこくしゃ一刻いっこくはやくSHA-1の使用しよう中止ちゅうしするよう推奨すいしょうしている[39]

衝突しょうとつれい発表はっぴょう

編集へんしゅう

2017ねん2がつ23にち、Googleは「SHAttered」とだいして[40]、2つのPDFファイルのSHA-1ハッシュを一致いっちさせることに成功せいこうしたと発表はっぴょうした[41]衝突しょうとつするハッシュの算出さんしゅつには、922きょうかいのハッシュ計算けいさん(110だいのGPUで1ねんかかる計算けいさん)が必要ひつようであるとしている[41]。これをけて、Mozilla Firefoxでも発表はっぴょう翌日よくじつの2がつ24にちに、既存きそんのバージョンについてもSHA-1証明しょうめいしょ無効むこうしている[42]

CRYPTO 98において、Florent ChabaudとAntoine JouxによってSHA-0への攻撃こうげき報告ほうこくされた[43]。ハッシュの衝突しょうとつは 261試行しこう発見はっけんされた。

2004ねん、Eli BihamとChenはほぼおなじSHA-0ハッシュをつ2つのメッセージを発見はっけんした。160ビットのハッシュのうち142ビットが一致いっちしていた。かれらは80ラウンドから62ラウンドに削減さくげんしたSHA-0における完全かんぜん衝突しょうとつ発見はっけんした。

2004ねん8がつ12にち、Joux、Carribault、Lemuet、Jalbyによって、フルバージョンのSHA-0における衝突しょうとつ報告ほうこくされた。これはChabaudとJouxによる攻撃こうげき一般いっぱんしたものであり、256Itanium 2プロセッサを搭載とうさいしたスーパーコンピュータで80000 CPU時間じかんついやすことにより(このコンピュータのぜん計算けいさん能力のうりょくの13にちぶんである)、 251試行しこう衝突しょうとつ発見はっけんした。

2004ねん8がつ17にちのCRYPTO 2004のRump sessionにおいて、Wang、Feng、Lai、YuによってMD5、SHA-1いくつかのハッシュ関数かんすうたいする攻撃こうげき初期しょきてき結果けっか報告ほうこくされた。SHA-0への攻撃こうげきは 240試行しこう必要ひつようであり、これはJouxらによるものよりすぐれたものである[44]

2005ねん2がつ、Wang、Yin、Yuによって、 239試行しこうでSHA-0の衝突しょうとつ発見はっけん可能かのうであることが報告ほうこくされた[23][45]

CRYPTO 2004における報告ほうこくのち、NISTは2010ねんまでにSHA-1の使用しよう終了しゅうりょうし、SHA-2に移行いこうするプランを発表はっぴょうした[46]

公式こうしき認定にんてい

編集へんしゅう

FIPSに認定にんていされたすべての関数かんすう実装じっそうは、NISTとCommunications Security Establishment Canada (CSEC) によるCryptographic Module Validation Programの認定にんてい申請しんせいすることが可能かのうである。2013ねん現在げんざい、SHA-1については2000以上いじょう実装じっそう認定にんていされている[47]

ハッシュれい

編集へんしゅう

SHA-1のハッシュのれいを、じゅうろくしんほうおよびBase64エンコードにてしめす。

SHA1("The quick brown fox jumps over the lazy dog")
gives hexidecimal: 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12
gives Base64 binary to ASCII text encoding: L9ThxnotKPzthJ7hu3bnORuT6xI=

メッセージをわずかでも変更へんこうすれば、られるハッシュおおきく変化へんかする。たとえば、うえれいdogcogえると、160ビットのハッシュのうち81ビットが変化へんかする。

SHA1("The quick brown fox jumps over the lazy cog")
gives hexidecimal: de9f2c7f d25e1b3a fad3e85a 0bd17d9b 100db4b3
gives Base64 binary to ASCII text encoding: 3p8sf9JeGzr60+haC9F9mxANtLM=

そら入力にゅうりょくたいするハッシュ以下いかとおりである。

SHA1("")
gives hexidecimal: da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709
gives Base64 binary to ASCII text encoding: 2jmj7l5rSw0yVb/vlWAYkK/YBwk=

疑似ぎじコード

編集へんしゅう

SHA-1の疑似ぎじコード以下いかとおりである。

Note 1: All variables are unsigned 32 bits and wrap modulo 232 when calculating, except
        ml the message length which is 64 bits, and
        hh the message digest which is 160 bits.
Note 2: All constants in this pseudo code are in big endian.
        Within each word, the most significant byte is stored in the leftmost byte position

Initialize variables:

h0 = 0x67452301
h1 = 0xEFCDAB89
h2 = 0x98BADCFE
h3 = 0x10325476
h4 = 0xC3D2E1F0

ml = message length in bits (always a multiple of the number of bits in a character).

Pre-processing:
append the bit '1' to the message i.e. by adding 0x80 if characters are 8 bits.
append 0 ≤ k < 512 bits '0', so that the resulting message length (in bits)
   is congruent to 448 (mod 512)
append ml, as a 64-bit big-endian integer. So now the message length is a multiple of 512 bits.

Process the message in successive 512-bit chunks:
break message into 512-bit chunks
for each chunk
    break chunk into sixteen 32-bit big-endian words w[i], 0 ≤ i ≤ 15

    Extend the sixteen 32-bit words into eighty 32-bit words:
    for i from 16 to 79
        w[i] = (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) leftrotate 1

    Initialize hash value for this chunk:
    a = h0
    b = h1
    c = h2
    d = h3
    e = h4

    Main loop:[48]
    for i from 0 to 79
        if 0 ≤ i ≤ 19 then
            f = (b and c) or ((not b) and d)
            k = 0x5A827999
        else if 20 ≤ i ≤ 39
            f = b xor c xor d
            k = 0x6ED9EBA1
        else if 40 ≤ i ≤ 59
            f = (b and c) or (b and d) or (c and d)
            k = 0x8F1BBCDC
        else if 60 ≤ i ≤ 79
            f = b xor c xor d
            k = 0xCA62C1D6

        temp = (a leftrotate 5) + f + e + k + w[i]
        e = d
        d = c
        c = b leftrotate 30
        b = a
        a = temp

    Add this chunk's hash to result so far:
    h0 = h0 + a
    h1 = h1 + b
    h2 = h2 + c
    h3 = h3 + d
    h4 = h4 + e

Produce the final hash value (big-endian) as a 160 bit number:
hh = (h0 leftshift 128) or (h1 leftshift 96) or (h2 leftshift 64) or (h3 leftshift 32) or h4

hh はメッセージダイジェストであり、じゅうろくしんほう (base 16) あるいはBase64エンコードで表現ひょうげんされる。

定数ていすうは "nothing up my sleeve number" として選択せんたくされる。4つのラウンド定数ていすう k はそれぞれ 2、3、5、10の平方根へいほうこんの 230 ばいである。状態じょうたいのうち h0 から h3 まではMD5とおなじであり、h4類似るいじしたものである。

FIPS PUB 180-1によるもののわりに、下記かきしきをメインループでの f計算けいさんもちいることができる。

(0  ≤ i ≤ 19): f = d xor (b and (c xor d))                (alternative 1)
(0  ≤ i ≤ 19): f = (b and c) xor ((not b) and d)          (alternative 2)
(0  ≤ i ≤ 19): f = (b and c) + ((not b) and d)            (alternative 3)
(0  ≤ i ≤ 19): f = vec_sel(d, c, b)                       (alternative 4)
 
(40 ≤ i ≤ 59): f = (b and c) or (d and (b or c))          (alternative 1)
(40 ≤ i ≤ 59): f = (b and c) or (d and (b xor c))         (alternative 2)
(40 ≤ i ≤ 59): f = (b and c) + (d and (b xor c))          (alternative 3)
(40 ≤ i ≤ 59): f = (b and c) xor (b and d) xor (c and d)  (alternative 4)

Max Locktyukhin は、32-79ラウンドにおける

w[i] = (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) leftrotate 1

w[i] = (w[i-6] xor w[i-16] xor w[i-28] xor w[i-32]) leftrotate 2

置換ちかんすることが可能かのうであることをしめした[49]

SHAシリーズの比較ひかく

編集へんしゅう
暗号あんごうがくてきハッシュ関数かんすう比較ひかく [編集へんしゅう]
アルゴリズムとバリエーション 出力しゅつりょくちょう
(bits)
内部ないぶ状態じょうたいちょう
(bits)
ブロックちょう
(bits)
最大さいだいメッセージちょう
(bits)
ラウンドすう ビット演算えんざん セキュリティ強度きょうど
(bits)
パフォーマンスのれい[51]
(MiB/s)
MD5 128 128
(4 × 32)
512 264 − 1 64 And, Xor, Rot,
Add (mod 232),
Or
<64(つよ衝突しょうとつ 335
SHA-0 160 160
(5 × 32)
512 264 − 1 80 And, Xor, Rot,
Add (mod 232),
Or
<80(つよ衝突しょうとつ -
SHA-1 160 160
(5 × 32)
512 264 − 1 80 <63
(衝突しょうとつ発見はっけん[52])
192
SHA-2 SHA-224
SHA-256
224
256
256
(8 × 32)
512 264 − 1 64 And, Xor, Rot,
Add (mod 232),
Or, Shr
112
128
139
SHA-384
SHA-512
SHA-512/224
SHA-512/256
384
512
224
256
512
(8 × 64)
1024 2128 − 1 80 And, Xor, Rot,
Add (mod 264),
Or, Shr
192
256
112
128
154
SHA-3 SHA3-224
SHA3-256
SHA3-384
SHA3-512
224
256
384
512
1600
(5 × 5 × 64)
1152
1088
832
576
制限せいげんなし[53] 24[54] And, Xor, Rot,
Not
112
128
192
256
-
SHAKE128
SHAKE256
d(可変長かへんちょう
d(可変長かへんちょう
1344
1088
d/2と128のいずれかちいさいほう
d/2と256のいずれかちいさいほう
-


実装じっそうライブラリ

編集へんしゅう

SHA-1をサポートしているライブラリは以下いかとおり。

脚注きゃくちゅう

編集へんしゅう
  1. ^ Marc Stevens. hashclash - Framework for MD5 & SHA-1 Differential Path Construction and Chosen-Prefix Collisions for MD5. https://code.google.com/archive/p/hashclash. 
  2. ^ ShAttered
  3. ^ シャーワン”. NTTPCコミュニケーションズ. 2017ねん9がつ30にち閲覧えつらん
  4. ^ SHA-1とは”. IT用語ようご辞典じてん e-words. 2022ねん6がつ29にち閲覧えつらん
  5. ^ a b NIST Retires SHA-1 Cryptographic Algorithm | NIST
  6. ^ Bruce Schneier (2005ねん2がつ18にち). “Schneier on Security: Cryptanalysis of SHA-1”. 2014ねん1がつ1にち閲覧えつらん
  7. ^ a b Secure Hashing”. NIST. 2014ねん1がつ1にち閲覧えつらん[1]
  8. ^ SHA1 Deprecation Policy”. Microsoft (2013ねん11月12にち). 2014ねん1がつ1にち閲覧えつらん
  9. ^ Intent to Deprecate: SHA-1 certificates”. Google (2014ねん9がつ3にち). 2014ねん9がつ4にち閲覧えつらん
  10. ^ Bug 942515 - stop accepting SHA-1-based SSL certificates with notBefore >= 2014-03-01 and notAfter >= 2017-01-01, or any SHA-1-based SSL certificates after 2017-01-01”. Mozilla. 2014ねん9がつ4にち閲覧えつらん
  11. ^ CA:Problematic Practices - MozillaWiki”. Mozilla. 2014ねん9がつ9にち閲覧えつらん
  12. ^ Phasing Out Certificates with SHA-1 based Signature Algorithms | Mozilla Security Blog”. Mozilla (2014ねん9がつ23にち). 2014ねん9がつ24にち閲覧えつらん
  13. ^ 電子でんし政府せいふにおける調達ちょうたつのために参照さんしょうすべき暗号あんごうのリスト(CRYPTREC暗号あんごうリスト)”. 総務そうむしょうおよ経済けいざい産業さんぎょうしょう. 2014ねん9がつ4にち閲覧えつらん
  14. ^ 政府せいふ機関きかん情報じょうほうシステムにおいて使用しようされている暗号あんごうアルゴリズムSHA-1およびRSA1024にかか移行いこう指針ししん”. 情報じょうほうセキュリティ対策たいさく推進すいしん会議かいぎ (2012ねん10がつ26にち). 2014ねん9がつ4にち閲覧えつらん
  15. ^ えきねっとのれい
  16. ^ サーバ証明しょうめいしょえによるドコモ ケータイへの影響えいきょうについて2015ねん7がつ15にち
  17. ^ auケータイをご利用りようのおきゃくさまへ、サーバ証明しょうめいしょえによる影響えいきょうについて
  18. ^ SoftBank 3G(携帯けいたい電話でんわ)をご利用りようのおきゃくさまへ サーバ証明しょうめいしょえによる影響えいきょうのご案内あんない2015ねん7がつ15にち
  19. ^ NIST's March 2006 Policy on Hash Functions”. NIST (2006ねん3がつ15にち). 2014ねん1がつ1にち閲覧えつらん
  20. ^ http://debugmo.de/?p=61 Debugmo.de "For verifying the hash (which is the only thing they verify in the signature), they have chosen to use a function (strncmp) which stops on the first nullbyte – with a positive result. Out of the 160 bits of the SHA1-hash, up to 152 bits are thrown away."
  21. ^ Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno, Cryptography Engineering, John Wiley & Sons, 2010. ISBN 978-0-470-47424-2
  22. ^ Cryptology ePrint Archive
  23. ^ a b Schneier on Security: SHA-1 Broken
  24. ^ Schneier on Security: New Cryptanalytic Results Against SHA-1
  25. ^ Notes on the Wang et al. $2^{63}$ SHA-1 Differential Path
  26. ^ Christophe De Cannière, Christian Rechberger (2006-11-15). Finding SHA-1 Characteristics: General Results and Applications. http://www.springerlink.com/content/q42205u702p5604u/. 
  27. ^ IAIK Krypto Group – Description of SHA-1 Collision Search Project”. 2009ねん6がつ30にち閲覧えつらん
  28. ^ Collisions for 72-step and 73-step SHA-1: Improvements in the Method of Characteristics”. 2010ねん7がつ24にち閲覧えつらん
  29. ^ SHA-1 Collision Search Graz”. 2014ねん1がつ2にち閲覧えつらん
  30. ^ SHA-1 hash function under pressure – heise Security
  31. ^ Crypto 2006 Rump Schedule
  32. ^ Stéphane Manuel. Classification and Generation of Disturbance Vectors for Collision Attacks against SHA-1. http://eprint.iacr.org/2008/469.pdf 2011ねん5がつ19にち閲覧えつらん. 
  33. ^ Stéphane Manuel. Classification and Generation of Disturbance Vectors for Collision Attacks against SHA-1. http://www.springerlink.com/content/u320751102001580/ 2012ねん10がつ4にち閲覧えつらん.  the most efficient disturbance vector is the one first reported as Codeword2 by Jutla and Patthak
  34. ^ SHA-1 collisions now 2^52
  35. ^ International Association for Cryptologic Research
  36. ^ Cryptanalysis of MD5 & SHA-1
  37. ^ When Will We See Collisions for SHA-1?
  38. ^ HashClash - Framework for MD5 & SHA-1 Differential Path Construction and Chosen-Prefix Collisions for MD5
  39. ^ a b c The SHAppening: freestart collisions for SHA-1”. 2015ねん10がつ9にち閲覧えつらん
  40. ^ https://shattered.io/ 2017ねん2がつ26にち閲覧えつらん
  41. ^ a b Announcing the first SHA1 collision Google Security Blog、2017ねん2がつ23にち(2017ねん2がつ26にち閲覧えつらん)。
  42. ^ The end of SHA-1 on the Public Web Mozilla Security Blog、2017ねん2がつ23にち(2017ねん2がつ26にち閲覧えつらん)。
  43. ^ Differential Collisions in SHA-0
  44. ^ Freedom to Tinker » Blog Archive » Report from Crypto 2004
  45. ^ 中国ちゅうごく Sdu.edu.cn, Shandong University
  46. ^ National Institute of Standards and Technology
  47. ^ SHS Validation List
  48. ^ https://www.rfc-editor.org/rfc/rfc3174.html
  49. ^ Locktyukhin, Max; Farrel, Kathy (2010-03-31), “Improving the Performance of the Secure Hash Algorithm (SHA-1)”, Intel Software Knowledge Base (Intel), http://software.intel.com/en-us/articles/improving-the-performance-of-the-secure-hash-algorithm-1/ 2014ねん1がつ1にち閲覧えつらん 
  50. ^ Crypto++ 5.6.0 Benchmarks”. 2014ねん1がつ1にち閲覧えつらん
  51. ^ AMD Opteron 8354 2.2 GHzプロセッサと64ビットばんLinuxによる計測けいそく[50]
  52. ^ Announcing the first SHA1 collision”. 2017ねん2がつ23にち閲覧えつらん
  53. ^ The Sponge Functions Corner”. 2016ねん1がつ28にち閲覧えつらん
  54. ^ The Keccak sponge function family”. 2016ねん1がつ28にち閲覧えつらん

参考さんこう文献ぶんけん

編集へんしゅう

関連かんれん項目こうもく

編集へんしゅう

外部がいぶリンク

編集へんしゅう
  • CSRC Cryptographic Toolkit – Official NIST site for the Secure Hash Standard
  • FIPS 180-4: Secure Hash Standard (SHS) (PDF, 1.7 MB) – Current version of the Secure Hash Standard (SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512), March 2012
  • RFC 3174 (with sample C implementation)
  • NIST Retires SHA-1 Cryptographic Algorithm