Контакты
Подписка
МЕНЮ
Контакты
Подписка

ГОСТ Р 34.13–2015: стандарт строгого режима

ГОСТ Р 34.13–2015: стандарт строгого режима

В рубрику "Криптография" | К списку рубрик  |  К списку авторов  |  К списку публикаций

ГОСТ Р 34.13–2015: стандарт строгого режима

Национальным стандартом Российской Федерации ГОСТ Р 34.12–2015 [1, 3] определены два базовых алгоритма шифрования – “Кузнечик" и “Магма", которые могут применяться в криптографических методах обработки и защиты информации, в том числе для обеспечения конфиденциальности, аутентичности и целостности информации при ее передаче, обработке и хранении в автоматизированных системах. В данной статье мы расскажем об основных эксплуатационных и криптографических характеристиках режимов работы блочных шифров, определяемых национальным стандартом Российской Федерации ГОСТ Р 34.13–2015 [2], введенным в действие приказом Федерального агентства по техническому регулированию и метрологии от 19 июня 2015 г. № 750-ст.
Александр
Бондаренко
Эксперт технического комитета по стандартизации ТК 26
Григорий
Маршалко
Эксперт технического комитета по стандартизации ТК 26, эксперт ISO/IEC JTC1/SC 27
Василий
Шишкин
Эксперт технического комитета по стандартизации ТК 26, эксперт ISO/IEC JTC1/SC 27, к.ф.-м.н.

Первоначально алгоритм криптографического преобразования (блочного алгоритма шифрования) и режимы работы данного алгоритма определялись единым национальным стандартом ГОСТ 28147–89, принятым в 1989 г. Через четыре года – в 1993 г. – в Российской Федерации был принят стандарт ГОСТ Р ИСО/МЭК 10116–93 [6], являвшийся аутентичным переводом соответствующего стандарта ISO/IEC. Список режимов в данном стандарте был расширен по сравнению с ГОСТ 28147–89, однако не содержал алгоритма выработки имитовставки. В течение последующих лет произошло бурное развитие многих областей криптографии, в том числе изучающих режимы работы блочных алгоритмов шифрования. С целью гармонизации нового поколения национальных стандартов в области криптографии с международной системой ISO/IEC [5] было принято решение определить режимы работы блочных шифров, включая режим выработки имитовставки, в отдельном стандарте ГОСТ Р 34.13–2015 [2]. При подготовке этого стандарта описание режимов было существенно переработано с целью обеспечения возможности параллельной обработки данных. Кроме этого режим выработки имитовставки был изменен на режим, обладающий более высокими эксплуатационными характеристиками.

Режим простой замены (Electronic Codebook, ECB)

Данный режим шифрования заключается в разбиении открытого текста на блоки длиной 128 бит для алгоритма "Кузнечик" или 64 бит для алгоритма "Магма" и замене полученных блоков открытого текста на соответствующие блоки шифрованного текста с использованием преобразования, задаваемого алгоритмом блочного шифрования. При расшифровании информации применяется обратная процедура (при этом используется обратное преобразование). На рис. 1 проиллюстрированы процедуры зашифрования и расшифрования в режиме простой замены.


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

Режим гаммирования (Counter, CTR)

Данный режим работы имеет два параметра:

  • s – целочисленная величина, определяющая длину блока открытого текста. Для алгоритма "Кузнечик" параметр s не может превосходить значение 128, а для алгоритма "Магма" – 64;
  • IV – уникальная несекретная двоичная последовательность (инициализационный вектор, синхропосылка), определяемая для каждого открытого текста и ключа. Для алгоритма "Кузнечик" размер синхропосылки IV равен 64 битам, а для алгоритма "Магма" размер синхропосылки IV равен 32 битам.

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


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


Необходимо отметить, что данный режим работы алгоритмов блочного шифрования является одним из наиболее часто используемых, поскольку лишен описанного выше недостатка режима простой замены и допускает распараллеливание, что существенно повышает его производительность. Например, первый поток осуществляет преобразование CRT1, CRT2, …, CRTr, с помощью которых осуществляется шифрование блоков открытого текста – P1, P2, …, Pr, второй поток осуществляет преобразование CRTr+1, CRTr+2, …, CRT2r, с помощью которых осуществляется шифрование блоков открытого текста – Pr+1, Pr+2, …, P2r, и т.д. Зачастую в режиме гаммирования параметр s выбирают равным длине блока алгоритма блочного шифрования, то есть для алгоритма "Кузнечик" s = 128, а для алгоритма "Магма" – s = 64, в этом случае нет необходимости производить усечение. Также стоит отметить, что синхропосылка, используемая в режиме гаммирования, может быть передана в открытом виде получателю информации, т.е. на нее не налагаются требования по обеспечению конфиденциальности. Заметим, что в режиме гаммирования при зашифровании и расшифровании используется только прямое криптографические преобразование Ek.

Режим простой замены с зацеплением (Cipher Block Chaining, CBC)

Данный режим работы имеет два параметра:

  • m – целочисленная величина, определяющая длину регистра сдвига R;
  • IV – уникальная несекретная двоичная последовательность (инициализационный вектор, синхропосылка), определяемая для каждого открытого текста и ключа и имеющая размер, равный m битам.

В режиме простой замены с зацеплением очередной блок зашифрованного текста получается путем зашифрования результата покомпонентного сложения значения очередного блока открытого текста со значением n разрядов регистра сдвига R со старшими номерами. Затем регистр сдвигается на n разрядов в сторону разрядов со старшими номерами. В разряды с младшими номерами записывается значение блока зашифрованного текста. На рис. 4 проиллюстрирована процедура зашифрования в режиме простой замены с зацеплением. Для алгоритма "Кузнечик" параметр n равен 128, для алгоритма "Магма" параметр n равен 64. Данный режим, так же как и режим гаммирования, получил к настоящему моменту широкое практическое распространение и является составной частью ряда более сложных режимов шифрования, например режимов выработки имитовставки.


Процедура расшифрования в режиме простой замены с зацеплением заключается в расшифровании блоков зашифрованного текста и сложения полученного результата со значением n разрядов регистра сдвига R со старшими номерами. На рис. 5 проиллюстрирована процедура расшифрования в режиме простой замены с зацеплением.


Нетрудно видеть, что в режиме простой замены с зацеплением зашифрование каждого последующего блока открытого текста зависит от результата зашифрования предыдущего блока (синхропосылки). Однако если в режиме простой замены с зацеплением параметр m определить равным kn, то можно осуществить распараллеливание данного режима работы. На рис. 6 проиллюстрировано распараллеливание процедуры зашифрования в режиме простой замены с зацеплением при k = 2.


На указанной картинке желтым цветом выделен первый поток, красным цветом выделен второй поток.

Режим гаммирования с обратной связью по выходу (Output Feedback, OFB) и с обратной связью по шифртексту (Cipher Feedback, CFB)

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

Режим выработки имитовставки (Message Authentication Code Algorithm)

В мировой практике существует множество конструкций выработки имитовставки типа CBC-MAC, описанных в том числе в таких нормативных документах по стандартизации, как ISO/IEC 9797, FIPS 113, ANSI X9.9, ANSI X9.19. Для включения в новую версию национального стандарта была выбрана наиболее изученная к настоящему моменту конструкция OMAC1 (CMAC) [4], обладающая кроме этого высокими эксплуатационными характеристиками.

Более подробную информацию о режимах работы алгоритмов блочного шифрования можно найти на сайте Технического комитета по стандартизации "Криптографическая защита информации" (ТК 26): http://www.tc26.ru.

Процедура вычисления значения имитовставки похожа на процедуру зашифрования в режиме простой замены с зацеплением при m = n и инициализации начального заполнения регистра сдвига значением 0n: на вход алгоритма шифрования подается результат покомпонентного сложения очередного блока текста и результата зашифрования на предыдущем шаге. Основное отличие заключается в процедуре обработки последнего блока: на вход алгоритма блочного шифрования подается результат покомпонентного сложения последнего блока, результата зашифрования на предыдущем шаге и одного из производных ключей. Конкретный производный ключ выбирается в зависимости от того, является ли последний блок исходного сообщения полным или нет. Значением имитовставки является результат применения процедуры усечения к выходу алгоритма шифрования при обработке последнего блока. На рис. 7 проиллюстрирована процедура выработки имитовставки.


В настоящее время экспертами Технического комитета по стандартизации "Криптографическая защита информации" (ТК 26) проводятся работы по созданию методических рекомендаций, определяющих допустимые объемы материала для обработки на одном ключе при использовании некоторых вариантов режимов работы блочных шифров в соответствии с ГОСТ Р 34.13–2015.

Литература

  1. ГОСТ Р 34.12–2015. "Информационная технология. Криптографическая защита информации. Блочные шифры".
  2. ГОСТ Р 34.13–2015. "Информационная технология. Криптографическая защита информации. Режимы работы блочные шифров".
  3. Бондаренко А., Маршалко Г., Шишкин В. ГОСТ Р 34.12–2015: чего ожидать от нового стандарта? // Information Security/Информационная безопасность. – 2015. – № 4. – С. 48–50.
  4. ISO 9797-1:2011. Information technology – Security techniques – Message Authentication Codes (MACs) Part 1: Mechanisms using a block cipher.
  5. ISO/IEC 10116:2006 Information technology – Security techniques – Modes of operation for an n-bit block cipher.
  6. ГОСТ Р ИСО/МЭК 10116-93. Информационная технология. Режимы работы для алгоритма n-разрядного блочного шифрования.

Опубликовано: Журнал "Information Security/ Информационная безопасность" #5, 2015

Приобрести этот номер или подписаться

Статьи про теме