Pull to refresh

Новая хеш-функция MD6

Reading time2 min
Views12K
MD6 — алгоритм хеширования переменной разрядности, разработанный профессором Рональдом Ривестом из Массачусетского Технологического Института в сентябре 2008 года. Предназначен для создания «отпечатков» или дайджестов сообщений произвольной длины. Предлагается на смену менее совершенному MD5. По заявлению авторов, алгоритм устойчив к дифференциальному криптоанализу. MD6 не обладает достаточной стойкостью к коллизиям первого рода. Используется для проверки подлинности опубликованных сообщений, путем сравнения дайджеста сообщения с опубликованным. Эту операцию называют «проверка хеша» (hashcheck).

Рональд Ривест

Предшественница (MD5) была создана в 1991 году, когда частоты обычных процессоров были не больше 33MHz. Она должна была отображать двоичную строку произвольной длины в строку размером d, быть устойчивой к коллизиям, нахождению прообразов и быть псевдослучайной.
После ее взлома, американский институт стандартов и технологий (NIST), объявил конкурс на создание хеш-функции SHA-3.
Новая функция MD6 предполагается доказуемо устойчивой к дифференциальному криптоанализу (с помощью которого была взломана MD5).
Разработчики использовали оригинальные идеи в дизайне хеш-функции. Так, размер обрабатываемого за один раз блока данных будет 512 байт (а не бит), что затрудняет проведение многих атак, даёт выигрыш в распараллеливании.

В разработке вместо традиционного дизайна Дамгарда-Меркла исползовалось сжатие при помощи древовидных структур. В узле каждого дерева находится сжимающая функция 4-1 (аналог деревьев Меркла с мини-функциями сжатия). Для малых процессоров вместо иерархической структуры деревьев, может использоваться последовательная.
MD6 поддерживает также хеширование с ключем 512-бит. Различные конструктивные особенности (нумерация узлов деревьев, root и z-биты на входе в подфункции) защищают функцию от атак вставок и расширения. Нелинейность функции достигается использованием всего трёх простейших операций: XOR, сложение и сдвиг с константами.

Количество раундов функции необычно велико: r = 40 + (d / 4). Так для 256 выхода потребуется 104 раунда, а для 512 – 168 раундов! При этом MD6-512 медленнее в полтора раза, чем SHA2-512 на 32-битных платформах и почти в четыре раза на 6

MD6 на Википедии
Презентация, показанная на Crypto 2008
Tags:
Hubs:
Total votes 93: ↑82 and ↓11+71
Comments89

Articles