Рейтинг@Mail.ru

15 января 2014

Алгоритм хэширования MD6: секретный ключ, количество раундов и прочие параметры

Панасенко С. П.

В двух предыдущих статьях мы рассмотрели базовый вариант алгоритма хэширования MD6, а также опциональный параметр L, определяющий структуру алгоритма – от древовидной (параллельной) до линейной (последовательной).

Рассмотрим остальные явные и неявные опциональные параметры алгоритма MD6 согласно его спецификации [1].

Секретный ключ

Еще один из важных параметров алгоритма – секретный ключ. Его использование позволяет на уровне алгоритма хэширования решить ряд задач, которые обычно решаются различными надстройками над алгоритмом хэширования, в частности:

  • ключ может использоваться в качестве «соли» (salt) – случайной или псевдослучайной последовательности данных, которая чаще всего применяется для рандомизации при хэшировании паролей (в том числе, с целью противодействия словарным атакам [2]); соль не является секретной и обычно хранится вместе с хэшированным паролем, поскольку она должна быть доступна при его проверке;
  • секретный ключ необходим для различных вариантов ключевого хэширования – в основном, для вычисления кодов аутентификации сообщений: MAC, HMAC и т. п.; надстройки аутентификации данных на основе алгоритмов хэширования были подробно рассмотрены ранее в статье [3].

Секретный ключ K может быть любого размера от нуля (по умолчанию) до 64 байтов включительно. Допускается и применение ключей больших размеров; такой ключ необходимо сначала обработать алгоритмом хэширования с нулевым ключом и 512-битовым выходным значением, после чего результат хэширования можно использовать в качестве ключа K. Ключ меньших, чем 64 байта, размеров дополняется до данного размера нулевыми байтами. Как указывают авторы алгоритма MD6 в [1], 64-байтовый ключ может представлять собой и различную комбинацию внутренних полей с различным назначением.

Размер ключа K в байтах обозначается как keylen.

Секретный ключ K участвует в вычислениях при каждом вызове функции сжатия алгоритма MD6 следующим образом (см. рис. 1):

  • значение K является частью входной последовательности функции сжатия (см. описание алгоритма в [4]);
  • значение keylen записывается в дополнительное слово V, которое также является частью входной последовательности функции сжатия.

Рис. 1 Ключ как часть входной последовательности функции сжатия

Алгоритм MD6 спроектирован таким образом, чтобы никакая информация о значении секретного ключа не была доступна криптоаналитику в результате анализа, например, полученных в результате работы алгоритма хэш-значений. Для обеспечения отсутствия утечки данных о ключе алгоритм MD6, в числе прочего, устанавливает нижнюю границу количества раундов функции сжатия при использовании ключа, о чем будет сказано далее.

Авторы алгоритма MD6 в [1] утверждают, что криптостойкость некоторых вариантов MAC-надстроек сильно зависит от структуры и криптостойкости нижележащего алгоритма хэширования (что является известным фактом – см., например, [5]). Интегрирование возможности ключевого хэширования в структуру алгоритма решает подобные проблемы с криптостойкостью.

Количество раундов функции сжатия

В базовом варианте алгоритма количество раундов функции сжатия r определено следующим образом:

r = 40 +  ⌊d / 4 ⌋,

где d – размер выходного значения алгоритма в битах.

Значением r можно варьировать с целью увеличения криптостойкости алгоритма (путем увеличения r) или с целью увеличения его производительности (путем уменьшения r). При этом, если в алгоритме используется ключ K, установлено минимальное количество раундов – 80, что необходимо для обеспечения защиты секретного ключа против возможных атак, направленных на вычисление его значения. Таким образом, при использовании ключа K минимальное количество раундов определяется так:

r = max(80, 40 +  ⌊d / 4 ⌋).

Именование различных вариантов алгоритма

 

Все описанные выше явные параметры алгоритма (за исключением значения секретного ключа) могут быть явным образом внесены в название конкретного варианта алгоритма. Для единообразия авторы MD6 предлагают пользоваться следующей нотацией (курсивом в названии варианта алгоритма выделены переменные, вместо которых подставляются конкретные значения, а обычным шрифтом – опции названия – см. примеры далее):

MD6-d-kkeylen-LL-rr.

Например, следующий вариант алгоритма:

MD6-512-k64-L2-r192,

– представляет собой алгоритм MD6 c 512-битовым выходным значением, 64-байтовым ключом, значением L = 2 и 192 раундами.

Любой параметр, кроме d, может быть опущен в названии, если он установлен в значение по умолчанию. Например, такой вариант:

MD6-160-L0,

– является 160-битовым алгоритмом MD6 с последовательной структурой и остальными параметрами по умолчанию, т. е. без секретного ключа и с 80 раундами функции сжатия.

Неявные параметры алгоритма

Помимо описанных ранее параметров L, K и r, MD6 имеет множество различных величин (константных в базовом варианте алгоритма), которые также могут рассматриваться как параметры алгоритма, т. е. могут быть установлены в различные значения, отличающиеся от значений по умолчанию. К таким неявным параметрам алгоритма относятся следующие величины [1]:

  • размер слова – основной единицы измерения размеров данных и констант в алгоритме;
  • размер входной последовательности и размер выходного значения функции сжатия алгоритма;
  • значение константы Q, являющейся префиксом входной последовательности функции сжатия;
  • значения раундовых констант Sj;
  • значения констант t0…t4, определяющих позиции обратной связи в итерации функции сжатия;
  • значения констант rj и lj , определяющих количество битов вращения операнда в итерации функции сжатия.

Неявные параметры алгоритма не вносятся в название его вариантов, поскольку, как отметили авторы алгоритма в [1], название «MD6» подразумевает, что все неявные параметры имеют значения по умолчанию. Тем не менее, возможность модификации неявных параметров позволяет создавать на основе MD6 специфические варианты алгоритма хэширования, близкие по структуре к исходному алгоритму.

Литература

  1. Rivest R. L., Agre B., Bailey D. V., Crutchfield C., Dodis Y., Fleming K. E., Khan A., Krishnamurthy J., Lin Y., Reyzin L., Shen E., Sukha J., Sutherland D., Tromer E., Yin Y. L. The MD6 hash function. A proposal to NIST for SHA-3. // http://csrc.nist.gov – Massachusetts Institute of Technology, Cambridge, MA – October 27, 2008.
  2. Salt (cryptography). From Wikipedia, the free encyclopedia. // http://en.wikipedia.org.
  3. Панасенко С. Алгоритмы аутентификации сообщений HMAC и NMAC. // Sec.ru. – http://daily.sec.ru/publication.cfm?pid=35050 – 16.07.2012 г.
  4. Панасенко С. Алгоритм хэширования MD6. // Sec.ru. – http://daily.sec.ru/publication.cfm?pid=43766 – 22.11.2013 г.
  5. Gauravaram P. Cryptographic Hash Functions: Cryptanalysis, Design and Applications. // http://eprints.qut.edu.au – Queensland University of Technology – 2007.

Об авторе:

Панасенко Сергей Петрович, нач. отдела разработки программного обеспечения фирмы АНКАД, кандидат технических наук.

Просмотров: 1165

Мнения экспертов

  • Крюков А.Н.Крюков А.Н.
    Рязанское высшее воздушно-десантное командное училище им. В.Ф.Маргелова
    преподаватель
Предлагаемая статья представляет собой часть работы, посвящённой алгоритму хеширования MD6, идущему на смену скомпрометированному алгоритму MD5, непонятную ряду специалистов до ознакомления с предшествующими частями. В статье автор, как всегда, блестяще, с формулами, рисунками, ссылками на зарубежные источники, понятным языком описывает место и роль секретного ключа, количества раундов функции сжатия и неявных параметров в алгоритме MD6. Приведены классификация вариантов алгоритма и их наименования. Статья написана автором самостоятельно, имеет практическую ценность как для разработчиков алгоритмов и устройств аутентификации, так и для студентов, изучающих способы защиты информации. Работа сильно «выжата»; эксперт надеется на продолжение — без него статья выглядит не оконченной.

Как и все предыдущие статьи по алгоритмам хэширования, эта статья может представлять интерес разве для студентов, изучающих криптографию. К тому же самоцитирование в списке литературы снижает РИНЦ.

Автор, продолжая начатый ранее цикл статей, вновь обращается к рассмотрению параметров алгоритма хэширования MD6. Особое внимание уделяется секретному ключу и, в частности, указывается каким образом осуществляется противодействие криптоанализу. В статье приводится расчет значения минимально необходимого числа раундов функции сжатия, влияющей с одной стороны на изменение производительности алгоритма, а с другой – его криптостойкости. Также автор обращает внимание на возможность варьирования значениями, так называемых, неявных параметров алгоритма, что позволяет порождать его различные модификации. Полагаю, что данная статья обязательно найдёт свою категорию читателей и должна быть обязательно опубликована на портале sec.ru.

  • Левицкий О.И.Левицкий О.И.
    ОАО НПО «Наука»
    Ведущий специалист по информационной безопасности
В настоящем материале, входящем в цикл статей об алгоритмах хэширования семейства MD, автор рассматривает опциональные параметры алгоритма хэширования MD6: секретный ключ (K), количество раундов сжатия (r), а также другие явные и неявные параметры алгоритма. С учётом того, что язык статьи достаточно специфичен, затруднительно дать оценку её значимости в прикладном аспекте, но это не мешает оценить профессиональное качество подготовки и изложения данного материала.

Ваши комментарии:

Для того, чтобы оставлять коментарии, Вам нужно авторизоваться на Sec.Ru. Если У Вас еще нет аккаунта, пройдите процедуру регистрации.


Автор

Информация

  • Снимай крутую видеорекламу - выкладывай на Sec.Ru!

    Рекламный ролик - один из самых эффективных способов донесения информации. И он отлично подходит для рекламирования любой продукции, в т.ч. и продукции рынка систем безопасности.
    Поэтому редакция Портала решила составить свой рейтинг лучших рекламных видеороликов. Все они разные и все чем-то покоряют: красотой, задумкой, стилем съемки, посылом, необычным финалом.
    Некоторые из них язык не повернется назвать иначе как шедевром короткого метра. Смотрим, наслаждаемся, делаем заметки, учимся творить рекламу правильно.
    Если Вы хотите выложить видеоролик о своей продукции на Sec.Ru, пишите о своем желании на adv@sec.ru!

    Картинка: Jpg, 100x150, 16,47 Кбайт

    Мотор!

Отраслевые СМИ

Все права защищены 2002 – 2016
Rambler's Top100 �������@Mail.ru