Method for generating virtual security code for user authentication
Patent Information
- Application Number
- KR1020230031251
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-04-12
- Filing Date
- 2023-03-09
- Publication Date
- 2026-08-14
- Estimated Expiration
- 2041-09-28
Smart Images

Figure 112023027215084-PAT00006_ABST
Abstract
Description
Technology Field
[0001] The present invention relates to a method for generating a virtual security code for user authentication. Background Technology
[0002] Code-based data is used in many fields. Examples of code-based data include card numbers and account numbers used for payments, as well as IPIN numbers and resident registration numbers used for user identification.
[0003] However, many data leakage incidents occur during the process of using such code data. In the case of card numbers, the actual number is printed directly on the surface of the card, leading to visual leakage to others; additionally, during magnetic stripe payments, the card number is transmitted directly to the POS device, resulting in leakage.
[0004] There have been many attempts to use virtual card numbers to prevent actual card numbers from being leaked; however, data to identify the user was required to search for the actual card number corresponding to the virtual card number. For example, in the case of One-Time Passwords (OTPs), although the code changes and is generated every hour, it is difficult to apply them across various domains because a login procedure is required to verify the algorithm assigned to the user.
[0005] Therefore, there is a need for an invention that can search for an actual card number based on a virtual card number that changes in real time, without providing identification information about the user or device corresponding to the actual card number. Prior art literature
[0006] Korean Registered Patent No. 10-1316466 (October 1, 2013) The problem to be solved
[0007] The problem that the present invention aims to solve is to provide a method for generating a virtual security code for user authentication that allows searching for an actual card number registered on a blank card from a virtual card number generated based on blank card data without exposing actual card information used when conducting financial transactions at a financial institution (e.g., a credit card company or a bank).
[0008] In addition, the present invention provides a method for generating a virtual security code for user authentication that provides a new virtual card number generated at unit count intervals without duplicate generation whenever a payment request is made using a blank card.
[0009] In addition, it provides a method for generating a virtual security code for user authentication, which allows a user to select from multiple credit cards they possess and use a single blank card for financial transactions without exposing the actual credit card number at all.
[0010] The problems that the present invention aims to solve are not limited to those mentioned above, and other unmentioned problems will be clearly understood by a person skilled in the art from the description below. means of solving the problem
[0011] A method for generating a virtual security code for user authentication according to one aspect of the present invention for solving the above-described problem comprises the steps of receiving card data from a card held by the user through card tagging, generating a virtual security code by applying the card data to a stored virtual security code generation function, and transmitting the virtual security code to a verification server to request authentication of the user, wherein the virtual security code is a code generated at a specific time based on at least one code, and is generated by changing at each unit count, and the unit count may be set to a specific time interval and change as the time interval elapses.
[0012] In addition, if there are multiple codes, the virtual security code may be generated as a combination of the multiple codes that have a correlation with each other.
[0013] Additionally, among the plurality of codes, the first code may indicate a search starting point for user authentication information, and among the plurality of codes, the second code may indicate a search path from the search starting point to the location where the user authentication information is actually stored.
[0014] In addition, the user authentication information is searched by the verification server based on the first code and the second code, and the user authentication can be performed based on the searched user authentication information.
[0015] Additionally, the virtual security code may be a variable code generated based on at least one of a first time data indicating the time when the card data was received and a second time data indicating the time when the user authentication was requested.
[0016] In addition, the virtual security code may be generated based on the unique values of the card data and the smart device.
[0017] Additionally, the verification server may search for a card storage location where the card is registered within a storage location search algorithm matched to the virtual security code generation function based on the virtual security code, and the verification server may extract user authentication information using the UID (user identification) assigned to the searched card storage location, and perform user authentication using the extracted user authentication information.
[0018] In another aspect of the present invention for solving the above-mentioned problem, a smart device comprises a generation unit that generates a virtual security code by applying the card data to a stored virtual security code generation function when card data is received from a card held by a user through card tagging, and a provision unit that transmits the virtual security code to a verification server to request authentication of the user. The virtual security code is a code generated at a specific time based on at least one code, and is generated by changing it every unit count, and the unit count may be set to a specific time interval and change as the time interval elapses.
[0019] A virtual security code generation system for user authentication according to another aspect of the present invention for solving the above-described problem comprises a smart device that, when card data is received from a card held by a user through card tagging, applies the card data to a stored virtual security code generation function to generate a virtual security code and requests authentication of the user by transmitting the virtual security code, and a verification server that receives the virtual security code from the smart device and performs authentication of the user by verifying the received virtual security code. The virtual security code is a code generated at a specific time based on at least one code, and is generated by changing every unit count, and the unit count may be set to a specific time interval and change as the time interval elapses.
[0020] In addition to this, other methods, other devices, other systems for implementing the present invention, and computer-readable recording media for recording a computer program for executing said method may be further provided. Effects of the invention
[0021] According to the present invention as described above, it has various effects as follows.
[0022] First, by linking one or more actual cards to a single blank card so that when a financial transaction is requested with the blank card, the financial transaction is processed with the actual card linked to the blank card, users can conveniently make online and offline payments with only one blank card without needing to carry multiple cards.
[0023] Second, since users only need to carry a blank card linked to their actual card for financial transactions, there is no risk of losing the actual card, allowing for safer financial transactions.
[0024] Third, since the virtual card number generation function is stored only in the virtual card number generation device that generates the virtual card number (e.g., user terminal) and the algorithm for searching for the actual card number is added only in the device that extracts the actual card number using the virtual card number (e.g., token service server, financial institution server, etc.), it is possible to prevent the algorithm for generating and verifying the virtual card number from being leaked.
[0025] Fourth, since a virtual card number in the same format as the actual card number is used, the existing payment process using actual card numbers can be maintained. For example, if an application providing financial transaction services generates and provides a non-duplicate virtual card number, the POS device and PG company server remain unchanged; the virtual card number is transmitted to the token service server or financial institution server, and the token service server or financial institution server searches for the actual card number corresponding to the virtual card number to proceed with the payment. Through this, the parts that need to be changed within the existing process to enhance security can be minimized, and users do not need to perform separate steps to improve security.
[0026] Fifth, a new virtual card number is generated for each unit count, so that duplicate virtual card numbers do not appear within a predetermined entire period, or the order in which virtual card numbers that can be searched for in the virtual card number verification device are generated is randomized, thereby providing the effect that the actual card number is not leaked even when the virtual card number is leaked.
[0027] The effects of the present invention are not limited to those mentioned above, and other unmentioned effects will be clearly understood by a person skilled in the art from the description below. Brief explanation of the drawing
[0028] FIG. 1 is a configuration diagram of a financial transaction provision system using a blank card according to one embodiment of the present invention. FIG. 2 is a block diagram illustrating an online and offline financial transaction process using a blank card according to an embodiment of the present invention. FIG. 3 is a configuration diagram of a blank card device according to one embodiment of the present invention. FIG. 4 is a configuration diagram of a virtual card number generation device according to one embodiment of the present invention. FIG. 5 is a configuration diagram of a virtual card number verification device according to one embodiment of the present invention. FIG. 6 is a flowchart of a method for providing financial transactions using a blank card according to an embodiment of the present invention. FIG. 7 is an example diagram of a storage location search algorithm that searches for the storage location of a blank card through k-gon cloud movement according to one embodiment of the present invention. FIG. 8 is an example diagram of a storage location search algorithm that searches for the storage location of a blank card by moving along a track based on a detailed code according to one embodiment of the present invention. FIG. 9 is a flowchart of a method for providing financial transactions using a blank card, including a blank card registration process according to one embodiment of the present invention. FIG. 10 is a flowchart of a method for providing financial transactions using a blank card, comprising the process of storing one or more actual card numbers in an actual card number storage space assigned to a blank card according to an embodiment of the present invention. FIG. 11 is a flowchart of a method for providing financial transactions using a blank card, comprising the process of setting a basic card among a plurality of actual card numbers stored in an actual card number storage space assigned to a blank card according to an embodiment of the present invention. FIG. 12 is a flowchart of a method for providing financial transactions using a blank card, including a process for changing a basic card according to one embodiment of the present invention. FIG. 13 is an example diagram of a method for moving the search time of an actual card number storage space using a virtual security code according to an embodiment of the present invention. FIG. 14 is an exemplary diagram illustrating a storage space for actual card numbers connected to a UID and a blank card number according to an embodiment of the present invention. Specific details for implementing the invention
[0029] The advantages and features of the present invention and the methods for achieving them will become clear by referring to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below but may be implemented in various different forms. These embodiments are provided merely to ensure that the disclosure of the present invention is complete and to fully inform those skilled in the art of the scope of the present invention, and the present invention is defined only by the scope of the claims.
[0030] The terms used in this specification are for describing embodiments and are not intended to limit the invention. In this specification, the singular form includes the plural form unless specifically stated otherwise in the text. The terms "comprises" and / or "comprising" used in this specification do not exclude the presence or addition of one or more other components in addition to the components mentioned. Throughout the specification, the same reference numerals refer to the same components, and "and / or" includes each of the mentioned components and all combinations of one or more. Although terms such as "first," "second," etc., are used to describe various components, these components are not limited by these terms. These terms are used merely to distinguish one component from another. Therefore, the first component mentioned below may be the second component within the technical scope of the invention.
[0031] Unless otherwise defined, all terms used herein (including technical and scientific terms) may be used in a meaning commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless explicitly and specifically defined otherwise.
[0032] In this specification, "financial transaction" refers to a procedure performed with a financial institution. "Financial transaction" includes card payments, deposits and withdrawals from bank accounts, etc.
[0033] In this specification, 'character' refers to a component constituting a code, including all or part of uppercase letters, lowercase letters, numbers, and special characters.
[0034] In this specification, 'code' refers to a string of characters.
[0035] In this specification, "blank card" refers to a separate card distinguished from the user's actual card, and means a card that includes a separate card number or identification number (e.g., serial number).
[0036] In this specification, 'blank card number' refers to the card number assigned to a blank card. For example, 'blank card number' is the card number provided to a POS device when a user performs an offline payment using their blank card.
[0037] In this specification, 'actual card number' refers to a number assigned to a specific user's actual card by a financial institution or card company, and means a number assigned to a general physical card, mobile card, etc.
[0038] In this specification, 'virtual card number' refers to a number generated by a virtual card number generation means based on information provided from a blank card, and means a card number used by a virtual card number verification means to search for an actual card number. That is, 'virtual card number' refers to a virtual card number temporarily assigned to each unit count to enable the search for an actual card number.
[0039] In this specification, 'detail code' refers to a partial code included in a virtual card number.
[0040] In this specification, 'unit count' is a unit defined as being set for a specific time interval and changing as the time interval elapses. For example, 1 count can be set for a specific time interval (e.g., 1.5 seconds).
[0041] In this specification, 'virtual card number generation function' refers to a function used to generate a virtual card number.
[0042] In this specification, "rolling motion" refers to an object performing translational motion while rotating. That is, "rolling motion" refers to movement that performs both rotational and translational motions simultaneously, meaning that each point of the rotating object moves in succession while touching the axis of movement.
[0043] In this specification, 'alternative card number' refers to an alternative card number linked to an actual card number for the purpose of automatically paying fees that are regularly charged when using a specific service.
[0044] Hereinafter, in order to explain the process of generating a virtual card number that replaces an actual card number and the process of searching for an actual card number according to embodiments of the present invention, the composition of the actual card number is described.
[0045] The actual card number includes at least one of a card identification number, a card security code, and an expiration date. The card identification number refers to a code assigned to identify the card issuer, the card type, and the card user. Generally, the card identification number assigned to a card consists of 15 or 16 digits. Furthermore, in the case of a card identification number that generally consists of 16 digits, the first 6 digits consist of the card issuer identification number (IIN), the 7th through 15th digits consist of a code assigned to each card by each card issuer according to arbitrary rules, and the 16th digit consists of a value that verifies the card identification number using a specific formula.
[0046] The card security code is a specific number of digits printed on one side of the card (for example, 3 digits for Visa and Mastercard, and 4 digits for Amex) that serves to verify whether the card number is valid. In other words, if the card security code is 3 digits and the card identification number is 16 digits, the 3-digit security code and the 16-digit card identification number are encrypted and decrypted according to established rules; if the resulting values match, it is determined that the card is valid. The name for the card security code varies by card company: Visa calls it CVV (Card Verification Value), Mastercard and JCB call it CVC (Card Validation Code), and American Express calls it CID (Confidential Identifier Number or Card Identification Number).
[0047] The expiration date refers to the period during which the card can be used after the actual card number has been issued. Generally, the expiration date consists of a 4-digit code with 2 digits assigned to the year and month.
[0048] Since magnetic cards contain the actual card number intact, the entire number can be leaked simply by reading the card. Consequently, the use of magnetic cards has recently been restricted worldwide, and there is a shift toward more secure methods such as IC cards. However, implementing these higher-security methods presents challenges, such as the need to install new terminals or modify existing processes. Therefore, a method is required to prevent card number leakage while maintaining the same existing processes that utilize actual card numbers. In particular, there is a need for a method that enhances security while utilizing existing magnetic card readers.
[0049] Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
[0050] FIG. 1 is a configuration diagram of a financial transaction provision system using a blank card according to one embodiment of the present invention, and FIG. 2 is a block diagram showing an online and offline financial transaction process using a blank card according to one embodiment of the present invention.
[0051] As illustrated in FIG. 1, the financial transaction provision system consists of a blank card (10), a user terminal (20), and a server (30).
[0052] A blank card (10) transmits information contained within to a user terminal (20) or is used for payment like a real card during offline payment. Each blank card is linked to one or more real card numbers, and is a card that enables financial transactions without exposing the real card number when a payment request is made.
[0053] In one embodiment, the blank card (10) transmits information necessary to generate a virtual card number as it communicates with the user terminal (20). For example, as the blank card (10) communicates with the user terminal (20) via Near Field Communication (NFC), it transmits data contained within the blank card to the user terminal (20) as it comes into contact with one side of the user terminal (20). The method of using the data provided by the blank card (10) at the user terminal (20) will be described in detail later.
[0054] In addition, as shown in FIG. 2, the blank card (10) can be used for direct payment when performing offline payment with a standard POS device (e.g., a device including payment using magnetic stripe, payment using an IC chip, or payment using NFC). That is, the blank card can be used in the same way as the offline payment method of a standard actual card. For example, the blank card number is linked to an 'actual card number', so when a user requests payment using the blank card, the server (e.g., a financial company server if the service is provided by a financial company or card company, or a token service server if the service is provided by a token service provider) requests or performs a financial transaction using the actual card number linked to the blank card number.
[0055] A blank card (10) is connected to one or more actual cards owned by the user within the server (30). For example, a blank card number may be connected to an area within the server (30) where actual card numbers are stored, or a count of the blank card registered in the server may be connected to an area where actual card numbers are stored.
[0056] In addition, in one embodiment, the blank card (10) may be initially registered with the server (30) by a dedicated application installed or included in the user terminal (20). The method of initially registering the blank card (10) with the server (30) will be described in detail later.
[0057] In addition, as an embodiment, a blank card (10) may be purchased separately by the user or provided by a financial institution, etc., and used by the user by linking it to an actual card number. For example, the user may purchase and use a blank card of a desired design at a supermarket or convenience store, etc. Also, for example, if a specific financial institution or card company provides a service to make it convenient for the user to use multiple cards issued by them, the user may receive and use a blank card from the financial institution or card company. In this case, the user may use the blank card by linking multiple actual card numbers issued by the specific financial institution or card company to it.
[0058] In addition, in one embodiment, each blank card (10) is assigned blank card data including a blank card number, a blank card serial number, etc., at the time of production. In addition, in one embodiment, each blank card (10) contains blank card data internally but does not expose blank card data (e.g., blank card number) externally.
[0059] The user terminal (20) is a mobile terminal of a user who purchases and uses a blank card (10). The user terminal (20) may have a dedicated program or dedicated application (hereinafter, blank card dedicated program (21)) built in or installed for a blank card-based payment service.
[0060] In one embodiment, a blank card dedicated program (21) performs the role of receiving blank card data by communicating with a blank card. That is, the user terminal (20) receives blank card data by performing wireless communication (e.g., NFC communication based on proximity) with the blank card (10).
[0061] In addition, in one embodiment, the blank card dedicated program (21) performs the role of generating a virtual card number for performing financial transactions using blank card data provided from the blank card. That is, the blank card dedicated program (21) includes a virtual card number generation function and generates a virtual card number using all or part of the blank card data provided from the blank card. For example, the blank card dedicated program (21) generates a virtual card number by using the blank card serial number included in the blank card data as seed data for the virtual card number generation function. In addition, for example, the blank card dedicated program (21) may use a combined serial number formed by combining the blank card serial number received from the blank card and the serial number of the dedicated program as seed data for the virtual card number generation function.
[0062] In addition, in one embodiment, the blank card dedicated program (21) performs the role of registering a blank card newly acquired by the user to the server (30). That is, the user purchases or receives a blank card (10) and registers the blank card (10) in the blank card dedicated program (21) installed on the user terminal (20), and the blank card dedicated program (21) transmits the blank card data to the server to register it.
[0063] As a specific example, the blank card dedicated program (21) receives blank card data including a serial number and a blank card number from the blank card (10) when registering the blank card. Then, the blank card dedicated program (21) transmits the blank card number to the server (30). As the server (30) registers the blank card (10) to a specific count, the blank card dedicated program (21) receives a virtual card number generation function or setting data for specifying the virtual card number generation function from the server (30). Through this, the blank card dedicated program (21) includes a virtual card number generation function that generates a virtual card number capable of searching for a specific count where the blank card is registered within the server (30).
[0064] In one embodiment, when a user requests the generation of a virtual card number from a dedicated program using an unregistered blank card, that is, when the blank card (10) used by the user for a payment request is not a card registered with the server (30) through the dedicated program (21), the dedicated program (21) can notify the user by displaying an error message on the screen of the user terminal (20) with content such as "This is not a registered blank card. Payment cannot be processed."
[0065] To this end, the dedicated program may store the blank card serial number internally. At this time, the dedicated program may i) store the blank card serial number within the terminal but perform the generation of a virtual card number only when the serial number is actually received from the blank card for the generation of a virtual card number (i.e., first mode), and ii) generate a virtual card number without receiving the blank card serial number from the blank card by setting the blank card serial number stored at the time of blank card registration to be used as is when generating the virtual card number (i.e., second mode).
[0066] In addition, in one embodiment, the blank card dedicated program (21) not only generates a virtual card number (i.e., a virtual card number for immediate payment) for performing immediate payment, but also generates a virtual card number (i.e., a virtual card number for regular payment or a replacement card number) for performing regular payment according to the user's request. That is, the blank card dedicated program (21) generates an actual card number on the server, which changes in real time during immediate payment, and generates a replacement card number, which is a fixed virtual card number connected to the actual card number that the user intends to use for a specific regular payment, during regular payment. When utilizing a service based on a replacement card number, the dedicated program (21) communicates with the service server to generate a new replacement card number and connects the actual card number stored in the server to the replacement card number.
[0067] Specifically, when a user requests registration for a recurring payment service, a dedicated program (21) embedded or installed in the user terminal (20) can generate an alternative card number for recurring payments. For example, if a user needs to make a recurring payment once a month to use a music streaming service, the user provides the alternative card number generated by the dedicated program (21) to the corresponding music streaming app so that the recurring payment is made automatically. That is, when the music streaming service server provides the alternative card number provided by the user to the PG company server on each recurring payment date, the PG company server provides the alternative card number to the server (30), and the server (30) extracts the actual card number linked to the provided alternative card number and proceeds with the payment or requests the payment to proceed.
[0068] In this case, the alternate card number consists of 15 or 16 digits, just like the actual card number. For example, if the alternate card number consists of 16 digits, the first 6 digits consist of the card issuer identification number (IIN), the 7th through 15th digits consist of a code assigned to each card by each card company according to arbitrary rules, and the 16th digit consists of a value that verifies the alternate card number using a specific formula. Here, since the issuer identification number (IIN) includes information on the card company and card type, when the PG server receives a payment request, it identifies the issuer identification number and requests the payment to proceed with the corresponding card company or financial institution.
[0069] In addition, in one embodiment, the dedicated program (21) may generate different alternative card numbers for each service type according to the user's request and store the alternative card numbers corresponding to each type by matching them. For example, if a user registers for a recurring payment service to use a music streaming service, a video streaming service, or an e-book service, the dedicated program (21) generates alternative card numbers corresponding to each service and links an actual card number to each alternative card number to enable recurring payment.
[0070] At this time, the actual card number connected to the substitute card number is selected by the server (30) or the user from among one or more actual card numbers registered within the server (30). Alternatively, it may be automatically set to an actual card number set as the default card within the server (30). Furthermore, the actual card number connected to each substitute card number may be set identically by the server (30) or the user, or may be set differently depending on the service type.
[0071] In this way, by using a blank card number for recurring payments, users can ensure normal payment processing by simply changing the actual card number linked to the substitute card number within the service connected to the dedicated program, without having to change the actual card number in situations such as the actual card's expiration, cancellation, or reissuance due to loss. For example, if the actual card number previously registered to a specific substitute card number can no longer be used, the user can link the substitute card number to another previously registered actual card number or register a new actual card number to link to the substitute card number. Furthermore, by using services based on the blank card dedicated program, users can easily set up monthly financial plans and manage card performance conditions.
[0072] In addition, as another embodiment, the user can set the validity period of a replacement card number generated for a specific service type through a dedicated program (21). That is, when a replacement card number for a specific service is generated by the user's request to register for a regular payment service, the user can set the validity period of the replacement card number. For example, if the user sets the validity period of a replacement card number for a music streaming service to one month, the service server can prevent financial transactions from proceeding by deleting the actual card number linked to the replacement card number after the validity period has expired or by no longer providing the actual card number to the payment process.
[0073] In addition, in one embodiment, the user can set a limit for the alternative card number generated for a specific service type through a dedicated program (21). That is, the user can set the monthly fee charged for using a specific service as the limit for the alternative card number. Through this, it is possible to prevent double billing or billing exceeding a set amount.
[0074] As illustrated in FIG. 2, the server (30) performs the role of performing financial transactions by extracting the actual card number connected to the user's blank card (10) based on the virtual card number provided by the user terminal (20) or the blank card number provided through the POS device, etc. A detailed explanation of the method of searching for the actual card number based on the virtual card number or blank card number by the server (30) will be described later.
[0075] Here, the server (30) may be a financial institution server that directly conducts financial transactions, or a token service server that requests financial transactions from a financial institution. For example, if the server (30) is a financial institution that issues one or more actual credit cards, the server (30) can immediately proceed with financial transactions after searching for a specific actual card number using a virtual card number or a blank card number. In this case, the financial institution server may register only the actual cards issued by the financial institution to the service for use. Also, for example, the server (30) may be a server of a company that operates a token service (i.e., a token service server). In this case, as shown in FIG. 2, the token service server can search for an actual card number based on a virtual card number and provide it to the payment process (i.e., provide it to a PG company server or an acquirer server) so that payment can proceed with the actual card number.
[0076] In addition, in one embodiment, the server (30) performs the role of initially registering a blank card based on blank card data provided from the blank card dedicated program (21). A detailed explanation of the method of initially registering a blank card to the server will be provided later.
[0077] In addition, in one embodiment, the server (30) performs the role of storing one or more actual card numbers provided via wireless communication from the blank card dedicated program (21). A detailed description of the method of storing actual card numbers within the server and the internal structure for storing actual card numbers will be provided later.
[0078] In addition, in one embodiment, when a plurality of actual card numbers are linked to a specific blank card, the server (30) performs the role of setting a basic card (i.e., default card) to be used for payment using the blank card through the user terminal (20) according to the user's request. A detailed explanation of the method for setting the basic card (i.e., default card) among the plurality of actual card numbers will be provided later.
[0079] FIG. 3 is a configuration diagram of a blank card device according to one embodiment of the present invention.
[0080] As shown in FIG. 3, the blank card device (100) includes an IC chip (110) and a communication unit (120).
[0081] Here, the blank card device (100) refers to a blank card (10) that is in contact with a virtual card number generation device (200) for financial transactions.
[0082] The IC chip (110) is a metal chip placed on the front of the blank card device (100) and performs the role of containing blank card data of the blank card device (100). Here, blank card data refers to data including a blank card number, a blank card serial number, etc.
[0083] Additionally, the IC chip (110) performs the role of performing IC-based payment in the POS device. Specifically, referring to FIG. 2, as the blank card device (100) is inserted into the IC-based POS device, the IC chip (110) comes into contact and transmits the blank card data (i.e., blank card number) stored internally to the POS device to perform offline payment.
[0084] In one embodiment, the blank card device (100) may include a magnetic field generating unit (not shown). The magnetic field generating unit performs the function of performing offline payment by transmitting a blank card number output in the form of a magnetic signal to a POS device through a card reader. The magnetic field generating unit may include one or more magnetic cells that form a magnetic field through the flow of current and output a blank card number magnetic signal. The magnetic field generating unit may be provided so as to be exposed on the upper or lower surface of the PCB board along a long side adjacent to a specific long side of the PCB board of the blank card.
[0085] In another embodiment, the blank card device (100) may include a fingerprint recognition unit (not shown) capable of recognizing a user's fingerprint. That is, during offline payment, the user places a finger (e.g., thumb) on the fingerprint recognition unit positioned opposite the IC chip (110) and inserts the portion of the blank card device (100) where the IC chip (110) is placed into the POS device. Accordingly, an electrical signal is supplied through the IC chip (110) so that the fingerprint recognition unit can recognize the user's fingerprint. Subsequently, the fingerprint recognition unit determines whether the recognized fingerprint is identical to the user's fingerprint that has been previously registered. If the two fingerprints match, the payment is approved to proceed, and if they do not match, the blank card number is not transmitted to the POS device so that the payment is not further processed. Therefore, during offline payment, security can be further enhanced by verifying the user's fingerprint to proceed with the payment.
[0086] At this time, in order to initially register the user's fingerprint, the blank card device (100) may be delivered connected to a delivery case containing a battery. That is, when the user receives or purchases the blank card, the blank card device (100) is connected to a disposable battery built into the delivery case, so that the user can register a fingerprint in the fingerprint recognition unit using an electrical signal supplied through the disposable battery.
[0087] The communication unit (120) performs the role of providing blank card data by communicating with the virtual card number generation device (200). Here, as a wireless communication method of the communication unit (120), not only NFC (Near Field Communication) but also Bluetooth, BLE (Bluetooth Low Energy), Beacon, RFID (Radio Frequency Identification), Infrared Data Association (IrDA), UWB (Ultra Wideband), ZigBee, etc. may be used.
[0088] As a specific example, the communication unit (120) may be a Near Field Communication (NFC) unit (e.g., an NFC antenna) connected to the IC chip (110). That is, as shown in FIG. 2, the blank card device (100) can transmit blank card data stored in the IC chip (110) to the user terminal (20) as it approaches a virtual card number generator (200) capable of NFC communication. Through this, the blank card dedicated program (21) in the user terminal (20) can perform the procedure of generating a virtual card number based on the blank card data or registering the blank card (10) to the server (30).
[0089] As illustrated in FIG. 2, the user terminal (20) can perform online payment by providing a virtual card number generated based on blank card data to the server (30) through the PG company server. Alternatively, the user terminal (20) can perform offline payment using the virtual card number by providing the virtual card number generated based on blank card data to the POS device, and the POS device providing the virtual card number to the server (30) through the acquirer server.
[0090] In addition, as another embodiment, the blank card device (100) may include a control unit (not shown) and a display unit (not shown).
[0091] In one embodiment, a blank card device further comprising a control unit and a display unit may, when performing offline payment, include a virtual card number generation function internally to generate a virtual card number independently and provide it externally through various output means. For example, a blank card device (100) according to one embodiment of the present invention may transmit and output a virtual card number generated in response to a user's request to an IC chip, a magnetic field generator, or an NFC module. Additionally, the blank card device (100) may perform offline payment by outputting a QR code generated based on the virtual card number to a display unit.
[0092] In another embodiment, when performing an online payment, the blank card device (100) generates a virtual card number by means of a control unit using blank card data stored in an IC chip (110) and displays the generated virtual card number on a display unit. Through this, the user can proceed with the online payment by verifying the virtual card number and providing it to a PG company server. That is, the user can proceed with the payment using the virtual card number with only a blank card, without the need for a dedicated program (21) embedded or installed in the user terminal, thereby enabling financial transactions that satisfy both security and convenience.
[0093] At this time, the display unit may include at least one of a liquid crystal display, a thin film transistor-liquid crystal display, an organic light-emitting diode, a flexible display, and an electronic paper (E-paper).
[0094] In one embodiment, when the battery embedded in the blank card device (100) is discharged and the blank card device (100) can no longer generate a virtual card number through the control unit, the blank card device (100) can perform financial transactions using a blank card method rather than an electronic device by utilizing the blank card data stored in the IC chip (110). For example, when performing an offline payment when the battery of the blank card device (100) is discharged, the blank card device (100) directly transmits the blank card number stored inside the IC chip to the POS device, and the financial institution server or token server performs a search for the actual card number using the blank card number. When performing an offline or online payment using a virtual card number when the battery of the blank card device (100) is discharged, the blank card device (100) transmits the blank card data to a dedicated program (21) via wireless communication, and the dedicated program (21) generates a virtual card number using the received blank card data and outputs it externally. That is, the user terminal with the dedicated program (21) installed outputs a virtual card number to the display unit when the user wants to perform an online payment, and outputs a QR code to the display unit or transmits the virtual card number to the IC chip, magnetic field generator, NFC module, etc. when the user wants to perform an offline payment.
[0095] FIG. 4 is a configuration diagram of a virtual card number generation device according to one embodiment of the present invention.
[0096] As illustrated in FIG. 4, the virtual card number generation device (200) includes a detailed code generation unit (210), a virtual card number generation unit (220), and a virtual card number providing unit (230).
[0097] In one embodiment, the virtual card number generating device (200) may be a user terminal (20) having a program (i.e., an application) installed to generate a virtual card number for financial transactions.
[0098] The detailed code generation unit (210) performs the role of generating one or more detailed codes based on blank card data provided via wireless communication from the blank card device (100).
[0099] The virtual card number generation function includes one or more detailed code generation functions. For example, if the virtual card number includes multiple detailed codes, the virtual card number generation function generates multiple detailed codes using multiple detailed code generation functions and generates the virtual card number using a detailed code combining function that combines the multiple detailed codes.
[0100] In one embodiment, the virtual card number generation device (200) may use a blank card serial number provided from a blank card as one of the seed data for the virtual card number generation function. As a specific example, the detailed code generation unit (210) generates each detailed code by using a single detailed code generation function to combine a blank card serial number provided from the blank card device (100) and a serial number of a blank card dedicated program (21) installed on the virtual card number generation device (200) (i.e., user terminal (20)) as seed data for each detailed code generation function. At this time, the detailed code generation unit (210) may also generate each detailed code by using the time when the user's payment is requested or a count value.
[0101] In one embodiment, the detailed code generation unit (210) may include a first function and a second function as detailed code generation functions to generate a first code and a second code. At this time, the virtual card number generation device (200) may include only a first function for generating a first code and a second function for generating a second code as detailed code generation functions to enhance security, and may not include data regarding the correlation between the first code and the second code.
[0102] The virtual card number generation unit (220) performs the role of generating a virtual card number by combining one or more detailed codes using a virtual card number generation function. In one embodiment, the virtual card number is generated by combining multiple detailed codes according to a specific rule. The virtual card number generation function includes a rule for combining multiple detailed codes (i.e., a detailed code combination function). That is, the virtual card number generation unit (220) can combine one or more detailed codes using the detailed code combination function included in the virtual card number generation function.
[0103] Various methods can be applied to generate a single virtual card number by combining multiple detailed codes. As an example of a detailed code combination function, the virtual card number generation unit (220) can generate a virtual card number by alternately arranging an N-digit first code and an N-digit second code. In addition, as another example, the detailed code combination function may be a function that combines a second code after a first code. As the number of detailed codes included in the virtual card number increases, the detailed code combination function can also be generated in various ways.
[0104] In addition, in one embodiment, when a virtual card number is generated as a combination according to specific rules of a first code and a second code, the first code and the second code can each perform a role of matching to a blank card to search for a blank card storage location where an actual card number is stored. For example, the first code sets a starting point for searching for a storage location, and the second code sets a search path from the starting point to the blank card storage location according to a specific search method. That is, when a virtual card number that has been successfully generated at each unit count is provided by the virtual card number generation device (200), the virtual card number verification device (300) determines that the point moved from the search starting point corresponding to the first code along the search path corresponding to the second code is the point connected to the actual card number storage area (blank card storage location). A specific method for searching for a blank card storage location based on the first code and the second code constituting the virtual card number will be described later.
[0105] In one embodiment of the method by which the detailed code generation unit (210) generates a detailed code, the detailed code generation unit (210) generates a new detailed code for every unit count, and accordingly, the virtual card number generation device (200) generates a new virtual card number for every unit count. The virtual card number newly generated for every unit count is not generated in duplicate. Specifically, the detailed code generation unit (210) can be configured so that the virtual card number newly generated for every unit count is not generated in duplicate for a specific user or a specific virtual card number generation device (200) for a set period, and is also not generated in duplicate among users belonging to a specific group.
[0106] As a specific embodiment for preventing duplicate generation of virtual card numbers, when generating an N-digit first code or second code using M characters, the detailed code generation function included in the virtual card number generation function is M N A number of codes can be generated as the first code or the second code, and each code is matched for each count from the initial point in time when the detailed code generation function is executed. For example, if the unit count is set to 1 second, a different M every second from the point in time when the detailed code generation function is first executed N Matches the codes. And, the period of using a specific detailed code generation function or the usage period of the virtual card number generation device (200) (for example, the validity period of a user terminal on which an application for generating virtual card numbers is installed) M N Time length corresponding to the count (e.g., if 1 count is 1 second, M N If the time length is set to be shorter than seconds, the same code is not duplicated during the usage cycle of the first code or the second code. That is, when the count increases as time passes, if a user contacts a blank card at a specific point in time and requests the virtual card number generation device (200) to generate a virtual card number, the virtual card number generation device (200) can generate a code value matched to the count corresponding to the specific point in time as the first code or the second code.
[0107] Specifically, when uppercase letters and numbers from 0 to 9 are used as characters that can be included in the code (i.e., 36 characters are used), and 6 digits are assigned to the first code and the second code respectively, the virtual card number generating device (200) uses 36 for the first code and the second code. 6 A number of codes can be provided. At this time, the virtual card number generation device (200) can match each code to each count and provide a changed first code and second code for each count.
[0108] As another specific embodiment for preventing duplicate generation of virtual card numbers, when the usage cycle of the virtual card number generation device (200) has elapsed, the function that generates the first code or the second code (i.e., the first function or the second function) is changed, or the matching relationship between the first code and the second code is changed so that a virtual card number different from the previous usage cycle is generated. When a virtual card number is formed by combining the first code generated by the first function and the second code generated by the second function, if the first code generation function or the second code generation function is changed, the virtual card number generation device (200) may apply a virtual card number generation function that generates a virtual card number different from the previous cycle to the new usage cycle, as the order in which the first code or the second code appears differs from the previous usage cycle. Additionally, the virtual card number generation device (200) can select a first function and a second function so that a code identical to the virtual card number used in the previous usage cycle does not appear as a virtual card number in each count within the new usage cycle (i.e., so that the matching relationship between the first code generated according to the first function and the second code generated according to the second function is not included among the matching relationships included in the previous usage cycle in all counts of the new usage cycle). That is, M N After a usage cycle in which codes can be applied once, a virtual card number generation function of a new usage cycle can be applied by adjusting or updating the virtual card number generation function so that virtual card numbers overlapping with the previous usage cycle are not generated.
[0109] In addition, as another specific embodiment for preventing duplicate generation of virtual card numbers, in order to prevent the same virtual card number from being generated at the same time even among users belonging to the same group (i.e., users using the same type of blank card), either the first code or the second code included in the virtual card number may be generated by reflecting a value (i.e., a device identification value) that always exists differently at the same time for at least each virtual card number generation device (200). In one embodiment, the device identification value may be the time (or count) elapsed from the time when a specific virtual card number generation device (200) is included in the group to which a specific detailed code generation function is applied (for example, the time when a specific blank card is registered to the specific virtual card number generation device (200) and the detailed code generation function begins to be applied after a specific time has elapsed from the initial time when the specific detailed code generation function was operated within the server (30)) until the present. If blank cards of the same type are grouped together, and there are multiple users who use blank cards of the same type, and the blank card used by each user is registered on each user terminal, if the count set for the blank card registered in the virtual card number generator (200) to belong to the corresponding group is not the same (i.e., if the blank card registered in the virtual card number generator (200) cannot belong to the corresponding group simultaneously), the elapsed time from the point in time (or count) when the blank card registered in the virtual card number generator (200) belongs to the group to a specific point in time will be different for each blank card (10). Accordingly, at least one of the detailed code generation functions can use the elapsed time from the point in time (or count) when the virtual card number generator (200) belongs to the group to a specific point in time as a device identification value, so that the virtual card number generated by each virtual card number generator (200) at each point in time is different. Through this, the virtual card number verification device (300) can distinguish the virtual card number generation device (200) by receiving the virtual card number without separately receiving data to distinguish the user.
[0110] In addition, as another embodiment, if there are multiple token service providers or each card company provides a blank card-based financial transaction service, each service server (i.e., each token service server or financial company server) uses a storage location search algorithm. At this time, multiple users using each service each use a blank card and register the blank card to the server at a specific time. When a user registers a specific blank card through a blank card dedicated program (21) for a specific service installed on a user terminal (20), the service server sets the count at which the blank card registration was requested (for example, the count at the time when the user terminal transmits blank card data to the server or the count at the time when the user terminal receives blank card data from the blank card) in the storage location search algorithm as the point connecting the actual card number storage space corresponding to the blank card. For example, if a time A has elapsed since the initial operation of the storage location search algorithm for a blank card-based financial transaction service used by a first user, and a second user using the same blank card-based financial transaction service requests registration of a blank card (10) used by a first user through the first user's user terminal (20) at a time B has elapsed since the initial operation of the storage location search algorithm, then even if the first user and the second user simultaneously request payment at time C (where C is greater than B) using their respective blank cards (10), the time length from the time of registration (A and B) of each blank card to the time of payment request (C) will always be different. Therefore, the detailed code generation function can prevent the same virtual card number from being generated at the same time by applying the time length elapsed since the time each blank card (10) is registered as a variable.
[0111] Therefore, since the length of time elapsed from the point in time when a blank card (10) used by a specific user is registered in the virtual card number generating device (200) (i.e., user terminal (20)) continues to increase as time passes, the detailed code (e.g., second code) generated by the specific virtual card number generating device (200) does not generate the same value but continues to generate different values.
[0112] In addition, as another specific embodiment for preventing duplicate generation of virtual card numbers, so that duplicate virtual card numbers do not occur regardless of the user throughout the entire cycle, the first code is set as a code value corresponding to the time (or count) at which a request for virtual card number generation is made among the codes matched for each count from the initial time when the first function is executed, and the second code is set as a code value generated by reflecting a value (i.e., device identification value) that always exists differently at the same time for each blank card (10), and the virtual card number can be used as a code value combined with the first code and the second code. Since the first code becomes a different code value for each count and the second code has a different code value for each blank card (10) at the same time, the virtual card number combined with the first code and the second code outputs a different code value for all blank cards (10) and at all times.
[0113] In addition, as another specific embodiment for preventing duplicate generation of virtual card numbers, the virtual card number generation function shifts the reference count that determines the first code and the second code to a count corresponding to an arbitrary time other than the time of the financial transaction request, and generates the first code and the second code based on the reference count determined at the time of the financial transaction request. As a specific example, the virtual card number generation device (200) sets the point moved by a code value generated by a specific OTP function from the time of blank card registration (i.e., the point where the storage space for the actual card number matched to the blank card is connected) or the time of the financial transaction request as the reference count, and generates the first code and the second code based on the set reference count.
[0114] In addition, as another embodiment, the virtual card number generation function (or detailed code generation function) applies one of a plurality of arrangement rules for arranging M characters in ascending order. That is, the virtual card number generation device (200) can apply various rules for arranging M characters in ascending order to the detailed code generation function included within the virtual card number generation function. For example, the arrangement rule for arranging uppercase letters in ascending order can be the general order A, B, C, … , Z, or the order A, C, B, … , Z. As the arrangement rule in the virtual card number generation function changes, the order in which codes are matched sequentially to each count from the initial point in time when the virtual card number generation function is operated changes.
[0115] The virtual card number providing unit (230) performs the role of providing the generated virtual card number to the outside.
[0116] In one embodiment, the virtual card number providing unit (230) outputs a virtual card number externally. For example, if a user wishes to perform an online payment based on a virtual card number, the virtual card number providing unit (230) outputs the virtual card number on the screen so that the user can visually check the virtual card number or copy and paste it into another program or webpage.
[0117] Additionally, for example, when a user intends to perform an offline payment using a user terminal (20), the virtual card number providing unit (230) outputs the virtual card number of the financial transaction request count through a means capable of transmitting the virtual card number within the user terminal to a POS device (e.g., an NFC module, a display module capable of displaying a QR code, an MST (Magnetic Secure Transmission) module, etc.).
[0118] In addition, in another embodiment, when a blank card is initially registered with a service server (e.g., a token service server or a financial institution server), the virtual card number providing unit (230) transmits all or part of the blank card data to the service server using the communication module of the user terminal (20). For example, as described below, in order to perform direct offline payment using the blank card, the virtual card number providing unit (230) transmits the blank card number to the service server at a specific time so that the blank card number is linked to the actual card number storage space, and sets the actual card number storage space to be linked from the count value corresponding to the specific time (i.e., the count value at which the blank card is registered).
[0119] In addition, in another embodiment, when a primary card connected to a blank card within a service server is changed, the virtual card number providing unit (230) transmits the virtual card number generated at that time and the primary card change request data to the service server using the communication module of the user terminal (20). For example, when a user performs a request to change the primary card from Card A to Card B in a blank card dedicated program (21), the virtual card number providing unit (230) transmits the primary card change request data, which includes the virtual card number corresponding to the time of the change request and Card B identification information, to the service server via wireless communication.
[0120] FIG. 5 is a configuration diagram of a virtual card number verification device according to one embodiment of the present invention.
[0121] As illustrated in FIG. 5, the virtual card number verification device (300) includes a virtual card number receiving unit (310), a detailed code extraction unit (320), a storage location search unit (330), a real card number storage unit (340), and a real card number extraction unit (350).
[0122] Here, the virtual card number verification device (300) means a server that extracts a real card number connected to a blank card based on a virtual card number or a blank card number, and performs a financial transaction with the real card number or requests a financial transaction with the real card number (for example, a server that requests payment by providing the extracted real card number to a PG company server or an acquirer server).
[0123] The virtual card number receiving unit (310) performs the role of receiving a virtual card number provided by the virtual card number providing unit (230). That is, as shown in FIG. 2, the virtual card number receiving unit (310) receives a virtual card number generated by the virtual card number generating device (200) through an external server (for example, an acquirer server connected to a POS device in the case of offline payment, or a PG company server in the case of online payment). Since the virtual card number is generated in the same format as the actual card number, the virtual card number receiving unit (310) can receive the virtual card number in the same way as in a general financial transaction.
[0124] Additionally, the virtual card number includes a fixed code corresponding to the virtual card number verification device (300), and the external server (i.e., the PG company server or the acquirer server) transmits the virtual card number to the service server. Through this, the virtual card number receiving unit (310) can receive the virtual card number to be used for searching for the actual card number from the external server (i.e., the PG company server or the acquirer server). As a specific example, by attaching the fixed code corresponding to the virtual card number verification device (300), which is a specific service server, at the same location with the same length as the issuer identification number of the actual card number, the external server (i.e., the PG company server or the acquirer server) can determine that the virtual card number must be transmitted to the virtual card number verification device (300), which is a specific service server.
[0125] The detailed code extraction unit (320) performs the role of extracting one or more detailed codes included in the virtual card number. In one embodiment, the detailed code extraction unit (320) extracts only the detailed code from a virtual card number that includes a fixed code.
[0126] In addition, in another embodiment, the detailed code extraction unit (320) of the virtual card number verification device (300) includes a detailed code combination function included in the virtual card number generation function for a specific blank card type. Accordingly, when a virtual card number includes multiple detailed codes, the detailed code extraction unit (320) can extract multiple detailed codes from the virtual card number by applying the detailed code combination function. For example, when the virtual card number generation device (200) generates a virtual card number in which two detailed codes (i.e., a first code and a second code) are combined, the detailed code extraction unit (320) can separate the first code and the second code by applying the detailed code combination function to the character array of the virtual card number.
[0127] The storage location search unit (330) performs the role of searching for a storage location where a blank card is registered within a storage location search algorithm based on one or more extracted detailed codes. Here, the storage location search algorithm is matched to the virtual card number generation function used when generating a virtual card number in the virtual card number generation device (200). Various methods may be applied to the method of searching for a blank card storage location based on each detailed code in the storage location search unit (330). In order for the storage location search unit (330) to search for a storage location based on multiple detailed codes, correlations between detailed codes may be included.
[0128] In an embodiment where the virtual card number is composed of a first code and a second code, and there is a correlation between the detailed codes, the storage location search unit (330) determines a search starting point corresponding to the first code and can find a point moved from the search starting point along a search path corresponding to the second code as a blank card storage location. That is, the detailed code may include a first code that sets the starting point for the storage location search and a second code that sets a search path from the starting point to the blank card storage location according to a specific search method.
[0129] In addition, as another embodiment, as the virtual card number generation device (200) provides a new virtual card number for each unit count, the virtual card number verification device (300) can search for a blank card storage location (i.e., a location where a blank card is registered) by setting a search starting point and a search path based on the first code and the second code that change for each count.
[0130] In addition, as another embodiment, the storage location search unit (330) may include a storage location search algorithm to find the storage location of a blank card using a plurality of detailed codes that have a correlation. The storage location search algorithm is an algorithm that enables the search of a storage location when each detailed code included in the virtual card number is applied, and is matched to the virtual card number generation function used when generating the virtual card number in the virtual card number generation device (200).
[0131] For example, if a virtual card number includes a first code that determines the search start point of a storage location and a second code that indicates the direction of the storage location from the search start point, the storage location search algorithm is an algorithm that adjusts such that when the direction corresponding to the second code is indicated at the point corresponding to the first code, a storage location matching the registration time of a blank card is placed at that location.
[0132] In addition, in one embodiment, the storage location search algorithm may have a user identification (UID) assigned to each storage location. That is, each storage location may include a user identification (UID), which is a code value that can identify each one. Specifically, the UID is a code value assigned to each storage location (i.e., each count where a blank card can be registered) in the storage location search algorithm for a blank card-based financial transaction service used by a user, and is a code value representing the count of a specific user's blank card (10) being registered. That is, the storage location search unit (300) can extract a blank card storage location based on a virtual card number and extract the UID of the blank card assigned to the storage location.
[0133] By using a storage location search algorithm, the virtual card number verification device (300) can find the storage location of the blank card (10) (i.e., the blank card registration count) or a point matched to the storage location even if the first code and the second code included in the virtual card number are changed. Various methods can be applied to the storage location search algorithm, and specific examples will be described later. However, the storage location search algorithm is not limited to the examples described later.
[0134] For example, referring to FIG. 7, the storage location search algorithm is M corresponding to the first code. N k-gons moving along a track with k codes listed (k is M N...and when the vertices of the k-gon move to correspond to the points where a code is placed on the first code track, each vertex of the k-gon matches the blank card storage location, and the point where the k-gon corresponds to the first code track (i.e., the first track) can become the starting point for searching the storage location corresponding to the first code. At this time, the storage location search unit (330) can apply cloud movement to the k-gon so that the vertices of the k-gon touch the point corresponding to the first code extracted by the detailed code extraction unit (320). Through this, the storage location search unit (330) [moves] an angle corresponding to the second code (for example, 180 degrees M toward the vertices of the k-gon) at the position on the first track where the k-gon touches N By specifying a (specific angle divided into) parts, the vertices of the k-gon, which are the storage locations where blank cards corresponding to virtual card numbers are stored, can be searched.
[0135] Specifically, as shown in FIG. 7, the virtual card number verification device (300) moves the k-gon to the point corresponding to the first code (i.e., moves it so that each vertex of the k-gon touches each point on the track in turn). Then, the virtual card number verification device (300) searches for the vertex corresponding to the storage location by indicating the angle direction corresponding to the second code.
[0136] The storage location search unit (330) searches for a blank card storage location or a blank card registration location using the first code and the second code within the virtual card number within the storage location search algorithm, and then extracts the UID stored therein.
[0137] Detailed explanations of various other storage location search algorithms will be provided later.
[0138] The actual card number storage unit (340) performs the role of storing actual card numbers by creating an actual card number storage space for each user or blank card. In one embodiment, the actual card number storage unit (340) includes an actual card number storage space in which one or more actual card numbers are stored. In addition, when multiple actual card numbers are stored, the actual card number storage unit (340) includes a card number storage area in which multiple actual card numbers are assigned identification numbers (for example, assigned identification numbers according to the order in which actual card numbers are registered) and stored, as shown in FIG. 14, and a basic card setting area that stores the identification numbers of actual card numbers set as basic cards (or default cards).
[0139] In addition, as another embodiment, the actual card number storage unit (340) may additionally include a seed data storage area for storing seed data used to generate a virtual security code when a virtual security code (e.g., OTP code) is utilized when generating a virtual card number. For example, the seed data storage area may store a combined serial number when a combined serial number formed by combining an application serial number and a blank card serial number is used to generate the virtual security code, which is an OTP code.
[0140] The actual card number storage space matched to a specific blank card of the actual card number storage unit (340) is connected to the UID (user identification) assigned to the blank card storage location searched by the storage location search unit (330).
[0141] The actual card number extraction unit (350) performs the role of extracting the actual card number stored in the searched actual card number storage space.
[0142] When each blank card (10) is registered, a storage space for actual card numbers is allocated, and one or more actual card numbers are stored in the storage space for actual card numbers. Accordingly, when a user requests payment using a blank card (10), the actual card number extraction unit (350) extracts the UID assigned to the blank card storage location searched based on the virtual card number, and searches for the actual card number storage space of the blank card connected to the UID. Subsequently, the actual card number extraction unit (350) extracts the actual card number stored in the searched actual card number storage space.
[0143] According to one embodiment, as shown in FIG. 14, the actual card number storage space has a separate area for storing information on a basic card (i.e., default card) (i.e., basic card setting area) and an area for storing each actual card number (i.e., card number storage area). When a payment request is received from a user terminal (20), the actual card number extraction unit (350) checks the identification information of the basic card in the basic card setting area and extracts the actual card number corresponding to the basic card from the card number storage area.
[0144] In addition, in another embodiment, the virtual card number verification device (300) further includes a blank card number receiving unit (360). The blank card number receiving unit (360) may be formed separately from the virtual card number receiving unit (310) or may be formed as a single unit.
[0145] For example, when the blank card number receiving unit (360) and the virtual card number receiving unit (310) are formed as one, the virtual card number receiving unit (310) receives a blank card number and a virtual card number from the acquirer server and the PG company server, and then performs subsequent procedures corresponding to the number type. That is, when the virtual card number receiving unit (310) receives a virtual card number, it transmits it to the detailed code extraction unit (320), and when it receives a blank card number, it transmits it immediately to the actual card number extraction unit (350) to extract the actual card number from the actual card number storage space connected to the corresponding blank card number within the actual card number storage unit (340).
[0146] In addition, in one embodiment, the virtual card number receiving unit (310) can distinguish between a blank card number and a virtual card number based on the path through which the blank card number and the virtual card number are obtained. For example, if offline payment cannot be performed using the virtual card number, the virtual card number receiving unit (310) can determine the code received by the offline payment process as a blank card number and determine the code received by the online payment process as a virtual card number.
[0147] Additionally, for example, the virtual card number receiving unit (310) can distinguish between a blank card number and a virtual card number through different fixed codes. In cases where offline payment can be performed using a virtual card number generated at a user terminal, the virtual card number receiving unit (310) cannot distinguish between the virtual card number and the blank card number solely through the process of inputting a code. Therefore, the blank card number and the virtual card number are configured to include different fixed codes, and the virtual card number receiving unit (310) can extract the fixed code from the received code, determine whether it is a fixed code for the virtual card number or a fixed code for the blank card number, and then perform subsequent procedures.
[0148] The actual card number storage space matched to a specific blank card of the actual card number storage unit (340) is connected to the blank card number of the blank card as well as the UID of the location where the blank card is stored within the storage location search algorithm. Through this, the blank card number receiving unit (360) receives the blank card number from an external server (e.g., an acquirer server that receives the blank card number from a POS device).
[0149] At this time, the actual card number extraction unit (350) searches for the actual card number storage space matched to the corresponding blank card within the actual card number storage unit (340) using the blank card number received from the blank card number receiving unit (360).
[0150] In addition, as another embodiment, the blank card number receiving unit (360) can block the payment process when a blank card number is received through an online payment process. Since payment using a blank card number is only possible during offline payment through a POS device, the blank card number receiving unit (360) may determine that the blank card number is an abnormal financial transaction request when it is used in an online payment and received through a PG company server, etc., and may not perform actual card number search.
[0151] In addition, as another embodiment of the present invention, the virtual card number verification device (300) includes a financial transaction request unit (370). For example, if the virtual card number verification device (300) is operated by a financial company that performs direct payment, the virtual card number verification device (300) proceeds with the direct payment procedure or transmits the actual card number and payment information to a separate payment server that performs the payment. In addition, for example, if the virtual card number verification device (300) is operated by a token service provider, the virtual card number verification device (300) can transmit the extracted actual card number to an external server (e.g., a PG company server or an acquirer server) or directly transmit the actual card number and payment information to a financial company corresponding to the actual card number.
[0152] FIG. 6 is a flowchart of a method for providing financial transactions using a blank card according to an embodiment of the present invention.
[0153] Referring to FIG. 6, a method for providing financial transactions using a blank card according to an embodiment of the present invention comprises the steps of: a server (30) receiving a virtual card number generated from a user terminal (20) (or a blank card dedicated program) (S500; virtual card number reception step); searching for a blank card storage location (i.e., blank card registration location) where a blank card (10) is registered based on the virtual card number (S600; storage location search step); searching for a real card number storage space connected to a UID assigned to the blank card storage location (S700; real card number storage space search step); extracting a real card number stored in the real card number storage space (S800; real card number extraction step); and performing a financial transaction with the extracted real card number (S900; financial transaction execution step). A detailed description of each step is provided below. However, specific disclosure of the details described above is omitted during the explanation process regarding the virtual card number generation device (200) (i.e., user terminal (20)) and the virtual card number verification device (300) (i.e., server (30)).
[0154] In step S500, the server (30) receives a virtual card number generated from a program (i.e., an application) included in the user terminal (20). Here, the virtual card number is generated by a virtual card number generation function within a blank card dedicated program based on blank card data provided via wireless communication from the user's blank card (10), and the blank card data is specific data assigned when the blank card (10) is manufactured, including the blank card number, serial number, etc. of the blank card.
[0155] According to one embodiment, a virtual card number may be generated based on time data when the user terminal (20) receives blank card data from the blank card (10) or time data when a payment request is made by the user terminal (20).
[0156] According to another embodiment, a virtual card number may be generated based on a combined serial number formed by combining a blank card serial number included in blank card data and a program serial number (i.e., an application serial number) included in a blank card dedicated program (210).
[0157] The user terminal (20) can generate a virtual card number based on the time data and the combined serial number by using a virtual card number generation function included in the blank card dedicated program (210). That is, the time data and the combined serial number are combined according to a specific rule to generate a virtual card number, and the generated virtual card number is provided to the server (30).
[0158] In one embodiment, the user terminal (20) can generate each detailed code by using a blank card dedicated program (21) to use a blank card serial number, a program serial number (i.e., an application serial number), and a combined serial number formed by combining the blank card serial number and the program serial number as seed data for each detailed code generation function.
[0159] In addition, in one embodiment, the user terminal (20) can generate each detailed code by using the time data received from the blank card (10) or the time data requested for payment by the user terminal (20) as seed data for each detailed code generation function using the blank card dedicated program (21).
[0160] When multiple detailed codes are generated using each detailed code generation function, the user terminal (20) can generate a virtual card number by combining multiple detailed codes using a detailed code combination function included in the virtual card number generation function. For example, the user terminal (20) generates a virtual card number by using a blank card dedicated program (21) and using the combined serial number generated from each detailed code and the time data for the payment request (or the time data for receiving blank card data) as seed data for the detailed code combination function.
[0161] In addition, virtual card numbers can be generated in various ways. That is, virtual card numbers can be generated by various virtual card number generation functions. A detailed description of generating virtual card numbers in various ways is redundant with the description above with reference to FIG. 4, so a specific disclosure is omitted.
[0162] Subsequently, in step S600, the server (30) searches for a blank card storage location where the blank card (10) is registered within a storage location search algorithm based on a virtual card number. Here, the storage location search algorithm is matched to a virtual card number generation function included in a blank card dedicated program (21) installed on a user terminal (20), and enables the search for a blank card storage location based on at least one detailed code within the virtual card number.
[0163] When the server (30) receives a request to register a blank card (10) through a user terminal (20), it stores the blank card at a specific point (count) corresponding to the time of registration of the blank card within a storage location search algorithm for the type of blank card, and links the blank card to a UID assigned to that point. The server (30) includes different storage location search algorithms for each type of blank card, so it determines the type of blank card requested for registration and stores the blank card within an appropriate storage location search algorithm. Then, it assigns a UID to the blank card storage location within the storage location search algorithm.
[0164] According to one embodiment, when a virtual card number is generated by combining a first code and a second code, the server (30) searches for a blank card storage location within a storage location search algorithm using the first code and the second code. For example, the first code may be a code that sets the starting point for searching for the blank card storage location within the storage location search algorithm, and the second code may be a code that sets a search path from the starting point to the blank card storage location according to a specific search method.
[0165] As illustrated in FIG. 7, the server (30) sets a location corresponding to the first code as the starting point and searches for a blank card storage location in the arrangement state of a k-gon or a point matched to the blank card storage location (i.e., a specific vertex of the k-gon) based on the second code according to the search method applied to the second code. The storage location is matched to each vertex of the k-gon. The point where the first code track (i.e., the first track) and the k-gon correspond becomes the starting point for searching for the storage location corresponding to the first code. From the starting point for searching, the server (30) searches for a matching point of the blank card storage location based on the second code.
[0166] Various methods can be applied to search for a storage location in a k-gon based on the second code. For example, the server (30) [applies] an angle corresponding to the second code (e.g., 180 degrees M toward the vertex of the k-gon) at a position on the first track adjacent to the k-gon. N By specifying a particular angle (divided into parts), the vertices of the k-gon, which are the storage locations where blank cards are stored, can be searched based on the virtual card number.
[0167] Also, as another example, when the k-gon is in contact with a point corresponding to the first code on the first track, the server (30) [calculates] the entire central angle (i.e., 360 degrees) M based on the center of the k-gon and the point of contact on the first track. N Divide into parts, and each angle is M N Matches to the second code. At this time, a specific number of unit angles (i.e., 360 degrees / M) from the line connecting the center of the k-gon and the point of tangency on the first track N The direction of the line that moves ) becomes a specific vertex of the k-gon. Therefore, when a second code corresponding to a specific angle is received, the server (30) can search for a vertex located in the direction of that angle.
[0168] In addition, as another example, a specific digit of the second code can be used to determine the direction of angle calculation. That is, when generating the second code using N characters (N is a natural number), the direction of angle measurement can be determined with one digit. For example, when the server (30) divides the entire central angle (i.e., 360 degrees) based on the center of the k-gon and the point of contact on the first track and matches the second code to each angle, it can determine with one digit whether the angle is measured to the left or to the right from the line connecting the center of the k-gon and the point of contact on the first track.
[0169] For example, the storage location search algorithm can assign two different second codes to each vertex of a k-gon depending on the angle measurement direction. That is, when reaching a vertex via an interior angle and when reaching a vertex via an exterior angle, it is matched with a different second code, and the storage location of a different blank card can be connected. As another example, when generating a second code using N characters (N is a natural number), the storage location search algorithm can match half of the total angle (e.g., 360 degrees when divided based on a central angle) with N-1 characters and determine the angle application direction to reach each vertex using one character.
[0170] The method of searching for a storage location in a k-gon based on the second code is not limited to this, and various methods may be applied, such as a method of searching for a storage location by dividing the point on the k-gon corresponding to the second code and the point of contact on the first track by a specific ratio.
[0171] According to another embodiment, when the virtual card number includes a first code and a second code that change every unit count, the first code is generated based on the unit count elapsed from the initial time when the server (30) started issuing blank cards, and the second code is generated based on the unit count elapsed from the time when each user registered a blank card through a blank card dedicated program (21) installed on a user terminal (20). At this time, the unit count is set to a specific time interval and changes as the time interval elapses.
[0172] As illustrated in FIG. 8, the storage location search algorithm moves along the track based on a plurality of detailed codes constituting a virtual card number and moves to a point matched to the blank card storage location.
[0173] Specifically, when the virtual card number includes a first code based on the unit count elapsed from the initial point in time when the storage location search algorithm started as the card company launched a blank card-based service, and a second code generated based on the unit count elapsed from the point in time when each user registered a blank card (10) through a blank card dedicated program (21) installed on a user terminal (20), as shown in FIG. 8, the server (30) sets the count on the track where the code value corresponding to the first code is matched as the search start point, and searches for a point on the track at the time when the blank card (10) was registered to the server (30) by the count value corresponding to the second code along the track from the search start point. For example, the server searches for a point (or count) where the first code within the virtual card number is assigned in the first code track to set a search start point, and arranges a second code track in reverse from the search start point to search for a point (or count) where the second code within the virtual card number is assigned to extract a point (or count) where a blank card is registered on the first code track. In addition, for example, the server sets a search start point based on the first code within the virtual card number, and searches for a point corresponding to the time of blank card registration by regressing by the count value calculated by applying the inverse function of the second function to the second code within the virtual card number.
[0174] In addition, in another embodiment, the first code and the second code may be codes for a reference count that is added by an amount of OTP code randomly generated from the time when a blank card is registered at the user terminal (20) or when a financial transaction is requested (e.g., the time when the user terminal receives blank card data from the blank card or the time when the user terminal generates a virtual card number from the blank card data).
[0175] In a specific embodiment, the virtual card number generation means generates the virtual security code by reflecting it in the first code and the second code without outputting it externally. As shown in FIG. 13, the virtual card number generation means (e.g., a blank card dedicated program) generates a virtual security code value (e.g., an OTP code) based on a serial number (e.g., a unique value) within the virtual card number generation device (e.g., a smart terminal) and a part of the serial number of the blank card or a combination of the blank card serial number and the application serial number, generates a first code with a count obtained by adding the virtual security code value at the time of blank card registration, and generates a second code with a count corresponding to the virtual security code value (e.g., the virtual security code itself is generated as the second code). That is, the first code and the second code are generated based on a count that has shifted by the virtual security code value from time A, when the blank card (10) is registered with the server (30) by the user terminal (20). The count shifted from point A may be an earlier count or a later count than the count corresponding to the current point, depending on the generated virtual security code value. The server, which is a virtual card number verification means, can search for the blank card storage location (or registration location) by applying the received first code and second code to a storage location search algorithm. Through this, security can be enhanced as others cannot verify the order in which the first code and second code constituting the virtual card number are provided.
[0176] In addition, in another embodiment, a server that is a virtual card number verification means extracts a virtual security code from a second code generated based on a virtual security code, and then checks whether there is a value matching the virtual security code among the OTP numbers calculated by inputting a count within a specific range from the count of receiving the virtual card number into a virtual security code generation function (i.e., an OTP function). The server that is a virtual card number verification means obtains the virtual security code value (i.e., the OTP function value) used to generate the second code by applying the inverse function of the second function to the second code, and finds a count that produces a value identical to the virtual security code value. Since there is a difference between the time when the virtual security code is generated by the virtual card number generation means and the time when the virtual card number verification means receives the virtual security code due to the transmission time or delay of the virtual card number, the count of receiving the virtual card number by the virtual card number verification means and the count of generating the OTP number corresponding to the virtual security code may not match; therefore, the server allows an error range from the count of receiving the virtual card number. Through this, the server can prevent attempts to perform financial transactions using a previously generated virtual card number instead of the one currently generated, thereby enhancing security. Additionally, when entering the virtual card number, the server can automatically search for and verify the user's terminal without the user having to input a specific number of digits of virtual security code.
[0177] In addition, in another embodiment, the virtual card number generation means generates a first code corresponding to a count obtained by adding a virtual security code value generated using a combination of or part of the serial number of the user terminal or the blank card dedicated program (i.e., unique value) and the serial number of the blank card as seed data at the time when a financial transaction is requested, and generates a second code corresponding to a count obtained by adding the virtual security code value and the difference in count between the blank card registration time (time A) and the financial transaction request time (time C). That is, the formula for the blank card dedicated program to generate the first code and the second code is as follows.
[0179] 1st Code = f1(C time count + virtual security code)
[0180] Second Code = f2(Count at Time C - Count at Time A + Virtual Security Code)
[0181] (Point A: Time of blank card registration, Point C: Count of time of financial transaction request, Virtual Security Code: OTP number)
[0183] A server (30), which is a virtual card number verification means, searches for a real card number storage space based on the first code and the second code within the received virtual card number, and extracts seed data included together in the real card number storage space (i.e., a combination serial number formed by combining the serial number of a blank card dedicated program or user terminal, the blank card serial number, the blank card dedicated program serial number, and the blank card serial number, which is used when generating a virtual card number). Based on the seed data, the server generates a virtual security code (i.e., an OTP number) within a specific count range from the time of receiving a financial transaction request.
[0184] Subsequently, the server identifies the blank card registration time (Time A) by searching for the point where the actual card number storage space is matched based on the first and second codes. From the blank card registration time (Time A) to the time of receiving the financial transaction request, the server calculates a value corresponding to the sum of the counts up to each count within a specific count range and the virtual security code (i.e., OTP number), and checks whether there exists a count among these calculated values that is equal to the count corresponding to the second code (i.e., the value obtained by applying the inverse function of the second function to the second code). Through this, the server can verify whether the user terminal that provided the virtual card number has been issued successfully.
[0185] Subsequently, in step S700, the server (30) searches for a storage space for actual card numbers connected to a user identification (UID) assigned to the storage location of the searched blank card (10). Here, the storage space for actual card numbers stores the user's actual card numbers and is connected to the UID of each blank card. That is, when the user requests the storage of one or more actual cards through the blank card dedicated program (21) of the user terminal (20), the server (30) stores one or more actual card numbers in the storage space for actual card numbers of the blank card.
[0186] Subsequently, in step S800, the server (30) extracts the actual card number stored in the actual card number storage space. A detailed explanation of the method by which the server (30) extracts the actual card number from the actual card number storage space will be provided later.
[0187] Subsequently, in step S900, the server (30) proceeds with a financial transaction using the extracted actual card number or requests a financial transaction. That is, if the server (30) is a financial institution server, it can complete a payment using the extracted actual card number, or if the server (30) is a token service server, it can request a payment using the extracted actual card number from the financial institution server.
[0188] FIG. 9 is a flowchart of a method for providing financial transactions using a blank card, including a blank card registration process according to one embodiment of the present invention.
[0189] Referring to FIG. 9, a method for providing financial transactions using a blank card according to one embodiment of the present invention further includes a blank card registration process. That is, the method for providing financial transactions using a blank card further includes the step (S100) of a server (30) receiving a request for blank card registration from a user terminal (20), the step (S200) of the server (30) searching for a specific blank card storage location within a storage location search algorithm based on the time at which the blank card registration request is received, and the step (S300) of the server (30) connecting a UID or blank card number assigned to the blank card storage location to a specific actual card number storage space and assigning a specific actual card number storage space to the blank card requested for registration or the user of the said blank card.
[0190] In step S100, the server (30) receives a request for blank card registration by receiving a blank card number and a combined serial number from the user terminal (20). That is, in order to register the purchased blank card (10) through a blank card dedicated program (i.e., an application) embedded or installed in the user terminal (20), the user terminal (20) receives blank card data from the blank card (10) via wireless communication (e.g., via NFC communication as the blank card is contacted). Here, the blank card data is data stored in the IC chip (110) of the blank card (10) and may include the blank card number, serial number, etc. of the blank card. Subsequently, the user terminal (20) generates a combined serial number by combining the blank card serial number provided from the blank card (10) and the application serial number embedded or installed in the user terminal (20), and requests the registration of the blank card (10) by providing the generated combined serial number and blank card number to the server (30).
[0191] Subsequently, in step S200, the server (30) searches for a specific storage location within the storage location search algorithm based on the time when the blank card registration request is received. That is, the server (30) searches for a location corresponding to the time when the registration request was made on the track of the storage location search algorithm corresponding to a specific blank card-based financial transaction service. The server may pre-assign a UID to a location corresponding to the time (or count) when the blank card registration is requested, or it may generate and assign a specific code UID when the blank card is registered.
[0192] Subsequently, in step S300, the server (30) links a specific actual card number storage space to the UID or blank card number assigned at the location corresponding to the time when the registration request is made from the user terminal, thereby granting the actual card number storage space to the registered blank card or the user holding the blank card. That is, the server (30) links the actual card number storage space to the UID for a payment process using a virtual card number, and links the corresponding actual card number storage space to the blank card number of the blank card for offline payment using the blank card itself. That is, the server (30) extracts the actual card number from the actual card number storage space linked to the UID or blank card number, thereby enabling online or offline payment to proceed.
[0193] Afterwards, the server (30) proceeds with payment using the UID according to the steps illustrated in FIG. 6, and a detailed explanation of this is omitted as it overlaps with the explanation above with reference to FIG. 6.
[0194] Additionally, since the server (30) links the blank card number itself to the card number storage space matched to the blank card, even if the server (30) cannot receive the virtual card number generated from the user terminal (20) because the user requests payment using the blank card (10) through the POS device offline, the server (30) can search for the actual card number storage space linked to the blank card number provided through the acquirer server. The server (30) can make a payment request or proceed with payment using the actual card number set as the default card within the actual card number storage space.
[0195] At this time, the server (30) can improve security and prevent crime by blocking the payment request when a blank card number, rather than a virtual card number, is received through the online payment process (i.e., when a blank card number is provided through a PG company).
[0196] FIG. 10 is a flowchart of a method for providing financial transactions using a blank card, comprising the process of storing one or more actual card numbers in an actual card number storage space assigned to a blank card according to an embodiment of the present invention.
[0197] Referring to FIG. 10, a method for providing financial transactions using a blank card according to one embodiment of the present invention further includes the step (S400) of storing one or more actual card numbers in an actual card number storage space.
[0198] In step S400, the server (30) receives one or more actual card numbers from the user terminal (20) and stores them in the actual card number storage space. The server (30) may receive actual card information from the user through an application embedded or installed on the user terminal (20) (i.e., a dedicated program for a blank card-based service). In one embodiment, the user may provide the actual card number to the server (30) by photographing the actual card, and in another embodiment, the actual card number may be provided by inputting it. At this time, security can be enhanced by providing the actual card number as an image, displaying only some digits of the actual card number, or providing it as an identification number of the actual card number on the application embedded or installed on the user terminal (20) (i.e., a dedicated program for a blank card-based service).
[0199] Specifically, the server (30) receives a virtual card number from the user terminal (20) to search for a storage space for actual card numbers corresponding to a blank card, and receives an actual card number to be additionally registered. Through this, the server (30) searches for a blank card storage location using multiple detailed codes within the virtual card number to extract a UID, and searches for a storage space for actual card numbers based on the UID. The server (30) adds the new actual card number received from the user terminal (20) to the card number storage area within the actual card number storage space.
[0200] In addition, according to one embodiment, the server (30) can double security by encrypting and storing the actual card number in the card number storage area.
[0201] FIG. 11 is a flowchart of a method for providing financial transactions using a blank card, comprising the process of setting a basic card among a plurality of actual card numbers stored in an actual card number storage space assigned to a blank card according to an embodiment of the present invention.
[0202] Referring to FIG. 11, a method for providing financial transactions using a blank card according to one embodiment of the present invention further includes the step (S420) of receiving a request to set a specific actual card number among a plurality of actual card numbers as the basic card.
[0203] In step S420, if multiple actual card numbers are stored in the actual card number storage space, the server (30) may request the user to set a default card. When the server (30) receives a request from the user terminal (20) to set a specific card among multiple actual cards as the default card (i.e., default card) along with a virtual card number (for example, when the user selects an actual card to be set as the default card from among multiple actual card images displayed in a blank card dedicated program within the user terminal, the server (30) receives an identification number corresponding to the selected actual card), the server (30) searches for the UID of the blank card based on the virtual card number and extracts the actual card number storage space connected to the UID. Subsequently, the server (30) stores the identification number corresponding to the default card requested for setting (i.e., identification information of the default card) in the default card setting area.
[0204] For example, if the server (30) wants to set an actual card with identification number '1' as the default card, the server (30) stores '1' as the identification information of the default card in the default card setting area. Subsequently, when a payment request is received from the user terminal (20), the server (30) checks the identification information of the default card, e.g., '1', in the default card setting area and extracts the actual card number corresponding to identification number '1' from the card number storage area.
[0205] According to one embodiment, when only one actual card number is stored in the card number storage area, the server (30) can store the actual card number as the primary card and proceed with financial transactions.
[0206] FIG. 12 is a flowchart of a method for providing financial transactions using a blank card, including a process for changing a basic card (i.e., a default card) according to one embodiment of the present invention.
[0207] Referring to FIG. 12, a method for providing financial transactions using a blank card according to an embodiment of the present invention includes the step (S440) of a server (30) receiving a request to change a default card (i.e., default card) from a user terminal (20), and the step (S460) of changing the default card to the requested actual card number among one or more actual card numbers stored in an actual card number storage space.
[0208] In step S440, if the user wishes to change the default card for payment among the actual cards stored in the blank card, the user requests the server (30) to change the default card along with a virtual card number. Here, the user selects the default card through an application built into or installed on the user terminal (20) (i.e., a dedicated program for the blank card-based service), and the user may request the change of the default card by selecting an image of the card or an identification number.
[0209] Subsequently, in step S460, the server (30) searches for the UID of the blank card (10) based on the virtual card number, extracts the actual card number storage space connected to the UID, and changes the default card within the actual card number storage space. For example, if the identification number of the card previously set as the default card is '1' and the identification number of the default card requested to be changed by the user is '3', the server (30) stores '3' in the default card setting area. Subsequently, when a payment request is received from the user terminal (20), the server (30) checks the identification information of the default card, for example, '3', in the default card setting area and extracts the actual card number corresponding to the identification number '3' from the card number storage area.
[0210] In addition, as another embodiment, the server (30) can connect a plurality of blank cards to a single actual card number storage space. That is, the first blank card and the second blank card can be connected to a single actual card number storage space within the server (30) for use.
[0211] Specifically, when multiple blank cards are connected to the same actual card number storage space, the server (30) receives a virtual card number (i.e., the first virtual card number) for a first blank card that has already been registered from the user terminal (20), searches for a UID, and searches for a specific actual card number storage space. That is, the actual card number storage space searched using the first virtual card number is connected to the first blank card number and the first UID. After that, the server (30) receives a second blank card number or a second combination serial number generated based on the second blank card data of the second blank card from the user terminal (20). After that, the server (30) connects the second blank card number or the second UID to the actual card number storage space connected to the first blank card number and the first UID. That is, if the user and their family wish to perform financial transactions using blank cards, the user can connect the second blank card to the actual card number storage space that stores one or more actual card numbers connected to the first blank card and use it. Specifically, when a user who is using a previously registered first blank card wishes to purchase and additionally register a second blank card, the server (30) receives a virtual card number for the first blank card from the user terminal (20), searches for the UID of the first blank card, and searches for the actual card number storage space of the first blank card. Then, the server (30) assigns a second UID on a storage location search algorithm corresponding to the second blank card type based on a second combination serial number generated based on the second blank card data and a count value at the time of the second blank card registration request. Then, by connecting the actual card number storage space of the first blank card found to the second blank card number or the assigned second UID, the server (30) enables the user to conveniently use multiple blank cards by registering them in a single actual card number storage space without the need to separately create an actual card number storage space for the second blank card.
[0212] Additionally, according to one embodiment, when multiple blank cards are connected to a single actual card number storage space, a default card may be set differently for each blank card. That is, in one embodiment, when multiple actual card numbers are stored in the actual card number storage space, the server (30) may set a single default card (i.e., default card) for the first blank card and the second blank card, or may set a default card for each blank card. At this time, the default card setting area stores default card identification information for each blank card, and the server can extract default card identification information corresponding to the blank card used when performing payment using each blank card.
[0213] For example, if four actual card numbers with identification numbers 1, 2, 3, and 4 are stored in the actual card number storage space, the default card of the first blank card can be set as the card with identification number 1, and the default card of the second blank card can be set as the card with identification number 3. According to another embodiment, the default card can be set by distinguishing the two blank cards for online use and offline use. Accordingly, since the purpose of each blank card is distinguished and financial transactions can be performed with the actual card set according to the purpose, efficient consumption management becomes possible.
[0214] In one embodiment of the present invention, the virtual card number receiving step (S500) is such that when the blank card dedicated program (21) within the user terminal (20) is set to a mode for storing blank card data provided from the blank card (10), the server (30) can receive a virtual card number generated using a combination serial number previously generated and stored in the user terminal (20) from the user terminal (20).
[0215] According to one embodiment, the server (30) can proceed with payment according to the first mode or the second mode.
[0216] The first mode is a mode in which, whenever a user requests payment, a blank card (10) is touched to the user terminal (20), and the user terminal (20) generates a new combination serial number each time, and a virtual card number is generated using the generated combination serial number to proceed with the payment. When payment is performed using the first mode, security is further enhanced because a virtual card number is generated using a new combination serial number each time.
[0217] On the other hand, the second mode is a mode in which payment is performed by generating a virtual card number using a combination serial number previously generated and stored in the user terminal (20), without the need to touch the blank card to the user terminal (20), because blank card data provided from the blank card (10), namely the blank card number and serial number, is stored in the user terminal (20). When payment is performed using the second mode, convenience is further enhanced because payment can be performed using only the application installed on the user terminal (20) without the need to carry a blank card.
[0218] In addition, a method for providing financial transactions using a blank card according to one embodiment of the present invention may further include the step of the server (30) searching for a real card number storage space based on a virtual card number or UID transmitted from a user terminal (20) and releasing the connection relationship with the corresponding blank card number.
[0219] For example, if a blank card (10) is lost, the connection between the blank card number and the card number storage space must be disconnected to prevent a third party from requesting an offline payment using the lost blank card (10). Accordingly, the server (30) can search for the actual card number storage space of the blank card based on the virtual card number or UID transmitted from the user terminal (20) in response to a user's request, and disconnect the connection between the blank card number and the searched actual card number storage space.
[0220] Specifically, when the user terminal (or blank card dedicated program) stores a UID, the server (30) searches the card number storage space upon receiving the UID from the user terminal (20), and can exclude the received UID and the corresponding blank card number from the data that can be searched in the actual card number storage space. Additionally, as another example, when the user terminal (or blank card dedicated program) does not store a UID, the server (30) receives a virtual card number for a blank card that intends to disconnect the connection if the user terminal is set to the second mode, and can exclude the UID searched by the virtual card number and the corresponding blank card number from the data that can be searched in the card number storage space.
[0221] The method for providing financial transactions using a blank card according to one embodiment of the present invention described above may be implemented as a program (or application) and stored on a medium to be executed in combination with a computer, which is hardware.
[0222] The aforementioned program may include code encoded in computer languages such as C, C++, JAVA, Ruby, and machine language, which can be read by the computer's processor (CPU) through the computer's device interface, in order for the computer to read the program and execute the methods implemented in the program. Such code may include functional code related to functions that define the necessary functions for executing the methods, and may include control code related to execution procedures necessary for the computer's processor to execute the functions according to a predetermined procedure. Additionally, such code may further include memory reference code regarding where (address) additional information or media necessary for the computer's processor to execute the functions should be referenced in the computer's internal or external memory. In addition, if the processor of the computer needs to communicate with any other computer or server located remotely in order to execute the above functions, the code may further include communication-related code regarding how to communicate with any other computer or server located remotely using the communication module of the computer, and what information or media to transmit or receive during communication.
[0223] The above-mentioned storage medium refers to a medium that stores data semi-permanently and is readable by a device, rather than a medium that stores data for a short period of time, such as a register, cache, or memory. Specifically, examples of the above-mentioned storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device. That is, the above-mentioned program may be stored on various recording media on various servers that the computer can access, or on various recording media on the user's computer. Additionally, the above-mentioned medium may be distributed across networked computer systems, and computer-readable code may be stored in a distributed manner.
[0224] Although embodiments of the present invention have been described above with reference to the attached drawings, those skilled in the art will understand that the present invention may be implemented in other specific forms without altering its technical concept or essential features. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive. Explanation of the symbols
[0225] 10 : Blank card 100 : Blank card device 110 : IC chip 120 : Communications Department 20 : User terminal 200 : Virtual card number generator 210 : Detail Code Generation Section 220 : Virtual Card Number Generation Unit 230 : Virtual Card Number Provisioning Office 30 : Server 300 : Virtual card number verification device 310 : Virtual Card Number Receiver 320 : Detail Code Extraction Unit 330 : Storage location search unit 340 : Actual card number storage unit 350 : Actual card number extraction unit 360 : Blank card number receiver 370 : Financial Transaction Request Department
Claims
Claim 1 A method for generating a virtual security code for user authentication, comprising: a step of receiving card data from a card held by the user through card tagging, wherein the card data is applied to a stored virtual security code generation function to generate a virtual security code; and a step of transmitting a virtual code generated based on the virtual security code to a verification server to request authentication of the user; wherein the virtual security code is a code generated at a specific time based on at least one identification code and is generated by changing every unit count, and the virtual code is a value unique to the user as it changes every unit count by the virtual security code, and the unit count is set to a specific time interval and changes as the time interval elapses, and the virtual security code is generated by combining the card data and the unique value of the smart device and inputting it into the virtual security code generation function. Claim 2 A method for generating a virtual security code for user authentication, wherein, in the case of claim 1, the identification code is a plurality of times, the virtual security code is generated by a combination of the plurality of identification codes having a correlation with each other. Claim 3 A method for generating a virtual security code for user authentication according to claim 2, wherein the first code among the plurality of identification codes represents a search starting point for user authentication information, and the second code among the plurality of identification codes represents a search path from the search starting point to the location where the user authentication information is actually stored. Claim 4 A method for generating a virtual security code for user authentication according to claim 3, wherein the user authentication information is searched by the verification server based on the first code and the second code, and the user authentication is performed based on the searched user authentication information. Claim 5 A method for generating a virtual security code for user authentication, wherein, in claim 1, the virtual security code is a variable code generated based on at least one of a first time data representing the time at which the card data was received and a second time data representing the time at which the user authentication was requested. Claim 6 delete Claim 7 A method for generating a virtual security code for user authentication according to claim 3, wherein the verification server searches for a card storage location in which the card is registered within a storage location search algorithm matched to the virtual security code generation function based on the virtual security code, the verification server extracts user authentication information using a UID (user identification) assigned to the searched card storage location, and performs user authentication using the extracted user authentication information. Claim 8 A program stored on a computer-readable recording medium to execute the method of any one of claims 1 through 5 and 7, combined with a computer which is hardware. Claim 9 A smart device comprising: a generation unit that generates a virtual security code by applying the card data to a stored virtual security code generation function when card data is received from a card held by a user through card tagging; and a provision unit that requests authentication of the user by transmitting a virtual code generated based on the virtual security code to a verification server; wherein the virtual security code is a code generated at a specific time based on at least one identification code and is generated by changing every unit count, and the virtual code is a value unique to the user as it changes every unit count by the virtual security code, and the unit count is set to a specific time interval and changes as the time interval elapses, and the virtual security code is generated by inputting the card data and the unique value of the smart device into the virtual security code generation function. Claim 10 A virtual security code generation system for user authentication comprising: a smart device that, when card data is received from a card held by a user through card tagging, applies the card data to a stored virtual security code generation function to generate a virtual security code and transmits a virtual code generated based on the virtual security code to request authentication of the user; and a verification server that receives the virtual code from the smart device and verifies the received virtual code to perform authentication of the user; wherein the virtual security code is a code generated at a specific time based on at least one identification code and is generated by changing every unit count, the virtual code is a value unique to the user as it changes every unit count by the virtual security code, the unit count is set to a specific time interval and changes as the time interval elapses, and the virtual security code is generated by inputting the unique value of the card data and the smart device into the virtual security code generation function.
Citation Information
Patent Citations
Authentication system and authentication method using card medium
KR1020150032682A
Method for payment using card, digital system, and settlment side system thereof
KR1020150072955A
Method, server and device for certification
KR1020150106198A