web-dev-qa-db-ja.com

SHA3​​を使用する必要がありますか? (2017)

この質問は 重複 ですが、質問を考えると必要だと思います。オリジナルは2012年に投稿されました。NISTが最終仕様を発表する前の約5年前です。

問題は多かれ少なかれ元のものと同じです。 SHA3​​は、価値の高い状況に対して安全であると見なされるのに十分なほど研究されており、その前身であるSHA2よりもSHA3を使用することには利点があります。基本的に、それを使用する必要がありますか?

12
Awn

私は私たちがすべきだと確信していません。 SHA-3には Nicefeatures がありますが、以下に挙げる理由から、おそらくお勧めします当面はSHA-2またはBLAKE2を使用します。 NIST自身 でも:

現在、アプリケーションをSHA-2からSHA-3に移行する必要はありません。


とはいえ、あなたはまだ「なぜだ」

  1. SHA-3 はまだFIPS-140に準拠していませんFIPS 140-3 がないと、非軍事の政府機関や政府の請負業者には届きません。 FIPSコンプライアンスについて心配している場合は、今のところSHA-2スイートを使用しています。 SHA-3 was 含まれる FIPS 140-2 Annex A、およびこのドキュメントの表紙に「ドラフト」と記載されていても、 theseで確定されているようです/ two ページ。
  2. パフォーマンス。 SHA-3は ハードウェア(ASIC)実装で非常に高速です 。ただし、レジスタが制限されているCPUで実行されているソフトウェアでは 非常に遅くなります なので、一般的にはあまり役に立ちません*。その主な競合相手は(少なくとも、競争の余波では)BLAKE2です。これは、一般的なCPUで はるかに高速 であることが示され、Keccak/SHA-よりも優先されることがあります。 その他の理由 の3。 NISTはファイナリスト間のソフトウェア内のパフォーマンスの違いを過小評価しているように感じますが、最後の意思決定におけるパフォーマンスに関する彼らのコメントは、コンテキストを提供するのに役立ちます。 NISTIR 7896 、セクション3.2から:

    a。 5人のファイナリストはすべて、ほとんどのアプリケーションで使用できるほど十分に優れています。
    b。 5つのファイナリストのどれもがすべてのアプリケーションに最適ではなく、SHA-2アルゴリズムに対して本当に説得力のある改善を提供するものはありません。
    c。 ARXベースのアルゴリズムであるBLAKEとSkeinは、ソフトウェアで非常によく機能します。
    d。 Keccakは、ハードウェア実装におけるスループット/エリアパフォーマンスに明らかな利点があります。
    e。 GrøstlとJHは、ほとんどのソフトウェア実装で他の3つのアルゴリズムよりもかなり低速です。

  3. 潜在的に不必要な慎重さSHA-2との類似性が であるため、BLAKEが否定的な発言をしたことも注目に値します。慎重さから、これはKeccak/SHA-3が競争に勝つのに役立ちました。 NISTIR 7896 、セクション3.4から:

    b。 SHA-2は主要なスケジュールを持つARXベースの設計であるため、どちらもSHA-2と密接に関連しているわけではありませんが、BLAKEおよびSkeinと共通するいくつかの重要な設計要素があります。ただし、将来的にSHA-2に適用される暗号解読ツールは、他の3つのファイナリストよりもBLAKEまたはSkeinに適用される可能性が高くなります。

*ここでは暗号化ハッシュ関数について説明していることを思い出してください。必ずしもパスワードハッシュ関数やKDFではありません。


時間の価値があるかもしれないいくつかの読書:

  1. NISTはあなたのことを考えていないかもしれません 、Adam Langley著
  2. ケッカスポンジ機能ファミリ
  3. NISTIR 7896
  4. BLAKE2:MD5よりも「より強く、より良く、より速く、より強く」
  5. SHA-1をBLAKE2に置き換える理由?-
  6. たぶんSHA-3をスキップする
7
JZeolla