Насколько я понимаю, MD5 по-прежнему устойчив к атакам прообразов в генеральный случае, но злоумышленник все еще может запустить вторую атаку по прообразу если невинному файлу достаточно «не повезло», чтобы быть жизнеспособным кандидатом на коллизию.
- Каковы шансы равномерно случайного файла длины 512 000 $ биты являются кандидатом на атаку коллизии MD5?
- Можно ли обнаружить текущую современную кандидатуру атаки из только $Ч(м)$, или мне нужно иметь доступ к $м$ сказать?
Я был вдохновлен этим вопросом, когда читал это Github поддерживает работу SHA-1 в общедоступных производственных сервисах несмотря на продемонстрированное существование атак столкновений:
Недавняя атака использует специальные методы для использования слабых мест в алгоритме SHA-1, которые находят коллизию за гораздо меньше [чем $2^{160}$] время. Эти методы оставляют шаблон в байтах, который можно обнаружить при вычислении SHA-1 любой половины конфликтующей пары.
GitHub.com теперь выполняет это обнаружение для каждого SHA-1, который он вычисляет, и прерывает операцию, если есть доказательства того, что объект является половиной конфликтующей пары. Это не позволяет злоумышленникам использовать GitHub, чтобы убедить проект принять «невинную» половину их коллизии, а также не позволяет им разместить злонамеренную половину.
Возможностью ложных срабатываний можно пренебречь, так как вероятность меньше, чем $2^{-90}$.
«При вычислении» предполагает (наряду с моим любительским анализом код) что $м$ является требуется для обнаружения атаки SHAttered, но мне неясно, имеют ли коллизии MD5 такие же требования к обнаружению, или они мог быть предсказано исключительно из дайджеста.