web-dev-qa-db-ja.com

なぜSHA384ではなくSHA512を選んだのですか?

SHA3​​84は、SHA512の短縮バージョンです。しかし、なぜ誰かがそれを使うのでしょうか?そして当然の結果:SHA384がSHA512と同じくらい優れている場合、512ビットバージョンを使用する根拠はありますか?

アルゴリズムの1つを使用してファイルの整合性を検証することを計画しているため、主に衝突のセキュリティに関心があります。

誰かが実際にSHA2ダイジェストをどのように使用しているか、そしてなぜ一方のバージョンを他方よりも選択したのかを聞いてうれしいです。

21
jst

実用的な目的と近い将来には、SHA384とSHA512の両方が、ほぼすべての想定される耐衝突アプリケーションに十分対応できます。一般に、256ビットを超え、衝突抵抗が実用上無限である場合、使用するハッシュの主な決定要因は、必要な出力のビット数だけです。たとえば、256ビットHMACキーと128ビット暗号化キーの両方を生成するためにハッシュが必要な場合は、SHA384が自然な選択です。 PRNGの出力、またはランダムなパディングなど、計算コストのためにできるだけ多くの出力が必要な場合は、SHA512が理にかなっています。

24
David Schwartz

SHA512もSHA256SHA1とMD5は 長さ拡張攻撃 に対して脆弱ですSHA224とSHA384は内部状態への出力が減少しているため、SHA3も脆弱ではありません。それを念頭に置いて、SHA512は優れた暗号衝突耐性ハッシュ関数です。

22
Maciej S

SHA512は 長さ拡張攻撃 に対して脆弱ですが、SHA384はそうではありません。 [ソース]

9
Marqin

SHA512で署名された証明書は、WindowsのTLS 1.2では機能しないようです( ここを参照

したがって、SHA-384を使用して証明書チェーンを再作成します(または、SHA-256を使用できると思います)。

ありがたいことに、私はまだ証明書をリリースしていませんが、リンクされたページのスレッドは、SHA-512で立ち往生している人のための回避策/修正を提案しています。

HTH!

7
Peter

SHA-384とSHA-512のどちらを使用するか考えられる唯一の理由は、署名のダイジェストの必要性によるものです。たとえば、ECDSA-384署名を採用している場合、512ビットではなく384ハッシュダイジェストが必要です。理想的には、512ビットから任意の128ビットを破棄できます。ただし、受信側は、どの128ビットをスローするかを知る必要があります。したがって、SHA384とSHA512の違いは、スローする必要のある128ビットを定義することだけです。

0
Ting Lu