В течение 2010-2011 годов был разработан новый алгоритм бес- ключевого хэширования, получивший название «Стрибог» в честь языческого божества восточных славян, бога стремительного ветра, разносящего и распределяющего блага между людьми.

В 2012 году данный алгоритм был принят в качестве нового стандарта Российской Федерации ГОСТ Р 34.11-2012. Основные отличия нового алгоритма от предыдущего заключаются в следующем.

  • 1. Функция позволяет вычислять код целостности длины либо п = 512 бит, либо п = 256, используя при этом единый алгоритм.
  • 2. Размер обрабатываемого блока входного сообщения увеличен вдвое, то есть b — 512.
  • 3. В основе одношаговой функции сжатия лежит блочный шифр с длиной блока 512 бит, построенный на основе SP- сети, см. раздел 7.5.
  • 4. Начальное значение ho зафиксированно и принимает различные значения для кодов целостности длины 256 или 512 бит.

Вместе с тем функция «Стрибог» имеет общие черты с предыдущим алгоритмом хэширования, а именно:

  • 1. в одношаговой функции сжатия / используется процедура развертки ключей; ключи, как и раньше, зависят от значений блоков входного сообщения;
  • 2. завершающее преобразование д использует длину хэшируемого сообщения, а также контрольную сумму по модулю 12 значений блоков входного сообщения.

Опишем функцию «Стрибог» более подробно. Для этого рассмотрим перестановку т Е <s(,i, действующую="" на="" множестве="" f:]<sup="">12 следующим образом:</s(,i,>

740

и задаваемую вектором

741

Рассмотрим подстановку 7г : F§ F®, задающую нелинейное биективное отображение множества F<> в себя и определяемую равенством 742
743

Также определим линейное отображение I : F®4 —> F|4, представляющее собой умножение вектора у Е F^4 на двоичную матрицу В = (,btj) € GLM(2):

744

Ниже мы приводим точное значение матрицы В, взятое нами из текста стандарта ГОСТР Р 34.11-2012. В каждой строке записано 4 строки матрицы В, при этом в строке с номером г, г = 0,, 15, записаны строки матрицы В с номерами 4г + j, j — 0,..., 3 в следующем порядке (слева направо): 4г, 4г + 1, 4г + 2, 4г + 3.

745

Введенные нами перестановка т, подстановка 7г и линейное преобразование I используются в алгоритме «Стрибог» для определения следующих преобразований над векторами длины 512 бит:

746

где XI,...64 е Fl, уъ ? ? •, у& е Ff4.

Кроме того, мы определим величины s,aj € Z2si2, j — l,...,г, представляющие собой различные контрольные суммы входного сообщения а = «111... ||аг:

747

Теперь мы можем определить одношаговую функцию сжатия, представляющую собой вариант функции Миягучи-Принеля, примененный к некоторому блочному шифру Е(к,а):

748

где величина <т, определена равенством (8.6).

Для описания блочного шифра, используемого внутри функции /, нам надо определить алгоритм развертки ключа к и алгоритм зашифрования Е(к,а).

Алгоритм развертки ключа к заключается в определении значений fci,...,&1з € F212 в соответствии со следующими равенствами:

749

где С2,...,схз € F212 — фиксированные константы, значения которых могут быть найдены в тексте стандарта ГОСТ Р 34.11-2012.

Алгоритм зашифрования Е(к, а) состоит из двенадцати одинаковых раундов R(k, а) : F25i2 х F212 —> F212 и завершающего преобразования W(k,a) : F25i2 х F212 —> F212, определяемых равенствами

750

Легко видеть, что раупдовое преобразование R используется и в алгоритме развертки ключа. Суммируя, мы можем записать алгоритм зашифрования в виде

751

Для полного описания бесключевой функции хэширования «Стрибог», определим завершающее преобразование д:

752

где s и аг определены равенствами (8.5) и (8.6) соответственно, а вектор а* определен равенством

753

Таким образом, бесключевая функция хэширования «Стрибог» определяется равенством (8.2), в котором одношаговая функция / удовлетворяет равенству (8.7), а завершающее преобразование д удовлетворяет равенству (8.8).

Описанная нами функция позволяет вырабатывать код целостности длиной 512 бит. Для того чтобы выработать код целостности длины 256 бит, необходимо выработать код длины 512 бит, а потом взять его старшие 256 разрядов, то есть

754

где hi G F2, г = 1,...,512.

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Поиск

Журнал Родноверие