NISTハッシュ関数コンペティションは、米国国立標準技術研究所(NIST)が、従来のSHA-1およびSHA-2を補完する新しいハッシュ関数SHA-3を開発するために開催した公開コンペティションです。このコンペティションは、2007年11月2日に連邦官報で正式に発表されました。[ 1 ] 「NISTは、高度暗号化標準(AES)の開発プロセスに類似した公開コンペティションを通じて、1つ以上の追加ハッシュアルゴリズムを開発する取り組みを開始しています。」 [ 2 ]このコンペティションは、NISTがKeccakを新しいSHA-3ハッシュアルゴリズムとして発表した2012年10月2日に終了しました。 [ 3 ]
優勝したハッシュ関数は、セキュア ハッシュ標準である FIPS 180-4 を補完する NIST FIPS 202「SHA-3 標準」として公開されました。
NIST コンテストは、パスワード ハッシュ コンテストなどの他のコンテストに影響を与えました。
提出期限は2008年10月31日で、第1ラウンドに受け入れられた候補者のリストは2008年12月9日に公表されました。[ 4 ] NISTは2009年2月下旬に会議を開催し、提出者はアルゴリズムを発表し、NISTの職員は第2ラウンドの候補者を絞り込む基準について話し合いました。[ 5 ]第2ラウンドに受け入れられた14の候補者のリストは2009年7月24日に公表されました。[ 6 ] 2010年8月23〜24日( CRYPTO 2010の後) 、カリフォルニア大学サンタバーバラ校で別の会議が開催され、第2ラウンドの候補者について話し合いました。[ 7 ]最終ラウンドの候補者の発表は 2010 年 12 月 10 日に行われました。[ 8 ] 2012 年 10 月 2 日、NIST は勝者を発表し、STMicroelectronics の Guido Bertoni、Joan Daemen、Gilles Van Assche と NXP の Michael Peeters によって作成されたKeccakを選択しました。 [ 3 ]
これは既知の応募作品の不完全なリストです。NISTは第1ラウンドに51件の応募作品を選出しました。[ 4 ]そのうち14件が第2ラウンドに進み、[ 6 ]そこから5件の最終候補者が選出されました。
2012年10月2日にケチャックが優勝者であることが発表された。[ 9 ]
NISTは、第3ラウンド(最終ラウンド)に進むために5つのSHA-3候補アルゴリズムを選択しました。[ 10 ]
NISTは最終候補者を発表する際に、選定に影響を与えたいくつかの要素を指摘した。[ 11 ]
NISTは評価アルゴリズムをアルゴリズムごとに解説した報告書を発表した。[ 12 ] [ 13 ] [ 14 ]
以下のハッシュ関数は第2ラウンドに提出されましたが、最終ラウンドには進みませんでした。最終候補者の発表で述べられているように、「これらの候補関数はどれも明らかに解読されていません」。
以下のハッシュ関数の提出は第1ラウンドでは承認されましたが、第2ラウンドには進みませんでした。提出者によって承認されておらず、重大な暗号上の脆弱性もありませんでした。しかしながら、ほとんどのハッシュ関数には設計コンポーネントに何らかの弱点、またはパフォーマンス上の問題があります。
ラウンド 1 で敗退が決まった次の参加者には、重大な暗号の脆弱性があることが発表されました。
以下の第1ラウンド参加者は、提出者によって公式にコンテストから撤回されました。NIST公式第1ラウンド候補者ウェブサイトによると、彼らは壊れていると見なされました。 [ 54 ]そのため、彼らはコンテストから撤退しました。
NISTに提出された複数の提案は、NISTによる内部審査の結果、第一ラウンドの候補として受け入れられませんでした。[ 4 ] NISTは、それぞれの提案が却下された理由について、詳細を明らかにしていません。また、NISTは却下されたアルゴリズムの包括的なリストも公開していません。却下されたアルゴリズムは13個あることが分かっていますが、[ 4 ] [ 68 ]公開されているのは以下のアルゴリズムのみです。