7.3.1 Алгоритм шифрования
Для шифрования данных используется блочный шифр "Магма" согласно ГОСТ Р 34.12-2015 в режиме гаммирования согласно ГОСТ Р 34.13-2015. В качестве ключа используют ключ шифрования сообщения KENC. Значение входного параметра режима гаммирования s = 64. В качестве синхропосылки используют значение, определенное в 7.3.3. Криптографическое дополнение данных для режима гаммирования не предусмотрено.
7.3.2 Имитовставка
Для вычисления имитовставки ICV, содержащейся в поле ICV CRISP-сообщения, используют блочный шифр "Магма" согласно ГОСТ Р 34.12-2015 в режиме выработки имитовставки согласно ГОСТ Р 34.13-2015. В качестве ключа используют ключ имитозащиты сообщения KMAC. Значение входного параметра режима выработки имитовставки s = 64. Криптографическое дополнение данных для режима выработки имитовставки выполняют согласно ГОСТ Р 34.13-2015.
7.3.3 Синхропосылка
Для формирования из 48-битного порядкового номера сообщения SeqNum, содержащегося в поле SeqNum CRISP-сообщения, 32-битной синхропосылки IV используют 32 младших бита SeqNum:
IV = LSB32(byte(SeqNum, 6)).
7.3.4 Ключи
Для выработки производных ключей шифрования и имитозащиты сообщения используют функцию
CMAC(Key, Data),
которую реализуют с помощью блочного шифра "Магма" согласно ГОСТ Р 34.12-2015 в режиме выработки имитовставки согласно ГОСТ Р 34.13-2015 для данных Data на ключе Key. Значение входного параметра режима выработки имитовставки s = 64. Криптографическое дополнение для режима выработки имитовставки выполняют согласно ГОСТ Р 34.13-2015.
Для выработки производного ключа шифрования сообщения и производного ключа имитозащиты сообщения вычисляют следующие величины:
- Key - инициализируют базовым ключом K;
- Label = binary('macenc', 6);
- aL = byte(6,1);
- SN = 05||MSB35(byte(SeqNum, 6)), где
SeqNum инициализируют значением SeqNum CRISP-сообщения;
- Node = SourceIdentifier, где
SourceIdentifier инициализируют значением идентификатора отправителя;
- CS - инициализируют значением CS CRISP-сообщения;
- cL = byte(ContextLength,2), где
ContextLength - сумма байтовых длин значений SN, Node и CS;
- OutputLength = 512, где
OutputLength - необходимая битовая длина вырабатываемого ключевого материала;
- oL = byte(OutputLength,2).
Для каждого числа i = 1,..., 8 вычисляют 64-битные величины:
Ki = CMAC(Key,byte(i,1)||Label||aL||SN||Node||byte(CS, 1)||
cL||oL).
Ключи шифрования и имитозащиты сообщения вычисляют как
KMAC = K1||K2||K3||K4;
KENC = K5||K6||K7||K8.
7.4 Набор MAGMA-NULL-CMAC8:CS=4
Таблица 6
Описание криптографического набора MAGMA-NULL-CMAC8
7.4.1 Имитовставка
Для вычисления имитовставки ICV, содержащейся в поле ICV CRISP-сообщения, используют блочный шифр "Магма" согласно ГОСТ Р 34.12-2015 в режиме выработки имитовставки согласно ГОСТ Р 34.13-2015. В качестве ключа используют ключ имитозащиты сообщения KMAC. Значение входного параметра режима выработки имитовставки s = 64. Криптографическое дополнение данных для режима выработки имитовставки выполняют согласно ГОСТ Р 34.13-2015.
7.4.2 Ключ
Для выработки производного ключа имитозащиты сообщения используют функцию
CMAC(Key, Data),
которую реализуют с помощью блочного шифра "Магма" согласно ГОСТ Р 34.12-2015 в режиме выработки имитовставки согласно ГОСТ Р 34.13-2015 для данных Data на ключе Key. Значение входного параметра режима выработки имитовставки s = 64. Криптографическое дополнение для режима выработки имитовставки выполняют согласно ГОСТ Р 34.13-2015.
Для выработки производного ключа имитозащиты сообщения вычисляют следующие величины:
- Key - инициализируют базовым ключом K;
- Label = binary('macmac', 6);
- aL = byte(6,1);
- SN = 05||MSB35(byte(SeqNum, 6)), где
SeqNum инициализируют значением SeqNum CRISP-сообщения;
- Node = SourceIdentifier, где
SourceIdentifier инициализируют значением идентификатора отправителя;
- CS - инициализируют значением CS CRISP-сообщения;
- cL = byte(ContextLength,2), где
ContextLength - сумма байтовых длин значений SN, Node и CS;
- OutputLength = 256, где
OutputLength - необходимая битовая длина вырабатываемого ключевого материала;
- oL = byte(OutputLength,2).
Для каждого числа i = 1,...,4 вычисляют 64-битные величины:
Ki = CMAC(Key,byte(i,1)||Label||aL||SN||Node||byte(CS, 1)||
cL||oL).
Ключ имитозащиты сообщения вычисляют как
KMAC = K1||K2||K3||K4".
Приложение А. Подраздел А.2. Четырнадцатый абзац. Заменить значение:
на
Приложение А дополнить подразделами А.3 и А.4:
"А.3 Набор MAGMA-CTR-CMAC8:CS=3
Для формирования CRISP-сообщения используют следующие значения:
ExternalKeyIdFlag = 1
Version = 0
CS = 0316
KeyId = 3016
SeqNum = 0b76e673600116
SourseIdentifier = 30323035313830303030303116
Исходное сообщение:
На основе исходных данных получают следующие значения ключа имитозащиты KMAC, ключа шифрования KENC, зашифрованного сообщения и имитовставки ICV:
ICV = edf339a0dbc0b5b716
Зашифрованное сообщение:
9def18d705afde4e00edb132a8b8d480\\
18ffe760fdd34cecd6461c3553c3087c\\
d0756f156916
Итоговое сообщение будет иметь следующий вид:
800003300b76e6736001\\
9def18d705afde4e00edb132a8b8d480\\
18ffe760fdd34cecd6461c3553c3087c\\
d0756f1569\\
edf339a0dbc0b5b716
А.4 Набор MAGMA-NULL-CMAC8:CS=4
Для формирования сообщения используют следующие значения:
ExternalKeyIdFlag = 1
Version = 0
CS = 0416
KeyId = 3016
SeqNum = 0b76e66ea00116
SourseIdentifier = 30323035313830303030303116
Исходное сообщение:
На основе исходных данных получают следующие значения ключа имитозащиты KMAC и имитовставки ICV:
ICV = f23152388e61582516
Итоговое сообщение будет иметь следующий вид:
800004300b76e66ea001\\
48692120546869732069732074657374\\
20666f72204352495350206d65737361\\
6765730a03\\
f23152388e61582516".
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/prikaz/106/izmen_52396.html
На правах рекламы:
|