web-dev-qa-db-ja.com

SHA3​​(Keccak&SHAKE)とSHA2の違いは何ですか?非SHAKEパラメータを使用する必要がありますか?

KeccakはSHA3コンテストの勝者です。 Keccakは高度にカスタマイズ可能であるため(おそらくセキュリティ/メモリ/時間/速度のトレードオフのため)、KeccakがSHA2と比較する方法について 論争 があるようです。 SHAKEは、SHA2のドロップイン交換での摩擦を減らすためのパラメーターのセットのようです

Keccak/SHAKEは、次の点でSHA2とどのように比較されますか。

  • セキュリティのビット
  • ビットプリイメージ耐性
  • 2番目のプリイメージ耐性
  • 「256ビットを超えるセキュリティ強度レベルは意味がありません」という記述。
  • 「SHA-3は、SHA-2よりもpbkdf2のPRFとしての使用には適していません。」
  • 比較に値するその他の基準

これは非常に複雑なトピックであり、Keccakには多くの順列があるため、SHAKEの単純化により、特定のシナリオから柔軟性、セキュリティ、およびパフォーマンスがいくらか削除された可能性があると思います...

そうは言っても、SHAKE標準から逸脱して直接Keccakを使用する価値のあるシナリオは何ですか(より良いアナロジーがないため)。

15

NISTには、SHA-3を作成した理由と、SHA-2の欠点の詳細を説明した優れたドキュメントがあり、多くの質問に対処しているようです。具体的には、このドキュメントでは、設計の課題と、Keccakがこれらに対処する方法の両方について説明します。

http://csrc.nist.gov/groups/ST/hash/sha-3/documents/burr_dimacs2013_presentation.pdf

2
Trey Blalock

「スポンジ機能」を使用する主な利点の1つは、それらの継続的な入力です。スポンジ関数では、入力をビットのブロックとしてフィードするのではなく、1つずつフィードします。これにより、SHA3はSHA2とはまったく異なるものになり、比較はかなり時代遅れになります。

また、各ビットの後、Keccakはスポンジ関数内である種の置換を実行します。ただし、設計により、非常に多くの順列を実行する必要があります。スポンジ関数は、ビットを1つずつ浸し、いくつかのポイントの後、それらを1つずつ放出する必要があります。

1
MTSan