Протоколом Межгосударственного
от 25 сентября 2023 г. N 165-П
ИЗМЕНЕНИЕ N 1 ГОСТ 34.13-2018 "ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ. РЕЖИМЫ РАБОТЫ БЛОЧНЫХ ШИФРОВ"
Принято Межгосударственным советом по стандартизации, метрологии и сертификации (протокол N 165-П от 25.09.2023)
Зарегистрировано Бюро по стандартам МГС N 17003
За принятие изменения проголосовали национальные органы по стандартизации следующих государств: AM, KG, RU, TJ, UZ [коды альфа-2 по МК (ИСО 3166) 004]
Дату введения в действие настоящего изменения устанавливают указанные национальные органы по стандартизации <*>
<*> Дата введения в действие на территории Российской Федерации - 2023-11-01.
Предисловие. Пункт 1 дополнить словами: "и Общества с ограниченной ответственностью "КРИПТО-ПРО" (ООО "КРИПТО-ПРО")".
Пункт 5 изложить в новой редакции:
"5 Настоящий стандарт подготовлен на основе применения ГОСТ Р 34.13-2015, Р 1323565.1.017-2018, Р 1323565.1.026-2019".
"4.4 Процедура преобразования ключа";
"5.7 Режим гаммирования с преобразованием ключа
5.8 Режим аутентифицированного шифрования с ассоциированными данными".
Подраздел 2.1 дополнить пунктами 2.1.20, 2.1.21, 2.1.22:
"2.1.20 ассоциированные данные (associated data): Данные, для которых обеспечивается целостность, но не обеспечивается конфиденциальность.
2.1.21 зашифрование с выработкой имитовставки (authenticated encryption): Операция, состоящая из зашифрования открытого текста и вычисления имитовставки от открытого текста и ассоциированных данных, с использованием одного ключа в обоих преобразованиях.
2.1.22 расшифрование с проверкой имитовставки (authenticated decryption): Операция, обратная к зашифрованию с выработкой имитовставки, состоящая из проверки имитовставки и последующего расшифрования шифртекста в случае успешного завершения проверки".
Подраздел 2.2 дополнить обозначениями:
Раздел 3. Первый абзац дополнить перечислениями (перед первым перечислением):
"- режим гаммирования с преобразованием ключа (CTR-ACPKM, англ. Counter Advanced Cryptographic Prolongation of Key Material);
- режим аутентифицированного шифрования с ассоциированными данными (AEAD, англ. Authenticated Encryption with Associated Data)";
второй абзац изложить в новой редакции:
"Режим гаммирования может использоваться в качестве режима для блочных шифров с длиной блока n, кратной 2, режим гаммирования с преобразованием ключа может использоваться в качестве режима для блочных шифров с длиной блока n, кратной 8, режим аутентифицированного шифрования с ассоциированными данными может использоваться в качестве режима для блочных шифров с длиной блока n = 64 и n = 128, остальные режимы могут использоваться в качестве режимов для блочных шифров с произвольной длиной блока n".
Подраздел 4.2. Второй абзац. Второе перечисление. Заменить слова: "в режиме гаммирования," на "в режимах гаммирования, гаммирования с преобразованием ключа, аутентифицированного шифрования с ассоциированными данными".
Раздел 4 дополнить подразделом 4.4:
"4.4 Процедура преобразования ключа
Для преобразования ключа используется функция ACPKM, которая принимает на вход ключ K длины k <= 256 бит и преобразует его в ключ K' той же длины.
Функция ACPKM использует базовый алгоритм блочного шифрования и определяется следующим образом:
K' = ACPKM(K) = LSBk(eK(D1) || ... || (eK(DJ)),
где , D1 || ... || DJ = LSBJ·n(D),
.
Константа в шестнадцатеричной системе счисления задана следующим образом:
D = 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f".
Раздел 5 дополнить подразделами 5.7, 5.8:
"5.7 Режим гаммирования с преобразованием ключа
Параметром, определяющим порядок функционирования режима гаммирования с преобразованием ключа, является длина секции N. Значение N выражено в битах и фиксировано в рамках каждого конкретного протокола, исходя из требований к производительности системы и суммарной длине данных, обработанных на одном ключе. Длина секции N должна быть кратна длине блока n используемого базового алгоритма блочного шифрования. Дополнительный параметр режима гаммирования с преобразованием ключа - это длина блока гаммы s, 0 < s <= n, выраженная в битах. Величина s должна быть кратна 8 и делить длину блока n.
Режим гаммирования с преобразованием ключа использует функцию ACPKM, определенную в 4.4.
Пусть , j = 1, 2, ..., - множество сообщений, подлежащих зашифрованию. При обработке каждого сообщения P = Pj, j = 1, 2, ..., в режиме гаммирования с преобразованием ключа сообщение разбивается на
секций и представляется в виде P = M1 || M2 || ... || Ml, где
, i = 1, 2, ..., l - 1,
, w <= N. Первая секция каждого сообщения обрабатывается на секционном ключе K1, который равен начальному ключу K. Для обработки i-й секции каждого сообщения, i = 2, ..., l, используется секционный ключ Ki, который вычисляется из ключа Ki-1 с помощью функции ACPKM.
Преобразование ключа в процессе обработки сообщений в режиме гаммирования с преобразованием ключа показано на рисунке 14.
Рисунок 14 - Преобразование ключа в процессе обработки сообщений в режиме гаммирования с преобразованием ключа
Примечание - На рисунке 14 через pmax обозначена максимальная длина сообщения, выраженная в битах, , m - количество обрабатываемых сообщений.
Для зашифрования (расшифрования) каждого отдельного открытого текста (шифртекста) на одном ключе используется уникальное значение синхропосылки , где 0 < c < n, величина c кратна 8.
При использовании режима гаммирования с преобразованием ключа не требуется применение процедуры дополнения сообщения.
Длина p сообщения, обрабатываемого в режиме гаммирования с преобразованием ключа, не должна превышать значения 2c-1·s бит.
Зашифрование (расшифрование) открытого текста (шифртекста) в режиме гаммирования с преобразованием ключа заключается в покомпонентном сложении открытого текста с гаммой шифра, которая вырабатывается блоками длины s путем зашифрования последовательности значений счетчика , i = 1, 2, ..., базовым алгоритмом блочного шифрования с использованием соответствующего секционного ключа с последующим усечением выходного значения. Начальным значением счетчика является CTR1 = In(IV) = IV || 0c. Последующие значения счетчика вырабатываются с помощью функции Add:
следующим образом:
Открытый текст представляется в виде P = P1 || P2 || ... || Pq, где
, i = 1, 2, ..., q - 1,
, 1 <= r <= s.
Блоки шифртекста вычисляются по следующему правилу:
Результирующий шифртекст имеет вид:
Зашифрование в режиме гаммирования с преобразованием ключа показано на рисунке 15.
Рисунок 15 - Зашифрование в режиме гаммирования с преобразованием ключа
Шифртекст представляется в виде: C = C1 || C2 || ... || Cq, где , i = 1, 2, ..., q - 1,
, 1 <= r <= s.
Блоки открытого текста вычисляются по следующему правилу:
Исходный открытый текст имеет вид:
Расшифрование в режиме гаммирования с преобразованием ключа показано на рисунке 16.
Рисунок 16 - Расшифрование в режиме гаммирования с преобразованием ключа
5.8 Режим аутентифицированного шифрования с ассоциированными данными
В данном подразделе описан режим аутентифицированного шифрования с ассоциированными данными MGM (Multilinear Galois Mode).
Параметром режима MGM является длина имитовставки s, выраженная в битах, 32 <= s <= n. Значение s должно быть зафиксировано в рамках каждого конкретного протокола, исходя из требований к производительности системы и к стойкости режима относительно угрозы нарушения целостности.
Сообщения состоят из двух частей. Первая часть содержит ассоциированные данные A, а вторая часть - открытый текст P. Одна из двух частей может быть равна пустой строке. Данный режим подразумевает шифрование открытого текста и вычисление имитовставки от шифртекста и ассоциированных данных.
На длину ассоциированных данных и длину открытого текста накладываются следующие ограничения: 0 < |A| + |P| < 2n/2.
Режим MGM использует синхропосылку . Значение синхропосылки должно быть уникальным для каждого сообщения при фиксированном ключе K. Выработка уникальных значений синхропосылки может быть реализована с использованием счетчика.
Шифрование в режиме MGM осуществляется путем побитового сложения открытого текста с секретной гаммой, получаемой в результате зашифрования последовательных значений счетчика базовым алгоритмом блочного шифрования. В качестве начального значения счетчика используется значение синхропосылки, дополненное до размера блока нулевым битом слева и зашифрованное базовым алгоритмом блочного шифрования. Вычисление имитовставки от шифртекста и ассоциированных данных в режиме MGM выполняется с помощью мультилинейной функции с секретными коэффициентами, получаемыми в результате зашифрования последовательных значений счетчика базовым алгоритмом блочного шифрования. В качестве начального значения счетчика используется значение синхропосылки, дополненное до размера блока единичным битом слева и базовым алгоритмом блочного шифрования.
5.8.2 Зашифрование с выработкой имитовставки
Открытый текст представляется в виде
, где
, i = 1, 2, ..., q - 1,
, 1 <= r <= n. Если длина открытого текста равна нулю, то последний блок открытого текста
равен пустой строке, а значения параметров q и r установлены следующим образом: q = 0, r = n. Ассоциированные данные представляются в виде
, где
, j = 1, 2, ..., h - 1,
, 1 <= t <= n. Если длина ассоциированных данных равна нулю, то последний блок ассоциированных данных
равен пустой строке, а значения параметров h и t установлены следующим образом: h = 0, t = n.
Если длина открытого текста не равна нулю, то блоки шифртекста вычисляются по следующему правилу:
Результирующий шифртекст имеет вид:
Если открытый текст P равен пустой строке, то шифртекст C также принимается равным пустой строке.
К ассоциированным данным A и шифртексту C применяется процедура 1 дополнения сообщения до длины блока n. После применения процедуры дополнения последний блок ассоциированных данных Ah и последний блок шифртекста Cq принимают следующий вид:
Значение имитовставки вычисляется по следующему правилу:
Результатом вычисления имитовставки является значение MAC.
Зашифрование с выработкой имитовставки в режиме MGM показано на рисунке 17.
Рисунок 17 - Зашифрование с выработкой имитовставки в режиме MGM
5.8.3 Расшифрование с проверкой имитовставки
Шифртекст представляется в виде: , где
, i = 1, 2, ..., q - 1,
, 1 <= r <= n. Если длина шифртекста равна нулю, то последний блок шифртекста
равен пустой строке, а значения параметров q и r установлены следующим образом: q = 0, r = n. Ассоциированные данные представляются в виде:
, где
, j = 1, 2, ..., h - 1,
, 1 <= t <= n. Если длина ассоциированных данных равна нулю, то последний блок ассоциированных данных
равен пустой строке, а значения параметров h и t установлены следующим образом: h = 0, t = n.
К ассоциированным данным A и шифртексту C применяется процедура 1 дополнения сообщения до длины блока n. После применения процедуры дополнения последний блок ассоциированных данных Ah и последний блок шифртекста Cq принимают следующий вид:
Проверка корректности имитовставки выполняется по следующему правилу:
Если MAC' /= MAC, то в качестве результата расшифрования возвращается ошибка. Если MAC' = MAC, то выполняется расшифрование.
Если длина шифртекста не равна нулю, то блоки открытого текста вычисляются по следующему правилу:
Исходный открытый текст имеет вид:
Если шифртекст C равен пустой строке, то открытый текст P также принимается равным пустой строке.
Расшифрование с проверкой имитовставки в режиме MGM показано на рисунке 18.
Рисунок 18 - Расшифрование с проверкой имитовставки в режиме MGM".
Приложение А. Пункт А.2.1 исключить.
Пункты А.2.2, А.2.3.1, А.2.4.1, А.2.5.1, А.2.6.1, А.2.7 (после наименования) дополнить абзацем:
"Пример использует следующие параметры:
K = 8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef.
Открытый текст - четыре 128-битных блока:
P1 = 1122334455667700ffeeddccbbaa9988,
P2 = 00112233445566778899aabbcceeff0a,
P3 = 112233445566778899aabbcceeff0a00,
P4 = 2233445566778899aabbcceeff0a0011".
Подраздел А.2 дополнить пунктами А.2.8, А.2.9:
"А.2.8 Режим гаммирования с преобразованием ключа
Пример использует следующие параметры:
K = 8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef.
Открытый текст - семь 128-битных блоков:
P1 = 1122334455667700ffeeddccbbaa9988,
P2 = 00112233445566778899aabbcceeff0a,
P3 = 112233445566778899aabbcceeff0a00,
P4 = 2233445566778899aabbcceeff0a0011,
P5 = 33445566778899aabbcceeff0a001122,
P6 = 445566778899aabbcceeff0a00112233,
P7 = 5566778899aabbcceeff0a0011223344.
Выработка секционных ключей с помощью функции преобразования ключа ACPKM
Зашифрование секции M1 в режиме гаммирования с преобразованием ключа
Зашифрование секции M2 в режиме гаммирования с преобразованием ключа
Зашифрование секции M3 в режиме гаммирования с преобразованием ключа
Зашифрование секции M4 в режиме гаммирования с преобразованием ключа
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся значения P1, P2, P3, P4, P5, P6, P7.
А.2.9 Режим аутентифицированного шифрования с ассоциированными данными
А.2.9.1 Зашифрование с выработкой имитовставки
Пример использует следующие параметры:
K = 8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef.
Открытый текст - четыре 128-битных блока и один 24-битный блок:
P1 = 1122334455667700ffeeddccbbaa9988,
P2 = 00112233445566778899aabbcceeff0a,
P3 = 112233445566778899aabbcceeff0a00,
P4 = 2233445566778899aabbcceeff0a0011,
Ассоциированные данные - два 128-битных блока и один 72-битный блок:
A1 = 02020202020202020101010101010101,
A2 = 04040404040404040303030303030303,
IV = 1122334455667700ffeeddccbbaa9988,
Y1 = eK(0 || IV) = 7f679d90bebc24305a468d42b9d4edcd,
Z1 = eK(1 || IV) = 7fc245a8586e6602a7bbdb2786bdc66f.
Зашифрование в режиме аутентифицированного шифрования с ассоциированными данными
Дополнение последнего блока шифртекста и последнего блока ассоциированных данных:
C5 = 2c755200000000000000000000000000,
A3 = ea050505050505050500000000000000.
Вычисление имитовставки в режиме аутентифицированного шифрования с ассоциированными данными
len(A) || len(C) = 00000000000001480000000000000218.
MAC = cf5d656f40c34f5c46e8bb0e29fcdb4c.
С использованием приведенных значений K, IV, A, C и MAC с помощью операции расшифрования с проверкой имитовставки выполняется проверка имитовставки MAC и воспроизводятся значения P1, P2, P3, P4, ".
Пункт А.3.1 исключить.
Пункты А.3.2, А.3.3.1, А.3.4.1, А.3.5.1, А.3.6.1, А.3.7 (после наименования) дополнить абзацем:
"Пример использует следующие параметры:
K = ffeeddccbbaa99887766554433221100f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff.
Открытый текст - четыре 64-битных блока:
Подраздел А.3 дополнить пунктами А.3.8, А.3.9:
"А.3.8 Режим гаммирования с преобразованием ключа
Пример использует следующие параметры:
K = 8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef.
Открытый текст - семь 64-битных блоков:
Выработка секционных ключей с помощью функции преобразования ключа ACPKM
Зашифрование секции M1 в режиме гаммирования с преобразованием ключа
Зашифрование секции M2 в режиме гаммирования с преобразованием ключа
Зашифрование секции M3 в режиме гаммирования с преобразованием ключа
Зашифрование секции M4 в режиме гаммирования с преобразованием ключа
С использованием приведенных значений K, IV и C с помощью операции расшифрования воспроизводятся значения P1, P2, P3, P4, P5, P6, P7.
А.3.9 Режим аутентифицированного шифрования с ассоциированными данными
А.3.9.1 Зашифрование с выработкой имитовставки
Пример использует следующие параметры:
K = ffeeddccbbaa99887766554433221100f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff.
Открытый текст - восемь 64-битных блоков и один 24-битный блок:
Ассоциированные данные - пять 64-битных блоков и один 8-битный блок:
Y1 = eK(0 || IV) = 5623890162de31bf,
Z1 = eK(1 || IV) = 2b073f0494f372a0.
Зашифрование в режиме аутентифицированного шифрования с ассоциированными данными
Дополнение последнего блока шифртекста и последнего блока ассоциированных данных:
Вычисление имитовставки в режиме аутентифицированного шифрования с ассоциированными данными
len(A) || len(C) = 0000014800000218.
С использованием приведенных значений K, IV, A, C и MAC с помощью операции расшифрования с проверкой имитовставки выполняется проверка имитовставки MAC и воспроизводятся значения P1, P2, P3, P4, ".