Главная // Актуальные документы // ПриказСПРАВКА
Источник публикации
М.: Стандартинформ, 2018
Примечание к документу
Документ
введен в действие с 1 июня 2018 года.
Название документа
"Р 1323565.1.010-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование функции диверсификации для формирования производных ключей платежного приложения"
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 N 2018-ст)
"Р 1323565.1.010-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование функции диверсификации для формирования производных ключей платежного приложения"
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 N 2018-ст)
Утверждены и введены в действие
агентства по техническому
регулированию и метрологии
от 19 декабря 2017 г. N 2018-ст
РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ИСПОЛЬЗОВАНИЕ ФУНКЦИИ ДИВЕРСИФИКАЦИИ ДЛЯ ФОРМИРОВАНИЯ
ПРОИЗВОДНЫХ КЛЮЧЕЙ ПЛАТЕЖНОГО ПРИЛОЖЕНИЯ
Information technology. Cryptographic data security.
Using the key diversification function to generate payment
application derived keys
Р 1323565.1.010-2017
Дата введения
1 июня 2018 года
1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью "Системы практической безопасности" (ООО "СПБ") совместно с Открытым акционерным обществом "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС") и Обществом с ограниченной ответственностью "КРИПТО-ПРО" (ООО "КРИПТО-ПРО")
2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ
Приказом Федерального агентства по техническому регулированию и метрологии от 19 декабря 2017 г. N 2018-ст
4 ВВЕДЕНЫ ВПЕРВЫЕ
Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
В настоящих рекомендациях рассмотрены три подсистемы порождения производных ключей: подсистема порождения мастер-ключей платежного приложения карты для использования на этапе персонализации; подсистема порождения мастер-ключей карты из мастер-ключей банка-эмитента для использования на этапе процессинга; подсистема порождения сессионных ключей карты, используемых на этапе процессинга, из мастер-ключей карты.
Во всех случаях для порождения ключей использована функция диверсификации ключа KDF_GOSTR3411_2012_256, описанная в
Р 50.1.113-2016 (далее - KDF).
Разработка настоящих рекомендаций вызвана необходимостью внедрения процедур для порождения производных ключей платежных приложений.
Описанные в настоящих рекомендациях алгоритмы рекомендуется применять для реализации механизмов обеспечения безопасности информации в платежной системе "МИР".
В настоящих рекомендациях использована нормативная ссылка на следующий документ:
Р 50.1.113-2016 Информационная технология. Криптографическая защита информации. Криптографические алгоритмы, сопутствующие применению алгоритмов электронной цифровой подписи и функции хэширования
Примечание - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных документов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный документ, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого документа с учетом всех внесенных в данную версию изменений. Если заменен ссылочный документ, на который дана датированная ссылка, то рекомендуется использовать версию этого документа с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный документ, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения и обозначения
3.1 Термины и определения
В настоящих рекомендациях применен следующий термин с соответствующим определением:
3.1.1 машина персонализации: Машина электрической персонализации, предназначенная для первичной загрузки ключевой и служебной информации в чип карты.
В настоящих рекомендациях использованы следующие обозначения:
Vn | - | конечномерное векторное пространство размерности n; |
A||B | - | конкатенация строк, т.е. если  то  |
AC | - | прикладная криптограмма (Application Cryptogram), формируемая картой. Длина значения равна 8 байтам; |
ATC | - | счетчик транзакций (Application Transaction Counter). Длина счетчика равна 2 байтам; |
CSN | - | серийный номер чипа (Chip Serial Number). Длина значения равна 4 байтам; |
HMAC256 | - | функция вычисления кода аутентификации сообщения HMAC, использующей алгоритм HMAC_GOSTR3411_2012_256, описанный в Р 50.1.113-2016. Длина значения равна 32 байтам; |
IMK | - | мастер-ключ эмитента ( IMKAC, IMKSMI, IMKSMC или IMKIDN), используемый в качестве ключа диверсификации функции KDF в соответствии с Р 50.1.113-2016 для формирования мастер-ключей карты. Длина значения равна 32 байтам; |
KENC | - | мастер-ключ карты, используемый для генерации сессионного ключа SENC формирования/проверки криптограммы приложения карты и криптограммы машины персонализации; после персонализации удаляются. Длина значения равна 32 байтам; |
KMAC | - | мастер-ключ карты, используемый для генерации сессионного ключа SMAC для обеспечения целостности обмена между картой и машиной персонализации (вычисления имитовставки); после персонализации удаляются. Длина значения равна 32 байтам; |
KDEC | - | мастер-ключ карты, используемый для генерации сессионного ключа SDEC для шифрования и расшифрования конфиденциальных данных, передаваемых в команде персонализации; после персонализации удаляются. Длина значения равна 32 байтам; |
KDF | - | функция диверсификации, использующая алгоритм KDF_GOSTR3411_2012_256, описанный в Р 50.1.113-2016. Длина значения равна 32 байтам; |
KEYDATA | - | данные для формирования ключей карты KMCID||CSN. Длина значения равна 10 байтам; |
KMC | - | ключ эмитента, используемый для формирования ключей персонализации, в качестве ключа диверсификации функции KDF в соответствии с Р 50.1.113-2016, а также для формирования мастер-ключей карты для персонализации. Длина значения равна 32 байтам; |
KMCID | - | идентификатор KMC. Длина значения равна 6 байтам; |
label | - | некоторая константа, значение которой равно  . Длина значения равна 4 байтам; |
label1 | - | некоторая константа, значение которой равно  . Длина значения равна 4 байтам; |
label2 | - | некоторая константа, значение которой равно  . Длина значения равна 4 байтам; |
label3 | - | некоторая константа, значение которой равно  . Длина значения равна 4 байтам; |
MK | - | мастер-ключ карты (MKAC, MKSMI, MKSMC или MKIDN). Длина значения равна 32 байтам; |
MKAC | - | мастер-ключ карты, используемый для вычисления прикладной криптограммы; используется в качестве ключа диверсификации функции KDF в соответствии с Р 50.1.113-2016 для формирования сессионных ключей карты SKAC. Длина значения равна 32 байтам; |
MKSMI | - | мастер-ключ карты, используемый для обеспечения целостности передаваемых в скриптовой команде данных и аутентификации источника данных команды; используется в качестве ключа диверсификации функции KDF в соответствии с Р 50.1.113-2016 для формирования сессионных ключей карты SKSMI. Длина значения равна 32 байтам; |
MKSMC | - | мастер-ключ карты, используемый для обеспечения конфиденциальности передаваемых в скриптовой команде данных; используется в качестве ключа диверсификации функции KDF в соответствии с Р 50.1.113-2016 для формирования сессионных ключей карты SKSMC. Длина значения равна 32 байтам; |
MKIDN | - | мастер-ключ карты, используемый для вычисления IDN (ICC Dynamic Number) при динамической аутентификации карты. Длина значения равна 32 байтам; |
PAN | - | номер карты (Primary Account Number). Длина значения равна от 12 до 20 десятичных цифр; |
PAN Sequence Number - | порядковый номер карты (владельца), если к счету привязано более одной карты. Длина значения равна 1 байту и имеет формат XX, где X - десятичная цифра; |
R | - | вектор диверсификации. Длина значения равна 8 байтам; |
SKAC | - | сессионный ключ, используемый картой и эмитентом для формирования криптограмм ARQC и ARPC (вычисление имитовставки). Длина значения равна 32 байтам; |
SKSMI | - | сессионный ключ, используемый для обеспечения целостности скриптовых команд, т.е. для формирования имитовставки. Длина значения равна 32 байтам; |
SKSMC | - | сессионный ключ, используемый для обеспечения конфиденциальности данных скриптовых команд (разблокировка или смена PIN), т.е. для шифрования данных команды. Длина значения равна 32 байтам. |
Возможные значения аргументов функций в представленных алгоритмах ограничены допустимостью их использования в качестве входных параметров преобразований.
4.1 Вывод мастер-ключей платежного приложения карты
Формирование мастер-ключа карты MC (MKAC, MKSMI, MKSMC или MKIDN) осуществляется с использованием функции диверсификации KDF_GOSTR3411_2012_256 на основе HMAC256 и определяется выражением

,
где
Kin = IMK
seed = Y;
Y равен 16 правым десятичным цифрам X, если X менее 16 цифр, то X дополняется до 8 байт нулями;

(если
PAN Sequence Number отсутствует, то его значения заменяются нулями),
т.е.
4.2 Вывод сессионных ключей платежного приложения карты
4.2.1 Вывод сессионного ключа для вычисления прикладной криптограммы
Формирование сессионного ключа карты SKAC осуществляется с использованием функции диверсификации KDF_GOSTR3411_2012_256 на основе HMAC256 и определяется выражением

,
где
Kin = MKAC
seed = R

,
т.е.
4.2.2 Вывод сессионного ключа для обеспечения целостности передаваемых в скриптовой команде данных и аутентификации источника данных команды - эмитента
Формирование сессионного ключа карты SKSMI осуществляется с использованием функции диверсификации KDF_GOSTR3411_2012_256 на основе HMAC256 и определяется выражением

,
где
Kin = MKSMI
seed = R
R = AC,
т.е.
4.2.3 Вывод сессионного ключа для обеспечения конфиденциальности передаваемых в скриптовой команде данных
Формирование сессионного ключа карты SKSMC осуществляется с использованием функции диверсификации KDF_GOSTR3411_2012_256 на основе HMAC256 и определяется выражением

,
где
Kin = MKSMC
seed = R
R = AC,
т.е.
4.3 Вывод мастер-ключей платежного приложения карты для персонализации
Формирование мастер-ключа карты KENC осуществляется с использованием функции диверсификации KDF_GOSTR3411_2012_256 на основе HMAC256 и определяется выражением

,
где
Kin = KMC
seed - последние 8 байт KEYDATA
seed = Z,
т.е.
Формирование мастер-ключа карты KMAC осуществляется с использованием функции диверсификации KDF_GOSTR3411_2012_256 на основе HMAC256 и определяется выражением

,
где
Kin = KMC
seed - последние 8 байт KEYDATA
seed = Z,
т.е.
Формирование мастер-ключа карты KDEC осуществляется с использованием функции диверсификации KDF_GOSTR3411_2012_256 на основе HMAC256 и определяется выражением

,
где
Kin = KMC
seed - последние 8 байт KEYDATA
seed = Z,
т.е.
(справочное)
Приводимые ниже значения параметров PAN, PAN Sequence Number, ATC, AC, KEYDATA, а также значения ключей эмитента KMC, IMKAC, IMKSMI, IMKSMC, IMKIDN рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящих рекомендациях.
Все числовые значения приведены в десятичной или шестнадцатеричной записи. Нижний индекс в записи числа обозначает основание системы счисления. Представление числа из десятичной системы счисления в шестнадцатеричный вид происходит по следующему правилу: каждые две цифры десятичного числа переводят в двузначное шестнадцатеричное число, например целое число 121345678910 представляется в шестнадцатеричном виде, как число 0c0d2d435916.
В данном приложении двоичные строки из
V*, длина которых кратна 4, записываются в шестнадцатеричном виде, а символ конкатенации

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

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

,
i = 0, 1, ...,
r - 1. Соответствие между двоичными строками длины 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 Исходные данные
PAN = 12345678901234567110
PAN_Sequence_Number = 9510
ATC = df6c16
AC = 9f64235a71ddee5b16
CSN = 994c551e16
KMCID = fd5645a58b7616
KEYDATA = fd5645a58b76994c551e16
KMC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e1f16 |
IMKAC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e1116 |
IMKSMI | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e1216 |
IMKSMC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e1316 |
IMKIDN | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e1416 |
Символ

обозначает перенос числа на новую строку.
А.1.1 Мастер-ключи платежного приложения карты
MKAC | = | fb9fb1c1cbf367fc4c4f872a360b907f\\ 18f78964efffd714d972738b47f935d916 |
MKSMI | = | d37cf9fc1d60e200200c0ace0a4e7adc\\ aaa9176acde1a1e9cd5d2ea3679628ad16 |
MKSMC | = | d02037c2e074d3867a517b5058fe3887\\ 0d320ff8156eccd2f9dc27cefad05e2716 |
MKIDN | = | 4ea368db926da5b101c32d34f0b24803\\ 53db104e44dd57df907e00594b299dcd16 |
А.1.2 Сессионные ключи платежного приложения карты
SKAC | = | 5361ad354b17186e09deb20d37586d46\\ a64f8cddd699238f0210db7d9e6090ed16 |
SKSMI | = | 4b6af8f777c5001d6ae570d29b9d1b60\\ 43777887c1cc4db64feaa8ba0a22678816 |
SKSMC | = | 6a0cd3673c2ce5e8f32c5c6698829917\\ 665ff5b68920750fcec465c2ddc271c1416 |
А.1.3 Мастер-ключи платежного приложения карты для персонализации
KENC | = | 239ae6ef90a1ebd1fbc2a3cf695e6f10\\ bfd1b2da6e73e04dc5b76de4aa7ac54416 |
KMAC | = | 3d292eecd26b7963b4c980d5fcd3068f\\ 624b6d56b434326d89cdf5842b19300616 |
KDEC | = | ce9ec8c79b8a679b2b12bf5514143b5a\\ 9a805fd615f801b2b856921ddd21613016 |
А.2 Исходные данные
PAN = 678901234567310
PAN_Sequence_Number = 9310
ATC = 125a16
AC = 1234567871ddee5b16
CSN = 994c551216
KMCID = fd5645938b7616
KEYDATA = fd5645938b76994c551216
KMC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e0f16 |
IMKAC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e2116 |
IMKSMI | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e2216 |
IMKSMC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e2316 |
IMKIDN | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e2416 |
А.2.1 Мастер-ключи платежного приложения карты
MKAC | = | 91bca45ae14ce443d88e99bc407ac829\\ 7d6d1953094ff48c5116ce8f08d964ca16 |
MKSMI | = | f64ff9474739b93e7e9d6bd2ef3669fb\\ 1ae8c0ad9b2bc5eaa180dcdff7d9510116 |
MKSMC | = | 8c0928f2791be89202b2e5165571cd96\\ a360bc256b27815547c7fa3ae9bdaa1416 |
MKIDN | = | 23df44a5dd9e2c755504dc4c736427b8\\ 6478841d8fea535fb09c34a1410f309716 |
А.2.2 Сессионные ключи платежного приложения карты
SKAC | = | 04f9b88df553d190a2aeb2f4d9f2b6a2\\ f4ce8eac89eab879a807866c0ec0e6f816 |
SKSMI | = | 88f8163b91e53ccd1d42e5aed806b2f2\\ aa022e3b558051642ead998c5e1af33016 |
SKSMC | = | c7d8fc5f9cb04f9b86f30f0f6e40188a\\ f9513abe0ffd684261d89424f6c4680a16 |
А.2.3 Мастер-ключи платежного приложения карты для персонализации
KENC | = | 63b47cd8e6b3743946f279be412e9f87\\ 19013ee919ab99ee0b253cd5f5c4397816 |
KMAC | = | d5f40f395712ec4e47540318b5b718eb\\ 8bb195994ff10e7c6e4a896760f443f716 |
KDEC | = | 0f17df77467bcc4deef2c016eed30753\\ 2d337d21f5ed1295234528a4c9fe1fc716 |
А.3 Исходные данные
PAN = 9876543211234110
PAN_Sequence_Number = 9810
ATC= 126c16
AC = 0998235a71ddee5b16
CSN = 104c551e16
KMCID = fc5645a5127616
KEYDATA = fd5645a51276104c551e16
KMC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e3d16 |
IMKAC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e3116 |
IMKSMI | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e3216 |
IMKSMC | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e3316 |
IMKIDN | = | 000102030405060708090a0b0c0d0e0f\\ 101112131415161718191a1b1c1d1e3416 |
А.3.1 Мастер-ключи платежного приложения карты
MKAC | = | d8f6180a5e1b909ad222f137c7385811\\ a869ef6a67c156296a8419d6f337ad1416 |
MKSMI | = | 3b8fd0a39151b2fba7ad72ca7fbda0ad\\ 62ce02d74ae00e3aff24b2221b5f83ca16 |
MKSMC | = | 298027ce6608a6b26b3c9157dd0457da\\ 4f144a7c4b471e5306f40793db04ed7316 |
MKIDN | = | 326236064be404964d716c47db6b8dab\\ 75d9cb0cb599db240c782db8fa140ac716 |
А.3.2 Сессионные ключи платежного приложения карты
SKAC | = | ed7e91da7485ca6324ae0e982d699e1e\\ 3bf74df8a4691c231ab5d378c02f436716 |
SKSMI | = | dca82274bd029bbe9e4265af9651de4a\\ c61b55c3bc4f862f057d3ed549ce15b316 |
SKSMC | = | 3aee3354c808edd7f3bca1f77186f86b\\ 550748cebe0882e072e7294f6a9660e516 |
А.3.3 Мастер-ключи платежного приложения карты для персонализации
KENC | = | 8f6fe73189b70614d518d8bc56759578\\ 58da3b9825ddb705787cff81d57ec81d16 |
KMAC | = | 9ce94350c5e9b9f835888f6065956efb\\ a6133ad1fba2fc31303caae56e6ea6ea16 |
KDEC | = | cadf60b985e8ca702a98e49ab4ed53b5\\ 5ed1e7d2adaeae46cb1c3e2efb7607bb16 |