0

これが重複した質問である場合はお詫びします。私が見つけたもののほとんどは私の頭の中にあるので、答えを見落としている可能性があります。

特定のハッシュ、例えば MD5 (128 ビット) の場合、10^12 個のハッシュが衝突する可能性はどれくらいですか?

私の数学は得意ではありません。この方程式を思いつきました (正しいと思います) が、それを解く方法がわかりません:

衝突確率 = 1 - (1 - (1 / 2^128) ) ^ (10^12)

10^-26くらいだと思いますが、これでいいでしょうか?

ありがとう

編集:私の見積もりは非常に間違っていると思います。誕生日のパラドックスを見る

4

2 に答える 2

2

2^128 + 1 の値を持つ数式は何と言っていますか? 衝突確率が 1 であるとは言っていないので、正しいとは言えません。実際、そうではないことはわかっています。正しい式はかなり大きくて扱いにくいですが、分数の指数関数を使用した適切な近似があります。SO は数式をタイプセットしないので、数式をここに書き留めることはしません。

検索するのに最適なキーワードは、おそらく「<a href="http://en.wikipedia.org/wiki/Birthday_attack" rel="nofollow">誕生日攻撃」です。

于 2014-01-11T13:27:08.097 に答える
0

なぜハッシュの衝突が問題になるのでしょうか? ハッシュは、一意の値を生成するようには設計されていません。最初の比較を高速に行うためだけに設計されています。

ハッシュの衝突に問題がある場合は、使い方が間違っています。

于 2014-01-11T13:21:17.813 に答える