ハッシュ関数でのマルチコリジョンと1番目または2番目のプリイメージの違いは何ですか。
最初の原像攻撃:ハッシュhが与えられた場合、次のようなメッセージmを見つけます。
hash(m)=h。
2番目の原像攻撃:固定メッセージm1が与えられた場合、次のような別のメッセージm2を見つけます。
hash(m2)= hash(m1)。
マルチコリジョン攻撃:一連のメッセージm1、m2、...mNを生成します。
hash(m1)= hash(m2)= ... = hash(mN)。
ウィキペディアによると、原像攻撃は、攻撃されている固定ハッシュまたはメッセージがあるという点で衝突攻撃とは異なります。
私は次のような発言をする論文に混乱しています:
この手法は、衝突を検索するのに効率的であるだけでなく、MD4の2番目のプリイメージを探索するためにも適用できます。2番目の原像攻撃について、彼らは、ランダムメッセージが確率2 ^ –122の弱いメッセージであり、弱いメッセージに対応する2番目の原像を見つけるために1回のMD4計算のみが必要であることを示しました。
著者が言っているように思われることを理解すると、ランダムなメッセージを与えるのに十分な数のメッセージのセットを含むマルチコリジョン攻撃を開発したということです。衝突。
私は多くの論文で同様の議論を見ました。私の質問は、攻撃がマルチコリジョン攻撃でなくなり、2番目の原像攻撃になるのはいつですか。
マルチコリジョンが2^300の他のメッセージと衝突した場合、それは2番目のプリイメージとしてカウントされます。マルチコリジョンは、衝突したメッセージの1つの「プレイメージ」を計算するために使用できるためです。2 ^ 60、2 ^ 100、2 ^ 1000の境界線はどこにありますか?
23で始まるすべてのハッシュダイジェストのプレイメージを生成できるとしたらどうでしょうか。確かに、それはプリイメージの厳密な定義を満たしていませんが、暗号化ハッシュ関数の重大な欠陥でもあります。
誰かが大きなマルチコリジョンを持っている場合、ハッシュがマルチコリジョンと衝突したメッセージのイメージをいつでも回復できます。例えば、
hash(m1)= hash(m2)= hash(m3)= h
誰かがhのプリイメージを要求し、m2で応答します。これが愚かでなくなり、本当の攻撃になるのはいつですか?
経験則?ハッシュ関数攻撃の評価に関する優れたリソースを知っていますか?
関連リンク: