Smart card for generating and providing virtual code, and method and program thereof

By generating and providing virtual codes by smart cards, using time measurement modules and fingerprint recognition technology, card number leakage problem is solved, ensuring the security of the payment process and system compatibility.

JP7626741B2Active Publication Date: 2025-02-04SSENSTONE INC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2022195446
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-08-02
Filing Date
2022-12-07
Publication Date
2025-02-04
Estimated Expiration
2039-08-06

AI Technical Summary

Technical Problem

In the prior art, card number information is easily leaked, especially during the payment process, the actual card number is leaked visually or magnetically, and it is difficult to effectively protect card number security when used in multiple fields.

Method used

Smart cards are used to generate and provide virtual codes. By receiving external power supplies, the time measurement module is used to generate non-repetitive virtual codes. Combined with fingerprint recognition and virtual code verification servers, we ensure that the virtual code matches the actual card number and provide a virtual card number or virtual token to replace the actual card number.

Benefits of technology

Effectively prevent actual card numbers from leaking, maintain security in the payment process, and do not need to change the existing payment system, reduce security transformation steps, and improve the security of the payment process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007626741000001
    Figure 0007626741000001
  • Figure 0007626741000002
    Figure 0007626741000002
  • Figure 0007626741000003
    Figure 0007626741000003
Patent Text Reader

Abstract

A smart card and method and program for generating and providing virtual codes are provided. [Solution] A smart card (100) for generating and providing a virtual code includes a communication interface (110) that receives a first power supply from an external device and can communicate with the external device, a time measurement module (120) that acquires time data, a virtual code generator (130) that generates a virtual code based on the time data, and a virtual code provider (140) that provides the virtual code to the outside. The virtual code is generated based on at least one detailed code that is matched to the real code by a pre-stored virtual code generation function, and is used for authentication based on the real code in a virtual code verification server.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a smart card and a method and program for generating and providing a virtual code, and more particularly to a smart card and a method and program for generating and providing a virtual code that is generated so as not to overlap at each point in time and that can be provided to an external party for making a payment. [Background technology]

[0002] Coded data is used in many areas, including card numbers and account numbers used for payment, IPIN numbers for user identification, and resident registration numbers (the Korean version of My Number).

[0003] However, many data leaks occur when using this code data. In the case of card numbers, the actual card number is written on the front of the card and can be visually leaked to others, and when making a payment using a magnetic strip, the card number is transmitted as is to the POS device, resulting in data leaks.

[0004] There have been many attempts to use virtual card numbers to prevent actual card numbers from being leaked, but data to identify the user is required to search for the actual card number that corresponds to the virtual card number. For example, in the case of OTP (One Time Password), a password that is valid only once is generated each time, but a login procedure is required to determine the algorithm assigned to the user, making it difficult to apply to various fields.

[0005] On the other hand, an IC card (Integrated Circuit Card) is a card with a semiconductor memory storage element (IC memory) inserted into a credit card, cash card, etc. An IC card is equipped with an IC connector or antenna that can communicate with external devices to transmit the information stored in the IC memory, and is either inserted into a card reader or uses short-range wireless communication technology. Summary of the Invention [Problem to be solved by the invention]

[0006] Therefore, the present invention has been made in consideration of the above circumstances, and its object is to provide a smart card, a method and a program thereof, which generate and provide a virtual code that can search for an actual card number without exposing the actual card information when making a payment using the card.

[0007] Another object of the present invention is to provide a smart card, a method and a program thereof, which generates and provides a virtual code that is not generated redundantly each time a payment using the smart card is requested.

[0008] Furthermore, another object of the present invention is to provide a smart card, a method and a program thereof, which generates and provides a virtual code that can be used in place of actual card information while maintaining existing payment systems and devices.

[0009] The problems to be solved by the present invention are not limited to those mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description. [Means for solving the problem]

[0010] A smart card for generating and providing a virtual code according to one aspect of the present invention for solving the above-mentioned problems includes a communication interface that receives a first power source from an external device and can communicate with the external device, a time measurement module that measures time data from an initial time value assigned based on a specific point in time, a virtual code generation unit that generates a virtual code based on a time count counted based on the time data using the first power source, and a virtual code providing unit that provides the virtual code to an external device, wherein the virtual code is a virtual card number or a virtual token, and is generated as a code matching an actual card number by a virtual code generation function pre-stored in the smart card, and is used to search for the actual card number in a virtual code verification server, and the time measurement module includes a clock that measures the time data, and a clock battery that supplies a second power source to the clock.

[0011] The communication interface further includes one or more of an IC connector or an antenna, and when the smart card is of a contact type, the IC connector comes into physical contact with the external device to receive a first power source from the external device, and when the smart card is of a non-contact type, the antenna does not come into physical contact with the external device to receive a first power source from the external device.

[0012] Furthermore, the external device is a user terminal, and the first power source is supplied by tagging a smart card to the user terminal.

[0013] The virtual code providing unit may include a display unit, and may output the virtual code to the display unit as a code value or an image code.

[0014] The device further includes a fingerprint recognition unit that recognizes a user's fingerprint to confirm usage authority, and the virtual code generation unit generates a virtual code only when the fingerprint recognized through the fingerprint recognition unit matches pre-registered fingerprint information.

[0015] In addition, the first time count measured by the time measurement module is verified to be consistent with the second time count measured by the virtual code verification server, and is determined to be consistent if the difference between the first time count and the second time count is within a specific error range.

[0016] Furthermore, the virtual code verification server stores and manages a time correction value in a unit counter that matches the actual card number, the time correction value is determined based on an error history measured for each user, and the first time counter is verified by reflecting the time correction value.

[0017] Also, the virtual code may be generated by combining a plurality of detail codes.

[0018] Furthermore, the plurality of detailed codes includes a first code for setting a starting point for searching the storage location, and a second code for setting a search path from the starting point to the storage location according to a specific search method.

[0019] A method for generating and providing a virtual code based on a smart card according to another aspect of the present invention for solving the above-mentioned problems includes the steps of: a smart card receiving a first power source from an external source; the smart card generating a virtual code based on a time count using the first power source; and the smart card providing the virtual code to an external source, wherein the virtual code is a virtual card number or a virtual token, and is generated as a code matching a real card number by a virtual code generation function pre-stored in the smart card, and is used to search for the real card number in a virtual code verification server, and the time count is counted based on time data measured from an initial time value given based on a specific point in time by a time measurement module included in the smart card, and the time measurement module includes a clock that measures the time data, and a clock battery that supplies a second power source to the clock.

[0020] The smart card further includes one or more of an IC connector or an antenna, and when the smart card is of a contact type, the IC connector comes into physical contact with an external device to receive a first power source from the external device, and when the smart card is of a non-contact type, the antenna does not come into physical contact with the external device and receives a first power source from the external device.

[0021] Furthermore, the external device may be a user terminal, and the step of receiving the first power supply from the outside may include receiving the first power supply from a smart card tagged to the user terminal.

[0022] The smart card may further include a display unit, and the providing of the virtual code to the outside may include outputting the virtual code to the display unit in the form of a code value or an image code.

[0023] Furthermore, the method further includes a step in which the smart card recognizes a user's fingerprint to confirm usage authority, and the smart card generates a virtual code only if the recognized fingerprint matches pre-registered fingerprint information.

[0024] In addition, the first time count measured by the smart card is verified to be consistent with the second time count measured by the virtual code verification server, and is determined to be consistent if the difference between the first time count and the second time count is within a specific error range.

[0025] Furthermore, the virtual code verification server stores and manages a time correction value in a unit counter that matches the actual card number, the time correction value is determined based on an error history measured for each user, and the first time counter is verified by reflecting the time correction value.

[0026] Also, the virtual code may be generated by combining a plurality of detail codes.

[0027] Furthermore, the plurality of detailed codes includes a first code for setting a starting point for searching the storage location, and a second code for setting a search path from the starting point to the storage location according to a specific search method.

[0028] In order to solve the above-mentioned problems, a program for generating and providing a smart card-based virtual code according to another aspect of the present invention is a program for causing a computer, which is hardware, to execute the method for generating and providing a smart card-based virtual code, and is stored on a medium connected to the computer.

[0029] Further details of the invention are contained in the detailed description and the drawings. Effect of the Invention

[0030] According to the present invention, when making a payment using a smart card, a virtual code, i.e., a virtual card number or a virtual token, is used instead of actual card information, so that leakage of actual card information can be prevented.

[0031] In addition, according to the present invention, a virtual code is generated based on a different time count each time a payment is requested, so it is possible to generate non-duplicate virtual codes. This prevents damage even if a virtual code at a specific point in time is leaked, and prevents actual card information from being leaked.

[0032] Furthermore, according to the present invention, since a virtual code with the same format as an actual card number is used, the existing payment process using an actual card number can be maintained as is. For example, when a virtual card number that is not generated twice is generated and provided in an application that provides a financial transaction service, the POS device and the PG company server are maintained as is and transmit the virtual card number to the token service server or the financial institution server, and the token service server or the financial institution server searches for the actual card number corresponding to the virtual card number to perform payment. This minimizes the parts that need to be changed in the existing process to improve security, and the user does not need to perform a separate step to improve security.

[0033] The effects of the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description. [Brief description of the drawings]

[0034] [Figure 1] 1 is a block diagram of a system for generating and providing a smart card-based virtual code in accordance with an embodiment of the present invention. [Diagram 2] 1 is a diagram illustrating the configuration of a smart card according to an embodiment of the present invention. [Diagram 3] 2 is an exemplary diagram of a communication interface included in a smart card in accordance with one embodiment of the present invention; [Figure 4] FIG. 2 is a configuration diagram of a time measurement module according to an embodiment of the present invention. [Diagram 5] 13 is a diagram illustrating an example in which a virtual code providing unit according to an embodiment of the present invention includes a display unit. [Figure 6] 1 is an exemplary diagram showing how a smart card according to an embodiment of the present invention is tagged and used in a user terminal; [Figure 7] 1 is an exemplary diagram showing a state in which a fingerprint recognition unit is included in a smart card according to an embodiment of the present invention; [Figure 8]4 is a flow chart of a method for a smart card to generate and provide a virtual code according to one embodiment of the present invention. [Figure 9] 4 is a flow chart of a method for a smart card to generate and provide a virtual code when a fingerprint recognition unit is added according to one embodiment of the present invention. [Figure 10] 1 is a flowchart of a method for a smart card to generate and provide a virtual code when a step of verifying whether or not a time count is consistent is added according to one embodiment of the present invention. [Figure 11] 4 is a detailed flowchart illustrating a step of verifying a match or mismatch of time counts according to an embodiment of the present invention. [Figure 12] 11 is a flow chart illustrating a process of verifying whether or not a time count is consistent and determining whether or not to approve a payment according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0035] The advantages and features of the present invention, and the methods for achieving them, will become clear from the following detailed description of the embodiments in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, and may be realized in various different forms. However, the embodiments are provided to complete the disclosure of the present invention and to allow those skilled in the art to fully understand the scope of the present invention, and the present invention is only defined by the scope of the claims.

[0036] The terms used in this specification are for the purpose of describing the embodiments and are not intended to limit the present invention. In this specification, the singular includes the plural unless otherwise specified. The terms "comprises" and / or "comprising" used in this specification do not exclude the presence or addition of one or more other components other than the components mentioned. The same reference numerals throughout this specification refer to the same components, and "and / or" includes each and every combination of one or more of the components mentioned. Even if "first", "second", etc. are used to describe various components, it is understood that these components are not limited by these terms. These terms are used simply to distinguish one component from another component. Therefore, it goes without saying that the first component mentioned below may also be the second component within the technical spirit of the present invention.

[0037] Unless otherwise defined, all terms (including technical and scientific terms) used in this specification are used as meanings commonly understood by ordinary skilled artisans in the technical field to which the present invention belongs. Furthermore, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly and specifically defined.

[0038] In this specification, the term "smart card" refers to a card capable of generating and providing a virtual code, and may be any card capable of conducting financial transactions, such as a credit card, a check card, or a cash card, without any limitation on the type or purpose of the card.

[0039] In this specification, "characters" are components that make up a code, and include all or some of uppercase letters, lowercase letters, numbers, and special characters.

[0040] In this specification, a "code" means a string of characters.

[0041] In this specification, the term "card number" refers to a number used for financial transactions such as payment, which is assigned to a card and transmitted to a card company in the event of payment, cancellation of payment, etc.

[0042] In this specification, the "actual card number" is a number given by a card company to a card of a specific user. In other words, the actual card number refers to a number given to a general physical card, a mobile card, etc.

[0043] In this specification, a "virtual code" is a card number temporarily generated to be linked to a real card number, and is a code of a specific number of digits consisting of characters including numbers. The virtual code includes a virtual card number used to search for a real card number in a financial institution's server, a virtual token used to search for a real card number in a virtual token verification server, etc.

[0044] In this specification, the term "detailed code" refers to a part of a code included in a virtual code. In other words, when a virtual code is generated by combining a plurality of codes that are separately generated, the detailed code refers to each code that is separately generated and that constitutes the virtual code.

[0045] As used herein, a "unit count" is a unit that is set to a specific time interval and is defined as changing as the time interval elapses. For example, one count is set to a specific time interval (e.g., 1.5 seconds) and used.

[0046] As used herein, "virtual code generation function" means a function used to generate virtual code.

[0047] In this specification, the term "detailed code generation function" refers to a function that generates each of the detailed codes that constitute the virtual code.

[0048] In this specification, a "detailed code combining function" refers to a function that combines or joins multiple detailed codes to generate a virtual code (eg, a virtual card number or a virtual token).

[0049] In this specification, a "user terminal" is any device that can perform computation and provide a result to a user. For example, the computer may be a desktop PC, a notebook, a smart phone, a tablet PC, a cellular phone, a PCS phone (Personal Communication Service phone), a synchronous / asynchronous IMT-2000 (International Mobile Telecommunication-2000) mobile terminal, a Palm PC (Palm Personal Computer), a personal digital assistant (PDA), etc., but is not limited thereto.

[0050] In this specification, "short-range wireless communication" refers to a wireless communication technology in which physically separated terminals communicate wirelessly by contacting or coming into close proximity. For example, short-range wireless communication may correspond to a method of wireless communication in which multiple terminals are located within a range that a user can directly see and control.

[0051] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

[0052] FIG. 1 is a block diagram of a system for generating and providing a smart card-based virtual code in accordance with one embodiment of the present invention.

[0053] Referring to FIG. 1, a system for generating and providing a smart card-based virtual code according to an embodiment of the present invention includes a smart card 100 and an external device 200, and may further include a server 300, if necessary.

[0054] The smart card 100 is a card capable of conducting financial transactions, and is a card that performs financial transactions using a virtual code instead of actual card information. The smart card 100 may be any card capable of conducting financial transactions, such as a credit card, a check card, or a cash card, and there is no restriction on the type or purpose of the card.

[0055] Furthermore, the smart card 100 is made of a metal material, which may be any metal material such as stainless steel, titanium, aluminum, amorphous alloys, and non-metallic materials, and is not limited to the above examples.

[0056] In the present invention, the smart card 100 plays a role of directly generating a virtual code used in a financial transaction without receiving data from an external source. The smart card 100 operates only when a financial transaction is required to generate and provide a virtual code, and a power source ("first power source" in this specification) required for generating and providing the virtual code is supplied from an external source. That is, the smart card 100 does not need to have a separate battery for supplying the power required for generating and providing the virtual code. Therefore, the manufacturing cost of the smart card 100 can be reduced, and there is no restriction on the use of the smart card 100 due to the life of the battery.

[0057] As an embodiment, smart card 100 does not include a battery that supplies power to drive other components other than the power source ("second power source" in this specification) for driving clock 121 that measures time. In other words, the power sources for driving components other than clock 121 in smart card 100 are all first power sources that are supplied from the outside when a financial transaction is requested by a user, and smart card 100 only includes clock battery 122 that supplies the second power source for driving clock 121.

[0058] The manner in which the smart card 100 receives power from an external source varies depending on whether the financial transaction is conducted in a contact or non-contact manner, and will be described in detail later.

[0059] The smart card 100 measures time data from an initial time value that is assigned based on a specific point in time, and generates a virtual code based on the time count that is counted based on the time data.

[0060] The time data used to generate the virtual code is not received from an external source, but is measured directly by the smart card 100 itself. At this time, the time data must be continuously measured from a specific point in time (e.g., the start of card use or the manufacture of the card) as well as when a financial transaction is requested. In other words, if the smart card cannot measure the current time, it may not be able to generate a normal virtual code that the server can determine as currently valid. Therefore, the smart card continuously measures the time even when no external power source is provided in order to obtain the same point in time as the server.

[0061] Clock battery 122 may be a battery with a capacity sufficient to power only clock 121 for a specific period of time. For example, if the expiration date of smart card 100 is set to five years from the time smart card 100 was manufactured or from the time the user began using smart card 100, smart card 100 may include clock battery 122 capable of powering clock 121, which measures time, for five years.

[0062] The time data measured by the clock 121 plays a key role in verifying whether the virtual code is correctly and validly generated at the required time of the financial transaction. A detailed description of the time measurement module 120 including the clock 121 and the clock battery 122 will be given later.

[0063] Also, the smart card 100 plays a role of providing the generated virtual code to the outside. There is no limitation on the form in which the smart card 100 provides the virtual code to the outside and on the configuration in which the smart card 100 serves as a subject for providing the virtual code to the outside.

[0064] As an example, a component providing the virtual code may be the communication interface 110 included in the smart card 100. For example, the virtual code may be transmitted by physically contacting the external device 200 through an IC connector 111 included in the communication interface 110. Alternatively, the virtual code may be transmitted by wireless communication through an antenna 112 included in the communication interface 110 without physically contacting the external device 200. In this case, the smart card 100 may improve security by applying an encryption method used in financial transactions to the virtual code. Alternatively, the virtual code may be generated according to a payment standard such as the EMV standard and provided through the communication interface 110.

[0065] In another embodiment, the smart card 100 may include a configuration for visually presenting the virtual code. For example, the smart card 100 may include a separate display unit 141, and the virtual code may be output to the display unit 141 so that the user can visually confirm the virtual code.

[0066] On the other hand, the virtual code may be visually provided in a form in which the code value itself consisting of a combination of numbers and / or letters is provided, or in the form of an image code such as a barcode or a QR code (Quick Response Code).

[0067] In another embodiment, the virtual code may be visually displayed on the screen of the user terminal through software and applications installed or built into the user terminal serving as the external device 200 from the smart card 100. That is, even if the smart card 100 does not have a display unit 141, the virtual code may be output through the screen of the user terminal. For example, as described below, the smart card 100 may generate a virtual code by receiving a first power source from the user terminal serving as the external device 200, and transmit the virtual code to a dedicated application in the user terminal through wireless communication (e.g., NFC communication). This allows the user to visually check the real-time virtual code of the smart card 100 through the dedicated application.

[0068] The external device 200 is any device that supplies a first power source to the smart card 100 when a financial transaction using the smart card 100 is requested. As a specific example, the external device 200 may be a card reader (e.g., an IC card reader or an NFC reader) that is an electronic device that reads a card. For example, the smart card 100 is manufactured to the same standard as a general IC card or NFC card, so that it can be used in the same way with an existing card reader (e.g., an IC card reader or an NFC reader). That is, there is an advantage that a card reader device and a financial transaction system already installed in an affiliated store can be used as is.

[0069] As another specific example, a user terminal such as a mobile device carried by a user can also serve as the external device 200. For example, if a user needs a virtual code (e.g., a virtual card number or a virtual token) for online payment, the user must provide a first power source to the smart card 100 without an IC card reader or an NFC reader to visually receive the virtual code.

[0070] In this case, the user can tag the smart card 100 to a user terminal acting as the external device 200 and receive a first power supply from the user terminal using short-range wireless communication. Thus, the smart card 100 can output a virtual code on a display unit 141 provided in the smart card 100 using the first power supply received from the user terminal. Also, the virtual code can be transmitted to the user terminal in the form of a message or provided so that it can be confirmed through a dedicated application. A specific embodiment will be described later with reference to an exemplary diagram.

[0071] In one embodiment, the external device 200 not only supplies a first power source to the smart card 100 but also communicates with the smart card 100 to receive a virtual code and process a request for a financial transaction. At this time, the request for a financial transaction may be processed in various ways, such as by approving the financial transaction itself in the external device 200 or by transmitting information related to the financial transaction to the server 300.

[0072] Meanwhile, in another embodiment, the external device 200 may only serve to supply the first power source to the smart card 100, and may include a separate device for processing requests for financial transactions.

[0073] In one embodiment of the present invention, the system for generating and providing a smart card-based virtual code may further include a server 300 .

[0074] In one embodiment, the server 300 is a virtual code verification server that verifies the virtual code generated by the smart card 100 .

[0075] As a specific example, the virtual code validation server may be a virtual token validation server (i.e., a Token Service Provider Server; TSP Server) or a server of a financial institution.

[0076] A "virtual token validation server" is a server that stores actual card numbers, searches for the actual card numbers based on the virtual token, and provides them to a payment settlement service server or a financial institution's server.

[0077] The "financial institution server" is a server that uses the virtual code (ie, the virtual card number) to look up the actual card number and uses this to determine whether the payment is approved.

[0078] The server 300 includes a virtual code verification means and serves to determine whether or not a payment is approved based on a real card number, or to search for a real card number based on a virtual code and verify the virtual code. Meanwhile, such a function can be performed via the external device 200 instead of the separately configured server 300.

[0079] FIG. 2 is a diagram showing the configuration of a smart card according to an embodiment of the present invention.

[0080] Referring to FIG. 2, a smart card 100 according to an embodiment of the present invention includes a communication interface 110, a time measurement module 120, a virtual code generator 130, and a virtual code provider 140.

[0081] The communication interface 110 serves to receive a first power source from the external device 200, which is used by the smart card 100 to generate a virtual code, and to communicate with the external device 200 to transmit and receive information.

[0082] In one embodiment, the communication interface 110 includes an IC connector 111 or an antenna 112 .

[0083] The IC connector 111 is used when the smart card 100 is of a contact type, such as when it is inserted into the external device 200, and the antenna 112 is used when the smart card 100 is used in a contactless manner via wireless communication.

[0084] The IC connector 111 is a contact pad that exposes a circuit pattern included in the smart card 100 so that the circuit pattern can be in contact with the outside. When the smart card 100 is of the contact type, the IC connector 111 comes into physical contact with the external device 200 to receive a first power supply from the external device 200.

[0085] The antenna 112 is a component that performs wireless communication required for contactless use of the smart card 100, and serves to detect radio frequency signals around the smart card 100 to exchange data and communicate with the external device 200. When the smart card 100 is used contactless, the antenna 112 is not in physical contact with the external device 200 and receives a first power supply from the external device 200.

[0086] Meanwhile, the antenna 112 is not limited to a particular type and may be any antenna such as a loop antenna, a coil antenna, etc. Also, the antenna 112 may be built separately from the IC chip in the smart card, or may be provided in the IC chip.

[0087] The time measurement module 120 serves to continuously measure time data, which is the basis of the time count that is the basis for generating the virtual code, from a specific point in time (eg, the start of card use or the manufacture of the card).

[0088] The time count is a value counted based on time data measured from an initial time value given based on a specific time point to the time point when the user requests a financial transaction, and even if the same smart card 100 is used repeatedly, the time data measured until the time point when the user requests a transaction is different each time, and the time count counted based on the time data are always different. Therefore, in the present invention, the time data plays a key role in generating a virtual code that does not overlap each time depending on the time point when the transaction is requested. In addition, since the virtual code can be generated every time without overlapping regardless of the time of generation of the virtual code and the user, even if a virtual code at a specific time point is leaked, it is a virtual code that cannot be used after that time point, and therefore, it is possible to prevent financial damage that may occur due to the leaking of the virtual code or actual card information, and security is enhanced.

[0089] In one embodiment of the present invention, the time measurement module 120 includes a clock 121 and a clock battery 122 .

[0090] The clock 121 measures time data measured from an initial time value given based on a specific point in time of the smart card 100 to a time when a user requests a transaction. In the present invention, the smart card 100 does not need to receive separate time data from the outside in order to measure the time data. That is, the smart card 100 measures the time data by itself without communicating with the outside, thereby providing further enhanced security.

[0091] In one embodiment, the clock 121 does not operate only when a user requests a transaction, but must operate continuously from the time the card is manufactured to measure time data. Therefore, the clock 121 must be continuously supplied with power, unlike the virtual code generator 130 and the virtual code provider 140, which operate only when a user requests a financial transaction. Therefore, the power provided to the virtual code generator 130 and the virtual code provider 140 (the "first power source" in this specification) and the power provided to the clock 121 (the "second power source" in this specification) are characterized by being different.

[0092] As described above, the first power source is not a power source supplied within the smart card 100, but a power source supplied to the smart card 100 from the external device 200 when a user requests a transaction. Therefore, it is a power source supplied only when a financial transaction is in progress, and the virtual code generator 130 and the virtual code provider 140 also operate only when a financial transaction is in progress to generate and provide a virtual code.

[0093] On the other hand, the second power supply is different from the first power supply, and is a power supply that supplies power itself inside the smart card 100. The time measurement module 120 of the smart card 100 includes a clock battery 122. The clock battery 122 is an internal battery provided in the smart card 100 that supplies power exclusively to the clock 121. Since the clock battery 122 does not supply power to any components other than the clock 121, it does not require a large capacity and can be a battery with a capacity that can supply power only for a specific period of time.

[0094] With regard to the lifespan of the clock battery 122, considering that the battery lifespan of existing OTP (One Time Password) cards is an average of three years, the lifespan of the clock battery 122 of the present invention is such that it will not be discharged during the period in which the user uses the smart card 100 and will not cause any problem in continuously supplying power.

[0095] Meanwhile, as an embodiment, the clock battery 122 may be replaced at regular intervals, or a rechargeable smart card 100 may be provided so that the user can charge the clock battery 122 by themselves. In addition, the smart card 100 may provide a function for the user of the smart card 100 to check the remaining life of the clock battery 122.

[0096] The virtual code generating unit 130 generates a virtual code based on a time count counted based on time data measured by the clock 121 according to a virtual code generating function. As described above, when the virtual code generating unit 130 is connected to the external device 200 in a contact or contactless manner only at the time of a user's request for financial transaction, the virtual code generating unit 130 receives a first power supply from the external device 200 and operates to generate a virtual code.

[0097] Meanwhile, as an embodiment, a virtual code may be generated by combining a plurality of detail codes used to verify the virtual code or search for a matching actual card number, and the virtual code generation function may include a detail code generation function for generating a plurality of detail codes and a detail code combination function for combining a plurality of detail codes.

[0098] As a specific example, the plurality of detailed codes may include a first code for setting a start point for searching the storage location and a second code for setting a search path from the start point to the storage location according to a specific search method. A detailed description of a process in which the server 300 searches for an actual card number based on the virtual code or verifies the virtual code will be given later.

[0099] The virtual code providing unit 140 serves to provide the virtual code generated by the virtual code generating unit 130 to the outside. As described above, there is no limitation on the method of providing the virtual code to the outside and the configuration of the entity that provides the virtual code to the outside. A detailed description will be omitted to avoid duplication.

[0100] FIG. 3 is an exemplary diagram of a communication interface included in a smart card according to one embodiment of the present invention.

[0101] 3, the communication interface 110 included in the smart card 100 according to an embodiment of the present invention includes one or more of an IC connector 111 or an antenna 112. For convenience, both the IC connector 111 and the antenna 112 are shown in FIG. 3, but it is possible to include only one of them, and there is no restriction on the location of each component on the smart card 100. The respective roles of the IC connector 111 and the antenna 112 are omitted since they are the same as those described above.

[0102] FIG. 4 is a diagram showing the configuration of a time measurement module according to an embodiment of the present invention.

[0103] 4, the time measurement module 120 includes a clock 121 and a clock battery 122, and the clock 121 operates continuously by receiving a second power supply from the clock battery 122. A detailed description of the roles of each component will be omitted since it overlaps with the above description.

[0104] FIG. 5 is a diagram illustrating an example in which a virtual code providing unit according to an embodiment of the present invention includes a display unit.

[0105] Referring to FIG. 5, a display unit 141 is shown on the exterior of the smart card 100 as an embodiment of the virtual code provider 140 .

[0106] For convenience, the display unit 141 is shown at the lower right side in FIG. 5, but there is no restriction on the location of the display unit 141 on the smart card 100.

[0107] Also, for convenience, the output virtual code is shown as a numeric string of "0000 0000 0000 0000" that matches the number of digits in the actual card number, but as described above, the virtual code can also be displayed as a code value itself composed of letters and / or numbers, or as an image code such as a barcode or QR code (registered trademark), and there is no restriction on its format, so it can be in any visually presented format.

[0108] Meanwhile, in one embodiment, the display unit 141 may be any type of display, such as a general flat panel display, LCD, LED, OLED, or flexible display, and a specific example of the display may be electronic paper (E-Paper). Electronic paper is a display technology that applies the characteristics of general ink to paper, and unlike a flat panel display that uses a backlight to make pixels shine, it uses reflected light like general paper. Therefore, once output, the virtual code can be displayed without consuming power, and is not damaged even when folded or bent.

[0109] FIG. 6 is an exemplary diagram showing how a smart card according to an embodiment of the present invention is tagged to a user terminal and used.

[0110] As shown in FIG. 6, when a user terminal such as a mobile device carried by a user serves as an external device 200, the smart card 100 can be tagged to the user terminal and connected to the user terminal via wireless communication to receive a first power source and perform financial transactions.

[0111] 6 shows that the virtual code is output via the display unit 141 when the smart card 100 equipped with the display unit 141 is tagged to the user terminal, but it is also possible to provide the virtual code to the user terminal in the form of a message or via software built into or installed in the user terminal. This is useful for online payments, and can also be used when the virtual code must be directly entered or visually confirmed at an offline store, if necessary.

[0112] FIG. 7 is an exemplary diagram showing a fingerprint recognition unit included in a smart card according to an embodiment of the present invention.

[0113] Referring to FIG. 7, the smart card 100 according to an embodiment of the present invention may further include a fingerprint recognition unit 150 .

[0114] The fingerprint recognition unit 150 recognizes the user's fingerprint to verify whether the user who requests a financial transaction through the smart card 100 has a valid right to use the card. Therefore, even if the user loses the smart card 100, it can prevent a third party from obtaining and using the card, thereby enhancing security by acting as a primary filter.

[0115] The fingerprint recognition unit 150 recognizes the user's fingerprint and verifies whether or not the user has the right to use the card by determining whether or not the fingerprint matches the fingerprint information preregistered in the smart card 100. This will be described in detail later.

[0116] On the other hand, in FIG. 7, for the sake of convenience, the fingerprint recognition unit 150 is shown positioned at the upper right side, but there is no restriction on the position of the fingerprint recognition unit 150 on the smart card 100.

[0117] FIG. 8 is a flow chart of a method for generating and providing a virtual code by a smart card according to one embodiment of the present invention.

[0118] Referring to FIG. 8, a method of generating and providing a virtual code by a smart card 100 according to one embodiment of the present invention includes a step of receiving a first power supply from an external source (S400), a step of generating a virtual code based on a time count using the first power supply (S500), and a step of providing the virtual code to the outside (S600).

[0119] Step S400 is a step in which the smart card 100 is connected to the external device 200 in a contact or contactless manner at the time of a transaction request and receives a first power supply from the external device 200. Step S500 is a step in which the smart card 100 uses the first power supply to generate a virtual code based on a time count measured by the time measurement module 120. Step S600 is a step in which the smart card 100 provides the generated virtual code to the outside. Detailed explanations of each step will be omitted as they are overlapping with those described above.

[0120] FIG. 9 is a flow chart of a method for a smart card to generate and provide a virtual code when an additional fingerprint recognition unit is added according to one embodiment of the present invention.

[0121] 9, in comparison with FIG. 8, a step of recognizing a user's fingerprint to confirm usage authority (S450) is further included, and this will be mainly described.

[0122] In one embodiment, the step S450 is a step in which the fingerprint recognition unit 150 recognizes the user's fingerprint and checks whether it matches pre-stored fingerprint information of a legitimate user who has authority. As one example, the smart card 100 may not execute the virtual code generation procedure if the pre-stored fingerprint information does not match the input fingerprint information. As another example, the smart card 100 may perform fingerprint recognition and virtual code generation separately, and may request the execution of a separate identity authentication procedure (e.g., input of a PIN number into a financial transaction terminal) during financial transactions if the pre-stored fingerprint information does not match the input fingerprint information.

[0123] In one embodiment, a user is issued a smart card 100 and goes through a user registration process.

[0124] As a specific example, the smart card 100 in an initial state issued to a user may have a small amount of power sufficient to perform a user registration process, in which case the above-mentioned clock battery 122 may be used or a separate battery may be provided. The user registers user information in the smart card 100 using the small amount of power, and the user information includes the user's fingerprint information. Thus, the fingerprint information of users who have valid usage rights is stored and managed in the smart card 100, and it is possible to add users or change their registration later.

[0125] FIG. 10 is a flow chart of a method for a smart card to generate and provide a virtual code when a step of verifying whether or not the time counts match is added according to one embodiment of the present invention.

[0126] Referring to FIG. 10, compared to FIG. 8, a step of searching for the storage location of the actual card number (S700) and a step of verifying whether the first time count and the second time count match in the server (S800) are further added.

[0127] In step S700, the server 300 searches for a unit account (storage location) in which a real card number matching the received virtual code is stored using a storage location search algorithm using a virtual code verification means. The virtual code verification means and the search method will be described in detail later.

[0128] In step S800, the "first time count" is a time count counted based on time data measured by the time measurement module 120 of the smart card 100, and the "second time count" is a time count counted based on time data measured by the server 300 for the smart card 100. That is, the first time count is a time count counted based on time data measured based on the flow of time of the clock 121 alone without the clock 121 receiving separate time data from the outside, and the second time count is a time count counted based on time data measured by the server 300 based on a GPS (Global Positioning System) or the like.

[0129] When verifying the virtual code received from the external device 200, the server 300 verifies whether the received virtual code is a virtual code that is correctly generated at the time of the corresponding transaction request by checking whether the first time count and the second time count match. The verification process will be described in detail later.

[0130] FIG. 11 is a detailed flow chart showing the steps of verifying whether or not the time counts match according to one embodiment of the present invention.

[0131] Referring to FIG. 11, the virtual code generated in the smart card 100 through steps S400 to S600 is provided to the external device 200.

[0132] The external device 200 transmits the provided virtual code to the server 300 (S610). For convenience, in FIG. 11, steps S700 to S830 are shown to be performed only by the server 300, but they may also be performed by the external device 200 itself.

[0133] The server 300 searches for a storage location of an actual card number that matches the received virtual code (S700), verifies whether the first time count on which the received virtual code is based matches the second time count measured by the server 300 itself (S800), and determines whether to approve the financial transaction based on the verification result (S830), which will be described in detail later with reference to FIG.

[0134] FIG. 12 is a flow chart illustrating a process of verifying whether or not a time count is consistent and determining whether or not to approve a payment according to an embodiment.

[0135] Referring to FIG. 12, the step (S800) of verifying whether the first time count and the second time count match in the server 300 includes a step (S810) of extracting the second time count, a step (S820) of determining whether the first time count and the second time count match, and a step (S830-1, S830-2) of deciding whether to approve the payment.

[0136] In step S810, the server 300 extracts a second time count corresponding to the searched actual card number.

[0137] In step S820, the server 300 compares the extracted second time count with the first time count to determine whether they match. If the first time count matches the second time count, the server 300 approves the payment and processes the requested financial transaction, and if they do not match, the server 300 rejects the requested financial transaction (S830-1, S830-2).

[0138] Meanwhile, as an embodiment, even if the first time count and the second time count do not completely match in step S820, if the difference between the first time count and the second time count falls within a certain error range, they can be determined to match. This is to allow for more flexible verification by considering the possibility that an error has occurred in the first time count measured by the smart card 100 or the second time count measured by the server 300.

[0139] As a specific example, the server 300 sets an error range of a specific count before and after the second time count measured by the server 300, and if the first time count has a count value that falls within that range, it determines that the first time count and the second time count match and approves the payment.

[0140] In addition, as an embodiment, the server 300 may store and manage a time offset value in a unit count that matches an actual card number.

[0141] The "time correction value" is determined based on the error history measured for each user, and is a value that varies depending on the user, the usage mode, the frequency of use, etc. In other words, the time correction value is not a fixed value, but is a value determined based on data measured and recorded for each user.

[0142] The server 300 verifies whether the second time count coincides with the value reflected in the first time count based on the time correction value. This can minimize transaction failures caused by basic errors that may occur in the time value measured by the time measuring device, and can verify the time count with higher accuracy by using a time correction value that takes into account different usage habits of each user.

[0143] A method for searching for the storage location of the actual card number based on the virtual code will now be described in detail.

[0144] As an embodiment, the server 300 may include the same virtual code generation function as the smart card 100. That is, the server 300 may verify whether the virtual code generated using the same virtual code generation function is the same as the virtual code received from the smart card 100, verify whether the virtual code is correctly generated, and search for a matching actual card number.

[0145] In one embodiment, the virtual code can be generated by combining multiple detail codes, which are used to verify the virtual code and search for the matching real card number. If the multiple detail codes include a first code and a second code, the server 300 uses the first code and the second code to search for the storage location of the real card number in the storage location search algorithm.

[0146] As a specific example, the server 300 can verify whether the received virtual code is a correctly generated virtual code using a first code that sets a starting point for searching the storage location included in the multiple detailed codes and a second code that sets a search path from the starting point to the storage location according to a specific search method, and search for the storage location of the actual card number that matches the virtual code.

[0147] As an embodiment, the server 300 sets a position corresponding to the first code as a starting point, and searches for a point (i.e., a specific vertex of the k-gon) that matches the actual card number in the k-gon arrangement based on the second code according to a search method applied to the second code. The actual card number matches 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 search start point for the storage position corresponding to the first code. The server 300 searches for a matching point of the storage position of the authentication card based on the second code at the search start point.

[0148] Various methods can be applied to search for the actual card number in the k-gon based on the second code. For example, the server 300 may search for the actual card number in the k-gon at a position on the first track where the k-gon is in contact with the second code by averaging an angle (for example, 180° toward the apex of the k-gon) corresponding to the second code. N By specifying a specific angle (divided into 10 ...

[0149] In another example, when the k-gon is in contact with a point on the first track corresponding to the first code, the server 300 may calculate the total central angle (i.e., 360°) based on the contact point on the first track with the center of the k-gon. N Divide it into pieces and set each angle to M N The k-gon is matched against the second code, which is a certain number of unit angles (i.e., 360° / M) from the line connecting the center of the k-gon and the tangent point on the first track. N ) is a specific vertex of the k-gon. Therefore, when the second code corresponding to a specific angle is received, the server 300 can search for a vertex located in the corresponding angle direction.

[0150] As another example, a specific digit of the second code can be used to determine the angle calculation direction. That is, when the second code is generated using N characters (N is a natural number), the angle measurement direction can be determined by one digit. For example, when the server 300 divides the entire central angle (i.e., 360°) based on the center of the k-gon and the tangent point on the first track and matches the second code to each angle, it can determine whether the angle is measured to the left or right from the line connecting the center of the k-gon and the tangent point on the first track based on the value of one digit.

[0151] The method of searching for the storage location of the actual card number in the k-gon based on the second code is not limited to this, and various methods can be applied, such as a method of searching for a storage location at a point on the k-gon corresponding to the second code and a point that divides the contact point on the first track at a specific ratio.

[0152] In another embodiment, the storage location search algorithm moves on a track based on a plurality of minute codes constituting the virtual code to a point matching the storage location of the actual card number. For example, the point matching the storage location of the actual card number may be a point on the track corresponding to the count (i.e., time) at which the actual card number is issued to the virtual code generating means.

[0153] Specifically, when the virtual code includes a first code generated based on the time elapsed since the virtual code generation function was driven, and a second code generated based on the time elapsed since the actual card number was issued to a specific virtual code generation means, the virtual code verification means sets the count on the track where the code value corresponding to the first code matches as the search start point, and searches for the point on the track at the time the actual card number was issued to the virtual code generation means (i.e., the point that matches the storage position of the actual card number) by regressing along the track from the search start point by the count value calculated by applying the inverse function of the second function (or the extraction code generation function if the extraction code is used as the second code) to the second code.

[0154] As another specific example, the virtual code verification means 20 arranges a movement track for the second code (i.e., the second movement track) that is arranged parallel to the movement track for the first code (i.e., the first movement track) with the search start point moved by the first code as the origin, in the opposite direction to the movement direction by the first code.The virtual code verification means then moves on the second movement track to the position of the code value corresponding to the second code, and searches for the point on the first movement track that corresponds to this position as the storage position of the actual card number.

[0155] Thereafter, a virtual code verification means proceeds with or requests the proceeding of a financial transaction with the actual card number retrieved from the storage location.

[0156] The algorithm for generating a virtual code using only numbers will be described below.

[0157] In order to use a virtual code while maintaining the existing financial transaction system (for example, if the financial transaction is a payment at a store, the POS device and the PG company's server) as is, the smart card 100 must generate a virtual code having the same number of digits as the actual card number.

[0158] In one embodiment, the smart card 100 generates a virtual code by combining multiple detail codes, and generates the detail code so that the code has the same number of digits as the actual card number. For example, the virtual code can be generated by combining multiple detail codes, such as a fixed code, an OTP code, a conversion code, and an extraction code, according to a specific rule. For this purpose, the virtual code generation function can include an OTP function for generating an OTP code, an extraction code generation function, and a detail code combination function.

[0159] In one embodiment, the smart card 100 generates an OTP code based on an OTP function stored therein when a virtual code is requested to be generated. The smart card 100 generates an OTP code based on a specific seed data (or serial number) reflecting a count at which an OTP code is requested to be generated (i.e., a time when a user requests the generation of a virtual code corresponding to an actual card number for a financial transaction). The OTP code is generated based on a specific number of digits based on the OTP function and is used to calculate a conversion code. That is, when the virtual code is transmitted to a virtual code verification means (e.g., a virtual code verification server), the virtual code verification means searches for a conversion code based on the OTP number, and then uses the conversion code as a first code or a second code used to search for a storage location of an actual card number.

[0160] As an embodiment, the smart card 100 uses an account where a real card number is issued to a specific user from a financial institution server or where a real card number is registered in a virtual token verification server as seed data for the OTP function. That is, the virtual code verification means (i.e., the financial institution server or the virtual token verification server) uses an actual card number issuance account or an actual card number registration account, which are distinguished for each user, as seed data. Thus, the virtual code verification means can search for an account where a real card number is issued or registered using an OTP code extracted from a virtual code. Also, thus, the smart card 100 operates the OTP function using different seed data since the accounts where the real card numbers of other users are registered or issued are different. That is, the smart card 100 can generate different OTP codes for each user at the same time by using different actual card number registration or issuance accounts for each user as seed data.

[0161] The OTP code generated by the smart card 100 is used to calculate a conversion code to be used as the first code or the second code in the virtual code verification server. That is, the OTP code is input as a seed value to a conversion code generation function to generate a specific conversion code. The conversion code generation function can be stored in the virtual code verification server. The smart card 100 can also include a conversion code generation function to generate a conversion code from the OTP code when the conversion code is used as a seed value to the extraction code generation function.

[0162] In one embodiment, the conversion code can be matched one-to-one with the OTP code according to a certain rule, that is, the conversion code generation function can form a one-to-one matching relationship between the OTP code and the conversion code having different numbers of digits.

[0163] In another embodiment, the conversion code is calculated by inputting the count value requested to generate the OTP code and virtual code to the conversion code generation function as a seed value. That is, the conversion code generation function uses the count value requested to generate the OTP code and virtual code as a seed value, and can generate different conversion codes according to the count value even if the same OTP value is used as the seed value. As a result, when the OTP code is a numeric string with fewer digits than the conversion code, the first code or the second code used to search for the actual card number storage location can use a larger number of conversion codes than the OTP code.

[0164] In addition, as another embodiment, when the fixed code is newly assigned to the virtual code of a specific card type, the smart card 100 generates a variable code from a specific combination of numbers arranged in the validity period position, and the variable code and the OTP code can be used as seed values ​​(i.e., variables) of a conversion code generation function. That is, the conversion code is generated using the variable code and the OTP code as seed values.

[0165] The combination of numbers to be placed in the validity period is generated by changing it for each unit count, can be used as the actual validity period, and is included within the maximum period from the current count. In order to prevent errors from occurring in the payment system, the validity period must be a value within a valid period from the current time. For example, if the actual validity period of the card is five years, the smart card 100 generates a combination of numbers corresponding to a combination of years and months within five years from the time the payment is requested according to a specific rule.

[0166] This reduces the difference in the number of cases between the combination of the OTP code and the variable code and the conversion code. For example, if a combination of numbers within a 5-year validity period is used and a 3-digit OTP code and a 9-digit conversion code are used, 60 combinations of numbers can be used as the variable code, so the number of combinations of the variable code and the OTP code is 60*10 3As a result, the difference in the number of cases is reduced compared to when only the OTP code is used as a seed value without the variable code.

[0167] The smart card 100 plays a role of generating an extraction code used as a first code or a second code used by a virtual code verification means (e.g., a virtual code verification server) to search for a storage location of an actual card number. When the virtual code verification means uses a conversion code calculated based on an OTP code as a first code, the virtual code verification means uses an extraction code as a second code. That is, the conversion code or the extraction code is used as the first code or the second code according to a condition set in the virtual code verification means. The first code sets a starting point for searching for a storage location of an actual card number in the virtual code verification means, and the second code sets a search path from the starting point to the storage location according to a specific search method. Specifically, since the extraction code corresponds to a conversion code calculated from an OTP code generated in the same account, the virtual code verification means searches for a storage location of an actual card number using the extraction code in the virtual code of a specific account and the conversion code generated based on the OTP code in the virtual code of a specific account.

[0168] In addition, the matching relationship between the conversion code and the extraction code and the first and second codes can be preset in the smart card 100 and the virtual code verification means (e.g., the virtual code verification server). If the matching relationship between the conversion code and the extraction code and the first and second codes is applied inversely, the virtual code verification server cannot search for the storage location of the actual card number, so it is preset when the virtual code generating device is issued or when the virtual code generating function is stored.

[0169] In one embodiment, smart card 100 includes an extraction code generation function that correlates with the OTP function, i.e., smart card 100 includes an extraction code generation function that generates a code value for a particular count based on an OTP code generated for the same count, which can be used with a conversion code to locate the storage location of the actual card number.

[0170] As another embodiment, the smart card 100 can input the OTP code itself as a seed value to the extraction code generation function to generate an extraction code (i.e., an extraction code having a correlation with a specific code) that can search for the storage location of the actual card number together with the conversion code. As another embodiment, the smart card 100 can include a conversion code generation function that calculates a conversion code based on the OTP code in the same manner as the virtual code verification server, generate a conversion code based on the OTP code generated by the smart card 100, and input the conversion code as a seed value to the extraction code generation function to generate the extraction code.

[0171] The extraction code is generated by subtracting the fixed code and the OTP code from the total number of digits of the virtual code. That is, the smart card 100 arranges a number string in which the extraction code and the OTP code are combined in all or part of the digits (e.g., 13 digits including the range of the card identification number excluding the fixed code and the range of the card security code) obtained by subtracting the validity period (e.g., 4 digits) and the fixed code (e.g., 6 digits) from the virtual code (e.g., 23 digits in total when the card identification number is 16 digits and the card security code is 3 digits). For example, when the last digit of the card identification number is used as a check digit, the smart card 100 arranges a number string in which the extraction code and the OTP code are combined in the remaining digits (e.g., 12 digits) excluding the digit of the check digit. Specifically, the virtual code generating unit 130 combines the OTP code and the extraction code using a detailed code combination function and arranges it on the digits of the card identification number excluding the fixed code and the digits of the card security code.

[0172] In another embodiment, the smart card 100 generates an OTP code with fewer digits than the conversion code used as the first code or the second code in the virtual code verification means. For example, the OTP code is generated with the number of digits of the card security code in the actual card number, and the second code is generated with all or part of the number of digits obtained by subtracting the fixed code, the OTP code, and the validity period from the total number of digits of the virtual code. That is, if the card security code is three digits, the smart card 100 generates an OTP code with three digits, and generates an extraction code with nine digits obtained by subtracting the six digits of the fixed code, the four digits of the validity period, the three digits of the OTP code, and the one digit of the check digit from the total number of 23 digits of the card number.

[0173] As a result, the virtual code generator can use 9 digits of the limited actual card number as the extraction code, increasing the number of codes that can be used as the extraction code and improving security. In particular, if only numbers are used as the virtual code in order to not modify the conventional payment process at all, the extraction code can generate 9 digits using 10 numbers from 0 to 9, and 9 You can use this code.

[0174] At this time, the conversion code generated based on the OTP code is generated from a numeric string with the same number of digits as the extraction code. As a result, the conversion code and the extraction code can be used as the first code or the second code, respectively, in the virtual code verification server. Also, by generating a conversion code with many digits from an OTP code with a small number of digits, it is possible to use a large portion of the area (i.e., 12 digits) that can be used for the OTP code and the extraction code in the virtual code for the extraction code.

[0175] Therefore, even when a virtual code is generated using only numbers, security can be improved by adding many numeric digits to the extracted code that is immediately used as the first code or second code in the smart card 100, and adding the remaining digits to the OTP code.

[0176] An example of the process of enrolling smart card 100 is described in detail below.

[0177] In one embodiment, a user receives a smart card 100 that has already been registered with the virtual code verification server. For example, when a user applies for issuance of a smart card 100 while using a virtual code generation application, or applies for a new smart card 100 via a financial application or the web, the smart card 100 for the user is registered in a specific location (i.e., a storage location corresponding to the time of issuance application) in the virtual code verification server. After receiving the smart card 100, the user can use it after receiving and confirming receipt, without going through a separate procedure for registration.

[0178] In another embodiment, when a user receives the smart card 100, the user performs a registration procedure through a dedicated application of the smart card 100. For example, the user separates the smart card 100 received from an envelope or case (e.g., an envelope or case including a small battery to which the IC connector 111 of the smart card 100 is connected for the user's fingerprint registration) and performs fingerprint registration, thereby storing a usage start time in the smart card 100, and transmitting the usage start data to the virtual code verification server through a dedicated application to provide the usage start time. There may be a difference between the usage start time inputted to the smart card 100 and the usage start time stored in the virtual code verification server, but the usage time in the server can be corrected in the process of the user using the smart card 100 for payment.

[0179] Smart card 100 according to one embodiment of the present invention is capable of conducting financial transactions for a specific physical card number.

[0180] In one embodiment, a user can perform a financial transaction using a specific actual card number that has been registered with the virtual code verification server using smart card 100. For example, when making an online or offline payment with smart card 100, the virtual code verification server looks up the registered actual card number based on the virtual code to make the payment.

[0181] Also, as an embodiment, a user can use a dedicated application to change the card to which the smart card 100 is connected to perform financial transactions. That is, after going through the procedure of changing the registered card using the dedicated application, the virtual code verification server can search for the actual card number of the changed card based on the virtual code provided from the smart card and perform financial transactions. That is, the smart card generates and provides a virtual code corresponding to the time of financial transactions based on a virtual code generation function without any additional changes, but by changing the card using the dedicated application, the user can perform financial transactions with the card he or she currently wants to use using the virtual code generated by the smart card.

[0182] Specifically, when a user desires to change a basic card that is registered in the smart card 100 and used for financial transactions, the user requests the server 300 to change the basic card via a dedicated application, etc. Here, the user selects a basic card via an application built into or installed in the user terminal, and the user can request to change the basic card by selecting an image of the card or an identification number.

[0183] Then, the server 300 searches the UID of the smart card 100 based on the virtual card number, extracts the storage space of the actual card number connected to the UID, and changes the main card in the storage space of the actual card number. For example, if the identification number of the card already set as the main card is "1" and the identification number of the main card requested to be changed by the user is "3", the server 30 stores "3" in the main card setting area. After that, when the server 300 receives a payment request from the user terminal, it checks the identification information of the main card, for example, "3", in the main card setting area, extracts the actual card number corresponding to the identification number "3" from the card number storage area, and performs the financial transaction.

[0184] For this purpose, the dedicated application may include the same virtual code generation function as the smart card 100 for card modification. Specifically, since a virtual code generated according to the same rules as the smart card 100 is required to search for a UID connected to a storage space of an actual card number in which an actual card number of a corresponding user is stored, the dedicated application includes the same virtual code generation function as the smart card 100.

[0185] The steps of a method or algorithm described in connection with the embodiments of the present invention may be implemented directly in hardware, or in a software module executed by hardware, or in a combination thereof. The software module may reside in Random Access Memory (RAM), Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), Flash Memory, a hard disk, a removable disk, a CD-ROM, or in any other form of computer readable storage medium known in the art to which the present invention pertains.

[0186] Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those skilled in the art to which the present invention pertains will understand that the present invention can be embodied in other specific forms without changing the technical spirit or essential features of the present invention. Therefore, the above-described embodiments should be understood as illustrative in all respects and not restrictive.

Claims

1. a communication interface that receives a first power supply from an external device and can communicate with the external device; a time acquisition module for acquiring time data from an initial time value given based on a specific point in time as measured by a clock; a virtual chord generating unit that generates a virtual chord based on the time data; a virtual code providing unit for providing the virtual code to an external device, The virtual code generation unit generating a one-time password (OTP) code using an OTP function stored within the smart card, the OTP code reflecting the time at which the virtual code generation was requested; inputting the OTP code as seed data into an extraction code generation function stored inside the smart card to generate an extraction code; combining the OTP code with the extracted code to generate the virtual code; The OTP code is used to calculate a conversion code used as one of a first code and a second code used to search for a storage location of an actual card number in a virtual code verification server; The extraction code is used as the other of the first code and the second code. A smart card that generates a virtual code.

2. the communication interface includes one or more of an IC connector or an antenna; the IC connector, when the smart card is used in a contact type, physically contacts the external device to receive a first power source from the external device; The smart card for generating a virtual code according to claim 1, characterized in that the antenna does not come into physical contact with the external device when the smart card is used in a contactless manner, and receives a first power supply from the external device.

3. the external device is a user terminal, 3. The smart card for generating a virtual code according to claim 2, wherein the first power source is provided when the smart card is tagged to the user terminal.

4. The smart card for generating a virtual code according to claim 3, wherein the virtual code providing unit includes a display unit, and outputs the virtual code to the display unit as a code value or an image code.

5. The device further includes a fingerprint recognition unit for recognizing a user's fingerprint to confirm the usage authority, 5. The smart card for generating a virtual code according to claim 4, wherein the virtual code generator generates a virtual code only when a fingerprint recognized through the fingerprint recognition unit matches pre-registered fingerprint information.

6. The first time count acquired by the time acquisition module is verified to be consistent with the second time count acquired by the virtual code verification server; 2. The smart card for generating a virtual code according to claim 1, wherein the first and second time counts are determined to match if the difference between the first and second time counts is within a certain error range.

7. The virtual code verification server stores and manages a time correction value for a unit count that is matched with the real code, and the time correction value is determined based on an error history measured for each user. The smart card for generating a virtual code according to claim 6 , wherein the first time count is verified by reflecting the time correction value.

8. receiving a first power source from an external source to the smart card; acquiring time data from an initial time value given based on a specific point in time as measured by a clock of the smart card; generating a virtual code based on the time data by the smart card; and providing the virtual code to the smart card. The step of generating the virtual code comprises: generating a one-time password (OTP) code by said smart card using an OTP function stored within said smart card, said OTP code reflecting the time when the generation of said virtual code was requested; the smart card inputting the OTP code as seed data into an extraction code generation function stored within the smart card to generate an extraction code; said smart card combining said OTP code and said extracted code to generate said virtual code; Including, The OTP code is used to calculate a conversion code used as one of a first code and a second code used to search for a storage location of an actual card number in a virtual code verification server; The extraction code is used as the other of the first code and the second code. A method for generating a virtual code for a smart card.

9. A program stored in a storage medium coupled to a hardware computer, the program causing the computer to execute the method of claim 8.

Citation Information

Patent Citations

  • IC card with sensor

    JP1999195102A

  • Information terminal with built-in radio wave clock for generating one-time password by correcting time

    JP2005050292A

  • Information transmitting system and information transmitting device

    JP2005182192A

  • Onetime password device and system

    JP2008269342A

  • Issuing system for onetime password

    JP2009031940A