1. ホーム
  2. hash

[解決済み] 2つの異なる文字列から同じMD5ハッシュコードを生成することは可能ですか?

2023-01-01 07:59:19

質問

バイナリ資産のそれぞれについて、MD5 ハッシュを生成しています。これは、特定のバイナリ資産がすでに私たちのアプリケーションにあるかどうかをチェックするために使用されます。しかし、2 つの異なるバイナリ資産が同じ MD5 ハッシュを生成することは可能なのでしょうか。では、2 つの異なる文字列が同じ MD5 ハッシュを生成することは可能でしょうか。

どのように解決するのですか?

さらに数十億の資産の集合に対して ランダムな衝突の可能性は無視できるほど小さいです。 -- 心配するほどのことではありません。ということを考えると 誕生日のパラドックス を考えると、2^64 (または 18,446,744,073,709,551,616) 個の資産の集合があるとき、以下の確率があります。 が 1 つ MD5 衝突の確率は 50% です。この規模では、おそらくストレージの容量で Google に勝つでしょう。

しかし、MD5 ハッシュ関数が壊れているため (脆弱性があり 衝突攻撃 )、どんな 攻撃者は2つの衝突するアセット を数秒のCPUパワーで作り出すことができます。したがって、MD5 を使用したい場合、そのような攻撃者がアプリケーションのセキュリティを侵害しないことを確認してください!

また、もし 攻撃者が既存の資産への衝突を偽造することができた場合の影響も考えてみましょう。 に衝突させることができた場合の影響も考えてみてください。そのような既知の攻撃は存在しませんが ( 前画像攻撃 )はありませんが、衝突攻撃に関する現在の研究を拡張することで可能になる可能性があります。

もしこれらが問題になるなら、SHA-2シリーズのハッシュ関数(SHA-256、SHA-384、SHA-512)を見てみることをお勧めします。欠点は、わずかに遅く、ハッシュ出力が長くなることです。