Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
http://www.rusdoc.ru. Версия для печати.

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

Раздел: Programming / Криптография @ 30.11.2008 | Ключевые слова: шифрование хеш md5 md6

Автор: foreach
Источник: habrahabr

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


Вернуться в раздел: Programming / Криптография
© Copyright 1998-2012 Александр Томов. All rights reserved.