Главная // Актуальные документы // ПриказСПРАВКА
Источник публикации
М.: Стандартинформ, 2018
Примечание к документу
Документ
введен в действие с 1 июня 2018 года.
Название документа
"Р 1323565.1.011-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование алгоритмов согласования ключа и блочного шифрования при офлайновой проверке PIN"
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 N 2019-ст)
"Р 1323565.1.011-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование алгоритмов согласования ключа и блочного шифрования при офлайновой проверке PIN"
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 N 2019-ст)
Утверждены и введены в действие
агентства по техническому
регулированию и метрологии
от 19 декабря 2017 г. N 2019-ст
РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ИСПОЛЬЗОВАНИЕ АЛГОРИТМОВ СОГЛАСОВАНИЯ КЛЮЧА
И БЛОЧНОГО ШИФРОВАНИЯ ПРИ ОФЛАЙНОВОЙ ПРОВЕРКЕ PIN
Information technology. Cryptographic data security.
Using key matching and block encryption algorithms
in offline PIN verification
Р 1323565.1.011-2017
Дата введения
1 июня 2018 года
1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью "Системы практической безопасности" (ООО "СПБ") совместно с Открытым акционерным обществом "Информационные технологии и коммуникационные системы" (ОАО "ИнфоТеКС") и Обществом с ограниченной ответственностью "КРИПТО-ПРО" (ООО "КРИПТО-ПРО")
2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ
Приказом Федерального агентства по техническому регулированию и метрологии от 19 декабря 2017 г. N 2019-ст
4 ВВЕДЕНЫ ВПЕРВЫЕ
Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
В настоящих рекомендациях рассмотрен порядок использования алгоритма согласования ключей для аутентификации PIN в офлайновом режиме. Данная процедура выполняется в рамках верификации держателя карты.
Верификация держателя карты производится в целях идентификации лица, получившего карту от ее эмитента (клиента банка), с лицом, совершающим по карте операцию. Данная процедура обработки транзакции выполняется после динамической/комбинированной аутентификации карты терминалом, в процессе которой терминал проверяет сначала сертификат карты, считанный с нее, а затем генерирует случайное число, отправляет его карте для заверения, после чего проверяет полученную в ответ подпись этого случайного числа и служебную информацию. Передача карте в режиме офлайн зашифрованного PIN для верификации выполняется в том случае, если картой и терминалом согласован метод верификации держателя карты "Enciphered PIN verification performed by ICC".
Разработка настоящих рекомендаций вызвана необходимостью внедрения процедур для аутентификации PIN в платежных приложениях.
Описанные в настоящих рекомендациях алгоритмы рекомендуется применять при проверке PIN в платежной системе "МИР".
В настоящих рекомендациях использованы нормативные ссылки на следующие документы:
ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования
ГОСТ Р 34.10-2012 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
ГОСТ Р 34.13-2015 Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров
ГОСТ Р 34.11-2012 Информационная технология. Криптографическая защита информации. Функция хэширования
Р 50.1.113-2016 Информационная технология. Криптографическая защита информации. Криптографические алгоритмы, сопутствующие применению алгоритмов электронной цифровой подписи и функции хэширования
Примечание - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных документов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный документ, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого документа с учетом всех внесенных в данную версию изменений. Если заменен ссылочный документ, на который дана датированная ссылка, то рекомендуется использовать версию этого документа с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный документ, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
В настоящих рекомендациях использованы следующие обозначения:
Vn | - | конечномерное векторное пространство размерности n; |
A||B | - | конкатенация строк, т.е. если  ,  , A = ( an1-1, an1-2, ..., a0), B = ( bn2-1, bn2-2, ..., b0), то  ; |
CICC-PIN | - | сертификат открытого ключа карты для проверки PIN; |
CICC-ISS | - | сертификат эмитента карты; |
DK(M) | - | функция расшифрования; |
EK(M) | - | функция зашифрования; |
| | ИС МЕГАНОРМ: примечание. В официальном тексте документа, видимо, допущена опечатка: имеется в виду ГОСТ Р 34.11-2012, а не ГОСТ Р 34.11-2015. | |
|
H256 | - | функция хэширования в соответствии с ГОСТ Р 34.11-2015. Длина значения равна 32 байтам; |
IUN | - | случайное число карты (ICC Unpredictable Number), генерируемое картой в ответ на команду GET CHALLENGE в том случае, когда терминал выбирает метод верификации держателя карты Enciphered PIN Offline. Длина значения равна 8 байтам; |
KEKVKO | - | ключ шифрования, формируемый в соответствии с алгоритмом VKO_GOSTR3410_2012_256, описанным в Р 50.1.113-2016. Длина значения равна 32 байтам; |
kP | - | точка эллиптической кривой кратности k; |
m, q | - | параметры эллиптической кривой id-GostR3410-2001-CryptoPro-A-ParamSet; |
PIN | - | персональный идентификационный номер (Personal identification number) (4 - 12 десятичных цифр); |
PIN-block | - | данные для вычисления шифрограммы. Длина значения равна 8 байтам; |
UKM | - | фиксированный параметр, значение которого равно  . Длина значения равна 8 байтам; |
VKO_GOSTR3410_2012_256 | - | |
x | - | закрытый ключ терминала. Длина значения равна 32 байтам; |
xP | - | открытый ключ терминала. Длина значения равна 64 байтам; |
y | - | закрытый ключ карты. Длина значения равна 32 байтам; |
yP | - | открытый ключ карты. Длина значения равна 64 байтам. |
Возможные значения аргументов функций в представленных алгоритмах ограничены допустимостью их использования в качестве входных параметров преобразований.
4.1 Процедура зашифрования PIN (терминал)
Для зашифрования PIN на стороне терминала необходимо сформировать шифрограмму на основе ключа шифрования KEKVKO и значения PIN-block.
Формирование ключа шифрования
KEKVKO происходит в соответствии с алгоритмом согласования ключей VKO_GOSTR3410_2012_256, описанным в
Р 50.1.113-2016.
Для этого сертификат открытого ключа карты
CICC-PIN проверяется с использованием раннее считанного с карты сертификата эмитента карты
CICC-ISS. После чего формируется эфемерная ключевая пара терминала:
x - закрытый ключ терминала и
xP - открытый ключ терминала в соответствии с
ГОСТ Р 34.10-2012.
На основе полученных параметров вычисляется ключ шифрования:
K (x, y, UKM) = (m/q·UKM·x mod q) (yP),
KEKVKO (x, y, UKM) = H256 (K (x, y, UKM))
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 определены в
таблице 1.
Знак в 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 |
Для вычисления шифрограммы применяется алгоритм зашифрования согласно
ГОСТ 28147-89 в режиме СВС по
ГОСТ Р 34.13-2015 с вектором инициализации
IV = 0 (то же, что и двукратное применение алгоритма шифрования в соответствии с
ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z):
Полученная шифрограмма и открытый ключ терминала отправляются на карту.
4.2 Процедура расшифрования и верификации PIN (карта)
Перед началом процедуры расшифрования и верификации PIN проверяются значения всех необходимых счетчиков, если хоть одно из них достигло своего предельного значения, то обработка прекращается.
Формирование ключа шифрования
KEKVKO происходит в соответствии с алгоритмом согласования ключей VKO_GOSTR3410_2012_256, описанным в
Р 50.1.113-2016:
K (x, y, UKM) = (m/q·UKM·y mod q) (xP),
KEKVKO (x, y, UKM) = H256 (K (x, y, UKM))
С помощью полученного ключа
KEKVKO расшифровывается шифрограмма по алгоритму расшифрования согласно
ГОСТ 28147-89 в режиме СВС по
ГОСТ Р 34.13-2015 с вектором инициализации
IV = 0 (то же, что и двукратное применение алгоритма расшифрования в соответствии с
ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z):
После расшифрования и проверки формата PIN-block из него извлекается значение PIN, которое сравнивается со значением, хранимым на карте. Если проверка значения IUN, формата PIN-block или значения PIN выдала неверный результат, то обработка прекращается и происходит возврат ошибки терминалу.
(справочное)
Приводимые ниже значения параметров PIN, IUN, а также значения ключей терминала x, xP и значения ключей карты y, yP рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящих рекомендациях.
Все числовые значения приведены в десятичной или шестнадцатеричной записи. Нижний индекс в записи числа обозначает основание системы счисления.
В данном приложении двоичные строки из
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 Исходные данные
Для вычисления секретного ключа и последующего шифрования PIN-block используются следующие данные:
PIN = 123456710
IUN = 1d80603c8544c72716
Закрытый ключ терминала:
x | = | d92d431d20375cd2a537cd648e14b60b\\ 4c21a15a579861b7be419b16ed86187416 |
Открытый ключ терминала:
xP | = | 030654acd14ad85d6b246ec4a195b334\\ ecfef93c1f22b67cf81ff7d35e8dd618\\ e538c3b327e93b136697ed5c86173b44\\ 341c5f5b9792e95362170a993d84a47216 |
Закрытый ключ карты:
y | = | 246954f9881d2918f373c01b6d8c9cc0\\ 01563d191078316e8a3ae1174182952316 |
Открытый ключ карты:
yP | = | 4fc5f57ab09aa6f0f7433edefbb4bcbe\\ 4368d64fcf5ec69452982cfaef61fdc6\\ ae37764bc9f910905995e92389537ff3\\ b632938a4a6b8e5d1bee20dee371e25816 |
Символ

обозначает перенос числа на новую строку.
А.1.1 Ключ шифрования
Используя исходные данные, формируется ключ шифрования KEKVKO:
KEKVKO | = | ae9fcf1983ffa8160ab8bff66c78c890\\ 385496c69db2c035fd321cfec3bcf36d16 |
А.1.2 Зашифрование PIN
PIN-block = 271234567fffffff16
В результате применения алгоритма зашифрования PIN получится следующее значение шифрограммы:
А.1.3 Расшифрование PIN
С использованием приведенных значений KEKVKO и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.
А.2 Исходные данные
Для вычисления секретного ключа и последующего шифрования PIN-block используются следующие данные:
PIN = 123448710
IUN = 2d82603c8544c72716
Закрытый ключ терминала:
x | = | 05050505050505050505050505050505\\ 0505050505050505050505050505050516 |
Открытый ключ терминала:
xP | = | 2221df1866280f2cfd78d2d5f0f4719a\\ caa187bf4fab1d8198ab53c9c800fbf2\\ 4db2a57d9c26c61a886cfa10041566ad\\ 01080083ed2456e5355d7467cbec327d16 |
Закрытый ключ карты:
y | = | d92d431d20375cd2a537cd648e14b60b\\ 4c21a15a579861b7be419b16ed86187416 |
Открытый ключ карты:
yP | = | 030654acd14ad85d6b246ec4a195b334\\ ecfef93c1f22b67cf81ff7d35e8dd618\\ e538c3b327e93b136697ed5c86173b44\\ 341c5f5b9792e95362170a993d84a47216 |
А.2.1 Ключ шифрования
Используя исходные данные, формируется ключ шифрования KEKVKO:
KEKVKO | = | 165e107572d0cb10cd2c43558713e181\\ 87a75b3812b020f00b3d05166a201e1e16 |
А.2.2 Зашифрование PIN
PIN-block = 271234487fffffff16
В результате применения алгоритма зашифрования PIN получится следующее значение шифрограммы:
А.2.3 Расшифрование PIN
С использованием приведенных значений KEKVKO и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.
А.3 Исходные данные
Для вычисления секретного ключа и последующего шифрования PIN-block используются следующие данные:
PIN = 123434710
IUN = 3d82603c8544c72716
Закрытый ключ терминала:
x | = | 246954f9881d2918f373c01b6d8c9cc0\\ 01563d191078316e8a3ae1174182952316 |
Открытый ключ терминала:
xP | = | 4fc5f57ab09aa6f0f7433edfbb4bcbe\\ 4368d64fcf5ec69452982cfaef61fdc6\\ ae37764bc9f910905995e92389537ff3\\ b632938a4a6b8e5d1bee20dee371e25816 |
Закрытый ключ карты:
y | = | 05050505050505050505050505050505\\ 0505050505050505050505050505050516 |
Открытый ключ карты:
yP | = | 2221df1866280f2cfd78d2d5f0f4719a\\ caa187bf4fab1d8198ab53c9c800fbf2\\ 4db2a57d9c26c61a886cfa10041566ad\\ 01080083ed2456e5355d7467cbec327d16 |
А.3.1 Ключ шифрования
Используя исходные данные, формируется ключ шифрования KEKVKO:
KEKVKO | = | b6da0eeb6cbc0ca99b20cbecadcb6e75\\ b77ee8e318e1eba28ada53c8d708636316 |
А.3.2 Зашифрование PIN
PIN-block = 271234567fffffff16
В результате применения алгоритма зашифрования PIN получится следующее значение шифрограммы:
А.3.3 Расшифрование PIN
С использованием приведенных значений KEKVKO и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.