この質問は 重複 ですが、質問を考えると必要だと思います。オリジナルは2012年に投稿されました。NISTが最終仕様を発表する前の約5年前です。
問題は多かれ少なかれ元のものと同じです。 SHA3は、価値の高い状況に対して安全であると見なされるのに十分なほど研究されており、その前身であるSHA2よりもSHA3を使用することには利点があります。基本的に、それを使用する必要がありますか?
私は私たちがすべきだと確信していません。 SHA-3には Nicefeatures がありますが、以下に挙げる理由から、おそらくお勧めします当面はSHA-2またはBLAKE2を使用します。 NIST自身 でも:
現在、アプリケーションをSHA-2からSHA-3に移行する必要はありません。
とはいえ、あなたはまだ「なぜだ」
a。 5人のファイナリストはすべて、ほとんどのアプリケーションで使用できるほど十分に優れています。
b。 5つのファイナリストのどれもがすべてのアプリケーションに最適ではなく、SHA-2アルゴリズムに対して本当に説得力のある改善を提供するものはありません。
c。 ARXベースのアルゴリズムであるBLAKEとSkeinは、ソフトウェアで非常によく機能します。
d。 Keccakは、ハードウェア実装におけるスループット/エリアパフォーマンスに明らかな利点があります。
e。 GrøstlとJHは、ほとんどのソフトウェア実装で他の3つのアルゴリズムよりもかなり低速です。
b。 SHA-2は主要なスケジュールを持つARXベースの設計であるため、どちらもSHA-2と密接に関連しているわけではありませんが、BLAKEおよびSkeinと共通するいくつかの重要な設計要素があります。ただし、将来的にSHA-2に適用される暗号解読ツールは、他の3つのファイナリストよりもBLAKEまたはSkeinに適用される可能性が高くなります。
*ここでは暗号化ハッシュ関数について説明していることを思い出してください。必ずしもパスワードハッシュ関数やKDFではありません。
時間の価値があるかもしれないいくつかの読書: