Главная // Актуальные документы // Приказ
СПРАВКА
Источник публикации
М.: Стандартинформ, 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
ОКС 35.040
Дата введения
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).
Разработка настоящих рекомендаций вызвана необходимостью внедрения процедур для порождения производных ключей платежных приложений.
Примечание - Настоящие рекомендации дополнены приложением А.
1 Область применения
Описанные в настоящих рекомендациях алгоритмы рекомендуется применять для реализации механизмов обеспечения безопасности информации в платежной системе "МИР".
2 Нормативные ссылки
В настоящих рекомендациях использована нормативная ссылка на следующий документ:
Р 50.1.113-2016 Информационная технология. Криптографическая защита информации. Криптографические алгоритмы, сопутствующие применению алгоритмов электронной цифровой подписи и функции хэширования
Примечание - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных документов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный документ, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого документа с учетом всех внесенных в данную версию изменений. Если заменен ссылочный документ, на который дана датированная ссылка, то рекомендуется использовать версию этого документа с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный документ, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения и обозначения
3.1 Термины и определения
В настоящих рекомендациях применен следующий термин с соответствующим определением:
3.1.1 машина персонализации: Машина электрической персонализации, предназначенная для первичной загрузки ключевой и служебной информации в чип карты.
3.2 Обозначения
В настоящих рекомендациях использованы следующие обозначения:
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 Описание алгоритмов
Возможные значения аргументов функций в представленных алгоритмах ограничены допустимостью их использования в качестве входных параметров преобразований.
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