4

これらのアルゴリズムは常に改善されており、新しいエクスプロイトが発見され、新しい問題が常に発生しているため、これについてグーグルで検索すると、答えに少し矛盾します...使用するアルゴリズムに関する多くのアドバイスは単に古いものです、または最良の方法であった古い時代からのアイデアを保持します。

ここではっきりさせておきたいのですが、私はパスワードについて話しているのではありません。暗号化ハッシュではなく、メッセージ ダイジェストについて話しているのです。

先に進んで、md5 をメッセージ ダイジェストの最初のヒントとして使用することもできましたが (その名前は正しいです)、最近のアルゴリズムよりも多くの衝突があることを思い出しました。しかし、これらの新しいアルゴリズムが、ファイルや短い文字列のメッセージ ダイジェストにより適している理由は何でしょうか?

それが私の質問です。使用すべき最新のメッセージ ダイジェスト アルゴリズムは何ですか?

4

2 に答える 2

2

疑わしい場合は、SHA-256を使用してください。他の SHA-2 関数も問題ありません。ただし、SHA-384 と SHA-512 は、小さな (32 ビットのみ) プラットフォームでは、無視できないほどのパフォーマンスの低下に悩まされる可能性があります。これ、特定のアプリケーションでは問題になる場合があります。

セキュリティに関連しない用途 (たとえば、ハッシュ テーブルでのインデックス作成の最初のパス、または偶発的で悪意のないデータ変更の検出 - CRCを使用できる種類のジョブ) については、MD5 の前身であるMD4を検討してください。MD4 は MD5 よりも壊れていますが、実装が簡単で (短いコードで)、高速です (実際、一部の ARM プラットフォームでは CRC32 よりも高速であることが測定されています)。

于 2011-03-18T12:55:47.450 に答える
2

その観点から、作業しているデータの量によっては、SHA1 で問題なく動作するはずです。大量のデータを処理する場合は、SHA-256 などの SHA-2 アルゴリズムがより適している可能性があります。アルゴリズムの欠陥が原因で SHA1 の衝突が増加していますが、少量のデータを扱う場合はそれほど深刻ではありません。

MD5 を使用して偽造 SSL 証明書を作成する SSL 証明書への攻撃があったため、MD5 は衝突に対して脆弱すぎることが示されているため、私はそこに近づかないようにします。また、アプリケーションによっては、MD5 は FIPS 140 に準拠していません (それが重要な場合)。

SHA1 は MD5 よりも理想的です。なぜなら、MD5 は使用するのが危険であるため安全であり、SHA1 はほとんどの一般的な状況で SHA-2 よりも優れたパフォーマンスを発揮します。SHA-2 アルゴリズムは決して遅くはありませんが、優位性があります。ただし、SHA1 は少しリスクが高くなります。これは、おそらく使用に固執している可能性があるためです。競合が見つかり始めると、変更するのが難しくなる可能性があるため、事前に SHA-2 アルゴリズムに投資することをお勧めします。SHA アルゴリズムをどのように使用するかにもよりますが、SHA-1 ではなく SHA-256 を使用した場合のペナルティはほとんどありません。SHA-2 アルゴリズムは SHA1 よりもはるかに大きな出力を生成しますが、衝突の可能性が減るという利点があります。

それで、どれが正しいですか?それはあなたが探しているものとあなたのユースケースに依存します。うまくいけば、今、あなたは決断を下すことができます。

于 2011-03-17T15:13:15.770 に答える