2010-12-03 7 views
1

私はハッシュ関数を調べているUniで研究課題を行っています。WindowsでのNTLMv2ハッシングテクニックによる衝突速度

SHA1と(私が理解できるものから)すべてのハッシュテクニックには(非常にまれに)ハッシュ衝突があります。 See here

NTLMv2(Windows 7で使用されています)でハッシュの衝突が発生する可能性があることをanyoveがわかりますか?

おかげ

トム

+0

衝突の可能性はランダムに発生するか、攻撃者がどれだけ頻繁に攻撃を試みる必要がありますか? – CodesInChaos

+0

こんにちはCodeInChaos、ランダムに起こっている衝突の確率は素晴らしいでしょう。私はNTLMv2が3つのMD4関数を使ってハッシュを達成していることを知っています。 – Tom

+0

そしてなぜパスワードハッシュの衝突に興味がありますか?それは実際には無関係です。興味深いのは、プレイメージ攻撃です。 – CodesInChaos

答えて

0

NTLMv2がhmac-md5実装です。 collisions do not affect HMACsに注意してください。攻撃者がmd5 has a complexity of (2^24.1)/2 = 2^23.1のためにコリジョンを生成するために、私はそのような攻撃がNTLMv2に対してマウントされるとは考えていません。だから、答えは(2^128)/ 2 = 2^127だと思います。この数は、理想的なメッセージダイジェスト関数としてmd5を考えています。もちろん、理想的な関数は存在しません。

2で除算すると、birthday paradoxとなります。

+0

あなたが言ったことを明確にする/拡張する:2つの異なる入力が同じハッシュを持つ確率は1/2^128ですが、衝突を得るには約2^64のハッシュだけが必要です(誕生日パラドックスを参照) – CodesInChaos

+0

@CodeInChaos Aaahはい、あなたは誕生日パラドックスの会計について正しいです。しかし、あなたの数学は間違っています、1/2^128は非常に小さい小数です。しかし実際には確率は合計の1/2になるはずです。 – rook

+0

合計の1/2を意味しますか?誕生日のパラドックスは、可能性を半分ではなくビットで分けます。 x = 2^128の場合、Sqrt(x)ハッシュが必要なので、sqrt(x)= Sqrt(2^128)= 2 ^(128/2)= 2^64ハッシュが必要です。しかし、Sqrtは近似値にすぎず、2^64のハッシュを保存しておく必要があります。 – CodesInChaos