Р 1323565.1.007-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование алгоритмов блочного шифрования при формировании проверочного параметра платежной карты и проверочного значения PIN
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 № 2015-ст)
Примечание
Документ введен в действие с 1 июня 2018 года.
Утверждены и введены в действие Приказом Федерального агентства по техническому регулированию и метрологии от 19 декабря 2017 г. № 2015-ст
РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ИСПОЛЬЗОВАНИЕ АЛГОРИТМОВ БЛОЧНОГО ШИФРОВАНИЯ ПРИ ФОРМИРОВАНИИ ПРОВЕРОЧНОГО ПАРАМЕТРА ПЛАТЕЖНОЙ КАРТЫ И ПРОВЕРОЧНОГО ЗНАЧЕНИЯ PIN
Information technology. Cryptographic data security. Using block encryption algorithms in generation of a payment card verification parameter and PIN verification value
Дата введения 1 июня 2018 года
Предисловие
1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью «Системы практической безопасности» (ООО «СПБ») совместно с Открытым акционерным обществом «Информационные технологии и коммуникационные системы» (ОАО «ИнфоТеКС») и Обществом с ограниченной ответственностью «КРИПТО-ПРО» (ООО «КРИПТО-ПРО»)
2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»
3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 19 декабря 2017 г. № 2015-ст
Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. № 162-ФЗ «О стандартизации в Российской Федерации». Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Введение
В настоящих рекомендациях рассмотрены алгоритмы формирования значений CVP, который используется для проверки подлинности карты «МИР», и PVV, необходимого для проверки значения PIN при онлайновой аутентификации.
Разработка настоящих рекомендаций вызвана необходимостью внедрения процедур для формирования проверочных параметров карты в платежных приложениях.
Примечание — Настоящие рекомендации дополнены приложением А.
1 Область применения
Описанные в настоящих рекомендациях алгоритмы рекомендуется применять при формировании проверочного параметра платежной карты (CVP) и проверочного значения PIN (PVV) в платежной системе «МИР».
CVP формируется при эмиссии карты. Проверка CVP выполняется при проведении транзакций по магнитной полосе, проверке чиповых карт в моде магнитной полосы (iCVP) и/или в транзакциях электронной коммерции путем сравнения сформированного и переданного значения CVP (CVP2).
PVV формируется при эмиссии карты. При онлайновой проверке PIN, во время получения эмитентом операции, в которой присутствует криптограмма PIN, выполняется его проверка путем формирования и сравнения PVV на основании данных, считанных с карты «МИР» (PAN, PVKI), и ключа PVK на хосте эмитента.
2 Нормативные ссылки
В настоящих рекомендациях использована нормативная ссылка на следующий стандарт:
ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования
Примечание - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных документов в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя «Национальные стандарты» за текущий год. Если заменен ссылочный документ, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого документа с учетом всех внесенных в данную версию изменений. Если заменен ссылочный документ, на который дана датированная ссылка, то рекомендуется использовать версию этого документа с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный документ, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения и обозначения
3.1 Термины и определения
В настоящих рекомендациях применены следующие термины с соответствующими определениями:
3.1.1 эмитент: Банк, выпустивший платежную карту.
3.1.2 держатель карты: Лицо, на имя которого выпущена платежная карта.
3.2 Обозначения
В настоящих рекомендациях используют следующие обозначения:
4 Описание алгоритмов
Возможные значения аргументов функций в представленных алгоритмах ограничены допустимостью их использования в качестве входных параметров преобразований.
4.1 Алгоритм формирования проверочного параметра карты [CVP (iCVP, CVP2)]
Для получения значения CVP (iCVP, CVP2) изначально вычисляются значения двух блоков:
Block2 = (YYMM||SVC||0...0h) , если длина PAN менее или равна 16.
Block2 = (не вошедшие в первый блок цифры (PAN||YYMM||SCV||0...0h) ,
где SVC принимает значения 000 (для вычисления значения CVP2), 999 (для вычисления значения iCVP) или одно из значений, приведенных в таблице 1 (для вычисления значения CVP).
Далее значение первого блока зашифровывается с помощью алгоритма шифрования по ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z с использованием ключа CVK:
После чего покоординатно складывается по модулю 2 со значением второго блока:
Полученный результат снова зашифровывается с помощью алгоритма шифрования по ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z с использованием ключа CVK:
Полученная двоичная последовательность интерпретируется как натуральное число. Значение CVP (iCVP, CVP2) полагается равным остатку от деления данного числа на 1000. Соответствие между двоичной последовательностью и натуральным числом задается естественным образом.
4.2 Алгоритм формирования проверочного значения PIN (PVV)
Для вычисления PVV последовательность (PAN_11||PVKI||PIN_4) , состоящая из шестнадцатеричных символов, зашифровывается с помощью алгоритма шифрования ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z с использованием ключа PVK.
Полученная двоичная последовательность интерпретируется как натуральное число. Значение PVV полагается равным остатку от деления данного числа на 10 000. Соответствие между двоичной последовательностью и натуральным числом задается естественным образом.
Приводимые ниже значения параметров PIN, PAN, PVKI, срока действия карты, а также значения ключей CVK, PVK рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящих рекомендациях.
Все числовые значения приведены в десятичной или шестнадцатеричной записи. Нижний индекс в записи числа обозначает основание системы счисления. Представление числа из десятичной системы счисления в шестнадцатеричный вид происходит по следующему правилу: каждая цифра десятичного числа переводится в одну цифру шестнадцатеричного числа. Например, целое число 121345678910 представляется в шестнадцатеричном виде, как число 121345678916. Соответствие между десятичными и шестнадцатеричными цифрами задается естественным образом (таблица А.1).
Соответствие между числами в двоичной, шестнадцатеричной и десятичной системе счисления
В данном приложении двоичные строки из V*, длина которых кратна 4, записаны в шестнадцатеричном виде, а символ конкатенации
опускают. То есть строка a \in V_{4r} будет представлена в виде ar-1 ar-2 ... a0, где a_{i} \in {0,1,...,9,a,b,c,d,e,f},i = 0,1,...,r - 1 . Соответствие между двоичными строками длины 4 и шестнадцатеричными строками длины 1 задается естественным образом (таблица А.1).
Преобразование, ставящее в соответствие двоичной строке длины 4r шестнадцатеричную строку длины r, и соответствующее обратное преобразование для простоты записи опускают.
Для вычисления проверочного значения карты (CVP) и проверочного значения PIN (PVV) используют следующие данные:
Срок действия карты: YYMM = 170410
Ключ карты для вычисления значения CVP:
| CVK | = | 01020304050607081112131415161718\ 2122232425262728313233343536373816 |
|---|
Ключ карты для вычисления значения PVV:
| PVK | = | 01020304050607081112131415161718\ 2122232425262728313233343536373816 |
|---|
Символ "\\" обозначает перенос числа на новую строку.
Block1 = 123456789012345610 = 123456789012345616
Block2 = 711704999000000010 = 711704999000000016
В результате работы алгоритма вычисления проверочного значения карты (CVP) получится следующее значение шифрограммы 06128a1bd2a9f96616, что соответствует натуральному числу 437563965911464294.
Тогда значение CVP будет равно:
(PAN_11||PVKI||PIN_4) = 7890123456751234_{10} = 7890123456751234_{16}
В результате работы алгоритма вычисления проверочного значения PIN (PVV) получится следующее значение шифрограммы: deedf3b7ba3e5caf16, что соответствует натуральному числу 16063763416329641135.
Тогда значение PVV будет равно:
Для вычисления проверочного значения карты (CVP) и проверочного значения PIN (PVV) используют следующие данные:
Срок действия карты: YYMM = 191210
Ключ карты для вычисления значения CVP:
| CVK | = | 000102030405060708090a0b0c0d0e0f\ 101112131415161718191a1b1c1d1e2116 |
|---|
Ключ карты для вычисления значения PVV:
| PVK | = | 3b8fd0a39151b2fba7ad72ca7fbda0ad\ 62ce02d74ae00e3aff24b2221b5f83ca16 |
|---|
Block1 = 678901234567300010 = 678901234567300016
Block2 = 191220100000000010 = 191220100000000016
В результате работы алгоритма вычисления проверочного значения карты (CVP) получится следующее значение шифрограммы: 4c9020058f537db716, что соответствует натуральному числу 5516944751780396471.
Тогда значение CVP будет равно:
(PAN_11||PVKI||PIN_4) = 7890123456711234_{10} = 7890123456711234_{16}
В результате работы алгоритма вычисления проверочного значения PIN (PVV) получится следующее значение шифрограммы: 37c81b3e0eba2c5616, что соответствует натуральному числу 4019492620777172054.
Тогда значение PVV будет равно:
Для вычисления проверочного значения карты (CVP) и проверочного значения PIN (PVV) используют следующие данные:
Срок действия карты: YYMM = 200110
Ключ карты для вычисления значения CVP:
| CVK | = | 000102030405060708090a0b0c0d0e0f\ 101112131415161718191a1b1c1d1e3316 |
|---|
Ключ карты для вычисления значения PVV:
| PVK | = | 000102030405060708090a0b0c0d0e0f\ 101112131415161718191a1b1c1d1e2416 |
|---|
Block1 = 987654321123410010 = 987654321123410016
Block2 = 200100000000000010 = 200100000000000016
В результате работы алгоритма вычисления проверочного значения карты (CVP) получится следующее значение шифрограммы: 1843ed76f2da2f9516, что соответствует натуральному числу 1748502175486193557.
Тогда значение CVP будет равно:
(PAN_11||PVKI||PIN_4) = 7654321123410102_{10} = 7654321123410102_{16}
В результате работы алгоритма вычисления проверочного значения PIN (PVV) получится следующее значение шифрограммы: 7bf5bc5c796ce20c16, что соответствует натуральному числу 8932252541319438860.
Тогда значение PVV будет равно:
