Алгоритм ГОСТ 28147-89

Этот алгоритм является обязательным для применения в качестве алгорит­ма шифрования в государственных организациях РФ и ряде коммерческих [17, 18].

Описание алгоритма

Схема алгоритма  показана на рис. 3.1 [4]. Как видно, схема этого алгоритма достаточно проста, что однозначно упрощает его программ­ную или аппаратную реализацию.

Алгоритм ГОСТ 28147-89 шифрует информацию блоками по 64 бита, кото­рые разбиваются на два субблока по 32 бита (N1 и N2). Субблок N1 опре­деленным образом обрабатывается, после чего его значение складывается

со значением субблока N2 (сложение выполняется по модулю 2), затем суб­блоки меняются местами. Такое преобразование выполняется определенное количество раундов: 16 или 32 в зависимости от режима работы алгоритма (описаны далее). В каждом раунде выполняются следующие операции:

1. Наложение ключа. Содержимое субблока /VI складывается по модулю 232 с частью ключа Кх.

Ключ шифрования алгоритма ГОСТ 28147-89 имеет размерность 256 би­тов, а Кх— это его 32-битная часть, т. е. 256-битный ключ шифрования представляется в виде конкатенации 32-битных подключей (рис. 3.2):

Щ ATI, АГ2, Ю, АГ4, К5, Кб, К7.

В процессе шифрования используется один из этих подключей — в зави­симости от номера раунда и режима работы алгоритма.

clip_image002

Рис. 3.1. Схема алгоритма ГОСТ 28147-

clip_image004

Рис. 3.2. Ключ шифрования алгоритма ГОСТ 28147-89

2. Табличная замена. После наложения ключа субблок /VI разбивает­ся на 8 частей по 4 бита, значение каждой из которых по отдельности заменяется в соответствии с таблицей замены для данной части суб­блока. Табличные замены (Substitution box, S-box) часто используются в современных алгоритмах шифрования, поэтому стоит рассмотреть их подробнее.

Табличная замена используется таким образом: на вход подается блок данных определенной размерности (в этом случае — 4-битный), числовое представление которого определяет номер выходного значения. Напри­мер, имеем S-box следующего вида:

4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1.

Пусть на вход пришел 4-битный блок «0100», т. е. значение 4. Согласно таблице, выходное значение будет равно 15, т.е. «1111» (0 заменяется на 4, 1 — на 11, значение 2 не изменяется и т. д.).

Как видно, схема алгоритма весьма проста, что означает, что наибольшая нагрузка по шифрованию данных ложится на таблицы замен. К сожале­нию, алгоритм обладает тем свойством, что существуют «слабые» табли­цы замен, при использовании которых алгоритм может быть раскрыт криптоаналитическими методами. К числу слабых относится, например, таблица, в которой выход равен входу [16]:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

3. Побитовый циклический сдвиг влево на 11 битов.

Режимы работы алгоритма

Алгоритм ГОСТ 28147-89 имеет 4 режима работы:

□ режим простой замены;

□ режим гаммирования;

П режим гаммирования с обратной связью;

□ режим выработки имитоприставок.

Эти режимы несколько отличаются от общепринятых (описанных в разд. 1.4), поэтому стоит рассмотреть их подробнее.

Данные режимы имеют различное назначение, но используют одно и то же описанное выше шифрующее преобразование.

Режим простой замены

В режиме простой замены для зашифровывания каждого 64-битного блока информации просто выполняются 32 описанных выше раунда. 32-битные подключи используются в следующей последовательности:

□ КО, Kl, К2, КЗ, К4, К5, Кб, АГ7, КО, ATI и т. д. — в раундах с 1-го по 24-й;

□ К1, Кб, К5, К4, КЗ, К2, К\, КО —в раундах с 25-го по 32-й.

Расшифровывание в режиме простой замены производится совершенно так же, но с несколько другой последовательностью применения подключей:

□ КО, К\, К2, КЗ, К4, К5, Кб, КП — в раундах с 1-го по 8-й;

□ КП, Кб, К5, К4, КЗ, К2, К\, КО, К1, Кб и т. д. — в раундах с 9-го по 32-й.

Аналогично стандартному режиму ЕСВ, по причине раздельного шифрова­ния блоков режим простой замены категорически не рекомендуется ис­пользовать для шифрования собственно данных; он должен использоваться только для шифрования других ключей шифрования в многоключевых схемах.

Режим гаммирования

В режиме гаммирования (рис. 3.3) каждый блок открытого текста побитно складывается по модулю 2 с блоком гаммы шифра размером 64 бита. Гамма шифра — это специальная последовательность, которая вырабатывается с помощью описанных выше преобразований следующим образом:

1. В регистры N1 и N2 записывается их начальное заполнение— 64-битная величина, называемая «синхропосылкой» (синхропосылка, практически, является аналогом вектора инициализации в режимах СВС, CFB и OFB).

clip_image006

2. Выполняется зашифровывание содержимого регистров /VI и N2 (в данном случае — синхропосылки) в режиме простой замены.

3. Содержимое N1 складывается по модулю (232 – 1 ) с константой CI = 224 + 216 + 28 + 4 , результат сложения записывается в регистр /VI.

4. Содержимое N2 складывается по модулю 2 с константой С2 = 224 + 216 + 28 +1, результат сложения записывается в регистр N2.

5. Содержимое регистров /VI и N2 подается на выход в качестве 64-битного блока гаммы шифра (т. е. в данном случае /VI и N2 образуют первый блок гаммы).

6. Если необходим следующий блок гаммы (т. е. необходимо продолжить зашифровывание или расшифровывание), выполняется возврат к шагу 2.

Для расшифровывания аналогичным образом выполняется выработка гаммы, затем снова применяется операция XOR к битам зашифрованного текста и гаммы.

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

В большинстве реализаций алгоритма ГОСТ 28147-89 синхропосылка не яв­ляется секретным элементом, однако синхропосылка может быть так же сек­ретна, как и ключ шифрования. В этом случае можно считать, что эффектив­ная длина ключа алгоритма (256 битов) увеличивается еще на 64 бита синхропосылки, которую можно рассматривать как дополнительный ключе­вой элемент.

Режим гаммирования с обратной связью

В режиме гаммирования с обратной связью в качестве заполнения регистров /VI и Л/2, начиная со 2-го блока, используется не предыдущий блок гаммы, а результат зашифровывания предыдущего блока открытого текста (рис. 3.4). Первый же блок в данном режиме генерируется полностью аналогично пре­дыдущему.

clip_image008

Рис. 3.4. Выработка гаммы шифра в режиме гаммирования с обратной связью

Режим выработки имитоприставки

Имитоприставка — это криптографическая контрольная сумма, вычисляемая с использованием ключа шифрования и предназначенная для проверки цело­стности сообщений. Для ее вычисления существует специальный режим ал­горитма ГОСТ 28147-89.

Генерация имитоприставки выполняется следующим образом:

1. Первый 64-битный блок информации, для которой вычисляется имито­приставка, записывается в регистры N1 и N2 и зашифровывается в сокра­щенном режиме простой замены, в котором выполняются первые 16 раун­дов из 32.

2. Полученный результат суммируется по модулю 2 со следующим блоком информации с сохранением результата в N1 и N2.

3. М и N2 снова зашифровываются в сокращенном режиме простой замены и т. д. до последнего блока информации.

Имитоприставкой считается 64-битное результирующее содержимое регист­ров N1 и N2 или его часть. Чаще всего используется 32-битная имитопри­ставка, т. е. половина содержимого регистров. Этого достаточно, посколь­ку, как и любая контрольная сумма, имитоприставка предназначена, прежде всего, для защиты от случайных искажений информации. Для защиты же от преднамеренной модификации данных применяются другие криптогра­фические методы — в первую очередь электронная цифровая подпись {см. разд. 1.1).

Имитоприставка используется следующим образом:

1. При зашифровывании какой-либо информации вычисляется имитопри­ставка открытого текста и посылается вместе с шифртекстом.

2. После расшифровывания имитоприставка снова вычисляется и сравнива­ется с присланной.

3. Если вычисленная и присланная имитоприставки не совпадают— шифр-текст был искажен при передаче или использовались неверные ключи при расшифровывании.

Имитоприставка особенно полезна для проверки правильности расшиф­ровывания ключевой информации при использовании многоключевых схем.

Имитоприставка— это некоторый аналог кода аутентификации сообщений MAC, вычисляемого в режиме СВС; отличие состоит в том, что при вычис­лении имитоприставки не используется синхропосылка, тогда как при вы­числении MAC используется вектор инициализации.

Криптостойкость алгоритма

В 1994 г. описание алгоритма ГОСТ 28147-89 было переведено на англий­ский язык и опубликовано [300]; именно после этого стали появляться ре­зультаты его анализа, выполненного зарубежными специалистами; однако в течение значительного времени не было найдено каких-либо атак, прибли­жающихся к практически осуществимым [91].

По мнению автора [16], высокая стойкость алгоритма ГОСТ 28147-89 дости­гается за счет следующих факторов:

□ большой длины ключа — 256 битов; вместе с секретной синхропосылкой эффективная длина ключа увеличивается до 320 битов;

□ 32 раундов преобразований; уже после 8 раундов достигается полный эф­фект рассеивания входных данных: изменение одного бита блока откры­того текста повлияет на все биты блока шифртекста, и наоборот, т. е. су­ществует многократный запас стойкости.

Рассмотрим результаты криптоанализа алгоритма ГОСТ 28147-89.

Анализ таблиц замен

Поскольку таблицы замен в стандарте [4] не приведены, в ряде работ (на­пример, в [115]) высказывается предположение, что «компетентная органи­зация» может выдать как «хорошие», так и «плохие» таблицы замен. Однако в [28] известнейший эксперт Брюс Шнайер называет такие предположения «слухами». Ясно, что криптостойкость алгоритма во многом зависит от свойств используемых таблиц замен, соответственно, существуют слабые таблицы замен (пример см. выше), применение которых может упростить вскрытие алгоритма. Тем не менее, возможность использования различных таблиц замен кажется весьма достойной идеей, в пользу которой можно при­вести два следующих факта из истории стандарта шифрования DES (подроб­ности см. в разд. 3.15):

□ атаки с помощью как линейного, так и дифференциального криптоанализа алгоритма DES используют конкретные особенности таблиц замен; при использовании других таблиц криптоанализ придется начинать сначала;

□ были предприняты попытки усилить DES против линейного и дифферен­циального криптоанализа путем использования более стойких таблиц за­мен; такие таблицы, действительно более стойкие, были предложены, на­пример, в алгоритме s5DES [206]; но, увы, заменить DES на s5DES было невозможно, поскольку таблицы замен жестко определены в стандарте [150], соответственно, реализации алгоритма наверняка не поддерживают возможность смены таблиц на другие.

В ряде работ (например, [14], [16] и [115]) ошибочно делается вывод о том, что секретные таблицы замен алгоритма ГОСТ 28147-89 могут являться частью ключа и увеличивать его эффективную длину (что несущественно, поскольку алгоритм обладает весьма большим 256-битным ключом). Однако в работе [334] доказано, что секретные таблицы замен могут быть вычислены с помощью следующей атаки, которая может быть применена практически:

1. Устанавливается нулевой ключ и выполняется поиск «нулевого вектора», т. е. значения z = /(0), где /() — функция раунда алгоритма. Этот этап занимает порядка 2 операций шифрования.

2. С помощью нулевого вектора вычисляются значения таблиц замен, что занимает не более 211 операций.

Модификации алгоритма и их анализ

В работе [293] проведен криптоанализ модификаций алгоритма ГОСТ 28147-89:

□ алгоритма GOST-H, в котором, относительно оригинального алгоритма, изменен порядок использования подключей, а именно в раундах с 25-го по 32-й подключи используются в прямом порядке, т. е. точно так же, как и в предыдущих раундах алгоритма;

□ 20-раундового алгоритма GOST®, в раунде которого для наложения клю­ча используется операция XOR вместо сложения по модулю 232.

По результатам анализа сделан вывод о том, что GOST-H и GOST© слабее исходного алгоритма ГОСТ 28147-89, поскольку оба имеют классы слабых ключей. Стоит отметить, что в части криптоанализа GOST© работа [293] слово в слово повторяет раздел, посвященный криптоанализу алгоритма ГОСТ 28147-89, вышедшей в 2000 г. известной работы [91] (без каких-либо ссылок на оригинал). Это ставит под сомнение профессионализм авторов ра­боты [293] и остальные ее результаты.

Весьма интересная модификация алгоритма предложена в работе [402]: таб­лицы S\…Ss обязательно должны быть различными; в каждом раунде алго­ритма должна выполняться их перестановка по определенному закону. Дан­ная перестановка может быть зависимой от ключа шифрования, а может быть и секретной (т. е. являться частью ключа шифрования большего размера по сравнению с исходным 256-битным ключом). Оба этих варианта, по мнению их авторов, существенно усиливают стойкость алгоритма против линейного и дифференциального криптоанализа.

И еще одна модификация, связанная с таблицами замен, приведена в работе [168], в которой анализируется один из возможных методов вычисления таблиц замен на основе ключа шифрования. Авторы работы сделали вывод, что по­добная зависимость ослабляет алгоритм, поскольку приводит к наличию сла­бых ключей и к некоторым потенциальным уязвимостям алгоритма.

Анализ полнораундового алгоритма

Существуют атаки и на полнораундовый ГОСТ 28147-89 без каких-либо мо­дификаций. Одна из первых открытых работ, в которых был проведен анализ алгоритма,— широко известная работа [197]— посвящена атакам, исполь­зующим слабости процедуры расширения ключа ряда известных алгоритмов шифрования. В частности, полнораундовый алгоритм ГОСТ 28147-89 может быть вскрыт с помощью дифференциального криптоанализа на связанных ключах, но только в случае использования слабых таблиц замен. 24-раундовый вариант алгоритма (в котором отсутствуют первые 8 раундов) вскрывается аналогичным образом при любых таблицах замен, однако сильные таблицы замен (например, приведенная в [28]) делают такую атаку абсолютно непрак­тичной.

Отечественные ученые А. Г. Ростовцев и Е. Б. Маховенко в 2001 г. в работе [22] предложили принципиально новый метод криптоанализа (по мнению авторов, существенно более эффективный, чем линейный и дифференциаль­ный криптоанализ [23]) путем формирования целевой функции от известного открытого текста, соответствующего ему шифртекста и искомого значения ключа и нахождения ее экстремума, соответствующего истинному значению ключа. Они же нашли большой класс слабых ключей алгоритма ГОСТ 28147-89, которые позволяют вскрыть алгоритм с помощью всего 4-х выбранных от­крытых текстов и соответствующих им шифртекстов с достаточно низкой сложностью. Криптоанализ алгоритма продолжен в работе [23].

В 2004 г. группа специалистов из Кореи предложила атаку, с помощью кото­рой, используя дифференциальный криптоанализ на связанных ключах, мож­но получить с вероятностью 91,7 % 12 битов секретного ключа [227]. Для атаки требуется 235 выбранных открытых текстов и 236 операций шифрова­ния. Как видно, данная атака, практически, бесполезна для реального вскры­тия алгоритма.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100