Национальный стандарт РФ ГОСТ Р 34.13-2015
"Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров"
(утв. приказом Федерального агентства по техническому регулированию и метрологии от 19 июня 2015 г. N 750-ст)
Information technology. Cryptographic data security. Block ciphers operation modes
Дата введения - 1 января 2016 г.
Взамен ГОСТ Р ИСО/МЭК 10116-93
Предисловие
1 Разработан Центром защиты информации и специальной связи ФСБ России с участием Открытого акционерного общества "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС")
2 Внесен Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 Утвержден и введен в действие приказом Федерального агентства по техническому регулированию и метрологии от 19 июня 2015 г. N 750-ст
4 Взамен ГОСТ Р ИСО/МЭК 10116-93
Введение
Настоящий стандарт содержит описание режимов работы блочных шифров. Данные режимы работы блочных шифров определяют правила криптографического преобразования данных и выработки имитовставки для сообщений произвольного размера.
Стандарт разработан взамен ГОСТ Р ИСО/МЭК 10116-93 "Информационная технология. Режимы работы для алгоритма n-разрядного блочного шифрования". Необходимость разработки настоящего стандарта вызвана потребностью в определении режимов работы блочных шифров, соответствующих современным требованиям к криптографической стойкости.
Настоящий стандарт терминологически и концептуально увязан с международными стандартами ИСО/МЭК 9797-1 [1], ИСО/МЭК 10116 [2], ИСО/МЭК 10118-1 [3], ИСО/МЭК 18033 [4], ИСО/МЭК 14888-1 [5].
Примечание - Основная часть стандарта дополнена приложением А.
1 Область применения
Режимы работы блочных шифров, определенные в настоящем стандарте, рекомендуется использовать при разработке, производстве, эксплуатации и модернизации средств криптографической защиты информации в системах обработки информации различного назначения.
Настоящим стандартом следует руководствоваться, если информация конфиденциального характера подлежит защите в соответствии с законодательством Российской Федерации.
2 Термины, определения и обозначения
2.1 Термины и определения
В настоящем стандарте применены следующие термины с соответствующими определениями
2.1.1
алгоритм зашифрования (encryption algorithm): Алгоритм, реализующий зашифрование, т.е. преобразующий открытый текст в шифртекст. [ИСО/МЭК 18033-1, статья 2.19] |
2.1.2
алгоритм расшифрования (decryption algorithm): Алгоритм, реализующий расшифрование, т.е. преобразующий шифртекст в открытый текст. [ИСО/МЭК 18033-1, статья 2.14] |
2.1.3
базовый блочный шифр (basic block cipher): Блочный шифр, реализующий при каждом фиксированном значении ключа одно обратимое отображение множества блоков открытого текста фиксированной длины в блоки шифртекста такой же длины. |
2.1.4
блок (block): Строка бит определенной длины. [ИСО/МЭК 18033-1, статья 2.6] |
2.1.5
блочный шифр (block cipher): Шифр из класса симметричных криптографических методов, в котором алгоритм зашифрования применяется к блокам открытого текста для получения блоков шифртекста. [ИСО/МЭК 18033-1, статья 2.7] |
Примечание - В настоящем стандарте установлено, что термины "блочный шифр" и "алгоритм блочного шифрования" являются синонимами.
2.1.6
дополнение (padding): Приписывание дополнительных бит к строке бит. [ИСО/МЭК 10118-1, статья 3.9] |
2.1.7
зацепление блоков (block chaining): Шифрование информации таким образом, что каждый блок шифртекста криптографически зависит от предыдущего блока шифртекста. [ИСО/МЭК 10116, статья 3.1] |
2.1.8
зашифрование (encryption): Обратимое преобразование данных с помощью шифра, который формирует шифртекст из открытого текста. [ИСО/МЭК 18033-1, статья 2.18] |
2.1.9
имитовставка (message authentication code): Строка бит фиксированной длины, полученная применением симметричного криптографического метода к сообщению, добавляемая к сообщению для обеспечения его целостности и аутентификации источника данных. [ИСО/МЭК 9797-1, статьи 3.9, 3.10] |
2.1.10
ключ (key): Изменяемый параметр в виде последовательности символов, определяющий криптографическое преобразование. [ИСО/МЭК 18033-1, статья 2.21] |
Примечание - В настоящем стандарте рассматриваются ключи только в виде последовательности двоичных символов (битов).
2.1.11
начальное значение (starting variable): Значение, возможно, полученное из синхропосылки и используемое для задания начальной точки режима работы блочного шифра. [ИСО/МЭК 10116, статья 3.12] |
2.1.12
открытый текст (plaintext): Незашифрованная информация. [ИСО/МЭК 10116, статья 3.11] |
2.1.13
расшифрование (decryption): Операция, обратная к зашифрованию. [ИСО/МЭК 18033-1, статья 2.13] |
Примечание - В настоящем стандарте в целях сохранения терминологической преемственности по отношению к опубликованным научно-техническим изданиям применяется термин "шифрование", объединяющий операции, определенные терминами "зашифрование" и "расшифрование". Конкретное значение термина "шифрование" определяется в зависимости от контекста упоминания.
2.1.14
симметричный криптографический метод (symmetric cryptographic technique): Криптографический метод, использующий один и тот же ключ для преобразования, осуществляемого отправителем, и преобразования, осуществляемого получателем. [ИСО/МЭК 18033-1, статья 2.32] |
2.1.15
синхропосылка (initializing value): Комбинация знаков, передаваемая по каналу связи и предназначенная для инициализации алгоритма шифрования. |
2.1.16
сообщение (message): Строка бит произвольной конечной длины. [ИСО/МЭК 14888-1 статья 3.10] |
2.1.17
счетчик (counter): Строка бит длины, равной длине блока блочного шифра, используемая при шифровании в режиме гаммирования. [ИСО/МЭК 10116, статья 3.4] |
2.1.18
шифр (cipher): Криптографический метод, используемый для обеспечения конфиденциальности данных, включающий алгоритм зашифрования и алгоритм расшифрования. [ИСО/МЭК 18033-1, статья 2.20] |
2.1.19
шифртекст (ciphertext): Данные, полученные в результате зашифрования открытого текста с целью скрытия его содержания. [ИСО/МЭК 10116, статья 3.3] |
2.2 Обозначения
В настоящем стандарте используются следующие обозначения: | |||
V* - множество всех двоичных строк конечной длины, включая пустую строку; | |||
- множество всех двоичных строк длины s, где s - целое неотрицательное число; нумерация подстрок и компонент строки осуществляется справа налево начиная с нуля; | |||
- число компонент (длина) строки * (если А - пустая строка, то = 0); | |||
В - конкатенация строк A, *, т.е. строка из , в которой подстрока с большими номерами компонент из совпадает со строкой A, а подстрока с меньшими номерами компонент из совпадает со строкой В; | |||
- строка, состоящая из r нулей; | |||
- операция покомпонентного сложения по модулю 2 двух двоичных строк одинаковой длины; | |||
- кольцо вычетов по модулю ; | |||
- операция сложения в кольце ; | |||
- операция вычисления остатка от деления целого числа х на целое положительное число ; | |||
- отображение, ставящее в соответствии строке
, , строку ,
, , ..., ; | |||
- отображение, ставящее в соответствии строке
, , строку ,
, , ..., ; | |||
- операция логического сдвига строки A на r компонент в сторону компонент, имеющих большие номера. Если , , причем
| |||
- отображение, ставящее в соответствии строке
многочлен ; | |||
- биективное отображение, сопоставляющее элементу кольца его двоичное
представление, т.е. для любого элемента , представленного в виде ,
где , i = 0, 1, ..., s-1, выполнено равенство ; | |||
- отображение обратное к отображению , т.е. ; k - параметр алгоритма блочного шифрования, называемый длиной ключа; n - параметр алгоритма блочного шифрования, называмый длиной блока; | |||
- отображение, реализующее базовый алгоритм блочного шифрования и осуществляющее преобразование блока открытого текста с использованием ключа (шифрования) в блок шифртекста ;
| |||
- отображение, реализующее зашифрованное с использованием ключа , т.е. для всех ; | |||
- отображение, реализующее расшифрование с использованием ключа , т.е. . |
3 Общие положения
Настоящий стандарт определяет следующие режимы работы алгоритмов блочного шифрования:
- режим простой замены (Electronic Codebook, ECB);
- режим гаммирования (Counter, CTR);
- режим гаммирования с обратной связью по выходу (Output Feedback, OFB);
- режим простой замены с зацеплением (Cipher Block Chaining, CBC);
- режим гаммирования с обратной связью по шифртексту (Cipher Feedback, CFB);
- режим выработки имитовставки (Message Authentication Code algorithm).
Данные режимы могут использоваться в качестве режимов для блочных шифров с произвольной длиной блока n.
4 Вспомогательные операции
4.1 Дополнение сообщения
Отдельные из описанных ниже режимов работы (режим гаммирования, режим гаммирования с обратной связью по выходу, режим гаммирования с обратной связью по шифртексту) могут осуществлять криптографическое преобразование сообщений произвольной длины. Для других режимов (режим простой замены, режим простой замены с зацеплением) требуется, чтобы длина сообщения была кратна некоторой величине . В последнем случае при работе с сообщениями произвольной длины необходимо применение процедуры дополнения сообщения до требуемой длины. Ниже приведены три процедуры дополнения.
Пусть * исходное сообщение, подлежащее зашифрованию.
4.1.1 Процедура 1
,
|
если r = 0, иначе.
|
Примечание - Описанная процедура в некоторых случаях не обеспечивает однозначного восстановления исходного сообщения. Например, результаты дополнения сообщений , такого что для некоторого q, и будут одинаковы. В этом случае для однозначного восстановления необходимо дополнительно знать длину исходного сообщения.
4.1.2 Процедура 2
.
Примечание - Данная процедура обеспечивает однозначное восстановление исходного сообщения. При этом если длина исходного сообщения кратна , то длина дополненного сообщения будет увеличена.
4.1.3 Процедура 3
.
В зависимости от значения r возможны случаи:
- если , то последний блок не изменяется Р* = Р;
- если , то применяется процедура 2.
Примечания
1 Данная процедура обязательна для режима выработки имитовставки (5.6) и не рекомендуется для использования в других режимах (5.1 - 5.5).
2 Выбор конкретной процедуры дополнения предоставляется разработчику информационной системы и/или регламентируется другими нормативными документами.
4.2 Выработка начального значения
В некоторых режимах работы используются величины, начальное значение которых вычисляется на основании синхропосылки IV; обозначим через m суммарную длину указанных величин. Будем обозначать процедуру выработки начального значения через и называть процедурой инициализации. Будем называть процедуру инициализации тривиальной, если . Если не оговорено иное, будем считать, что используется тривиальная процедура инициализации на основе синхропосылки необходимой длины.
Во всех описываемых в настоящем стандарте режимах работы не требуется обеспечение конфиденциальности синхропосылки. Вместе с тем процедура выработки синхропосылки должна удовлетворять одному из следующих требований.
- Значения синхропосылки для режимов простой замены с зацеплением и гаммирования с обратной связью по шифртексту необходимо выбирать случайно, равновероятно и независимо друг от друга из множества всех допустимых значений. В этом случае значение каждой используемой синхропосылки IV должно быть непредсказуемым (случайным или псевдослучайным): зная значения всех других используемых синхропосылок, значение IV нельзя определить с вероятностью большей, чем .
- Все значения синхропосылок, выработанных для зашифрования на одном и том же ключе в режиме гаммирования, должны быть уникальными, т.е. попарно различными. Для выработки значений синхропосылок может быть использован детерминированный счетчик.
- Значение синхропосылки для режима гаммирования с обратной связью по выходу должно быть либо непредсказуемым (случайным или псевдослучайным), либо уникальным.
Примечание - Режим простой замены не предусматривает использования синхропосылки.
4.3 Процедура усечения
В некоторых режимах используется усечение строк длины n до строк длины s, , с использованием функции , т.е. в качестве операции усечения используется операция взятия бит с большими номерами.
5 Режимы работы алгоритмов блочного шифрования
5.1 Режим простой замены
Длина сообщений, зашифровываемых в режиме простой замены, должна быть кратна длине блока базового алгоритма блочного шифрования n, поэтому, при необходимости, к исходному сообщению должна быть предварительно применена процедура дополнения.
Зашифрование (расшифрование) в режиме простой замены заключается в зашифровании (расшифровании) каждого блока текста с помощью базового алгоритма блочного шифрования.
5.1.1 Зашифрование
Открытый и, при необходимости, дополненный текст *, , представляется в виде: . Блоки шифртекста вычисляются по следующему правилу:
.
(1)
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме простой замены проиллюстрировано на рисунке 1.
Рисунок 1 - Зашифрование в режиме простой замены
5.1.2 Расшифрование
Шифртекст представляется в виде: , , . Блоки открытого текста вычисляются по следующему правилу:
.
(2)
Исходный (дополненный) открытый текст имеет вид:
.
Примечание - Если к исходному открытому тексту была применена процедура дополнения, то после расшифрования следует произвести обратную процедуру. Для однозначного восстановления сообщения может потребоваться знание длины исходного сообщения.
Расшифрование в режиме простой замены проиллюстрировано на рисунке 2.
Рисунок 2 - Расшифрование в режиме простой замены
5.2 Режим гаммирования
Параметром режима гаммирования является целочисленная величина s . При использовании режима гаммирования не требуется применение процедуры дополнения сообщения.
Для зашифрования (расшифрования) каждого отдельного открытого текста на одном ключе используется значение уникальной синхропосылки .
Зашифрование в режиме гаммирования заключается в покомпонентном сложении открытого текста с гаммой шифра, которая вырабатывается блоками длины s путем зашифрования последовательности значений счетчика , i = 1, 2, ..., базовым алгоритмом блочного шифрования с последующим усилением. Начальным значением счетчика является . Последующее значение счетчика вырабатываются с помощью функции Add: следующим образом:
.
(3)
5.2.1 Зашифрование
Открытый текст * представляется в виде
.
Блоки шифртекста вычисляются по следующему правилу:
(4)
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме гаммирования проиллюстрировано на рисунке 3.
Рисунок 3 - Зашифрование в режиме гаммирования
5.2.2 Расшифрование
Шифртекст представляется в виде: , , , , , .
Блоки открытого текста вычисляются по следующему правилу
(5)
Исходный открытый текст имеет вид
.
Расшифрование в режиме гаммирования проиллюстрировано на рисунке 4.
Рисунок 4 - Расшифрование в режиме гаммирования
5.3 Режим гаммирования с обратной связью по выходу
Параметрами режима гаммирования с обратной связью по выходу являются целочисленные величины s и m, , , - целое число.
При использовании режима гаммирования с обратной связью по выходу не требуется применение процедуры дополнения сообщения.
При шифровании на одном ключе для каждого отдельного открытого текста используется значение уникальной или непредсказуемой (случайной или псевдослучайной) синхропосылки .
При шифровании в режиме гаммирования с обратной связью по выходу используется двоичный регистр сдвига R длины m. Начальным заполнением регистра является значение синхропосылки IV.
Зашифрование в режиме гаммирования с обратной связью по выходу заключается в покомпонентном сложении открытого текста с гаммой шифра, которая вырабатывается блоками длины s. При вычислении очередного блока гаммы выполняется зашифрование n разрядов регистра сдвига с большими номерами базовым алгоритмом блочного шифрования. Затем заполнение регистра сдвигается на n бит в сторону разрядов с большими номерами, при этом в разряды с меньшими номерами записывается полученный выход базового алгоритма блочного шифрования. Блок гаммы вычисляется путем усечения выхода базового алгоритма блочного шифрования.
5.3.1 Зашифрование
Открытый текст * представляется в виде , , , , , . Блоки шифртекста вычисляются по следующему правилу:
(6)
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме гаммирования с обратной связью по выходу проиллюстрировано на рисунке 5.
Рисунок 5 - Зашифрование в режиме гаммирования с обратной связью по выходу
5.3.2 Расшифрование
Шифртекст представляется в виде: , , , , , .
Блоки открытого текста вычисляются по следующему правилу:
(7)
Исходный открытый текст имеет вид
.
Расшифрование в режиме гаммирования с обратной связью по выходу проиллюстрировано на рисунке 6.
Рисунок 6 - Расшифрование в режиме гаммирования с обратной связью по выходу
5.4 Режим простой замены с зацеплением
Параметром режима простой замены с зацеплением является целочисленная величина m, , - целое число.
Длина сообщений, зашифровываемых в режиме простой замены с зацеплением, должна быть кратна длине блока базового алгоритма блочного шифрования n, поэтому, при необходимости, к исходному сообщению должна быть предварительно применена процедура дополнения.
При шифровании на одном ключе для каждого отдельного открытого текста используется значение непредсказуемой (случайной или псевдослучайной) синхропосылки .
При шифровании в режиме простой замены с зацеплением используется двоичный регистр сдвига R длины m. Начальным заполнением регистра является значение синхропосылки IV.
В режиме простой замены с зацеплением очередной блок шифртекста получается путем зашифрования результата покомпонентного сложения значения очередного блока открытого текста со значением n разрядов регистра сдвига с большими номерами. Затем регистр сдвигается на один блок в сторону разрядов с большими номерами. В разряды с меньшими номерами записывается значение блока шифртекста.
5.4.1 Зашифрование
Открытый и, при необходимости, дополненный текст *, представляется в виде: , , , q. Блоки шифртекста вычисляются по следующему правилу:
.
(8)
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме простой замены с зацеплением проиллюстрировано на рисунке 7.
Рисунок 7 - Зашифрование в режиме простой замены с зацеплением
5.4.2 Расшифрование
Шифртекст представляется в виде: , , , q. Блоки открытого текста вычисляются по следующему правилу:
(9)
Исходный (дополненный) открытый текст имеет вид:
.
Примечание - Если к исходному открытому тексту была применена процедура дополнения, то после расшифрования следует произвести обратную процедуру. Для однозначного восстановления сообщения может потребоваться знание длины исходного сообщения.
Расшифрование в режиме простой замены с зацеплением проиллюстрировано на рисунке 8.
Рисунок 8 - Расшифрование в режиме простой замены с зацеплением
5.5 Режим гаммирования с обратной связью по шифртексту
Параметрами режима гаммирования с обратной связью по шифртексту являются целочисленные величины s и m, , .
В конкретной системе обработки информации на длину сообщения Р может как накладываться ограничение |P| = , так и не накладываться никаких ограничений. В случае если такое ограничение накладывается, к исходному сообщению, при необходимости, должна быть предварительно применена процедура дополнения.
При шифровании на одном ключе для каждого отдельного открытого текста используется значение непредсказуемой (случайной или псевдослучайной) синхропосылки .
При шифровании в режиме гаммирования с обратной связью по шифртексту используется двоичный регистр сдвига R длины m. Начальным заполнением регистра является значение синхропосылки IV.
Зашифрование в режиме гаммирования с обратной связью по шифртексту заключается в покомпонентном сложении открытого текста с гаммой шифра, которая вырабатывается блоками длины s. При вычислении очередного блока гаммы выполняется зашифрование n разрядов регистра сдвига с большими номерами базовым алгоритмом блочного шифрования с последующим усечением. Затем заполнение регистра сдвигается на s разрядов в сторону разрядов с большими номерами, при этом в разряды с меньшими номерами записывается полученный блок шифртекста, являющийся результатом покомпонентного сложения гаммы шифра и блока открытого текста.
5.5.1 Зашифрование
Открытый текст * представляется в виде , , , , , . Блоки шифртекста вычисляются по следующему правилу:
,
,
(10)
.
Результирующий шифртекст имеет вид:
.
Зашифрование в режиме гаммирования с обратной связью по шифртексту проиллюстрировано на рисунке 9.
Рисунок 9 - Зашифрование в режиме гаммирования с обратной связью по шифртексту
5.5.2 Расшифрование
Шифртекст представляется в виде: , , , . Блоки открытого текста вычисляются по следующему правилу:
,
,
.
(11)
Исходный открытый текст имеет вид:
.
Примечание - Если к исходному открытому тексту была применена процедура дополнения, то после расшифрования следует произвести обратную процедуру. Для однозначного восстановления сообщения может потребоваться знание длины исходного сообщения.
Расшифрование в режиме гаммирования с обратной связью по шифртексту проиллюстрировано на рисунке 10.
Рисунок 10 - Расшифрование в режиме гаммирования с обратной связью по шифртексту
5.6 Режим выработки имитовставки
Режим выработки имитовставки, описание которого представлено ниже, реализует конструкцию ОМАС1 (стандартизован в ISO под названием СМАС [1]).
Параметром режима является длина имитовставки (в битах) .
5.6.1 Выработка вспомогательных ключей
При вычислении значения имитовставки используются вспомогательные ключи, которые вычисляются с использованием ключа K. Длины вспомогательных ключей равны длине блока n базового алгоритма блочного шифрования.
Процедура выработки вспомогательных ключей может быть представлена в следующей форме
где .
Если значение n отлично от 64 и 128, следует использовать следующую процедуру определения значения константы . Рассмотрим множество примитивных многочленов степени n над полем GF(2) с наименьшим количеством ненулевых коэффициентов. Упорядочим это множество лексикографически по возрастанию векторов коэффициентов и обозначим через первый многочлен в этом упорядоченном множестве.
Рассмотрим поле , зафиксируем в нем степенной базис и будем обозначать операцию умножения в этом поле символом . Вспомогательные ключи и вычисляются следующим образом:
(12)
Примечание - Вспомогательные ключи , и промежуточное значение R наряду с ключом K являются секретными параметрами. Компрометация какого-либо из этих значений приводит к возможности построения эффективных методов анализа всего алгоритма.
5.6.2 Вычисление значения имитовставки
Процедура вычисления значения имитовставки похожа на процедуру зашифрования в режиме простой замены с зацеплением при m=n инициализации начального заполнения регистра сдвига значением : на вход алгоритму шифрования подается результат покомпонентного сложения очередного блока текста и результата зашифрования на предыдущем шаге. Основное отличие заключается в процедуре обработки последнего блока: на вход базовому алгоритму блочного шифрования подается результат покомпонентного сложения последнего блока, результата зашифрования на предыдущем шаге и одного из вспомогательных ключей. Конкретный вспомогательный ключ выбирается в зависимости от того, является ли последний блок исходного сообщения полным или нет. Значением имитовставки MAC является результат применения процедуры усечения к выходу алгоритма шифрования при обработке последнего блока.
Исходное сообщение *, для которого требуется вычислить имитовставку, представляется в виде:
.
где , , , , .
Процедура вычисления имитовставки описывается следующим образом:
,
(13)
где
,
* - последний блок сообщения, полученного в результате дополнения исходного сообщения с помощью процедуры 3.
Процедура вычисления имитовставки проиллюстрирована на рисунках 11 - 13.
Рисунок 11 - Вычисление значения имитовставки - общий вид
Примечание - Настоятельно рекомендуется не использовать ключ режима выработки имитовставки в других криптографических алгоритмах, в том числе в режимах, обеспечивающих конфиденциальность, описанных в 5.1 - 5.5.
Рисунок 12 - Вычисление значения имитовставки - случай полного последнего блока
Рисунок 13 - Вычисление значения имитовставки - случай с дополнением последнего блока
Библиография*
_____________________________
* Оригиналы международных стандартов ИСО/МЭК находятся в ФГУП "Стандартинформ" Федерального агентства по техническому регулированию и метрологии.
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Национальный стандарт РФ ГОСТ Р 34.13-2015 "Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров" (введен в действие приказом Федерального агентства по техническому регулированию и метрологии от 19 июня 2015 г. N 750-ст)
Текст ГОСТа приводится по официальному изданию Стандартинформ, Москва, 2016 г.
Дата введения - 1 января 2016 г.
Текст ГОСТа приводится с учетом поправки, опубликованной в ИУС "Национальные стандарты", 2018 г., N 6