私は、削減された sha1 ハッシュに基づいて部分的な衝突を与える 2 つの異なる文を見つけるプロジェクトを行っています。私のプログラムは、2 つの異なるメッセージを生成します。2 つの文のハッシュの最初の 32 ビットが一致する場合、プログラムは停止し、一致しない場合は、衝突が検出されるまで繰り返します。
私のプログラムはうまく機能していますが、衝突の検索にかかる時間が遅すぎます。Iotを高速化するにはどうすればよいですか. 読んだところ、誕生日のパラドックスを使用できることがわかりました。どのように実装すればよいですか?
私はいくつかの検索を行い、関連する回答を得ましたが、誕生日のパラドックスについてはまだ混乱しています.
http://www.metzdowd.com/pipermail/cryptography/2004-August/007409.html
http://www.freelists.org/post/hashcash/Hashcash-and-the-cracking-of-SHA1,2
これが私のプログラムの仕組みです:
Generate random number() // let say i generate 100 number
Generate random char1() // we will generate 100 char
Hash() // the first 100 char
Generate random char2() // we will generate another 100 char
Hash2() // this 100 char again
Get the 32 bit of the random char1()
Get the 32 bit of the random char2()
compare the 32 bit for partial collision
If they dont match we will keep on doing until partial collision is found.
- 検索にかかる時間は、ミリ秒単位で検索できる他のプログラムに比べて長すぎます。