я делаю проект, чтобы найти два разных предложения, которые дают частичное столкновение на основе сокращенного хеширования sha1. Моя программа будет генерировать два разных сообщения. Если первые 32 бита хеширования двух предложений совпадают, программа остановится, иначе она будет повторяться до тех пор, пока не будет обнаружено столкновение.
Моя программа работает хорошо, однако время на поиск столкновения очень медленное. Как я могу ускориться. Я прочитал и узнал, что могу использовать парадокс дня рождения, как мне это реализовать?
Я немного поискал и получил соответствующий ответ, но я все еще не понимаю парадокс дня рождения.
демонстрация/пример столкновения SHA1
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.
- Время, затрачиваемое на поиск, слишком велико по сравнению с некоторыми другими программами, которые могут искать за миллисекунды.