Главная // Актуальные документы // ПриказСПРАВКА
Источник публикации
М.: Стандартинформ, 2018
Примечание к документу
Документ
введен в действие с 1 июня 2018 года.
Название документа
"Р 1323565.1.008-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование режимов алгоритма блочного шифрования в защищенном обмене сообщениями между эмитентом и платежным приложением"
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 N 2016-ст)
"Р 1323565.1.008-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование режимов алгоритма блочного шифрования в защищенном обмене сообщениями между эмитентом и платежным приложением"
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 N 2016-ст)
Утверждены и введены в действие
агентства по техническому
регулированию и метрологии
от 19 декабря 2017 г. N 2016-ст
РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ИСПОЛЬЗОВАНИЕ РЕЖИМОВ АЛГОРИТМА БЛОЧНОГО ШИФРОВАНИЯ
В ЗАЩИЩЕННОМ ОБМЕНЕ СООБЩЕНИЯМИ МЕЖДУ ЭМИТЕНТОМ
И ПЛАТЕЖНЫМ ПРИЛОЖЕНИЕМ
Information technology. Cryptographic data security.
Using block encryption algorithm modes in secure messaging
between the issuer and the payment application
Р 1323565.1.008-2017
Дата введения
1 июня 2018 года
1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью "Системы практической безопасности" (ООО "СПБ") совместно с Открытым акционерным обществом "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС") и Обществом с ограниченной ответственностью "КРИПТО-ПРО" (ООО "КРИПТО-ПРО")
2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ
Приказом Федерального агентства по техническому регулированию и метрологии от 19 декабря 2017 г. N 2016-ст
4 ВВЕДЕНЫ ВПЕРВЫЕ
Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
В настоящих рекомендациях рассмотрены алгоритмы реализации механизмов скрипт-процессинга для обеспечения защищенного обмена сообщениями. Процедура скрипт-процессинга может быть выполнена в любое время после завершения обработки первой команды GENERATE AC.
Разработка настоящих рекомендаций вызвана необходимостью внедрения процедур для осуществления защищенного обмена сообщениями платежного приложения карты с эмитентом.
Описанные в настоящих рекомендациях алгоритмы рекомендуется применять при защищенном обмене сообщениями в платежной системе "МИР".
Защищенный обмен сообщениями платежного приложения карты с эмитентом обеспечивается за счет использования механизмов скрипт-процессинга, а также шифрования оффлайновых счетчиков приложения. Реализация скрипт-процессинга подразумевает шифрование конфиденциальных данных команды (PIN-block), а также обеспечение целостности данных каждой команды. Инструкции скрипт-процессинга предназначены для изменения внутренних данных приложения, поэтому защищенный обмен сообщениями с эмитентом используется в ограниченном наборе APDU-команд.
В настоящих рекомендациях использованы нормативные ссылки на следующие документы:
ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования
ГОСТ Р 34.11-2012 Информационная технология. Криптографическая защита информации. Функция хэширования
Р 1323565.1.010-2017 Информационная технология. Криптографическая защита информации. Использование функции диверсификации для формирования производных ключей платежного приложения
Примечание - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных документов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный документ, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого документа с учетом всех внесенных в данную версию изменений. Если заменен ссылочный документ, на который дана датированная ссылка, то рекомендуется использовать версию этого документа с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный документ, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
В настоящих рекомендациях использованы следующие обозначения:
Vn | - | конечномерное векторное пространство размерности n; |
A||B | - | конкатенация строк, т.е. если  ,  , A = ( an1-1, an1-2, ..., a0), B = ( bn2-1, bn2-2, ..., b0), то  |
ЗОС | - | защищенный обмен сообщениями; |
SMI | - | механизм обеспечения целостности передаваемых в команде (сообщении) данных и аутентификации источника данных (Secure Messaging for Integrity and Authentication); |
SMC | - | механизм обеспечения конфиденциальности передаваемых данных (Secure Messaging for Confidentiality); |
PIN | - | персональный идентификационный номер (Personal Identification Number). Длина значения равна 4 - 12 десятичным цифрам; |
SKSMI | - | сессионный ключ, используемый для обеспечения целостности передаваемых в скриптовой команде данных и аутентификации источника данных команды; формируется в соответствии с Р 1323565.1.010-2017. Хранится в оперативной памяти карты только на протяжении одной транзакции, после удаляется. Длина значения равна 32 байтам; |
CLA||INS||P1||P2 | - | заголовок сообщения. Длина значения равна 4 байтам; |
CLA | - | байт класса (Class Byte of the Command Message). Длина значения равна 1 байту; |
INS | - | командный байт (Instruction Byte of Command Message). Длина значения равна 1 байту; |
P1 | - | параметр 1. Указывает элементы управления и опции для обработки команд. Если не используется, то принимает значение  . Длина значения равна 1 байту; |
P2 | - | параметр 2. Указывает элементы управления и опции для обработки команд. Если не используется, то принимает значение  . Длина значения равна 1 байту; |
IM | - | значение имитовставки для сообщения. Длина значения равна 4 байтам; |
SKSMC | - | сессионный ключ, используемый для обеспечения конфиденциальности передаваемых данных ( PIN-block) в скриптовой команде; формируется в соответствии с Р 1323565.1.010-2017. Хранится в оперативной памяти карты только на протяжении одной транзакции, после удаляется. Длина значения равна 32 байтам; |
SKAC | - | сессионный ключ карты, используемый для формирования прикладной криптограммы и формирования ключа шифрования счетчиков SKCOUNTER; формируется в соответствии с Р 1323565.1.010-2017. Хранится в оперативной памяти карты только на протяжении одной транзакции, после удаляется. Длина значения равна 32 байтам; |
SKCOUNTER | - | сессионный ключ, используемый для шифрования счетчиков. Длина значения равна 32 байтам; |
AC Session Counter | - | счетчик количества генераций картой сессионных ключей SKAC с момента последней успешной проверки приложением величины ARPC. Длина значения равна 2 байтам; |
SMI Session Key Counter | - | счетчик общего количества случаев вывода сессионных ключей SKSMI, при которых проверка IM завершилась неудачно. Длина значения равна 2 байтам; |
PIN Decipherment Counter | - | счетчик количества неверных операций расшифровок приложением PIN-block при оффлайновой проверке PIN. Длина значения равна 2 байтам; |
Terminal Mutual Authentication Counter | - | счетчик количества неверных операций взаимной аутентификации приложения с терминалом. Длина значения равна 2 байтам; |
Counters | - | блок значений счетчиков, состоящий из значений AC Session Counter, SMI Session Key Counter, PIN Decipherment Counter, Terminal Mutual Authentication Counter. Длина значения равна 8 байтам; |
PIN-block | - | данные для вычисления шифрограммы. Длина значения равна 8 байтам. |
Возможные значения аргументов функций в представленных алгоритмах ограничиваются допустимостью их использования в качестве входных параметров преобразований.
4.1 Обеспечение контроля целостности ЗОС между платежным приложением карты и эмитентом
4.1.1 Алгоритм формирования значения имитовставки для сообщения скрипт-процессинга
Значение имитовставки вычисляется на ключе
SKSMI в соответствии с
ГОСТ 28147-89 с использованием узла замены id-tc26-gost-28147-param-Z:
где
Длина значения X равна 8 байтам.
Длина значения Y равна 264 байтам.
Сообщение
MSG вычисляется в соответствии с
таблицей 1.
Тэг 1 | Длина 1 | Значение 1 | Тэг 2 | Длина 2 |
'87', если данные команды зашифрованы '81', если данные команды передаются в открытом виде | Длина данных команды L | Данные (L байт) | '8E' | '04' |
Итоговый формат сообщения скрипт-процессинга после формирования имитовставки представляется в виде

.
4.1.2 Алгоритм проверки значения имитовставки для сообщения скрипт-процессинга
| | ИС МЕГАНОРМ: примечание. В официальном тексте документа, видимо, допущена опечатка: пункт 5.1.1 отсутствует. Возможно, имеется в виду пункт 4.1.1. | |
Для проверки значения имитовставки для сообщения необходимо выполнить расчет имитовставки аналогично
5.1.1 и сравнить полученное значение со значением
таблицы 2.
Тэг 1 | Длина 1 | Значение 1 | Тэг 2 | Длина 2 | Значение 2 |
'87', если данные команды зашифрованы '81', если данные команды передаются в открытом виде | Длина данных команды L | Данные (L байт) | '8E' | '04' | Значение имитовставки |
Если значения совпадают, то значение счетчика SMI Session Key Counter уменьшается на 1.
Если значения не совпадают, то приложение должно отклонить команду скрипт-процессинга.
4.2 Защита конфиденциальности ЗОС между платежным приложением карты и эмитентом
4.2.1 Алгоритм шифрования конфиденциальных данных PIN сообщения скрипт-процессинга
Для шифрования конфиденциальных данных PIN формируется PIN-block в следующем виде:
C | N | P | P | P | P | P/F | P/F | P/F | P/F | P/F | P/F | P/F | P/F | F | F |
Значение в каждом столбце имеет длину 4 бита.
Значение знаков
PIN-block определены в
таблице 3.
Знак в PIN-block | Имя | Значение |
C | Контрольное поле | '2' ('0010'b) |
N | Длина PIN | 4-битовый двоичный номер с допустимыми значениями в двоичном представлении от '0100'b до "1100'b (от 4 до 12 в десятичном представлении) |
P | Цифра PIN | 4-битовое представление десятичной цифры PIN с допустимыми значениями от '0000'b до "1001'b (от 0 до 9 в десятичном представлении) |
P/F | Цифра PIN/заполнитель | Определяется длиной PIN |
F | Заполнитель | 4-битовое двоичное число '1111'b |
Шифрование
PIN-block осуществляется на ключе
SKSMC в соответствии с
ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z:
Block1 = EГОСТ(SKSMC)[PIN-block]
4.2.2 Алгоритм расшифрования конфиденциальных данных PIN сообщения скрипт-процессинга
Расшифрование
PIN-block осуществляется на ключе
SKSMC в соответствии с
ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z:
PIN-block = DГОСТ(SKSMC)[block1]
| | ИС МЕГАНОРМ: примечание. В официальном тексте документа, видимо, допущена опечатка: пункт 5.2.1 отсутствует. Возможно, имеется в виду пункт 4.2.1. | |
Формат расшифрованного
PIN-block должен соответствовать приведенному в
5.2.1. В противном случае приложение должно отклонить команду.
4.3 Шифрование значений счетчиков при передаче эмитенту
4.3.1 Алгоритм шифрования счетчиков при передаче эмитенту
Блок значений счетчиков шифруется на ключе
SKCOUNTER в соответствии с
ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z:
Block2 = EГОСТ(SKCOUNTER)[Counters]
Ключ SKCOUNTER формируется из ключа SKAC по следующей схеме:
SKCOUNTER = H(SKAC),
4.3.2 Алгоритм расшифрования счетчиков при передаче эмитенту
Блок значений счетчиков расшифровывается на ключе
SKCOUNTER в соответствии с
ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z:
Counters = EГОСТ(SKCOUNTER)[Block2]
Ключ SKCOUNTER формируется из ключа SKAC по следующей схеме:
SKCOUNTER = H(SKAC),
(справочное)
Приводимые ниже значения параметров PIN, CLA, INS, P1, P2, а также значения счетчиков AC Session Counter, SMI Session Key Counter, PIN Decipherment Counter, Terminal Mutual Authentication, значение сообщения MSG и значения ключей SKSMI, SKSMC, SKAC рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящих рекомендациях.
Все числовые значения приведены в десятичной или шестнадцатеричной записи. Нижний индекс в записи числа обозначает основание системы счисления.
В данном приложении двоичные строки из
V*, длина которых кратна 4, записываются в шестнадцатеричном виде, а символ конкатенации

опускается. То есть строка

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

. Соответствие между двоичными строками длины 4 и шестнадцатеричными строками длины 1 задается естественным образом
(таблица А.1).
Таблица А.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 |
Преобразование, ставящее в соответствие двоичной строке длины 4r шестнадцатеричную строку длины r, и соответствующее обратное преобразование для простоты записи опускаются.
А.1 Исходные данные
Для вычисления имитовставки, шифрования конфиденциальных данных (PIN) и шифрования значения счетчиков используют следующие исходные данные:
PIN = 123456710
Заголовок сообщения:

Значение сообщения MSG: MSG = 870445153fbb8e0416
Значения счетчиков:
AC Session Counter = 000116
SMI Session Key Counter = 000116
PIN Decipherment Counter = 000116
Terminal Mutual Authentication = 000116
Значения ключей:
SKSMI | = | 4b6af8f777c5001d6ae570d29b9d1b60\\ 43777887c1cc4db64feaa8ba0a22678816 |
SKSMC | = | 6a0cd3673c2ce5e8f32c5c6698829917\\ 665ff5b8920750fcec465c2ddc271c1416 |
SKAC | = | 5361ad354b17186e09deb20d37586d46\\ a64f8cddd699238f0210db7d9e6090ed16 |
Символ

обозначает перенос числа на новую строку.
А.1.1 Имитовставка для сообщения
Используя исходные данные, получают следующее значение имитовставки:
IM = 1f14115e16
А.1.2 Шифрование конфиденциальных данных (PIN)
PIN-block = 271234567fffffff16
В результате применения алгоритма шифрования PIN получится следующее значение шифрограммы:
А.1.3 Расшифрование PIN
С использованием приведенных значений SKSMC и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.
А.1.4 Ключ шифрования счетчиков
На основе ключа SKAC формируется значение ключа SKCounters
SKCounters | = | 93a20f29d3e4c445e47358003302b90e\\ 223ba98e1b2a55a7c18c086634236e6816 |
А.1.5 Шифрование значения счетчиков
Counters = 000100010001000116
В результате применения алгоритма шифрования счетчиков получится следующее значение шифрограммы:
ESKCounters(Counters) = bdbdfd20657f13d416
А.1.6 Расшифрование значения счетчиков
С использованием приведенных значений SKCounters и значения шифрограммы с помощью операции расшифрования воспроизводятся исходные значения счетчиков.
А.2 Исходные данные
Для вычисления имитовставки, шифрования конфиденциальных данных (PIN) и шифрования значения счетчиков используют следующие исходные данные:
PIN = 123410
Заголовок сообщения:

Значение сообщения MSG: MSG = 810545343f45df8e0416
Значения счетчиков:
AC Session Counter = 000216
SMI Session Key Counter = 000216
PIN Decipherment Counter = 000216
Terminal Mutual Authentication = 000216
Значения ключей:
SKSMI | = | 88f8163b91e53ccd1d42e5aed806b2f2\\ aa022e3b558051642ead998c5e1af33016 |
SKSMC | = | c7d8fc5f9cb04f9b86f30f0f6e40188a\\ f9513abe0ffd684261d89424f6c4680a16 |
SKAC | = | 04f9b88df553d190a2aeb2f4d9f2b6a2\\ f4ce8eac89eab879a807866c0ec0e6f816 |
А.2.1 Имитовставка для сообщения
Используя исходные данные, получают следующее значение имитовставки:
IM = 48b0d8a616
А.2.2 Шифрование конфиденциальных данных (PIN)
PIN-block = 241234ffffffffff16
В результате применения алгоритма шифрования PIN получится следующее значение шифрограммы:
А.2.3 Расшифрование PIN
С использованием приведенных значений SKSMC и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.
А.2.4 Ключ шифрования счетчиков
На основе ключа SKAC формируется значение ключа SKCounters
SKCounters | = | 1dc1c864c50a8a95aba515962cad0b42\\ 13cafcbb75c3684d1f04151ca2cb75ed16 |
А.2.5 Шифрование значения счетчиков
Counters = 000200020002000216
В результате применения алгоритма шифрования счетчиков получится следующее значение шифрограммы:
А.2.6 Расшифрование значения счетчиков
С использованием приведенных значений SKCounters и значения шифрограммы с помощью операции расшифрования воспроизводятся исходные значения счетчиков.
А.3 Исходные данные
Для вычисления имитовставки, шифрования конфиденциальных данных (PIN) и шифрования значения счетчиков используются следующие исходные данные:
PIN = 324783901010
Заголовок сообщения:

Значение сообщения MSG: MSG = 8101658e0416
Значения счетчиков:
AC Session Counter = 000316
SMI Session Key Counter = 000316
PIN Decipherment Counter = 000316
Terminal Mutual Authentication = 000316
Значения ключей:
SKSMI | = | dca82274bd029bbe9e4265af9651de4a\\ c61b55c3bc4f862f057d3ed549ce15b316 |
SKSMC | = | 3aee3354c808edd7f3bca1f77186f86b\\ 550748cebe0882e072e7294f6a9660e516 |
SKAC | = | ed7e91da7485ca6324ae0e982d699e1e\\ 3bf74df8a4691c231ab5d378c02f436716 |
А.3.1 Имитовставка для сообщения
Используя исходные данные, получают следующее значение имитовставки:
IM = 8114cd6416
А.3.2 Шифрование конфиденциальных данных (PIN)
PIN-block = 2a3247839010ffff16
В результате применения алгоритма шифрования PIN получится следующее значение шифрограммы:
А.3.3 Расшифрование PIN
С использованием приведенных значений SKSMC и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.
А.3.4 Ключ шифрования счетчиков
На основе ключа SKAC формируется значение ключа SKCounters
SKCounters | = | 2ee67d8b3ccf9aadadd03814e7e25439\\ 8ad2c3c341ee30354d0c4025eb06aec116 |
А.3.5 Шифрование значения счетчиков
Counters = 000300030003000316
В результате применения алгоритма шифрования счетчиков получится следующее значение шифрограммы:
А.3.6 Расшифрование значения счетчиков
С использованием приведенных значений SKCounters и значения шифрограммы с помощью операции расшифрования воспроизводятся исходные значения счетчиков.