Хэш MD4 онлайн
Предшественник MD5 (1990) — сегодня практически не используется, коллизии находятся почти мгновенно. Считается прямо в браузере — текст никуда не отправляется.
Вычислить MD4
Результат пересчитывается сам, пока вы печатаете. В режиме «По строкам» пустые строки тоже хэшируются — результат всегда совпадает по числу строк со входом. Нужна другая функция — на полной странице калькулятора их 32.
История MD4
MD4 (Message Digest 4) — самый первый по-настоящему широко принятый хэш-алгоритм Рональда Ривеста, опубликованный в 1990 году как RFC 1320. Именно MD4 задал саму архитектуру, которую потом унаследовали MD5, а через них и вся линия SHA-1/SHA-2 — 512-битные блоки, четыре 32-битных регистра, раунды с нелинейными функциями. В этом смысле MD4 — общий прародитель почти всех хэшей, о которых рассказано в этом разделе.
Слабости у MD4 нашли на удивление быстро по историческим меркам: уже в 1991 году появились первые теоретические атаки, а после работы китайских криптографов во главе с Ван Сяоюнь (2004–2005 — та же команда, что чуть позже сломала и MD5, и частично SHA-1) MD4 оказался сломан настолько основательно, что коллизию можно найти буквально вручную, без компьютера, следуя опубликованному методу. Именно из-за этой ранней уязвимости Ривест в 1991-м выпустил MD5 — усиленную переработку MD4 с дополнительным (четвёртым) раундом.
Как устроен алгоритм
Структура MD4 — тот же Меркл-Дамгор, что у MD5, только проще: 3 раунда по 16 операций (48 всего вместо 64 у MD5), каждый раунд — своя нелинейная функция (F, G, H — MD5 позже добавит четвёртую, I), и, в отличие от MD5, без индивидуальной аддитивной константы на каждый шаг — у MD5 такие константы (полученные из синуса) добавляются на каждом из 64 шагов, у MD4 в этой роли выступает всего 3 общих константы, по одной на раунд. Меньше раундов и более простая схема констант — и есть главная причина, по которой MD4 оказался слабее MD5 при почти идентичной общей архитектуре.
Характеристики
| Параметр | Значение |
|---|---|
| Длина хэша | 128 бит (32 hex-символа) |
| Размер блока | 512 бит |
| Раундов на блок | 48 (3 × 16) |
| Внутреннее состояние | 4 × 32-битных регистра (A, B, C, D) |
| Конструкция | Меркла — Дамгора |
| Опубликован | 1990, RFC 1320 |
| Автор | Рональд Ривест |
Где применяется
- Практически нигде как самостоятельный современный выбор — вытеснен MD5 ещё в 1990-х
- Любопытный пережиток: механизм NTLM в старых версиях Windows для хранения хэша пароля использует именно MD4 — известная и часто критикуемая деталь протокола
- Как учебный пример устройства всей MD/SHA-линии хэшей
Криптостойкость
MD4 сломан полностью и давно. Коллизию можно построить практически мгновенно — существуют опубликованные методы, позволяющие найти её вычислениями на бумаге. Использовать MD4 сегодня где бы то ни было, кроме анализа legacy-систем вроде старого NTLM, нет причин.