RU2756576C1 - Method for tokenisation of the bank card number and method for detokenisation of the bank card number - Google Patents

Method for tokenisation of the bank card number and method for detokenisation of the bank card number Download PDF

Info

Publication number
RU2756576C1
RU2756576C1 RU2020131500A RU2020131500A RU2756576C1 RU 2756576 C1 RU2756576 C1 RU 2756576C1 RU 2020131500 A RU2020131500 A RU 2020131500A RU 2020131500 A RU2020131500 A RU 2020131500A RU 2756576 C1 RU2756576 C1 RU 2756576C1
Authority
RU
Russia
Prior art keywords
value
bin
mask
mpan
shift
Prior art date
Application number
RU2020131500A
Other languages
Russian (ru)
Inventor
Ян Юрьевич Коршунов
Дмитрий Юрьевич Соколов
Юрий Викторович Сафронов
Александр Юрьевич Никитин
Original Assignee
Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) filed Critical Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority to RU2020131500A priority Critical patent/RU2756576C1/en
Priority to PCT/RU2020/000709 priority patent/WO2022066037A1/en
Priority to EA202092868A priority patent/EA202092868A1/en
Application granted granted Critical
Publication of RU2756576C1 publication Critical patent/RU2756576C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists

Abstract

FIELD: computing technology.
SUBSTANCE: computer-implemented method for tokenisation of the PAN (Primary Account Number) bank card number, wherein PAN is received and divided into the components thereof: bin (BIN) consisting of the first six characters, mask (MASK) consisting of the last four characters, and the middle part (mPAN); the offset value in the substitution table is determined wherein: the first offset value is calculated by the substitution table using cryptographic transformation of a concatenated string of the BIN and MASK values; the second offset value is calculated by the substitution table using mPAN cryptographic transformation; the sum offset value is calculated by adding the first and second offset values; the index in the substitution table is calculated by normalising the sum offset value by to the substitution table, wherein normalisation is performed according to the dimension of the table as the remainder from dividing the offset by the number of rows of the table, resulting in the sought index in the substitution table; using the obtained index, the tokenised part of the zPAN number is selected from the substitution table to replace mPAN; the tokenised DPAN card number is formed by replacing mPAN with zPAN, using BIN and MASK of the obtained PAN number.
EFFECT: increase in the efficiency of protection of bank card numbers.
7 cl, 3 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[0001] Заявленное техническое решение, в общем, относится к области кодирования и декодирования данных, а в частности к автоматизированным способам и системам токенизации номера банковских карт и детокенизации номера банковских карт.[0001] The claimed technical solution, in general, relates to the field of data encoding and decoding, and in particular to automated methods and systems for tokenization of bank card numbers and detokenization of bank card numbers.

УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY

[0002] Одной из самых важных задач в информационной безопасности является защита конфиденциальных данных, которая является комплексной и довольно сложной. Организация эффективной защиты конфиденциальных данных в банковских системах, платежных приложениях, базах данных, устройств хранения и групп серверов сама по себе является непростой и еще больше усложняется при использовании разнородных систем.[0002] One of the most important tasks in information security is the protection of confidential data, which is complex and quite complex. Securing confidential data effectively in banking systems, payment applications, databases, storage devices, and server groups is challenging in itself and becomes even more challenging when disparate systems are used.

[0003] Как правило, в случае с конфиденциальными данными рассматриваются разнообразные решения с использованием шифрования, но в последние годы заметен рост интереса к другой технологии - токенизации.[0003] As a rule, in the case of confidential data, various solutions using encryption are considered, but in recent years, there has been an increase in interest in another technology - tokenization.

[0004] Должным образом реализованное шифрование является одним из наиболее эффективных средств обеспечения безопасности конфиденциальных данных. Оно позволяет обеспечить доступ к данным только авторизованным пользователям и защищает данные, как при хранении, так и при передаче. Но шифрование не единственный вариант защиты - есть и альтернативные методы. Причем иногда самым правильным решением будет не попытка защитить конфиденциальные данные шифрованием, а вообще отказаться от их передачи.[0004] Properly implemented encryption is one of the most effective means of securing confidential data. It allows only authorized users to access the data and protects the data, both in storage and in transit. But encryption is not the only protection option - there are alternative methods. Moreover, sometimes the most correct solution will not be to try to protect confidential data with encryption, but to refuse to transfer it altogether.

[0005] Токенизация как раз является технологией, которая предоставляет эту возможность - ее принцип заключается в подмене реальных конфиденциальных данных некими значениями - токенами. Токенизация в чем-то схожа с шифрованием - обе технологии занимаются маскированием реальных данных, но подход к этому процессу в корне отличается. В случае шифрования процесс сокрытия данных обратим при наличии правильного ключа. Любой человек, получив ключ шифрования, сможет восстановить исходные данные.[0005] Tokenization is precisely the technology that provides this opportunity - its principle is to replace real confidential data with some values - tokens. Tokenization is somewhat similar to encryption - both technologies are involved in masking real data, but the approach to this process is fundamentally different. In the case of encryption, the process of hiding data is reversible if the correct key is present. Anyone, having received the encryption key, will be able to recover the original data.

[0006] В случае с токенизацией, процесс не является обратимым, ведь вместо данных при токенизации используется токен, не несущий в себе никакой конфиденциальной информации или результатом ее криптопреобразования, и лишь логически связанный с реальными данными, которые хранятся в хорошо защищенной базе данных. При этом токен может иметь тот же формат (размер и структура), что и оригинальные данные, что позволяет минимизировать необходимость внесения изменений в работающие с ним приложения. Но при этом похищать токен бессмысленно, так как он не поможет получить никакие реальные конфиденциальные данные без доступа к системе токенизации.[0006] In the case of tokenization, the process is not reversible, because instead of data during tokenization, a token is used that does not carry any confidential information or the result of its crypto transformation, and is only logically related to real data that is stored in a well-protected database. In this case, the token can have the same format (size and structure) as the original data, which minimizes the need to make changes to the applications working with it. But at the same time, it is pointless to steal a token, since it will not help to obtain any real confidential data without access to the tokenization system.

[0007] Главное преимущество токенизации в том, что токены могут полноценно использоваться внутри среды их применения, но совершенно бесполезны вне ее. Токенизация идеально подходит для защиты конфиденциальных данных, таких как номера банковских карт, номера социального страхования, а также любых других данных, которые злоумышленники регулярно похищают с целью использования или продажи на "черном рынке". Если злоумышленникам не удастся взломать сам сервер токенизации, чтобы получить связанные с токенами реальные данные, то похищенные токены не дадут им ровным счетом никаких возможностей их использовать.[0007] The main advantage of tokenization is that tokens can be fully used within the environment of their use, but are completely useless outside of it. Tokenization is ideal for protecting sensitive data such as bank card numbers, social security numbers, and any other data that attackers regularly steal for use or sale on the black market. If the attackers fail to hack the tokenization server itself in order to obtain real data associated with the tokens, then the stolen tokens will give them absolutely no opportunity to use them.

[0008] Повышение интереса к токенизации связано, прежде всего, с тем, что она позволяет обеспечить защиту данных при низкой нагрузке на системы организации. Добавление шифрования в системы - особенно в уже действующие - значительно увеличивает нагрузку на них. Внесение изменений в приложения для внедрения шифрования снижает производительность и увеличивает требования к разработчикам и администраторам систем. Кроме того, в случае использования разнородных систем, возникает необходимость шифрования, расшифрования и повторного шифрования данных в различных местах, что создает дополнительные уязвимости, которые могут быть использованы злоумышленниками. Причем, чем больше ключей используется в системе, тем больше возможностей для ее атаки. Работа с ключами особенно опасна, учитывая распространенность вредоносного программного обеспечения (далее - ПО) для перехвата данных непосредственно в оперативной памяти, которое позволяет получить доступ к ключам, даже не имея административных привилегий на зараженной машине.[0008] The increasing interest in tokenization is primarily due to the fact that it allows you to provide data protection with a low load on the organization's systems. Adding encryption to systems - especially existing ones - significantly increases the load on them. Changes to applications to implement encryption reduce performance and increase the demands on developers and system administrators. In addition, in the case of using heterogeneous systems, it becomes necessary to encrypt, decrypt and re-encrypt data in different places, which creates additional vulnerabilities that can be exploited by attackers. Moreover, the more keys are used in the system, the more opportunities for its attack. Working with keys is especially dangerous, given the prevalence of malicious software (hereinafter referred to as software) for intercepting data directly in RAM, which allows access to keys without even having administrative privileges on the infected machine.

[0009] Помимо минимизации требований к внесению изменений в используемые приложения, токенизация снижает риски для конфиденциальных данных. При правильной реализации приложения смогут использовать токены во всей системе и обращаться к защищенным конфиденциальным данным только в случае крайней необходимости.[0009] In addition to minimizing the requirements for making changes to the applications used, tokenization reduces the risks for sensitive data. If implemented correctly, applications will be able to use tokens throughout the system and access protected confidential data only when absolutely necessary.

Приложения могут хранить, использовать и совершать транзакции, оперируя только токеном и не подвергая реальные данные риску.Applications can store, use and make transactions using only a token and without putting real data at risk.

[0010] Например, одним из самых распространенных примеров использования токенизации является ее применение для платежей с использованием платежных карт. Использование токена вместо значения номера платежной карты позволяет провести отслеживание транзакции и ее выполнение без риска компрометации реальных данных карты. Доступ к реальному номеру понадобится только в контуре процессинга и при взаимодействии с платежными системами и другими участниками платежных систем. Ну а в том случае, если процессинговый центр также использует токенизацию, то возможно проведение внутренней транзакции вообще без использования реальных данных.[0010] For example, one of the most common use cases for tokenization is for payments using payment cards. Using a token instead of the value of the payment card number allows tracking the transaction and its execution without the risk of compromising the real card data. Access to a real number will be required only in the processing circuit and when interacting with payment systems and other participants in payment systems. Well, in the event that the processing center also uses tokenization, then it is possible to conduct an internal transaction without using real data at all.

[0011] Из уровня техники известен патент US 10262128 В2 "Tokenized data security", патентообладатель: Sabre GLBL Inc, опубликовано: 06.02.2014. В данном решении описывается способ токенизации номера учетной записи пользователя для защиты от кибератак с использованием карты токенов.[0011] From the prior art patent US 10262128 B2 "Tokenized data security" is known, patentee: Saber GLBL Inc, published: 06.02.2014. This solution describes a method for tokenizing a user's account number to protect against cyber attacks using a token card.

[0012] Недостатком известного решения в данной области техники является недостаточная защищенность данных.[0012] A disadvantage of the known solution in the art is the lack of data security.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION

[0013] В заявленном техническом решении предлагается новый подход в решении технической проблемы, заключающейся в более защищенном методе хранения данных банковских карт.[0013] The claimed technical solution proposes a new approach to solving a technical problem, which consists in a more secure method of storing bank card data.

[0014] Техническим результатом, достигающимся при решении данной проблемы, является повышение эффективности защиты номеров банковских карт.[0014] The technical result achieved by solving this problem is to improve the efficiency of the protection of bank card numbers.

[0015] Указанный технический результат достигается благодаря осуществлению компьютерно-реализуемого способа токенизации номера банковской карты (PAN), выполняемый с помощью, по меньшей мере, одного процессора и содержащий этапы, на которых:[0015] The specified technical result is achieved due to the implementation of a computer-implemented method of tokenization of a bank card number (PAN), performed using at least one processor and containing the steps in which:

- получают PAN и осуществляют его разбиение на составляющие части: бин (BIN), состоящий из первых шести символов, маска (MASK), состоящая из четырех последних символов, и средняя часть (mPAN);- get a PAN and carry out its division into its constituent parts: bin (BIN), consisting of the first six characters, a mask (MASK), consisting of the last four characters, and the middle part (mPAN);

- определяют значение сдвига в таблице замен, при котором:- determine the value of the shift in the table of substitutions, at which:

• вычисляют первое значение сдвига по таблице замен с помощью криптопреобразования конкатенированной строки значений BIN и MASK;• calculating the first shift value from the substitution table using crypto-transformation of the concatenated string of BIN and MASK values;

• вычисляют второе значение сдвига по таблице замен с помощью криптопреобразования mPAN;• calculate the second shift value from the substitution table using the mPAN crypto-transformation;

• вычисляют суммарное значение сдвига путем сложения первого и второго значений сдвига;• calculate the total shift value by adding the first and second shift values;

- вычисляют индекс в таблице замен, с помощью нормализации суммарного значения сдвига по таблице замен, причем нормализация выполняется по размерности таблицы как остаток от деления смещения на количество строк таблицы, получая при этом искомый индекс в таблице замен;- calculating the index in the table of substitutions, by normalizing the total value of the shift in the table of substitutions, and the normalization is performed by the dimension of the table as the remainder of dividing the offset by the number of rows in the table, thus obtaining the desired index in the table of substitutions;

- с помощью полученного индекса выбирают из таблицы замен токенизированную часть номера zPAN для замены mPAN;- using the obtained index, the tokenized part of the zPAN number is selected from the substitution table to replace the mPAN;

- формируют токенизированный номер карты DPAN с помощью замены mPAN на zPAN, используя BIN и MASK полученного номера PAN.- form a tokenized DPAN card number by replacing mPAN with zPAN using the BIN and MASK of the received PAN number.

[0016] В одном из частных вариантов реализации способа алгоритм криптопреобразования представляет собой алгоритм FF3.[0016] In one of the particular embodiments of the method, the crypto-transformation algorithm is the FF3 algorithm.

[0017] Заявленное техническое решение осуществляется также за счет выполнения компьютерно-реализуемого способа детокенизации номера банковской карты (DPAN), полученного с помощью вышеуказанного способа, выполняемого с помощью, по меньшей мере, одного процессора и содержащего этапы, на которых:[0017] The claimed technical solution is also carried out by performing a computer-implemented method for detokenizing a bank card number (DPAN) obtained using the above method, carried out using at least one processor and containing the steps at which:

- получают DPAN и осуществляют его разбиение на составляющие части: бин (BIN) состоящий из первых шести символов, маска (MASK), состоящая из четырех последних символов, и средняя часть (zPAN);- receive DPAN and carry out its division into its constituent parts: bin (BIN) consisting of the first six characters, mask (MASK), consisting of the last four characters, and the middle part (zPAN);

- определяют значение сдвига в таблице замен, при котором:- determine the value of the shift in the table of substitutions, at which:

• вычисляют первое значение сдвига по таблице замен с помощью криптопреобразования строки значений BIN и MASK;• calculating the first shift value from the substitution table using crypto-transformation of the string of BIN and MASK values;

• вычисляют модуль первого значения сдвига по таблице замен путем разделения первого значения сдвига на размер таблицы сдвига;• calculating the modulus of the first offset value from the substitution table by dividing the first offset value by the size of the offset table;

• вычисляют индекс в таблице замен, путем поиска строки по полученному значению zPAN;• calculate the index in the substitution table by searching for a row by the obtained zPAN value;

• вычисляют второе значения смещения в таблице замен на основе рассчитанного индекса, модуля первого значения и размерности таблицы;• calculate the second offset values in the replacement table based on the calculated index, the modulus of the first value and the dimension of the table;

- вычисляют mPAN с помощью обратного криптопреобразования от полученного второго значения смещения с использованием ключа шифрования, с помощью которого выполнялось преобразование PAN в DPAN;- calculating mPAN using the inverse crypto transformation from the obtained second offset value using the encryption key with which the PAN to DPAN transformation was performed;

- формируют значение PAN на основании полученного mPAN, а также значений BIN и MASK.- form the PAN value based on the received mPAN, as well as the BIN and MASK values.

[0018] В одно из частных вариантов реализации способа алгоритм криптопреобразования представляет собой алгоритм FF3.[0018] In one of the particular embodiments of the method, the crypto-transformation algorithm is the FF3 algorithm.

[0019] В другом частном варианте реализации способа если второе значение смещения отрицательное, то итеративно повторяют шаг его вычисления, инкрементировав модуль первого значения смещения на единицу.[0019] In another particular embodiment of the method, if the second offset value is negative, then the step of its calculation is iteratively repeated by incrementing the modulus of the first offset value by one.

[0020] Заявленное техническое решение также осуществляется с помощью компьютерной системы, которая содержит процессор и память, в которой хранятся машиночитаемые инструкции, выполняемые процессором для осуществления вышеуказанных способов.[0020] The claimed technical solution is also implemented using a computer system that contains a processor and a memory that stores machine-readable instructions executed by the processor to implement the above methods.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS

[0021] Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых чертежей.[0021] The features and advantages of the present technical solution will become apparent from the following detailed description and accompanying drawings.

[0022] Фиг. 1 иллюстрирует блок-схему способа токенизации номера банковской карты (PAN).[0022] FIG. 1 illustrates a flow diagram of a method for tokenizing a bank card number (PAN).

[0023] Фиг. 2 иллюстрирует блок-схему способа детокенизации номера банковской карты (DPAN).[0023] FIG. 2 illustrates a flow diagram of a method for detokenizing a bank card number (DPAN).

[0024] Фиг. 3 иллюстрирует пример общего вида вычислительной системы, которая обеспечивает реализацию заявленного решения.[0024] FIG. 3 illustrates an example of a general view of a computing system that provides an implementation of the claimed solution.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯCARRYING OUT THE INVENTION

[0025] Ниже будут описаны понятия и термины, необходимые для понимания данного технического решения.[0025] The following will describe the concepts and terms necessary to understand this technical solution.

[0026] Токенизация - процесс замены конфиденциального элемента данных на неконфиденциальный эквивалент, называемый токеном, который не имеет самостоятельного смысла/значения для внешнего или внутреннего использования.[0026] Tokenization is the process of replacing a confidential data item with a non-confidential equivalent, called a token, which has no independent meaning / value for external or internal use.

[0027] Токен- ссылка (то есть идентификатор), которая сопоставляется с конфиденциальными данными через систему токенизации.[0027] A token is a link (ie, an identifier) that is matched against sensitive data through a tokenization system.

[0028] Детокенизация - обратный процесс получения значения PAN-кода по целевому токену.[0028] Detoxification is the inverse process of obtaining a PAN code value from a target token.

[0029] PCI DSS (Payment Card Industry Digital Security Standard) - стандарт безопасности платежных карт.[0029] PCI DSS (Payment Card Industry Digital Security Standard) is a payment card security standard.

[0030] PAN (Primary Account Number) - номер платежной карты.[0030] PAN (Primary Account Number) - payment card number.

[0031] DP AN (Digitized PAN) - токенизированный номер платежной карты.[0031] DP AN (Digitized PAN) - tokenized payment card number.

[0032] BIN (Bank Identification Number) - идентификационный номер банка выпустившего карту.[0032] BIN (Bank Identification Number) - identification number of the bank that issued the card.

[0033] MASK (Маска) - последние 4 символа карты, свободно использующиеся для печати на чеках и, совместно с BIN, идентификации карты в пределах одного клиента.[0033] MASK - the last 4 characters of the card, freely used for printing on checks and, together with the BIN, card identification within one client.

[0034] ЦОД - центр обработки данных.[0034] DPC - data center.

[0035] PCI SSC (Payment Card Industry Security Standards Consul) - совет no стандартам безопасности платежных карт.[0035] PCI SSC (Payment Card Industry Security Standards Consul) - Advice on payment card security standards.

[0036] HSM (Hardware Security Module) - аппаратное решение для генерации ключей шифрования и выполнения криптопреобразований.[0036] HSM (Hardware Security Module) is a hardware solution for generating encryption keys and performing crypto transformations.

[0037] Алгоритм Луна (Luna Algorithm) - алгоритм определения валидности номера карты на основе десятичной целостности.[0037] The Luna Algorithm is an algorithm for determining the validity of a card number based on decimal integrity.

[0038] Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.[0038] This technical solution can be implemented on a computer, in the form of an automated information system (AIS) or a computer-readable medium containing instructions for performing the above method.

[0039] Техническое решение может быть реализовано в виде распределенной компьютерной системы.[0039] The technical solution can be implemented as a distributed computer system.

[0040] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).[0040] In this solution, the system means a computer system, a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, well-defined sequence of computing operations (actions, instructions).

[0041] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[0041] By a command processor is meant an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).

[0042] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных, например таких устройств, как оперативно запоминающие устройства (ОЗУ) и/или постоянные запоминающие устройства (ПЗУ). В качестве ПЗУ могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, твердотельные накопители (SSD), оптические носители данных (CD, DVD, BD, MD и т.п.) и др.[0042] A command processor reads and executes machine instructions (programs) from one or more storage devices such as random-access memory (RAM) and / or read only memory (ROM) devices. The ROM can be, but is not limited to, hard disks (HDD), flash memory, solid state drives (SSD), optical data carriers (CD, DVD, BD, MD, etc.), etc.

[0043] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[0043] A program is a sequence of instructions for execution by a computer control device or command processing device.

[0044] Посчитаем объем хранимых данных для всех карт, в теории существующих в индустрии: номера карт бывают от 13 до 19 символов и содержат практически все комбинации. Не будем учитывать алгоритм Луна и получим цифру около 10 000 Петабайт при условии 1 байт на номер карты:[0044] Let's calculate the amount of stored data for all cards, in theory existing in the industry: card numbers are from 13 to 19 characters and contain almost all combinations. We will not take into account the Luna algorithm and get a figure of about 10,000 Petabytes, provided 1 byte per card number:

Figure 00000001
Figure 00000001

[0045] Получаем недостижимый объем данных и хранить такое количество информации более чем избыточно. Даже если сократить неиспользуемые BIN, объем хранения не станет приемлемым.[0045] We get an unattainable amount of data and store such an amount of information is more than redundant. Even if you cut down on unused BINs, the storage capacity will not be acceptable.

[0046] Выходом может стать хранение не всех элементов карты, а только заменяемых фрагментов (кроме первых 6 и последних 4 символов). В этом случае формула будет другой:[0046] The way out is to store not all map elements, but only replaceable fragments (except for the first 6 and last 4 characters). In this case, the formula will be different:

Figure 00000002
Figure 00000002

[0047] Объем 1 Терабайт нужно еще умножить на длину хранимой строки в базе, т.е. длины самого PAN и необходимого индекса, примерно 30 байт. Итого получается 30 Тб.[0047] The volume of 1 Terabyte must also be multiplied by the length of the stored string in the database, i.e. the length of the PAN itself and the required index, approximately 30 bytes. The total is 30 TB.

[0048] Данный объем данных тоже является большим, но с таким объемом можно работать и провести его оптимизацию.[0048] This amount of data is also large, but with such a volume it is possible to work with and optimize it.

[0049] При замене одинаковых заменяемых фрагментов разных карт результаты замененных фрагментов также будут одинаковыми, что приведет к уязвимости реализации и постепенной накапливающейся компрометации карточных данных. И единичные случаи известности связки PAN-DPAN будут автоматически компрометировать массово тысячи других номеров карт.[0049] When replacing the same replaced fragments of different cards, the results of the replaced fragments will also be the same, which will lead to implementation vulnerabilities and a gradual accumulating compromise of card data. And isolated cases of notoriety of the PAN-DPAN bundle will automatically compromise thousands of other card numbers en masse.

[0050] Рассмотрим структуру номера карты. Номер карты (PAN) состоит из BIN (первые 6 символов), MASK (последние 4 символа) и оставшейся части, подлежащей токенизации. Назовем исходное значение этой части mPAN, токенизированное - zPAN.[0050] Consider the structure of the card number. The card number (PAN) consists of BIN (first 6 characters), MASK (last 4 characters) and the rest to be tokenized. Let's call the initial value of this part mPAN, the tokenized one - zPAN.

[0051] Для того чтобы для разных комбинаций BIN ⋅ MASK (здесь и далее символ обозначает конкатенацию строк, а символ "+" арифметическую сумму) при одинаковых mPAN были разные zPAN, необходимо выборку из таблицы замены делать по некому алгоритму сдвига, гарантирующему отсутствие коллизий.[0051] In order to have different zPANs for different combinations of BIN ⋅ MASK (hereinafter, the symbol denotes string concatenation, and the symbol "+" the arithmetic sum) with the same mPAN, it is necessary to make a selection from the replacement table using some shift algorithm that guarantees the absence of collisions ...

[0052] Рассмотрим таблицу замен на примере популярной длины карты = 16. Для выполнения вышеописанных требований к реализации по выбранной стратегии [3], таблица должна обеспечить замену 106 фрагментов PAN. Так как в заменяемых символах необходимо использовать шестнадцатеричные символы, но исключить комбинации, не содержащие шестнадцатеричные цифры (A-F), то длина таблицы замен будет 166 - 106, то есть 15,8 млн значений токенов для 10 млн исходных данных.[0052] Consider the table of substitutions using the example of the popular card length = 16. To fulfill the above-described requirements for the implementation of the chosen strategy [3], the table must provide the replacement of 10 6 PAN fragments. Since it is necessary to use hexadecimal characters in the substituted characters, but exclude combinations that do not contain hexadecimal digits (AF), the length of the substitution table will be 16 6 - 10 6 , that is, 15.8 million token values for 10 million initial data.

[0053] Задача состоит в определении индекса в таблице замены. Простой индекс, соответствующий порядку следования mPAN, позволит делать подбор номеров карт и токенов с таким же mPAN при других значениях BIN ⋅ MASK, что недопустимо.[0053] The task is to define an index on the replacement table. A simple index corresponding to the order of mPAN will allow selection of numbers of cards and tokens with the same mPAN for other BIN ⋅ MASK values, which is unacceptable.

[0054] Индекс со статическим сдвигом также позволит делать подбор при достаточной выборке соответствий PAN и DPAN (или mPAN и zPAN).[0054] A static offset index will also allow for fitting with a sufficient sample of PAN and DPAN (or mPAN and zPAN) matches.

[0055] Следовательно, индекс должен быть динамический, то есть не имеющий понятной зависимости от последовательности BIN ⋅ MASK, но не создающий коллизии, то есть исключающий повторный выбор zPAN при разных mPAN, иначе говоря, не должен быть основан на случайной величине.[0055] Therefore, the index should be dynamic, that is, it does not have an understandable dependence on the BIN ⋅ MASK sequence, but does not create collisions, that is, it excludes repeated selection of zPANs for different mPANs, in other words, it should not be based on a random value.

[0056] Для обеспечения уникальности и предотвращения коллизии необходимо осуществить ряд действий.[0056] To ensure uniqueness and avoid collisions, a number of steps need to be taken.

[0057] Сделать составной динамический индекс. Первая часть будет формироваться из неизменного значения BIN ⋅ MASK для всего диапазона mPAN. Вторая часть формируется из самой заменяемой части mPAN.[0057] Make a composite dynamic index. The first part will be formed from the unchanged BIN ⋅ MASK value for the entire mPAN range. The second part is formed from the most replaceable part of the mPAN.

[0058] Формирование собственно индекса или сдвига (назовем его SHIFT) возможно непосредственно из этих компонентов по формуле (BIN ⋅ MASK)+mPAN. Полученное число SHIFT, нормированное по длине таблицы замен SHIFT=((BIN ⋅ MASK)+mPAN) % length({zPAN}) уже обеспечит уникальность, но пока что имеет понятную зависимость, т.е. при увеличении MASK на 1, SHIFT также увеличится на 1, что может привести к подбору связок PAN и DPAN.[0058] The formation of the actual index or shift (let's call it SHIFT) is possible directly from these components by the formula (BIN ⋅ MASK) + mPAN. The resulting SHIFT number normalized to the length of the substitution table SHIFT = ((BIN ⋅ MASK) + mPAN)% length ({zPAN}) will already provide uniqueness, but so far it has a clear dependency, i.e. when the MASK is increased by 1, SHIFT will also increase by 1, which can lead to the selection of the PAN and DPAN bundles.

[0059] Непонятной зависимости можно достичь криптопреобразованием с сохранением формата исходных данных (Format Preserving Encryption) [4], когда на выходе функции получается другой псевдослучайных элемент из конечного массива исходных данных.[0059] An incomprehensible dependence can be achieved by crypto-transformation with the preservation of the format of the original data (Format Preserving Encryption) [4], when the output of the function is another pseudo-random element from the final array of the original data.

[0060] Используем реализацию алгоритма FF3[5] для выбора псевдослучайного индекса из набора индексов с использованием секретной величины и начального значения индекса. Использование в качестве базы сдвига FF3(BIN ⋅ MASK) позволит делать как прямое, так и обратное преобразование PAN-DPAN и DPAN-PAN, так как один из компонентов сдвига известен всегда (BIN ⋅ MASK), он неизменен в PAN и DP AN.[0060] We use the implementation of the FF3 algorithm [5] to select a pseudo-random index from a set of indices using a secret value and an initial index value. The use of FF3 (BIN ⋅ MASK) shift as a base will allow doing both direct and inverse transformation of PAN-DPAN and DPAN-PAN, since one of the shift components is always known (BIN ⋅ MASK), it is unchanged in PAN and DP AN.

[0061] Как показано на Фиг. 1 заявленный способ токенизации номера банковской карты (PAN) (100) состоит из нескольких этапов, выполняемых по меньшей мере одним процессором.[0061] As shown in FIG. 1, the claimed method for tokenizing a bank card number (PAN) (100) consists of several steps performed by at least one processor.

[0062] На этапе (101) получают PAN и осуществляют его разбиение на составляющие части: бин (BIN), состоящий из первых шести символов, маска (MASK), состоящая из четырех последних символов, и средняя часть (mPAN).[0062] In step (101), a PAN is obtained and divided into its constituent parts: a bin (BIN) consisting of the first six characters, a mask (MASK) consisting of the last four characters, and a middle part (mPAN).

[0063] Далее на этапе (102) определяют значение сдвига в таблице замен.[0063] Next, in step (102), the shift value in the substitution table is determined.

[0064] В ходе определения значения сдвига в таблице замен:[0064] During the determination of the shift value in the substitution table:

- на этапе (103) вычисляют первое значение сдвига по таблице замен с помощью криптопреобразования конкатенированной строки значений BIN и MASK;- in step (103) calculating the first shift value from the substitution table by crypto-transforming the concatenated string of BIN and MASK values;

- на этапе (104) вычисляют второе значение сдвига по таблице замен с помощью криптопреобразования mPAN;- in step (104), calculating the second shift value from the substitution table using the mPAN crypto transformation;

- на этапе (105) вычисляют суммарное значение сдвига путем сложения первого и второго значений сдвига.- in step (105), the total offset value is calculated by adding the first and second offset values.

[0065] Далее на этапе (106) вычисляют индекс в таблице замен, с помощью нормализации суммарного значения сдвига по таблице замен, причем нормализация выполняется по размерности таблицы как остаток от деления смещения на количество строк таблицы, получая при этом искомый индекс в таблице замен.[0065] Next, in step (106), the index in the substitution table is calculated by normalizing the total shift value in the substitution table, and the normalization is performed on the dimension of the table as the remainder of dividing the offset by the number of table rows, thereby obtaining the desired index in the substitution table.

[0066] Далее на этапе (107) с помощью полученного индекса выбирают из таблицы замен токенизированную часть номера zPAN для замены mPAN.[0066] Next, at step (107), using the obtained index, the tokenized part of the zPAN number is selected from the substitution table to replace the mPAN.

[0067] Далее на этапе (108) формируют токенизированный номер карты DPAN с помощью замены mPAN на zPAN, используя BIN и MASK полученного номера PAN.[0067] Next, in step (108), a tokenized DPAN card number is generated by replacing mPAN with zPAN using the BIN and MASK of the obtained PAN number.

[0068] Алгоритм криптопреобразования, используемый в способе (100) представляет собой алгоритм FF3.[0068] The crypto-transformation algorithm used in the method (100) is the FF3 algorithm.

[0069] Как показано на Фиг. 2 способ детокенизации номера банковской карты (DPAN) (200), полученного с помощью вышеуказанного способа, процессор выполняет ряд последовательных этапов.[0069] As shown in FIG. 2 method for detokenizing a bank card number (DPAN) (200) obtained using the above method, the processor performs a series of sequential steps.

[0070] На этапе (201) получают DP AN и осуществляют его разбиение на составляющие части: бин (BIN) состоящий из первых шести символов, маска (MASK), состоящая из четырех последних символов, и средняя часть (zPAN).[0070] In step (201), the DP AN is obtained and divided into its constituent parts: a bin (BIN) consisting of the first six characters, a mask (MASK) consisting of the last four characters, and a middle part (zPAN).

[0071] Далее на этапе (202) определяют значение сдвига в таблице замен.[0071] Next, in step (202), the shift value in the substitution table is determined.

[0072] В ходе определения значения сдвига в таблице замен:[0072] During the determination of the shift value in the substitution table:

- на этапе (203) вычисляют первое значение сдвига по таблице замен с помощью криптопреобразования строки значений BIN и MASK;- at step (203) calculating the first shift value from the substitution table by crypto-transforming the string of BIN and MASK values;

- на этапе (204) вычисляют модуль первого значения сдвига по таблице замен путем разделения первого значения сдвига на размер таблицы сдвига;- in step (204) calculating the modulus of the first offset value from the substitution table by dividing the first offset value by the offset table size;

- на этапе (205) вычисляют индекс в таблице замен, путем поиска строки по полученному значению zPAN;- at step (205), the index in the substitution table is calculated by searching for a row by the obtained zPAN value;

- на этапе (206) вычисляют второе значения смещения в таблице замен на основе рассчитанного индекса, модуля первого значения и размерности таблицы.- in step (206), the second offset values in the replacement table are calculated based on the calculated index, the modulus of the first value, and the dimension of the table.

[0073] Далее на этапе (207) вычисляют mPAN с помощью обратного криптопреобразования от полученного второго значения смещения с использованием ключа шифрования, с помощью которого выполнялось преобразование PAN в DP AN.[0073] Next, in step (207), the mPAN is calculated by inverse crypto transform from the obtained second offset value using the encryption key with which the PAN to DP AN was converted.

[0074] Далее на этапе (208) формируют значение PAN на основании полученного mPAN, а также значений BIN и MASK.[0074] Next, in step (208), a PAN value is generated based on the obtained mPAN, as well as the BIN and MASK values.

[0075] Алгоритм криптопреобразования, используемый в способе (200) представляет собой алгоритм FF3.[0075] The crypto-transformation algorithm used in the method (200) is the FF3 algorithm.

[0076] Если на этапе (206) второе значение смещения отрицательное, то итеративно повторяют шаг его вычисления, инкрементировав модуль первого значения смещения на единицу.[0076] If in step (206) the second offset value is negative, then iteratively repeat the step of calculating it, incrementing the modulus of the first offset value by one.

[0077] Заявленное техническое решение обеспечивает новый способ токенизации банковских карт. При реализации заявленного техническому решению достигается компактность хранения таблиц замен. Данные связки PAN-DPAN не хранятся на устройствах, носителях информации и т.д., тем самым обеспечивая невозможность компрометации. Для данного технического решения не требуется синхронная репликация между ЦОДами и экземплярами токенизатора в режиме реального времени. При неизвестном ключе шифрования, зная алгоритм и примеры токенизированных пар PAN-DPAN, становится невозможно вычислить другие связки PAN-DPAN. Использование двухкомпонентного сдвига по таблице замен в заявленном техническом решении позволяет быстро производить преобразование PAN-DPAN и DPAN-PAN.[0077] The claimed technical solution provides a new way to tokenize bank cards. When implementing the claimed technical solution, a compact storage of replacement tables is achieved. PAN-DPAN data is not stored on devices, storage media, etc., thereby ensuring the impossibility of compromise. This technical solution does not require synchronous replication between data centers and tokenizer instances in real time. With an unknown encryption key, knowing the algorithm and examples of PAN-DPAN tokenized pairs, it becomes impossible to calculate other PAN-DPAN bundles. The use of a two-component shift according to the substitution table in the claimed technical solution allows you to quickly convert PAN-DPAN and DPAN-PAN.

[0078] На Фиг. 3 представлен пример общего вида вычислительной системы (300), которая обеспечивает реализацию заявленных способов (100) (200) и или является частью компьютерной системы, например, сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения.[0078] FIG. 3 shows an example of a general view of a computing system (300) that provides the implementation of the claimed methods (100) (200) and or is part of a computer system, for example, a server, a personal computer, a part of a computing cluster that processes the necessary data to implement the claimed technical solution.

[0079] В общем случае, система (300) содержит объединенные общей шиной информационного обмена один или несколько процессоров (301), средства памяти, такие как ОЗУ (302) и ПЗУ (303), интерфейсы ввода/вывода (304), устройства ввода/вывода (1105), и устройство для сетевого взаимодействия (306).[0079] In the General case, the system (300) contains one or more processors (301) united by a common bus of information exchange, memory means such as RAM (302) and ROM (303), input / output interfaces (304), input devices / output (1105), and a device for networking (306).

[0080] Процессор (301) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™. MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в системе (300) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[0080] The processor (301) (or multiple processors, multi-core processor, etc.) can be selected from a range of devices currently widely used, for example, such manufacturers as: Intel ™, AMD ™, Apple ™, Samsung Exynos ™. MediaTEK ™, Qualcomm Snapdragon ™, etc. Under the processor or one of the processors used in the system (300), it is also necessary to take into account a graphics processor, for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial execution of the method, and can also be used for training and applying machine learning models in various information systems.

[0081] ОЗУ (302) представляет собой оперативную память и предназначено для хранения исполняемых процессором (301) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (302), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (302) может выступать доступный объем памяти графической карты или графического процессора.[0081] RAM (302) is a random access memory and is intended for storing machine-readable instructions executed by the processor (301) for performing the necessary operations for logical data processing. RAM (302), as a rule, contains executable instructions of the operating system and corresponding software components (applications, software modules, etc.). In this case, the available memory of the graphics card or graphics processor can act as RAM (302).

[0082] ПЗУ (303) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0082] ROM (303) is one or more persistent storage devices such as a hard disk drive (HDD), solid state drive (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R / RW, DVD-R / RW, BlueRay Disc, MD), etc.

[0083] Для организации работы компонентов системы (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.[0083] Various types of I / O interfaces (304) are used to organize the operation of system components (300) and to organize the operation of external connected devices. The choice of the appropriate interfaces depends on the specific version of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS / Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.

[0084] Для обеспечения взаимодействия пользователя с вычислительной системой (300) применяются различные средства (305) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0084] To ensure the interaction of the user with the computing system (300), various means (305) I / O information are used, for example, a keyboard, display (monitor), touch display, touch pad, joystick, mouse manipulator, light pen, stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.

[0085] Средство сетевого взаимодействия (306) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (306) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0085] The networking tool (306) provides data transmission via an internal or external computer network, for example, Intranet, Internet, LAN, and the like. One or more means (306) may be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module and dr.

[0086] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.[0086] The presented application materials disclose preferred examples of the implementation of the technical solution and should not be construed as limiting other, particular examples of its implementation, not going beyond the scope of the claimed legal protection, which are obvious to specialists in the relevant field of technology.

Источники информации:Sources of information:

1. Стандарт PCI DSS: https://www.pcisecuritystandards.org/documents/PCI DSS_v3-2-1.pdf1. PCI DSS standard: https://www.pcisecuritystandards.org/documents/PCI DSS_v3-2-1.pdf

2. Требования к токенизации данных: https://www.pcisecuritystandards.org/documents/Tokenization_Guidelines_lnfo_Supplement.pd f2. Requirements for data tokenization: https://www.pcisecuritystandards.org/documents/Tokenization_Guidelines_lnfo_Supplement.pd f

3. Статья в журнале Банковское Обозрение о подходах к токенизации карточных данных в Сбербанке https://bosfera.ru/bo/pci-dss-ne-vrag3. An article in the journal Bankovskoe Obozreniye on approaches to tokenization of card data in Sberbank https://bosfera.ru/bo/pci-dss-ne-vrag

4. Format Preserving Encryption https://en.wikipedia.org/wiki/Format-preserving_encryption4. Format Preserving Encryption https://en.wikipedia.org/wiki/Format-preserving_encryption

5. Алгоритм FF3 https://eprint.iacr.org/2017/521.pdf5. FF3 algorithm https://eprint.iacr.org/2017/521.pdf

Claims (23)

1. Компьютерно-реализуемый способ токенизации номера банковской карты PAN (Primary Account Number), выполняемый с помощью, по меньшей мере, одного процессора и содержащий этапы, на которых:1. A computer-implemented method of tokenizing a bank card number PAN (Primary Account Number), performed using at least one processor and containing the stages at which: - получают PAN и осуществляют его разбиение на составляющие части: идентификационный номер банка, выпустившего карту BIN (Bank Identification Number), состоящий из первых шести символов, последние четыре символа банковской карты (MASK), свободно использующиеся для печати на чеках и, совместно с BIN, для идентификации карты в пределах одного клиента, и средняя часть номера банковской карты, подлежащая токенизации (mPAN);- receive a PAN and carry out its division into its component parts: the identification number of the bank that issued the card BIN (Bank Identification Number), consisting of the first six characters, the last four characters of the bank card (MASK), freely used for printing on checks and, together with BIN , to identify the card within one client, and the middle part of the bank card number subject to tokenization (mPAN); - определяют значение сдвига в таблице замен, при котором:- determine the value of the shift in the table of substitutions, at which: • вычисляют первое значение сдвига по таблице замен с помощью криптопреобразования конкатенированной строки значений BIN и MASK;• calculating the first shift value from the substitution table using crypto-transformation of the concatenated string of BIN and MASK values; • вычисляют второе значение сдвига по таблице замен с помощью криптопреобразования mPAN;• calculate the second shift value from the substitution table using the mPAN crypto-transformation; • вычисляют суммарное значение сдвига путем сложения первого и второго значений сдвига;• calculate the total shift value by adding the first and second shift values; - вычисляют индекс в таблице замен, с помощью нормализации суммарного значения сдвига по таблице замен, причем нормализация выполняется по размерности таблицы как остаток от деления смещения на количество строк таблицы, получая при этом искомый индекс в таблице замен;- calculating the index in the table of substitutions, by normalizing the total value of the shift in the table of substitutions, and the normalization is performed by the dimension of the table as the remainder of dividing the offset by the number of rows in the table, thus obtaining the desired index in the table of substitutions; - с помощью полученного индекса выбирают из таблицы замен токенизированную среднюю часть номера банковской карты (zPAN) для замены mPAN;- using the obtained index, the tokenized middle part of the bank card number (zPAN) is selected from the substitution table to replace the mPAN; - формируют токенизированный номер карты DPAN с помощью замены mPAN на zPAN, используя BIN и MASK полученного номера PAN.- form a tokenized DPAN card number by replacing mPAN with zPAN using the BIN and MASK of the received PAN number. 2. Способ по п. 1, в котором алгоритм криптопреобразования представляет собой алгоритм криптопреобразования с сохранением формата исходных данных FF3 (Format Preserving Encryption).2. The method according to claim 1, wherein the crypto-transformation algorithm is a crypto-transformation algorithm with preserving the format of the original data FF3 (Format Preserving Encryption). 3. Компьютерно-реализуемый способ детокенизации номера банковской карты (DPAN), полученного с помощью способа по любому из пп.1, 2 выполняемый с помощью, по меньшей мере, одного процессора и содержащий этапы, на которых:3. A computer-implemented method for detokenizing a bank card number (DPAN) obtained using the method according to any one of claims 1, 2, performed using at least one processor and containing the steps at which: - получают DPAN и осуществляют его разбиение на составляющие части: бин (BIN), состоящий из первых шести символов, маска (MASK), состоящая из четырех последних символов, и средняя часть (zPAN);- get DPAN and carry out its division into its constituent parts: bin (BIN), consisting of the first six characters, a mask (MASK), consisting of the last four characters, and the middle part (zPAN); - определяют значение сдвига в таблице замен, при котором:- determine the value of the shift in the table of substitutions, at which: • вычисляют первое значение сдвига по таблице замен с помощью криптопреобразования строки значений BIN и MASK;• calculating the first shift value from the substitution table using crypto-transformation of the string of BIN and MASK values; • вычисляют модуль первого значения сдвига по таблице замен путем разделения первого значения сдвига на размер таблицы сдвига;• calculating the modulus of the first offset value from the substitution table by dividing the first offset value by the size of the offset table; • вычисляют индекс в таблице замен, путем поиска строки по полученному значению zPAN;• calculate the index in the substitution table by searching for a row by the obtained zPAN value; • вычисляют второе значение сдвига в таблице замен на основе рассчитанного индекса, модуля первого значения и размерности таблицы;• calculating the second value of the shift in the replacement table based on the calculated index, the modulus of the first value and the dimension of the table; - вычисляют mPAN с помощью обратного криптопреобразования от полученного второго значения сдвига;- calculate mPAN using the inverse crypto-transformation from the obtained second shift value; - формируют значение PAN на основании полученного mPAN, а также значений BIN и MASK.- form the PAN value based on the received mPAN, as well as the BIN and MASK values. 4. Способ по п. 3, в котором алгоритм криптопреобразования представляет собой алгоритм криптопреобразования с сохранением формата исходных данных (FF3).4. The method according to claim 3, wherein the crypto-transformation algorithm is a crypto-transformation algorithm with preservation of the original data format (FF3). 5. Способ по п. 3, в котором если второе значение сдвига отрицательное, то итеративно повторяют шаг его вычисления, инкрементировав модуль первого значения смещения на единицу.5. The method according to claim 3, wherein if the second offset value is negative, then the step of calculating it is iteratively repeated by incrementing the modulus of the first offset value by one. 6. Система для токенизации номера банковской карты (PAN), содержащая по меньшей мере один процессор, и по меньшей мере одно средство хранения данных, содержащее машиночитаемые инструкции, которые при их выполнении процессором реализуют способ по любому из пп. 1, 2.6. A system for tokenizing a bank card number (PAN), containing at least one processor, and at least one data storage device containing machine-readable instructions, which, when executed by the processor, implement the method according to any one of claims. 12. 7. Система для определения детокенизированного номера банковской карты (DPAN), полученного с помощью способа по любому из пп. 1, 2, содержащая по меньшей мере один процессор, и по меньшей мере одно средство хранения данных, содержащее машиночитаемые инструкции, которые при их выполнении процессором реализуют способ по любому из пп. 3-5.7. System for determining the detokenized bank card number (DPAN) obtained using the method according to any one of paragraphs. 1, 2, containing at least one processor, and at least one data storage device containing machine-readable instructions, which, when executed by the processor, implement the method according to any one of claims. 3-5.
RU2020131500A 2020-09-24 2020-09-24 Method for tokenisation of the bank card number and method for detokenisation of the bank card number RU2756576C1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
RU2020131500A RU2756576C1 (en) 2020-09-24 2020-09-24 Method for tokenisation of the bank card number and method for detokenisation of the bank card number
PCT/RU2020/000709 WO2022066037A1 (en) 2020-09-24 2020-12-16 Method for tokenizing a bank card number and method for detokenizing a bank card number
EA202092868A EA202092868A1 (en) 2020-09-24 2020-12-23 METHOD OF TOKENIZATION OF BANK CARD NUMBER AND METHOD OF DETOKENIZATION OF BANK CARD NUMBER

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020131500A RU2756576C1 (en) 2020-09-24 2020-09-24 Method for tokenisation of the bank card number and method for detokenisation of the bank card number

Publications (1)

Publication Number Publication Date
RU2756576C1 true RU2756576C1 (en) 2021-10-01

Family

ID=78000218

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020131500A RU2756576C1 (en) 2020-09-24 2020-09-24 Method for tokenisation of the bank card number and method for detokenisation of the bank card number

Country Status (3)

Country Link
EA (1) EA202092868A1 (en)
RU (1) RU2756576C1 (en)
WO (1) WO2022066037A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090048953A1 (en) * 2007-08-16 2009-02-19 Patrick Hazel Metrics systems and methods for token transactions
US20140041018A1 (en) * 2009-12-18 2014-02-06 Sabre Inc. Tokenized data security
US20140230072A1 (en) * 2010-03-01 2014-08-14 Protegrity Corporation Distributed Tokenization Using Several Substitution Steps
US20150310425A1 (en) * 2014-04-29 2015-10-29 Mastercard International Incorporated Systems and Methods of Processing Payment Transactions Using One-Time Tokens
RU2691843C2 (en) * 2013-10-11 2019-06-18 Виза Интернэшнл Сервис Ассосиэйшн Network token system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090048953A1 (en) * 2007-08-16 2009-02-19 Patrick Hazel Metrics systems and methods for token transactions
US20140041018A1 (en) * 2009-12-18 2014-02-06 Sabre Inc. Tokenized data security
US20140230072A1 (en) * 2010-03-01 2014-08-14 Protegrity Corporation Distributed Tokenization Using Several Substitution Steps
RU2691843C2 (en) * 2013-10-11 2019-06-18 Виза Интернэшнл Сервис Ассосиэйшн Network token system
US20150310425A1 (en) * 2014-04-29 2015-10-29 Mastercard International Incorporated Systems and Methods of Processing Payment Transactions Using One-Time Tokens

Also Published As

Publication number Publication date
EA202092868A1 (en) 2022-03-31
WO2022066037A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
EP3275115B1 (en) Database server and client for query processing on encrypted data
US20170053135A1 (en) Columnar Table Data Protection
US9460310B2 (en) Method and apparatus for substitution scheme for anonymizing personally identifiable information
EP3218811B1 (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
US11899816B2 (en) Batch tokenization service
US20110270837A1 (en) Method and system for logical data masking
US10885516B2 (en) Secure validation using hardware security modules
US7958162B2 (en) Method and system for generating analogous fictional data from non-fictional data
KR20140053898A (en) System and method for management of encrypted data
WO2019120293A1 (en) Off-chip memory address scrambling apparatus and method for system on chip
US8700918B2 (en) Data masking
US10572635B2 (en) Automatic correction of cryptographic application program interfaces
RU2756576C1 (en) Method for tokenisation of the bank card number and method for detokenisation of the bank card number
CN103049705A (en) Virtualization based method, terminal and system for secure storage
EA040281B1 (en) METHOD OF TOKENIZATION OF BANK CARD NUMBER AND METHOD OF DETOKENIZATION OF BANK CARD NUMBER
JP6324646B1 (en) Security measure determining device, security measure determining method, and security measure determining program
CN104573754B (en) Chip identifier reading/writing method
Lim et al. CVE Records of Known Exploited Vulnerabilities
WO2020233421A1 (en) Object-level receipt storage method and node based on code marking
WO2020233424A1 (en) Event function type-based receipt storage method and node
US20210119812A1 (en) Time-based multi-dimensional key recreation mechanism using puf technologies
US20140164783A1 (en) Method and apparatus for securely storing data in a database
US9507734B2 (en) Corrupting data structures for privacy protection
WO2022073624A1 (en) Data storage arrangement and method employing local memory and data storage
Samid Finger Printing Data