Вероятность столкновения SHA-1

Мне трудно представить это на бумаге и в голове. Я знаю, что это вращается вокруг парадокса дня рождения, однако я не могу понять взаимозаменяемость значений между моим вопросом и решением BP.

Итак, я знаю, что SHA-1 производит 160-битный хэш.

Между двумя сообщениями и вероятностью 0,5, сколько раз указанный «злоумышленник» должен выполнить поиск, чтобы найти идентичные значения хеш-функции?

Я наткнулся на ряд решений из поиска, но ни одно из них не провело бы меня через весь процесс и не объяснило бы его понятным для меня образом. Ниже приведено самое близкое, что мне удалось найти во время поиска.

введите здесь описание изображения

Я надеюсь, что это поможет объяснить мой вопрос.


person Lord Bahamut    schedule 13.03.2014    source источник
comment
Я думаю, что я решил это, в некоторой степени. В основном, поскольку всего задействовано 160 бит, 2 ^ 160/2, чтобы найти количество поисков, чтобы найти вероятность 0,5. Если у кого-то есть лучшее решение или он может пояснить мое решение, пожалуйста, сделайте это.   -  person Lord Bahamut    schedule 14.03.2014
comment
Есть Криптография SE, где подходит такой вопрос...   -  person Bruno Rohée    schedule 14.03.2014


Ответы (1)


Да, ты прав; это вращается вокруг Проблемы дня рождения. При хешировании вы, по сути, пытаетесь поместить что-то, что может быть теоретически бесконечной длины, в строку фиксированной длины с помощью математического процесса; поэтому столкновение неизбежно.

Проблема дня рождения в основном означает, что предположим, что у вас есть зал, полный людей, и вы спрашиваете у каждого человека дату его рождения. Вероятность найти кого-то с таким же днем ​​​​рождения, как у другого, увеличивается, поскольку у вас больше дат рождения, которые могут быть у двух людей одинаковыми. И в конце концов вы найдете кого-то, у кого такой же день рождения.

График проблемы дня рождения

Аарон Топонсе написал об этом в своей статье "Реальность SHA1" где он указал:

SHA1 должен был заменить MD5. MD5 имеет выходное пространство всего 128 бит, тогда как SHA1 имеет выходное пространство 160 бит. SHA1 также разработан иначе, чем MD5, и не должен страдать от тех же слабых мест или атак, с которыми сталкивается MD5. Однако со временем криптографы смогли серьезно атаковать SHA1, и в результате все они предупреждали нас, чтобы мы отказались от SHA1 и перешли на SHA2. Чтобы найти коллизию с SHA1, потребуется 2^160 операций, однако, используя парадокс дня рождения, мы можем иметь вероятность 50% найти коллизию SHA1 примерно за 2^80 операций. Однако криптоаналитики сократили SHA1 до сложности всего 2^61 операции. Даже лучше.

По сути, SHA1 — это математический алгоритм, в алгоритмах можно найти слабые места, которые облегчают их взлом и снижают вероятность коллизии. Это исследование, обычно проводимое учеными-компьютерщиками, криптографами и математиками, затем может быть использовано для уменьшения вероятности обнаружения коллизии за счет использования новых алгоритмов для поиска новых способов обнаружения коллизий.

person mjsa    schedule 14.10.2015