Главная // Актуальные документы // Приказ
СПРАВКА
Источник публикации
М.: Стандартинформ, 2018
Примечание к документу
Документ введен в действие с 1 июня 2018 года.
Название документа
"Р 1323565.1.007-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование алгоритмов блочного шифрования при формировании проверочного параметра платежной карты и проверочного значения PIN"
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 N 2015-ст)

"Р 1323565.1.007-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование алгоритмов блочного шифрования при формировании проверочного параметра платежной карты и проверочного значения PIN"
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 N 2015-ст)


Содержание


Утверждены и введены в действие
Приказом Федерального
агентства по техническому
регулированию и метрологии
от 19 декабря 2017 г. N 2015-ст
РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ИСПОЛЬЗОВАНИЕ АЛГОРИТМОВ БЛОЧНОГО ШИФРОВАНИЯ
ПРИ ФОРМИРОВАНИИ ПРОВЕРОЧНОГО ПАРАМЕТРА ПЛАТЕЖНОЙ
КАРТЫ И ПРОВЕРОЧНОГО ЗНАЧЕНИЯ PIN
Information technology. Cryptographic data security.
Using block encryption algorithms in generation
of a payment card verification parameter
and PIN verification value
Р 1323565.1.007-2017
ОКС 35.040
Дата введения
1 июня 2018 года
Предисловие
1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью "Системы практической безопасности" (ООО "СПБ") совместно с Открытым акционерным обществом "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС") и Обществом с ограниченной ответственностью "КРИПТО-ПРО" (ООО "КРИПТО-ПРО")
2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 19 декабря 2017 г. N 2015-ст
4 ВВЕДЕНЫ ВПЕРВЫЕ
Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. N 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 Обозначения
В настоящих рекомендациях используют следующие обозначения:
Vn
-
конечномерное векторное пространство размерности n;
A||B
-
конкатенация строк, т.е. если , , A = (an1-1, an1-2, ..., a0), B = (bn2-1, bn2-2, ..., b0), то ;
-
покоординатное сложение по модулю 2;
0 ... 0h
-
дополнение десятичными нулями последовательности до тех пор, пока ее длина не станет равной 16;
CVK
-
ключ карты для вычисления CVP при эмиссии карт и проверке транзакций по магнитной полосе и в электронной коммерции. Ключ генерируется в HSM с помощью ФДСЧ и хранится в зашифрованном виде в базе данных (БД) хоста эмитента. Длина значения равна 32 байтам;
CVP
-
проверочный параметр платежной карты (Card Verification Parameter). Длина значения равна трем десятичным цифрам;
CVP2
-
проверочный параметр карты, который размещен на оборотной стороне карты и использован для выполнения платежных операций без предъявления карты (вычисляется аналогично вычислению CVP). Длина значения равна трем десятичным цифрам;
EK(M)
-
функция зашифрования;
iCVP
-
проверочный параметр карты, который размещен на чипе карты в составе track2 Equivalent Data и использован при проведении транзакций по чиповым картам в моде магнитной полосы (вычисляется аналогично вычислению CVP). Длина значения равна трем десятичным цифрам;
PAN
-
номер карты (Primary Account Number). Длина значения равна от 12 до 20 десятичных цифр;
PAN_11
-
последние 11 десятичных цифр PAN, исключая проверочный символ;
PAN_16
-
первые 16 десятичных цифр PAN. Если значение PAN менее 16, то дополняется нулями. Длина значения равна 16 десятичным цифрам;
PIN
-
персональный идентификационный номер (Personal identification number). Длина значения равна от 4 до 12 десятичных цифр;
PIN_4
-
четыре первые десятичные цифры PIN;
PVK
-
ключ карты для вычисления PVV при эмиссии карт и проверке транзакций по магнитной полосе. Ключ генерируется в HSM с помощью ФДСЧ и хранится в зашифрованном виде в БД хоста эмитента. Длина значения равна 32 байтам;
PVKI
-
индекс ключа проверки PIN (PIN verification key index). Цифра в интервале 0 ... 6;
PVV
-
проверочное значение PIN (PIN Verification Value). Длина значения равна четырем десятичным цифрам;
SVC
-
сервисный код (Service code). Длина значения равна трем десятичным цифрам;
YYMM
-
срок действия карты. Длина значения равна четырем десятичным цифрам, причем первые две цифры соответствуют году, а две последние - месяцу.
4 Описание алгоритмов
Возможные значения аргументов функций в представленных алгоритмах ограничены допустимостью их использования в качестве входных параметров преобразований.
4.1 Алгоритм формирования проверочного параметра карты [CVP (iCVP, CVP2)]
Для получения значения CVP (iCVP, CVP2) изначально вычисляются значения двух блоков:
- первый блок состоит из 16 шестнадцатеричных символов, который формируется по правилу
Block1 = PAN_16;
- второй блок также состоит из 16 шестнадцатеричных символов и формируется по правилу:
, если длина PAN менее или равна 16.
Если длина более 16, то:
Block2 = (не вошедшие в первый блок цифры ,
где SVC принимает значения 000 (для вычисления значения CVP2), 999 (для вычисления значения iCVP) или одно из значений, приведенных в таблице 1 (для вычисления значения CVP).
Таблица 1
Позиция
Значение
Описание
1
2
Карта с микропроцессором для трансграничных операций
2
0
Ограничений на способ авторизации транзакции нет, в частности операция может быть обслужена в офлайновом режиме
2
Операция по карте обязательно авторизуется эмитентом в режиме реального времени
3
0
Любая услуга и обязательная верификация держателя карты по PIN (No restrictions and PIN Required)
1
Любая услуга и любой метод верификации держателя карты (No restrictions)
Далее значение первого блока зашифровывается с помощью алгоритма шифрования по ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z с использованием ключа CVK:
Block1 = ECVK (Block1).
После чего покоординатно складывается по модулю 2 со значением второго блока:
Полученный результат снова зашифровывается с помощью алгоритма шифрования по ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z с использованием ключа CVK:
ECVK (Block2).
Полученная двоичная последовательность интерпретируется как натуральное число. Значение CVP (iCVP, CVP2) полагается равным остатку от деления данного числа на 1000. Соответствие между двоичной последовательностью и натуральным числом задается естественным образом.
4.2 Алгоритм формирования проверочного значения PIN (PVV)
Для вычисления PVV последовательность , состоящая из шестнадцатеричных символов, зашифровывается с помощью алгоритма шифрования ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z с использованием ключа PVK.
Полученная двоичная последовательность интерпретируется как натуральное число. Значение PVV полагается равным остатку от деления данного числа на 10 000. Соответствие между двоичной последовательностью и натуральным числом задается естественным образом.
Приложение А
(справочное)
КОНТРОЛЬНЫЕ ПРИМЕРЫ
Приводимые ниже значения параметров PIN, PAN, PVKI, срока действия карты, а также значения ключей CVK, PVK рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящих рекомендациях.
Все числовые значения приведены в десятичной или шестнадцатеричной записи. Нижний индекс в записи числа обозначает основание системы счисления. Представление числа из десятичной системы счисления в шестнадцатеричный вид происходит по следующему правилу: каждая цифра десятичного числа переводится в одну цифру шестнадцатеричного числа. Например, целое число 121345678910 представляется в шестнадцатеричном виде, как число 121345678916. Соответствие между десятичными и шестнадцатеричными цифрами задается естественным образом (таблица А.1).
Таблица А.1
Соответствие между числами в двоичной,
шестнадцатеричной и десятичной системе счисления
Число в двоичной системе счисления
Число в шестнадцатеричной системе счисления
Число в десятичной системе счисления
0000
0
0
0001
1
1
0010
2
2
0011
3
3
0100
4
4
0101
5
5
0110
6
6
0111
7
7
1000
8
8
1001
9
9
1010
a
10
1011
b
11
1100
c
12
1101
d
13
1110
e
14
1111
f
15
В данном приложении двоичные строки из V*, длина которых кратна 4, записаны в шестнадцатеричном виде, а символ конкатенации опускают. То есть строка будет представлена в виде ar-1 ar-2 ... a0, где . Соответствие между двоичными строками длины 4 и шестнадцатеричными строками длины 1 задается естественным образом (таблица А.1).
Преобразование, ставящее в соответствие двоичной строке длины 4r шестнадцатеричную строку длины r, и соответствующее обратное преобразование для простоты записи опускают.
А.1 Исходные данные
Для вычисления проверочного значения карты (CVP) и проверочного значения PIN (PVV) используют следующие данные:
PIN = 123456710
PAN = 12345678901234567110
Срок действия карты: YYMM = 170410
Сервисный код: SVC = 99910
PVKI = 510
Ключ карты для вычисления значения CVP:
CVK
=
01020304050607081112131415161718\\
2122232425262728313233343536373816
Ключ карты для вычисления значения PVV:
PVK
=
01020304050607081112131415161718\\
2122232425262728313233343536373816
Символ обозначает перенос числа на новую строку.
А.1.1 Вычисление значения CVP
Block1 = 123456789012345610 = 123456789012345616
Block2 = 711704999000000010 = 711704999000000016
В результате работы алгоритма вычисления проверочного значения карты (CVP) получится следующее значение шифрограммы 06128a1bd2a9f96616, что соответствует натуральному числу 437563965911464294.
Тогда значение CVP будет равно:
CVP = 29410
А.1.2 Вычисление значения PVV
В результате работы алгоритма вычисления проверочного значения PIN (PVV) получится следующее значение шифрограммы: deedf3b7ba3e5caf16, что соответствует натуральному числу 16063763416329641135.
Тогда значение PVV будет равно:
PVV = 113510
А.2 Исходные данные
Для вычисления проверочного значения карты (CVP) и проверочного значения PIN (PVV) используют следующие данные:
PIN = 123410
PAN = 678901234567310
Срок действия карты: YYMM = 191210
Сервисный код: SVC = 20110
PVKI = 110
Ключ карты для вычисления значения CVP:
CVK
=
000102030405060708090a0b0c0d0e0f\\
101112131415161718191a1b1c1d1e2116
Ключ карты для вычисления значения PVV:
PVK
=
3b8fd0a39151b2fba7ad72ca7fbda0ad\\
62ce02d74ae00e3aff24b2221b5f83ca16
А.2.1 Вычисление значения CVP
Block1 = 678901234567300010 = 678901234567300016
Block2 = 191220100000000010 = 191220100000000016
В результате работы алгоритма вычисления проверочного значения карты (CVP) получится следующее значение шифрограммы: 4c9020058f537db716, что соответствует натуральному числу 5516944751780396471.
Тогда значение CVP будет равно:
CVP = 47110
А.2.2 Вычисление значения PVV
В результате работы алгоритма вычисления проверочного значения PIN (PVV) получится следующее значение шифрограммы: 37c81b3e0eba2c5616, что соответствует натуральному числу 4019492620777172054.
Тогда значение PVV будет равно:
PVV = 205410
А.3 Исходные данные
Для вычисления проверочного значения карты (CVP) и проверочного значения PIN (PVV) используют следующие данные:
PIN = 01020304050610
PAN = 9876543211234110
Срок действия карты: YYMM = 200110
Сервисный код: SVC = 00010
PVKI = 010
Ключ карты для вычисления значения CVP:
CVK
=
000102030405060708090a0b0c0d0e0f\\
101112131415161718191a1b1c1d1e3316
Ключ карты для вычисления значения PVV:
PVK
=
000102030405060708090a0b0c0d0e0f\\
101112131415161718191a1b1c1d1e2416
А.3.1 Вычисление значения CVP
Block1 = 987654321123410010 = 987654321123410016
Block2 = 200100000000000010 = 200100000000000016
В результате работы алгоритма вычисления проверочного значения карты (CVP) получится следующее значение шифрограммы: 1843ed76f2da2f9516, что соответствует натуральному числу 1748502175486193557.
Тогда значение CVP будет равно:
CVP = 55710
А.3.2 Вычисление значения PVV
В результате работы алгоритма вычисления проверочного значения PIN (PVV) получится следующее значение шифрограммы: 7bf5bc5c796ce20c16, что соответствует натуральному числу 8932252541319438860.
Тогда значение PVV будет равно:
PVV = 886010