Коллизии хэш-функций: почему MD5 и SHA-1 небезопасны
Хэш-функция преобразует массив данных произвольного размера в строку фиксированной длины. Но что происходит, когда двум совершенно разным файлам соответствует одинаковый хэш? Разбираем механику коллизий, атаку SHAttered от Google и причины, по которым современный веб полностью перешёл на семейство SHA-2 и SHA-3.
Что такое коллизия и парадокс дней рождения
Интуиция человека подсказывает, что для хэша длиной N бит потребуется перебрать около 2^N вариантов, чтобы найти совпадение с заданным файлом (стойкость к нахождению прообраза).
Однако для нахождения любой произвольной пары файлов с одинаковым хэшем (Collision Resistance) действует теория вероятностей «Парадокса дней рождения»:
• Чтобы вероятность совпадения дней рождения у двух людей в комнате превысила 50%, требуется всего 23 человека, а не 183;
• Для хэш-функции длиной N бит вычислительная сложность нахождения первой коллизии составляет не 2^N, а всего 2^(N/2) операций!
Для MD5 (128 бит) барьер устойчивости составляет всего 2^64 операций, что легко преодолевается кластером современных GPU за считанные часы.
Полезный инструмент: Для вычисления контрольных сумм и проверки целостности используйте вычисление хэшей MD5 и SHA-256.
Полезный инструмент: При хешировании паролей пользователей создавайте ключи через генератор надёжных паролей онлайн.
Как пала стойкость MD5 и SHA-1 (Атака SHAttered)
• SHA-1 (1995 год, NSA, дайджест 160 бит): теоретическая стойкость составляла 2^80. Однако в 2017 году исследователи из Google и CWI Amsterdam представили атаку SHAttered: они создали два PDF-документа с совершенно разным содержимым, но абсолютно идентичным SHA-1 хэшем. Затраты составили эквивалент 110 лет работы одного GPU — вполне доступный бюджет для спецслужб и киберпреступников.
Почему SHA-256 невозможно взломать полным перебором
2^(256 / 2) = 2^128 операций.
Число 2^128 превышает 3.4 × 10^38:
• Для совершения такого количества операций всем суперкомпьютерам Земли, работающим синхронно, потребовались бы миллиарды лет;
• Энергия, необходимая для переключения такого количества транзисторов, превосходит энергетический баланс Солнца за всю историю его существования.
Поэтому алгоритмы SHA-256 и SHA-512 остаются криптографическим золотым стандартом для блокчейна, цифровых подписей TLS и проверки пакетов ПО.
Попробуйте онлайн-инструменты по этой теме
Используйте бесплатные утилиты Utilora прямо в браузере без регистрации:
Хэш-генератор
Мгновенное вычисление криптографических хэшей MD5 (RFC 1321), SHA-1, SHA-256 и SHA-512 в браузере с аппаратным ускорением Web Crypto API.
Запустить ▸Генератор паролей
Создание криптографически стойких паролей с расчётом энтропии Шеннона и времени подбора.
Запустить ▸Base64 Кодер / Декодер
Кодирование текста и файлов в Base64 и обратное декодирование с корректной поддержкой UTF-8 кириллицы.
Запустить ▸Часто задаваемые вопросы (FAQ)
Только с использованием уникальной случайной «соли» (salt) и алгоритмов медленного хэширования (Argon2, bcrypt, PBKDF2). Чистый SHA-256 работает слишком быстро: злоумышленник на ферме видеокарт может перебирать миллиарды простых паролей в секунду.
Математически нет — хэширование является необратимым односторонним преобразованием. Восстановление возможно только методом перебора по радужным таблицам (Rainbow Tables) для очень коротких и предсказуемых паролей.
Воспользуйтесь нашим инструментом «Генератор хэшей онлайн» — он мгновенно вычисляет MD5, SHA-1, SHA-256 и SHA-512 с использованием Web Crypto API прямо на вашем устройстве.