Главная // Актуальные документы // ПриказСПРАВКА
Источник публикации
В данном виде документ опубликован не был.
Первоначальный текст документа опубликован в издании
М.: Стандартинформ, 2020.
Информацию о публикации документов, создающих данную редакцию, см. в справке к этим документам.
Примечание к документу
По сведениям, размещенным на Информационном портале Росстандарта по адресу https://uvedns.gostinfo.ru/, данный документ утратил силу с 01.04.2024 в связи с изданием Приказа Росстандарта от 15.02.2024 N 235-ст. Взамен введен в действие
ГОСТ Р 71252-2024.
Название документа
"Р 1323565.1.029-2019. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Протокол защищенного обмена для индустриальных систем"
(утв. и введены в действие Приказом Росстандарта от 30.12.2019 N 1504-ст)
(ред. от 15.11.2022)
"Р 1323565.1.029-2019. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Протокол защищенного обмена для индустриальных систем"
(утв. и введены в действие Приказом Росстандарта от 30.12.2019 N 1504-ст)
(ред. от 15.11.2022)
Утверждены и введены в действие
Приказом Федерального агентства
по техническому регулированию
и метрологии
от 30 декабря 2019 г. N 1504-ст
РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ПРОТОКОЛ ЗАЩИЩЕННОГО ОБМЕНА ДЛЯ ИНДУСТРИАЛЬНЫХ СИСТЕМ
Information technology. Cryptographic data
security. Cryptographic industrial security protocol
Р 1323565.1.029-2019
| | Список изменяющих документов Росстандарта от 15.11.2022 N 1284-ст) | |
Дата введения
1 сентября 2020 года
1 РАЗРАБОТАНЫ Открытым акционерным обществом "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС")
2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 30 декабря 2019 г. N 1504-ст
4 ВВЕДЕНЫ ВПЕРВЫЕ
Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Настоящие рекомендации содержат описание протокола CRISP - CRyptographic Industrial Security Protocol - неинтерактивного протокола защищенной передачи данных, разработанного для применения в индустриальных системах. Протокол CRISP может быть использован для обеспечения конфиденциальности и имитозащиты сообщений и для защиты от навязывания повторных сообщений.
Протокол CRISP реализует защиту исходных сообщений путем их опционального шифрования, а также снабжения дополнительными данными, в частности, для обеспечения имитозащиты сообщений и для защиты от навязывания повторных сообщений с использованием криптографических методов.
Протокол CRISP представляет собой совокупность набора полей, правил их формирования и обработки и может использоваться с любым протоколом передачи данных, способным доставить сформированные данные адресатам. При этом на защищаемую систему возлагается задача доставки сформированных данных посредством используемых протоколов. В частности, адресация и маршрутизация данных возлагается на защищаемую систему.
(в ред.
Изменения N 1, утв. Приказом Росстандарта от 15.11.2022 N 1284-ст)
Областью применения протокола CRISP являются системы с жесткими ограничениями на длину передаваемых данных, требующие использования неинтерактивных протоколов.
В настоящих рекомендациях использованы нормативные ссылки на следующие стандарты:
ГОСТ Р 34.12-2015 Информационная технология. Криптографическая защита информации. Блочные шифры
ГОСТ Р 34.13-2015 Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров
Примечание - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный стандарт, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт, на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный стандарт, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения и обозначения
3.1 Термины и определения
В настоящих рекомендациях применены следующие термины с соответствующими определениями:
3.1.1 CRISP-сообщение: Сообщение, защищенное с помощью протокола CRISP.
3.1.2 базовый ключ: Секретный ключ, известный только отправителю и получателю.
3.1.3 идентификатор ключа: Информация, использующаяся при определении ключа обработки CRISP-сообщения.
3.1.4 исходное сообщение: Сообщение до защиты его протоколом CRISP.
3.1.5 криптографический набор: Совокупность криптографических алгоритмов и параметров, используемых в протоколе CRISP.
3.1.6 окно принятых сообщений: Диапазон допустимых порядковых номеров CRISP-сообщений, в котором помечены порядковые номера принятых CRISP-сообщений.
Примечание - Максимальным номером окна принятых сообщений является максимальный номер среди принятых CRISP-сообщений; минимальный номер окна принятых сообщений определяется максимальным номером окна принятых сообщений и размером окна принятых сообщений.
3.1.7 отправитель: Узел, создающий CRISP-сообщение из исходного сообщения.
3.1.8 получатель: Узел, восстанавливающий исходное сообщения из CRISP-сообщения.
В настоящих рекомендациях использованы следующие обозначения:
V* | - множество всех двоичных строк конечной длины, включая пустую строку; |
|x| | - длина (число компонент) строки  ; |
Vs | - множество всех двоичных строк длины s, где s - целое неотрицательное число; нумерация подстрок и компонент строки осуществляется справа налево, начиная с нуля; |
x||y | - конкатенация двоичных строк x и y из V*, то есть строка из V|x| + |y|, в которой левая подстрока из V|x| совпадает со строкой x, а правая подстрока из V|y| совпадает со строкой y; |
| - множество всех байтовых строк длины l; имеет место соответствие между элементами множеств Vl8 и V8l, задаваемое равенством ( al-1,..., a1, a0) = x8l-1||...|| x1|| x0, где al - 1 = x8l - 1||...|| x8l - 7|| x8l - 8,..., a0 = x7||...|| x1|| x0,  , i = 0,1,...,8 l - 1; |
0r | - двоичная строка, состоящая из r нулей; |
| - отображение, ставящее в соответствие строке zm - 1||...|| z1|| z0, m >= s, строку zs - 1||...|| z1||z 0,  , i = 0,1,..., m - 1; |
| - отображение, ставящее в соответствие строке zm - 1||...|| z1|| z0, m >= s, строку zm - 1||...|| zm - s + 1|| zm - s,  , i = 0,1,..., m - 1; |
binary ('string',l) | - представление символьной строки string, состоящей из m символов, в виде байтовой строки длины l, l >= m, при котором сначала осуществляется посимвольный (с сохранением порядка следования символов) перевод исходной строки в байтовую строку (am - 1,...a1,a0) длины m в соответствии с ASCII-представлением каждого символа, после чего в случае l = m в качестве результата выдается байтовая строка (am - 1,...,a1,a0), а в случае l > m - байтовая строка (0x00,...,0x00, am - 1,...,a1,a0) длины l; |
byte (X, l) | - представление целого числа X, 0 <= X <= 2 8l - 1, в виде байтовой строки длины l, при котором соответствующая итоговой байтовой строке двоичная строка x8l - 1||...|| x1|| x0,  , i = 0,1,...,8 l - 1; есть бинарное представление числа X, т.е. X = x0 + x1·2 + ... + x 8l - 1·2 8l - 1; |
KENC | - ключ шифрования сообщения; |
KMAC | - ключ имитозащиты сообщения; |
K | - базовый ключ; |
Size | - размер окна принятых сообщений. |
Здесь и далее названия полей сообщений выделены прямым полужирным шрифтом. При указании конкретного значения поля используют курсив.
Для записи чисел используется сетевой порядок байтов (Big-endian).
Перечень полей CRISP-сообщения приведен в
таблице 1.
Таблица 1
Перечень полей CRISP-сообщения
Номер поля | Наименование поля | Длина поля в битах |
| Заголовок | ExternalKeyIdFlag | 1 |
2 | Version | 15 |
3 | CS | 8 |
4 | KeyId | От 8 до 1024, конкретное значение определяется значением старших битов KeyId |
| SeqNum | 48 |
| PayloadData | Переменная |
7 | ICV | Переменная, определяется значением CS |
Признак необходимости внешней информации для однозначного определения ключа обработки входящего CRISP-сообщения. Длина поля - 1 бит.
ExternalKeyIdFlag = 0 означает, что ключ обработки входящего CRISP-сообщения однозначно определяется значением KeyId. ExternalKeyIdFlag = 1 означает, что для однозначного определения ключа обработки входящего CRISP-сообщения требуется дополнительная информация.
Версия CRISP-сообщения. Беззнаковое целое число. Длина поля - 15 битов.
Текущий документ описывает CRISP-сообщение, для которого Version = 0.
Идентификатор криптографического набора. Беззнаковое целое число. Длина поля - 8 битов.
Идентификатор определяет криптографический набор, используемый для создания CRISP-сообщения или восстановления исходного сообщения из CRISP-сообщения. Всего может существовать не более 256 различных криптонаборов, исходя из 8-битной длины поля CS CRISP-сообщения.
Список механизмов и параметров, определяемых и/или описываемых в криптографическом наборе, приведен в
таблице 2.
Таблица 2
Состав криптографического набора
Параметр | Описание | Правила задания | Назначение |
EncryptionAlg | Алгоритм шифрования данных | Описание блочного шифра (или ссылка на такое описание); описание режима работы блочного шифра (или ссылка на такое описание), включая задание всех необходимых параметров | Алгоритм используется при шифровании сообщения |
MACAlg | Алгоритм выработки имитовставки | Описание алгоритма (или ссылка на такое описание), включая задание всех необходимых параметров | Алгоритм используется при выработке имитовставки сообщения |
MACLength | Длина имитовставки | Длина имитовставки задается в байтах | - |
DeriveIV | Алгоритм формирования синхропосылки | Описание алгоритма (или ссылки на такое описание); алгоритм должен быть согласован со спецификациями шифров и режимами их работы | Алгоритм используется для формирования синхропосылки при шифровании сообщения |
DeriveKey | Алгоритмы выработки производных ключей из базового ключа | Описание алгоритмов, включая задание всех необходимых параметров | Алгоритмы используются для формирования производных ключей шифрования сообщения и производных ключей имитозащиты сообщения |
Идентификатор ключа. Двоичная строка.
KeyId = 1000 00002 означает, что поле KeyId не используется. В остальных случаях:
- если MSB1 (KeyId) = 0, то длина поля KeyId составляет 1 байт и оставшиеся 7 битов содержат значение идентификатора ключа;
- если MSB1 (KeyId) = 1, то оставшиеся 7 битов первого байта интерпретируются как беззнаковое целое число и определяют количество дополнительных байтов (от 1 до 127). Дополнительные байты содержат значение идентификатора ключа.
Порядковый номер сообщения. Беззнаковое целое число. Длина поля - 48 битов.
Для протокола CRISP версии 1.0 используется также для формирования синхропосылки алгоритма шифрования.
Исходное сообщение или зашифрованное исходное сообщение. Поле переменной длины.
Применение шифрования при обработке сообщения определяется использованным криптографическим набором (значением поля CS). Для конкретного значения CS шифрование либо используется при обработке любого сообщения, либо не используется при обработке любого сообщения.
Имитовставка. Двоичная строка. Длина поля определяется использованным криптографическим набором (значением поля CS). Для конкретного значения CS длина поля ICV может принимать только одно фиксированное значение.
Поле содержит значение имитовставки, рассчитанной для полей 1 - 6 CRISP-сообщения.
Максимальный размер CRISP-сообщения (суммарная длина всех полей CRISP-сообщения) - 2048 байтов.
Предполагается следующее:
- отправитель и получатель имеют общий базовый ключ;
- с каждым базовым ключом ассоциирован идентификатор ключа, который может быть использован при определении ключа обработки CRISP-сообщения;
- с каждым базовым ключом ассоциировано множество отправителей. Каждый из отправителей обладает идентификатором отправителя SourceIdentifier, который может быть как внешней по отношению к KeyId информацией, так и частью KeyId. Идентификатор однозначно определяет отправителя для каждого базового ключа, т.е. у разных отправителей, имеющих общий базовый ключ, SourceIdentifier различны;
(в ред.
Изменения N 1, утв. Приказом Росстандарта от 15.11.2022 N 1284-ст)
- отправитель и получатель имеют общие криптографические наборы;
- задача определения базового ключа обработки сообщения отправителем и получателем находится за рамками протокола CRISP;
- для отправителя и получателя настроен размер окна принятых сообщений.
Примечания
1 Способ установки на отправителе и получателе общих базового ключа, его идентификатора, криптографических наборов и SourceIdentifier находится за рамками протокола CRISP.
2 Под определением базового ключа обработки сообщения отправителем или получателем понимается поиск нужного ключа среди установленных на отправителе или получателе на основании KeyId и, при необходимости, дополнительной информации, например SourceIdentifier.
3 Размер идентификатора отправителя SourceIdentifier должен быть в пределах от 4 до 32 байтов.
4 Размер окна принятых сообщений Size должен быть в пределах от 1 до 256 (включительно) сообщений.
6 Обработка CRISP-сообщения
6.1 Инициализация порядкового номера сообщения и окна принятых сообщений
Перед первым использованием конкретного базового ключа с целью защиты сообщений отправитель устанавливает начальное значение (инициализирует) SeqNum. Инициализация SeqNum может потребоваться также для восстановления после сбоев в нумерации сообщений.
Настоящие рекомендации не специфицируют конкретный алгоритм инициализации SeqNum. При этом алгоритм инициализации совместно с правилом формирования порядкового номера исходящих сообщений должны обеспечивать нахождение значения SeqNum в диапазоне от 0 до 248 - 1 (включительно) и строгое возрастание значения SeqNum для каждого сообщения, создаваемого одним отправителем с использованием одного базового ключа.
Перед первым использованием конкретного базового ключа с целью восстановления сообщений получатель устанавливает максимальный и минимальный номера окна принятых сообщений равными 0.
6.2 Защита исходного сообщения отправителем
Предполагается, что определен базовый ключ, его идентификатор и криптонабор для формирования CRISP-сообщения данному получателю.
Для создания CRISP-сообщения выполняют следующую последовательность действий:
а) формируют порядковый номер сообщения SeqNum - текущее значение SeqNum увеличивают на 1;
б) из базового ключа вырабатывают ключи шифрования (в случае, если криптографическим набором предусмотрено шифрование) и имитозащиты;
г) если криптографическим набором предусмотрено шифрование, то зашифровывают исходное сообщение;
д) вычисляют значение имитовставки
ICV для заголовка CRISP-сообщения и исходного сообщения (в случае, если криптографическим набором не предусмотрено шифрование) или заголовка CRISP-сообщения и зашифрованного сообщения (в случае, если криптографическим набором предусмотрено шифрование) -
поля 1 -
6 таблицы 1.
6.3 Восстановление исходного сообщения получателем
Для восстановления исходного сообщения из CRISP-сообщения выполняют следующую последовательность действий:
а) если версия протокола CRISP, указанная в заголовке CRISP-сообщения, не поддерживается получателем, то сообщение блокируют;
б) согласно значению KeyId и, в случае ExternalKeyIdFlag = 1, дополнительной информации определяют базовый ключ;
в) проверяют допустимость значения SeqNum входящего CRISP-сообщения:
- если значение SeqNum входящего CRISP-сообщения меньше минимального номера окна принятых сообщений, то CRISP-сообщение блокируют и процедуру восстановления исходного сообщения прекращают;
- если значение SeqNum входящего CRISP-сообщения принадлежит окну принятых сообщений и данный порядковый номер CRISP-сообщения помечен как принятый в окне принятых сообщений, то CRISP-сообщение блокируют и процедуру восстановления исходного сообщения прекращают.
В остальных случаях значение SeqNum входящего CRISP-сообщения является допустимым и осуществляют переход к следующему пункту;
г) из базового ключа вырабатывают ключи шифрования (если криптографическим набором предусмотрено шифрование) и имитозащиты;
д) выполняют контроль целостности CRISP-сообщения путем проверки имитовставки. Если имитовставка не верна, то сообщение блокируют и процедуру восстановления исходного сообщения прекращают; если имитовставка верна, то переходят к следующему пункту;
е) обновляют окно принятых сообщений:
- если значение SeqNum входящего CRISP-сообщения принадлежит окну принятых сообщений, то порядковый номер SeqNum помечают в окне принятых сообщений как принятый;
- если значение SeqNum входящего CRISP-сообщения больше максимального номера окна принятых сообщений, то новым максимальным номером окна принятых сообщений становится значение SeqNum, порядковый номер SeqNum помечают в окне принятых сообщений как принятый, а новым минимальным номером окна принятых сообщений становится значение SeqNum - Size + 1 или 0, если значение SeqNum - Size + 1 меньше 0;
ж) если криптографическим набором предусмотрено шифрование, то выполняется расшифрование значения поля PayloadData, восстанавливают исходное сообщение.
7 Криптографические наборы
7.1 Набор MAGMA-CTR-CMAC: CS=1
Таблица 3
Описание криптографического набора MAGMA-CTR-CMAC
Параметр | Значение |
EncryptionAlg | |
MACAlg | |
MACLength | 4 байта |
DeriveIV | См. описание далее |
DeriveKey | См. описание далее |
7.1.1 Алгоритм шифрования
Для шифрования данных используют блочный шифр "Магма" согласно
ГОСТ Р 34.12-2015 в режиме гаммирования согласно
ГОСТ Р 34.13-2015. В качестве ключа используют ключ шифрования сообщения
KENC. Значение входного параметра режима гаммирования
s = 64. В качестве синхропосылки используют значение, определенное в
7.1.3. Криптографическое дополнение данных для режима гаммирования не предусмотрено.
7.1.2 Имитовставка
Для вычисления имитовставки
ICV, содержащейся в поле
ICV CRISP-сообщения, используют блочный шифр "Магма" согласно
ГОСТ Р 34.12-2015 в режиме выработки имитовставки согласно
ГОСТ Р 34.13-2015. В качестве ключа используют ключ имитозащиты сообщения
KMAC. Значение входного параметра режима выработки имитовставки
s = 32. Криптографическое дополнение данных для режима выработки имитовставки выполняют согласно
ГОСТ Р 34.13-2015.
Для формирования из 48-битного порядкового номера сообщения SeqNum, содержащегося в поле SeqNum CRISP-сообщения, 32-битной синхропосылки IV используют 32 младших бита SeqNum:
IV = LSB32(byte(SeqNum, 6)).
7.1.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.2 Набор MAGMA-NULL-CMAC: CS=2
Таблица 4
Описание криптографического набора MAGMA-NULL-CMAC
Параметр | Значение |
EncryptionAlg | Не используется |
MACAlg | |
MACLength | 4 байта |
DeriveIV | Не используется |
DeriveKey | См. описание далее |
7.2.1 Имитовставка
Для вычисления имитовставки
ICV, содержащейся в поле
ICV CRISP-сообщения, используют блочный шифр "Магма" согласно
ГОСТ Р 34.12-2015 в режиме выработки имитовставки согласно
ГОСТ Р 34.13-2015. В качестве ключа используют ключ имитозащиты сообщения
KMAC. Значение входного параметра режима выработки имитовставки
s = 32. Криптографическое дополнение данных для режима выработки имитовставки выполняют согласно
ГОСТ Р 34.13-2015.
7.2.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.
7.3 Набор MAGMA-CTR-CMAC8:CS=3
(подраздел 7.3 введен
Изменением N 1, утв. Приказом Росстандарта от 15.11.2022 N 1284-ст)
Таблица 5
Описание криптографического набора MAGMA-CTR-CMAC8
Параметр | Значение |
EncryptionAlg | |
MACAlg | |
MACLength | 8 байтов |
DeriveIV | См. описание далее |
DeriveKey | См. описание далее |
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.
Для формирования из 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
(подраздел 7.4 введен
Изменением N 1, утв. Приказом Росстандарта от 15.11.2022 N 1284-ст)
Таблица 6
Описание криптографического набора MAGMA-NULL-CMAC8
Параметр | Значение |
EncryptionAlg | Не используется |
MACAlg | |
MACLength | 8 байтов |
DeriveIV | Не используется |
DeriveKey | См. описание далее |
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.
(справочное)
Приводимые ниже значения SourseIdentifier, KeyId, SeqNum и базового ключа K рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящих рекомендациях.
Все числовые значения приведены в шестнадцатеричной системе счисления.
В данном приложении двоичные строки из
V*, длина которых кратна 4, записываются в шестнадцатеричном виде, а символ конкатенации ("||") опускается. То есть строка

будет представлена в виде
ar - 1ar - 2...
a0, где

,
i = 0,1,...,
r - 1. Соответствие между двоичными строками длины 4 и шестнадцатеричными строками длины 1 задается естественным образом
(таблица А.1).
Преобразование, ставящее в соответствие двоичной строке длины 4r шестнадцатеричную строку длины r, и соответствующее обратное преобразование для простоты записи опускается.
Таблица А.1
Соответствие между двоичными и шестнадцатеричными строками
Двоичная запись | Шестнадцатеричная запись |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | a |
1011 | b |
1100 | c |
1101 | d |
1110 | e |
1111 | f |
Примечание - Символ "\\", приведенный в
А.1 и
А.2, обозначает перенос числа на новую строку.
А.1 Набор MAGMA-CTR-CMAC: CS = 1
Для формирования сообщения используются следующие значения:
ExternalKeyIdFlag = 1
Version = 0
CS = 0116
KeyId = 3016
SeqNum = 0b76e673600116
SourseIdentifier = 30323035313830303030303116:
K = 56509427153249653498524659324653\\ 0453294534659384507324957635129016 |
Исходное сообщение PayloadData:
48692120546869732069732074657374\\
20666f72204352495350206d65737361\\
6765730a0316
На основе исходных данных получаются следующие значения ключа имитозащиты KMAC, ключа шифрования KENC, зашифрованного сообщения и имитовставки ICV:
KMAC = eeb0f6814257ad08964eabe5e0993d38\\ b2afc2ada24e8362d455db06951f2d9316 KENC = e3316ad28c788c38dafdeb9388e234bd\\ 30e5c901eeeb1788cdc1ec5db315e1a716 |
ICV = 887f0a3216
Зашифрованное сообщение:
d324643aefd97b93b18d343a2fba477e\\
c704cd8d14ac1cf74ceb25577af8fc2c\\
25fa9050a116
Итоговое сообщение будет иметь следующий вид:
800001300b76e6736001\\
d324643aefd97b93b18d343a2fba477e\\
c704cd8d14ac1cf74ceb25577af8fc2c\\
25fa9050a1\\
887f0a3216
А.2 Набор MAGMA-NULL-CMAC: CS = 2
Для формирования сообщения используются следующие значения:
ExternalKeyIdFlag = 1
Version = 0
CS = 0216
KeyId = 3016
SeqNum = 0b76e66ea00116
SourseIdentifier = 30323035313830303030303116
K = 56509427153249653498524659324653\\ 0453294534659384507324957635129016 |
Исходное сообщение PayloadData:
48692120546869732069732074657374\\
20666f72204352495350206d65737361\\
6765730a0316
На основе исходных данных получаются следующие значения ключа имитозащиты KMAC и имитовставки ICV:
KMAC = c3e3780f87f2caf539fdad56d9cb0340\\ b1052c0ae8272ddc9601c921f81a7ca516 |
(в ред.
Изменения N 1, утв. Приказом Росстандарта от 15.11.2022 N 1284-ст)
ICV = b97ade9416
Итоговое сообщение будет иметь следующий вид:
800002300b76e66ea001\\
48692120546869732069732074657374\\
20666f72204352495350206d65737361\\
6765730a03\\
b97ade9416
А.3 Набор MAGMA-CTR-CMAC8:CS=3
(подраздел А.3 введен
Изменением N 1, утв. Приказом Росстандарта от 15.11.2022 N 1284-ст)
Для формирования CRISP-сообщения используют следующие значения:
ExternalKeyIdFlag = 1
Version = 0
CS = 0316
KeyId = 3016
SeqNum = 0b76e673600116
SourseIdentifier = 30323035313830303030303116
K = 56509427153249653498524659324653\\ 0453294534659384507324957635129016 |
Исходное сообщение:
PayloadData = 48692120546869732069732074657374\\ 20666f72204352495350206d65737361\\ 6765730a0316 |
На основе исходных данных получают следующие значения ключа имитозащиты KMAC, ключа шифрования KENC, зашифрованного сообщения и имитовставки ICV:
KMAC = 742ae2acebae5fed1cc7acfd614d9cf2\\ 98aeeea7a77a997bc19b99b9beeb883216 KENC = c241ebfac49d476859e1e6388a94660b\\ 65d6b740a38363abb9129297250ddb2216 |
ICV = edf339a0dbc0b5b716
Зашифрованное сообщение:
9def18d705afde4e00edb132a8b8d480\\
18ffe760fdd34cecd6461c3553c3087c\\
d0756f156916
Итоговое сообщение будет иметь следующий вид:
800003300b76e6736001\\
9def18d705afde4e00edb132a8b8d480\\
18ffe760fdd34cecd6461c3553c3087c\\
d0756f1569\\
edf339a0dbc0b5b716
А.4 Набор MAGMA-NULL-CMAC8:CS=4
(подраздел А.4 введен
Изменением N 1, утв. Приказом Росстандарта от 15.11.2022 N 1284-ст)
Для формирования сообщения используют следующие значения:
ExternalKeyIdFlag = 1
Version = 0
CS = 0416
KeyId = 3016
SeqNum = 0b76e66ea00116
SourseIdentifier = 30323035313830303030303116
K = 56509427153249653498524659324653\\ 0453294534659384507324957635129016 |
Исходное сообщение:
PayloadData = 48692120546869732069732074657374\\ 20666f72204352495350206d65737361\\ 6765730a0316 |
На основе исходных данных получают следующие значения ключа имитозащиты KMAC и имитовставки ICV:
KMAC = 5d4885a48e3bee6f79a3bd099ada4f68\\ 21dcf81691d6710af3016c85ae06ebc416 |
ICV = f23152388e61582516
Итоговое сообщение будет иметь следующий вид:
800004300b76e66ea001\\
48692120546869732069732074657374\\
20666f72204352495350206d65737361\\
6765730a03\\
f23152388e61582516
УДК 681.3.06:006.354 | |
Ключевые слова: криптографические протоколы, аутентификация, шифрование, защита от навязывания повторных сообщений, ключ |