Contactless card with multiple rotating security keys

A contactless card with multiple security keys and dynamic key selection modules addresses vulnerabilities to brute-force and side-channel attacks, improving transaction security by limiting key reuse and exposure.

JP7859794B2Active Publication Date: 2026-05-15CAPITAL ONE SERVICES LLC
View PDF 8 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
CAPITAL ONE SERVICES LLC
Filing Date
2021-03-04
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Contactless cards are vulnerable to brute-force attacks and side-channel attacks due to the reuse of encryption keys, which compromises security.

Method used

Implementing a contactless card with multiple security keys and a key selection module that dynamically selects a key for each operation, along with an encryption algorithm selection module, to limit exposure to attackers and enhance security.

Benefits of technology

Reduces the risk of key exposure by limiting side-channel data collection and prevents brute-force attacks, thereby enhancing the security of contactless card transactions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007859794000001
    Figure 0007859794000001
  • Figure 0007859794000002
    Figure 0007859794000002
  • Figure 0007859794000003
    Figure 0007859794000003
Patent Text Reader

Abstract

To provide a server, method and contactless card which enhance the security of the contactless card.SOLUTION: A contactless card generates a plurality of keys for a specific operation, e.g., encryption or signing a communication. The contactless card can also include an applet which uses a key selection module. The key selection module can select one of the plurality of keys and the applet uses the key to encrypt or sign a communication using an encryption or signature algorithm. The contactless card sends the encrypted or signed communication to a host computer through a client device. The host computer repeats the key selection technique of the contactless device to select the same key and thereby decrypt or verify the communication.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Contactless cards have recently become very popular because they simplify transactions both in stores and online. At the same time, due to the popularity of these cards, hackers are actively trying to counterfeit contactless cards to carry out fraudulent transactions. As a result, new focus has been placed on strengthening the security of these cards.

Summary of the Invention

[0002] A communication message can be encrypted so that an unauthorized recipient cannot determine the content of the communication message. There are various methods for encrypting a communication message. When using a symmetric encryption algorithm such as an encryption algorithm, a hash-based message authentication code (HMAC) algorithm, or a cipher-based message authentication code (CMAC) algorithm, it is important to keep the key secret between the party that first processes the data protected using the symmetric algorithm and the key, and the party that receives and processes the data using the same encryption algorithm and the same key.

[0003] A brute-force attack can be composed of systematically checking all possible keys until the correct key is found. Hackers often use brute-force attacks to steal the keys stored on contactless cards. Therefore, it is important not to use the same key multiple times. If a key is frequently used or reused, that key can be jeopardized. Each time a key is used, additional samples of data processed by the encryption algorithm using the same key are provided to the attacker. The more data the attacker has processed with the same key, the higher the likelihood that the attacker will discover the key value. Frequently used keys can be included in various attacks.

[0004] Furthermore, each time a symmetric encryption algorithm is executed, information such as side-channel data about the key used during the symmetric encryption operation may be revealed. Side-channel data may include slight power fluctuations that occur when the encryption algorithm is executed while the key is in use. By thoroughly measuring the side-channel data, sufficient information about the key may be revealed to allow an attacker to recover it. If data is exchanged using the same key, data processed with the same key will be repeatedly revealed.

[0005] However, by limiting the number of times a particular key can be used, the amount of side-channel data that an attacker can collect is limited, thereby reducing exposure to this type of attack. Therefore, the objective of this disclosure is to implement an encryption system that enhances the security of contactless cards against such attacks by enforcing multiple security keys. In one exemplary embodiment, a contactless card may include multiple keys for specific operations, e.g., encryption or signing of messages. The contactless card may also include an applet that uses a key selection module. The key selection module can select one of several keys, and the applet may use the key to encrypt or sign a message using, for example, an encryption or signing algorithm. The contactless card may transmit the encrypted or signed message to a host computer via a terminal or client device. The host computer may repeatedly or duplicate the key selection technique of the contactless device to select the same key, thereby decrypting or verifying the message. For example, the host computer may use the same key selection module or algorithm as the contactless card. Thus, the host computer's key selection module may select the same key as the key selected by the contactless card. Using the same key, the host computer can decrypt or verify the authenticity of the message.

[0006] In one exemplary embodiment, a key selection module may receive an input and select a key based on the input. The input may be provided by a contactless card or an external device such as a terminal or host computer. The key selection module may execute a mathematical algorithm or function that assigns the input to one of the keys stored on the contactless card.

[0007] In one embodiment, a contactless card may store multiple encryption algorithms. The contactless card may also include an encryption algorithm selection module. For each encryption operation, the encryption algorithm selection module, when executed, may select one of several encryption algorithms. The contactless card may use the selected encryption algorithm and key to encrypt the message and send the encrypted message to the terminal.

[0008] Further features of the disclosed design and the advantages provided thereby are described below and will be described in more detail below with reference to specific exemplary embodiments shown in the accompanying drawings. [Brief explanation of the drawing]

[0009] [Figure 1] An example of a contactless card according to a specific embodiment is shown. [Figure 2] An exemplary embodiment of a terminal or client device is shown. [Figure 3] This shows an example of hardware components for a server or host computer. [Figure 4] This shows an example flowchart for sending information from a contactless card to a host computer. [Modes for carrying out the invention]

[0010] The following description of embodiments provides non-limiting representative examples that refer to figures in particular to illustrate the features and teachings of different aspects of the invention. It should be recognized that the described embodiments can be implemented separately or in combination with other embodiments from the description of embodiments. Those skilled in the art should be able to learn and understand the different described aspects of the invention. The description of embodiments should facilitate understanding of the invention so that other embodiments, which are not specifically covered but are within the knowledge of those skilled in the art who have read the description of embodiments, are understood to be consistent with the application of the invention.

[0011] A contactless card may include processing circuitry for storing and processing information. This processing circuitry may include a processor, memory, error and parity / CRC checkers, a data encoder, collision avoidance algorithms, a controller, a command decoder, security primitives, and tamper-proof hardware.

[0012] The size of a contactless card can be the same as that of a payment card, credit card, or debit card. According to ISO / IEC 7810 standard ID-1, the dimensions of a contactless card can be 85.60 × 53.98 millimeters (3.37 inches × 2.13 inches). However, the contactless cards described in these disclosures may have different sizes, and contactless cards do not necessarily have to be payment cards.

[0013] Information can be stored in the memory of the processing circuit, which may be read-only memory, write-once / read-multiple memory, or read / write memory, such as RAM, ROM, and EEPRO. Contactless cards may contain one or more of these memories. Read-only memory may be programmed at the factory as read-only or one-time programmable. One-time programmability allows for one write operation followed by multiple reads. Write-once / read-multiple memory may be programmed at some point after the memory chip leaves the factory. Once programmed, the memory cannot be rewritten but can be read multiple times. Read / write memory may be programmed and reprogrammed multiple times after the factory leaves the factory. It can be read multiple times.

[0014] The memory of a contactless card can be divided into several zones, each potentially providing a different level of security. The contactless card processor can track which memory addresses belong to which zone and the circumstances under which each zone can be accessed. The contactless card processor can also process information and store it in memory. In an exemplary embodiment, the contactless card memory may be divided into four zones: a secret zone, a confidential zone, a usage zone, and a public zone.

[0015] A secret zone can be used to store information that can only be used by the processor itself, such as passwords and encryption keys. Information stored in this zone cannot be read outside the contactless card. In one embodiment, the secret zone may be implemented by a separate processor capable of performing encryption functions. Encryption keys may be passed to the secret zone or generated within the secret zone. In either case, the key is stored in the secret zone and can be used to support encryption services. If necessary, the encryption key can be exported from the secret zone.

[0016] In an exemplary embodiment, the contactless card may be a JavaCard that includes one or more applets. The applet is protected by a firewall, and data may be allocated to and stored in the applet. The data may be stored in transactions in EEPROM flash memory. For example, if a write operation is not completed when the power is turned off, the contents remain the same as before.

[0017] A confidential zone may be used to store a list of all transactions performed on the card. The confidential zone may be password protected. In an exemplary embodiment, the password is known only to the card issuer, who can examine the card's history for evidence of system misuse. Read-only access restrictions may be set on the confidential zone to prevent modification of the information stored in it. For example, the transaction list cannot be modified.

[0018] The usage zone may be used to store information that can be updated or modified periodically. Depending on the confidentiality of the data, password protection may be implemented for this zone. The usage zone may have both password-protected read and write access.

[0019] The public zone may be used to hold less sensitive information, such as the card issuer's name and address. The public zone may have read-only access without a password.

[0020] In one embodiment, the memory of a contactless card may store multiple keys. These keys may be used for various operations such as encryption and signing. Furthermore, the contactless card may store multiple encryption algorithms. The memory may also store a key selection module and an encryption selection module. Using the key selection module, the applet of the contactless card may select a key for operations of the contactless card, such as encryption. The contactless card may use an encryption algorithm selection module to select an encryption algorithm for encrypting the message.

[0021] A contactless card can communicate wirelessly with a terminal. For example, the contactless card can be a credit card that includes a magnetic tape or a radio frequency identification (RFID) tag. Some contactless cards can include both a magnetic tape and an RFID tag.

[0022] When a contactless card is held near a terminal, the terminal can communicate with the contactless card. The terminal can read the contactless card at a short distance using near field communication (NFC) technology that uses radio frequency induction. The contactless card can include an inductor that captures and rectifies a part of the incident radio frequency interrogation signal transmitted by the terminal to supply power to the card's processing circuit. Therefore, the contactless card can function without an internal power source. However, in some embodiments, the contactless card can include an internal power source.

[0023] The contactless card can comply with EMV. Europay, MasterCard, Visa (EMV) is a payment method based on the technical standard of smart payment cards. EMV cards can store data in an integrated circuit in addition to a magnetic stripe.

[0024] The standard of the contactless card can be based on ISO / IEC 7816, and the standard of the contactless card can be based on ISO / IEC 14443.

[0025] Figure 1 shows a contactless card 100 according to an exemplary embodiment. In this embodiment, the contactless card 100 may be a payment card issued by a service provider 101, the name of which may be displayed on the front or back of the contactless card 100. The size of the contactless card 100 may conform to ISO / IEC 7810 standard ID-1, i.e., 85.60 × 53.98 millimeters. The contactless card 100 may include contact pads 102 for establishing contact with contact terminals. The contactless card 100 may also include processing circuits, antennas, and other components (e.g., one or more microprocessors and one or more memories) not shown in Figure 1. These components may be located behind the contact pads 102, but it is understood that these components may also be located elsewhere within the contactless card 100 and do not need to be located behind the contactless card 100. The contactless card 100 may also include various identification information 103 displayed on the front or back of the card. The contactless card 100 may also include a magnetic strip or tape that can be placed on the back of the card.

[0026] In one exemplary embodiment, the contactless card 100 may include a power supply and a timer. The timer may be powered by the power supply. The processor of the contactless card may receive a time signal from the timer, for example, when processing a transaction or encrypting a message. The processor may encrypt the message, select a key, or select an encryption algorithm based on the time signal. In one exemplary embodiment, the contactless card may receive a time signal from a terminal, client device, or host computer. In this embodiment, the contactless card may encrypt the message or select a key based on the received time signal.

[0027] In other examples, the applet of the contactless card 100 may include a counter module. The counter module may maintain a count number that can count the number of occurrences of events. For example, the module may count the number of times the contactless card interacts with a terminal, a client device, or a host computer. Each time the contactless card is scanned by a terminal, the processor of the contactless card may send a signal to the counter module to increment the count number.

[0028] In an exemplary embodiment, the contactless card comprises a radio frequency identification (RFID) tag. In some embodiments, the RFID tag may include a processing circuit for storing and processing information for modulating and demodulating radio frequency signals (usually received from a terminal, a reader / writer, or a scanner). The RFID tag may also include an antenna for transmitting and receiving signals. Further, the RFID tag may include a power source or means for collecting DC power from the incident terminal signal. These means may include a modulator, a voltage regulator, a reset, and a connection to the antenna. The antenna may be an electric dipole antenna or a coil antenna.

[0029] In an exemplary embodiment, the coil of the contactless card may function as the secondary side of an air-core transformer. The terminal may communicate with the contactless card by cutting off power or amplitude modulation. The contactless card may infer data transmitted from the terminal using the gap of the power connection of the contactless card that is functionally maintained via a capacitor. The contactless card may retrieve the communication message by switching or load-modulating the load of the coil of the contactless card. The load modulation can be detected at the coil of the terminal by interference.

[0030] A terminal can read information from a contactless card and write information to a contactless card. In some embodiments, a terminal can pass information from a contactless card to a host computer (or server) and write information from the host computer to the contactless card. In some embodiments, the host computer may be a terminal. A terminal can supply power to the contactless card and communicate the card's hardware interface to the host computer. Because the contactless card's processor can control the actual flow of information in and out of the card's memory, a terminal may operate with only the minimum processing capabilities necessary to send information to the host computer. In one embodiment, the terminal may be a payment terminal. In other embodiments, the terminal may be a client device such as a mobile phone, smartphone, laptop, desktop, or wearable device.

[0031] In some embodiments, the terminal may include a processor and a transceiver. The terminal's processor may decode all data received from the contactless card. The terminal may also update, delete, or modify the information stored on the contactless card.

[0032] A terminal can write data to a contactless card by passing the data to the contactless card's processor. The processor can process the data and store it in the contactless card's memory. The terminal can communicate bidirectionally with the contactless card as described in ISO 14443. The contactless card may include an RFID tag. Bidirectional communication can be digitally encoded. Bidirectional communication can have several frequency ranges and several proprietary formats (e.g., HID in the 125 MHz range). The 13.56 MHz frequency range (NFC) is dominated by ISO 14443 compliant cards.

[0033] A terminal and a contactless card can exchange messages containing commands and data. For example, a terminal can send a command message to a contactless card, the contactless card can process the command message in its processor, and the contactless card can send a response message back to the terminal. Both command and response messages may contain data. A message may contain TLV (Type, Length, Value) data and commands such as the STORE_DATA command, which prompts the storage of the data contained in the message to the contactless card.

[0034] Figure 2 shows a terminal 200 according to an exemplary embodiment. In this exemplary embodiment, the terminal 200 may include a display screen 201. This display screen may be any type of display screen, such as an LCD display screen. The terminal 200 may also include a keypad 202. Using the keypad 202, a customer may input information into the terminal 200. The terminal 200 may also include an opening 203 for inserting a chip card into the terminal 200. Using the opening 203, a customer may insert a chip card into the terminal 200 so that the pins of the terminal 200 can electrically connect to the contact pads of the chip card. In some embodiments, the terminal 200 may include a magnetic card opening 204. Using the magnetic card opening 204, a customer may swipe a contactless card with the terminal 200, and the terminal 200 may retrieve any information stored on the magnetic tape of the contactless card.

[0035] In an exemplary embodiment, terminal 200 may be a contactless RFID terminal that includes an antenna for transmitting and receiving signals, a transceiver, and a processor for decoding data. In a passive system, the terminal can transmit an energy range that can wake up the tag and power the chip, thus enabling the transmission or storage of data. The tag then converts the radio signal into usable power and responds to the terminal in the form of a radio signal. The signal may include the tag's identity and other information. Upon receiving the response, the terminal converts the response and extracts the information contained in the radio signal. The information collected from the tag is transferred to a host computer system via a communication interface, where the data may be stored in a database or analyzed by the computer system. The terminal may also update, delete, or modify the information stored on the contactless card.

[0036] In the exemplary embodiment shown in Figure 2, the terminal 200 includes one or more antennas (not shown) that enable the device to read information from and write information to a contactless card. The terminal 200 may include an indicator 205 that indicates the device is contactless.

[0037] In this disclosure, the terms reader / writer, scanner, terminal, and client device are used interchangeably and all refer to devices capable of scanning and / or writing information to contactless cards.

[0038] In some embodiments, the terminal may be communicatively connected to a host computer, a backend server, or a server. In other embodiments, the terminal may be integrated into the host computer (or server). The host computer may receive encrypted or signed messages from a contactless card (e.g., via the terminal), decrypt the messages, or verify the authenticity of the messages.

[0039] Figure 3 shows an example of hardware components for a host computer or backend server. Computer system 300, or any other similarly configured computer system, may include and perform one or more subsystem components for performing the functions described herein, including the steps of the various flow processes described above. Similarly, mobile devices, cell phones, smartphones, laptops, desktops, notebooks, tablets, wearable devices, servers, etc., including some of the same components of computer system 300, may run applications (or software) and perform the steps and functions described above. Computer system 300 may connect to a network 314, for example, the Internet, or any other network, to receive queries, retrieve data, and transmit information and incentives, as described above.

[0040] The computer system 300 typically includes memory 302, secondary storage 304, and a processor 306. The computer system 300 may also include multiple processors 306 and may be configured as multiple, for example, blade servers or other known server configurations. The computer system 300 may also include a network connectivity device 308, a display device 310, and an input device 312.

[0041] Memory 302 may include RAM or a similar type of memory and may store one or more applications for execution by the processor 306. Secondary storage device 304 may include a hard disk drive, a floppy disk drive, a CD-ROM drive, or another type of non-volatile data storage device. The processor 306 executes applications such as those described herein, which are stored in memory 302 or secondary storage device 304 or received from the Internet or other network 314. The processing by the processor 306 may be carried out in software, such as software modules, for execution by a computer or other machine. These applications preferably include executable instructions for performing the functions and methods of the system and subsystem components described above and shown in the figures herein. The applications preferably provide a graphical user interface (GUI) for a user to view and operate the subsystem components.

[0042] The computer system 300 may store one or more database structures in the secondary storage device 304, for example, to store and maintain the information necessary to perform the above-described functions. Alternatively, such information may reside in a storage device other than these components.

[0043] Furthermore, as described above, the processor 306 may execute one or more software applications to provide the functions described herein, specifically, to execute and implement the steps and functions of the process flow described above. Such processes may be implemented in software, such as software modules, for execution by a computer or other machine. The GUI may be formatted as a web page, for example, in a hypertext markup language (HTML), an extensible markup language (XML), or another suitable format for presentation on a display device, depending on the application used by the user to interact with the computer system 300.

[0044] The input device 312 may include any device for inputting information into the computer system 300, such as a touchscreen, keyboard, mouse, cursor control device, microphone, digital camera, video recorder, or camcorder. The input and output device 312 may be used to input information into the GUI while the above method is being performed. The display device 310 may include any type of device for presenting visual information, such as a computer monitor or flat-screen display (or mobile device screen). The display device 310 may display output from the GUI and / or subsystem components (or software).

[0045] Examples of computer systems 300 include dedicated server computers such as blade servers, personal computers, laptop computers, notebook computers, palmtop computers, network computers, mobile devices, or any processor-controlled devices capable of running a web browser or other type of application to interact with the system.

[0046] Although only one computer system 300 is described in detail, system 300 may use multiple computer systems or servers as necessary or desired to support the user, and may use backup or redundant servers to prevent network downtime in the event of a failure of a particular server. Furthermore, although computer system 300 is depicted with various components, those skilled in the art will understand that the system may include additional or different components. Furthermore, although embodiments consistent with the above are described as being stored in memory, those skilled in the art will understand that these embodiments may also be stored in or read from secondary storage devices such as hard disks, floppy disks, and CD-ROMs, or other types of computer program products or computer-readable media such as other forms of RAM or ROM. Computer-readable media may contain instructions for controlling computer system 300 to perform certain methods, such as those described above.

[0047] In exemplary embodiments, a contactless card may communicate (i.e., transmit or receive) data from a host computer, for example, via a terminal or client device. The contactless card may communicate with the terminal using, for example, at least one of NFC, Bluetooth®, RFID, Wi-Fi, and / or similar technologies. The terminal may act as an intermediary between the contactless card and the host computer, for example, by forwarding messages received from the contactless card to the host computer, or conversely, by forwarding messages received from the host computer to the contactless card. The terminal may communicate with the host computer using a network. For example, networks may include fiber optic networks, passive optical networks, cable networks, internet networks, satellite networks, wireless LANs, global systems for mobile communications, personal communication services, personal area networks, wireless application protocols, multimedia messaging services, enhanced messaging services, short message services, time-division multiplex-based systems, code-division multiple access-based systems, D-AMPS, Wi-Fi, fixed wireless data, IEEE 802.11b, 802.15.1, 802.11n and 802.11g, Bluetooth®, NFC, RFID, and Wi-Fi.

[0048] In some embodiments, the message between a contactless card and a terminal can be encrypted, for example, by encoding the message so that only authorized parties or devices (e.g., a contactless card or a host computer) can decode or decrypt the message. For example, the message may be encrypted using a symmetric key or a public key scheme. For each of these encryption schemes, at least one key and an encryption algorithm may be stored on the contactless card. Similarly, the associated key and associated encryption (decryption) algorithm may be stored on the host computer. The contactless card may encrypt the message using the key and encryption algorithm. The contactless card may transmit the message to the host computer via a client device, such as a mobile phone. The host computer may decrypt the message using the associated key and associated encryption algorithm.

[0049] In an exemplary embodiment, the encryption scheme is a symmetric-key scheme. In this example, the contactless card may store the symmetric key and the encryption algorithm. Examples of encryption algorithms may include Twofish, Serpent, AES (Rijndael), Blowfish, CAST5, Kuznyechik, RC4, DES, 3DES, Skipjack, Safer+ / ++ (Bluetooth®), and IDEA. The host computer may also store a copy of the symmetric key and the encryption (or decryption) algorithm. The contactless card's processor may, in response to a message from a terminal, encrypt the message using the symmetric key and the encryption algorithm to create ciphertext. The contactless card may send the ciphertext to the terminal using the contactless card's transceiver. The terminal may then send the ciphertext to the host computer. The host computer may decrypt the ciphertext using the symmetric key and the encryption (or decryption) algorithm.

[0050] In an exemplary embodiment, the encryption scheme is a public-key scheme. In this example, the contactless card may store a public (or private) key and an encryption algorithm. Examples of public-key encryption algorithms include the Diffie-Hellman key exchange protocol, DSS, ElGamal, the Paillier cryptosystem, RSA, the Cramer-Shoup cryptosystem, and the YAK authentication key exchange protocol. The host computer may store a private (or public) key and an encryption (or decryption) algorithm. The contactless card's processor may, in response to a message from a terminal, encrypt the message using the public (or private) key and the encryption algorithm to create ciphertext. The contactless card may send the ciphertext to the terminal using the contactless card's transceiver. The terminal may then send the ciphertext to the host computer. The host computer may decrypt the ciphertext using the private (or public) key and the encryption (or decryption) algorithm.

[0051] In exemplary embodiments, a message between a contactless card and a host computer may include a message authentication code (MAC), a hashed message authentication code (HMAC), or a digital signature. A MAC, HMAC, or digital signature may be a mathematical code or scheme that can establish the authenticity of the information contained in the message. For example, when a contactless card is scanned at a terminal, the contactless card may send a message to the host computer requesting transaction authorization. The message may include various data such as account number, name, card security value, expiration date, and MAC (or HMAC or digital signature). The host computer can use the MAC (or HMAC or digital signature) contained in the message to verify that the content of the message is authentic (i.e., unaltered). Specifically, the host computer can recreate the MAC (or HMAC or digital signature), and if the value of the MAC (or HMAC or digital signature) is the same as the MAC (or HMAC or digital signature) contained in the message, the host computer can verify that the content of the message has not been altered. Furthermore, digital signatures prevent contactless card owners from refusing to transmit information, as only contactless cards can create MACs (or HMACs or digital signatures) that are included in the message.

[0052] A MAC may include the following algorithms: In the first step, a key generation algorithm may generate a key. In the second step, a signature algorithm may return a tag created using the generated key and message. In the third step, a verification algorithm verifies the authenticity of the message using the key and tag.

[0053] A digital signature scheme may include the following algorithms: In the first step, a key generation algorithm generates a private key and a corresponding public key. In the second step, a signature algorithm generates a digital signature using the message and the private key. In the third step, a signature verification algorithm may verify the message using the digital signature and the public key. MAC differs from digital signatures in that the MAC scheme uses only one key, whereas a digital signature scheme uses two keys, namely a public key and a private key.

[0054] In exemplary digital signature schemes, the authenticity of a digital signature generated from a fixed message and fixed private key can be verified using the corresponding public key. Furthermore, these algorithms are chosen so that it is computationally impossible to generate a valid signature for a party without knowing the party's private key. This digital signature scheme can ensure the authenticity of the message content because, if the content is digitally signed, any modification of the content after signing invalidates the signature. In other words, it is virtually impossible to modify the content and its signature to create new content with a valid signature.

[0055] In an exemplary embodiment, a contactless card may provide a private key and a signing algorithm. A host computer may provide a public key and a verification algorithm. When the contactless card is scanned by a terminal, the contactless card may send a message containing a digital signature to the terminal, which may forward this message to the host computer. The digital signature may be generated using the signing algorithm and the private key of the contactless card. The digital signature may include data such as an account number, an expiration date, and a code verification value. When the host computer receives the message, it may use the public key, the verification algorithm, and the information contained in the message to verify the authenticity of the information contained in the message. For example, the host computer may regenerate the digital signature using the information contained in the message. If the regenerated digital signature matches the digital signature contained in the message, the host computer may verify the authenticity of the information. Otherwise, the host computer may conclude that the content of the message is forged.

[0056] Digital signature schemes can offer several advantages. For example, hackers are motivated to forge the contents of communications to obtain authorization for fraudulent transactions. Digital signatures can prevent this by authenticating the information contained in the communications. As long as the private key associated with the contactless card remains secret, digital signatures can authenticate and verify the communications.

[0057] In some exemplary embodiments, a message or content may be hashed before it is converted into a MAC or digital signature using a signature algorithm. A hash function is a mathematical algorithm that maps a message of any size to a fixed-size bit string (i.e., a hash). A hash function can be a one-way function, i.e., a function that cannot be reversed. In an exemplary embodiment, the MAC is constructed from the hash function, and therefore the product is an HMAC. In other exemplary embodiments, the digital signature is constructed from the hash function.

[0058] There are several reasons for creating a hash of the content in MAC or digital signature format rather than the content itself. For example, since the hash size is fixed, the hash of the content can be shorter than the actual content, and therefore the MAC or digital signature of the hash can be much shorter than the MAC or digital signature of the actual content. Furthermore, since hashing is faster than converting the content to a MAC or digital signature, converting the hash of the content to a MAC or digital signature is faster. In an exemplary embodiment, the content of a contactless card is written using HMAC.

[0059] In exemplary embodiments, a contactless card may contain multiple security keys (or "keys"). For example, a contactless card may contain five keys for a first operation, such as encryption. In another example, a contactless card may contain six keys for a second operation, such as signing a digital signature. When manufacturing the contactless card, the manufacturer may store these keys on the contactless card. For each key stored on the contactless card, the manufacturer may also store the associated key on a host computer. In a symmetric key scheme, each associated key may be the same as one of the keys stored on the contactless card. In a public key scheme, a private (or public) key may be associated with one of the public (or private) keys stored on the contactless card. In one example, the card manufacturer may generate the key pairs. In other examples, the key pairs may be generated by the contactless card or the host computer.

[0060] A contactless card applet may include a key selection module that can choose the key to use for its operation. For example, each time a contactless card encrypts (or signs) a message, the key selection module selects one of the keys for the encryption (or signing) operation. The key selection module may use various techniques for selecting the key.

[0061] For example, a key selection module may select keys in a specific order. In this example, for each operation that requires a key, the order may be assigned to the keys stored on the contactless card for that operation. The key selection module may select the keys in the assigned order. Once an operation (e.g., encrypting or signing a message) has been performed using all the keys, the key selection module may select the keys again in the same order. The order or sequence of keys may be known to a host computer. For example, a card manufacturer may have assigned a key order when they placed the keys on the card. In this example, the manufacturer may provide the order to the host computer. In another example, a contactless card applet may assign a key order and communicate this order to the host computer (e.g., via a client device). In yet another example, a terminal or client device may determine the order and send the order to the contactless card and the host computer.

[0062] In exemplary embodiments, the key selection module may include a mathematical function or algorithm that receives an input and selects a key based on the input (for example, the function defines a many-to-many relationship between the input and the key). For example, the key selection module may receive a counter number or a time signal and select a key from among several available keys based on the counter number or time signal. In this exemplary embodiment, the host computer may also store the same key selection module (or an algorithm embedded therein) for selecting a key. The host computer may also acquire the same counter number or time signal. For example, each time a transaction is performed using a contactless card, the counter on the contactless card increments the counter number on the contactless card, and the counter on the host computer increments the count number on the host computer. Thus, both the contactless card and the host computer may have the same count number when selecting a key. In another example, the contactless card and the host computer may each include a timer. The timer may provide a time signal to the contactless card and the host computer. If both the contactless card and the host computer contain the same counter number or time signal, a key selection module can be used to allow both the contactless card and the host computer to select the same key for operation.

[0063] As yet another example, a key selection module may select a key based on input provided by an external source to the contactless card. For example, the contactless card and the host computer may receive input or signals from a terminal or client device, which may include information such as the date, the terminal's location coordinates, the Hubble Telescope's location, a photograph of the user taken at the terminal, or a number provided by the user at the terminal. Based on this input, the respective key selection algorithms of the contactless card and the host computer may select a key and process the transaction.

[0064] As yet another example, a key selection module may randomly select a key. In this example, the host computer is unaware of which key has been selected by the contactless card. However, once the host computer receives the message, it can try all available keys to decrypt the message.

[0065] As yet another example, a key selection module may select a key based on the last transaction value performed by the card. A contactless card may store the transaction value of the last transaction. Similarly, a host computer may store the transaction value of the last transaction. Using the transaction value, the key selection module may derive a value from which a key can be selected. For example, if the last transaction value of the card is $9.95, the key selection module may select a key to encrypt based on the last digit of the transaction value, in this case 5. The key selection module may select a key that is ranked, for example, as 5.

[0066] In yet another exemplary embodiment, there may be multiple key selection algorithms, each of which may receive an input and generate an output that determines the key to be selected for operation. In this embodiment, there may be an algorithm selection module that selects a key selection algorithm based on the input. For example, a contactless card may include two key selection algorithms, each of which may use a count number to specify the key for an encryption operation. In this example, a user may provide a PIN to a client device. The client device may send the PIN to both the contactless card and the host computer, each device may use the PIN as input to an algorithm selection module. Using the PIN and the algorithm selection module, the contactless card and the host computer may each select one of the two key selection algorithms. Using the count number and the selected key selection algorithm, the contactless card and the host computer may each select the same key for operation.

[0067] Figure 4 shows an example flowchart for transmitting information from a contactless card to a host computer. In this exemplary embodiment, a public-key scheme is implemented as the encryption technique. In step 401, multiple pairs of private and public keys are generated. These keys may be generated using a key generation algorithm. In step 402, the private keys are stored on the contactless card and the public keys are stored on the host computer. In step 403, the customer scans the contactless card at a terminal to request a transaction. The terminal may power the contactless card, and the applet on the contactless card may generate a message. The message may include the user's account number.

[0068] In step 404, the applet's key selection module may select one of the secret keys stored on the contactless card. For example, the applet may send a request to a terminal prompting the user to enter a number. The user may enter a number, and the terminal may send the number to the contactless card. The terminal may also send the number to the host computer. Using the number, the key selection module may select one of the secret keys stored on the contactless card. In another example, the contactless card may request the terminal to send its location, for example, a zip code, to the contactless card. The terminal may send its location to the contactless card and the host computer. Based on the location, the key selection module may select one of the secret keys.

[0069] In step 405, the applet may encrypt the message using the selected private key. In step 406, the contactless card may send the encrypted message to the terminal, and the terminal may send the encrypted message to the host computer. In step 407, the host computer may select a public key to decrypt the message. For example, the host computer may select a public key using a number sent by the terminal to the host computer. The public key may be selected using a key selection module stored in the host computer. In step 408, the host computer decrypts the message using the public key selected in step 407.

[0070] In one exemplary embodiment, a contactless card may include multiple encryption algorithms. The contactless card may use each encryption algorithm to encrypt a message or create a ciphertext. The contactless card may also include an encryption algorithm selection module. The encryption algorithm selection module may select one of several encryption algorithms, and the contactless card may use the selected encryption algorithm to encrypt a message. Similarly, a host computer may include multiple encryption algorithms and an encryption algorithm selection module. When the host computer receives an encrypted message, it may use the encryption algorithm selection module to determine which encryption algorithm to use to decrypt the message.

[0071] In one embodiment, the encryption algorithm selection module may operate similarly to the algorithm selection module or key selection module described above, for example, by receiving an input and selecting one of several encryption algorithms based on the input.

[0072] In an exemplary embodiment, for encryption operations, the contactless card may include 10 keys and two encryption algorithms, for example, AES and 3DES. When processing a transaction, the contactless card may receive a number entered from a terminal. For example, a user provides a number entered on the terminal's keypad. The contactless card may also store a counter number in its memory. The counter number may represent the number of the transaction requested by the contactless card.

[0073] A contactless card may include a key selection module and an encryption algorithm selection module. The key selection module may receive a numeric input and, for example, select one of ten keys stored on the contactless card for encryption based on the last digit of the numeric input. The encryption algorithm selection module may receive a counter number and select the AES algorithm if the counter number is even, or the 3DES algorithm if the counter number is odd. The contactless card may create a ciphertext using the selected key and encryption algorithm and send the ciphertext to a terminal.

[0074] In one example embodiment, the contactless card may switch between the private key OTP (or one-time password) for some transactions and the public key for other transactions, if possible (e.g., bidirectional communication is possible). As described above for various selection modules, the encryption algorithm selection module may select or switch between two encryption methods.

[0075] In one embodiment, a contactless card may include multiple keys for a particular operation, and each time the contactless card needs to perform an operation, a key selection module may select one of the keys for the operation.

[0076] In other exemplary embodiments, a contactless card may include a master key and a key diversification algorithm. The key diversification algorithm may use an input to generate several distinct keys. In this exemplary embodiment, for at least one operation performed on the contactless card, the contactless card may store the master key. A key selection module may provide an output to the key diversification algorithm, which may use the output to generate diversified keys of the master key. The contactless card may perform an operation using the diversified keys, for example, encrypting a message. Similarly, as described above, a host computer may use a key selection module to generate the same output. The host computer may also store the same key diversification algorithm and master key. The host computer may use the output, the key diversification algorithm, and the master key to generate the same diversified keys as the contactless card and perform the relevant operation on the host computer, for example, decrypting a message.

[0077] This disclosure is intended to be illustrative of various embodiments and should not be limited to the specific embodiments described herein. As will be apparent, many modifications and variations can be made without departing from its spirit and scope. In addition to those enumerated herein, functionally equivalent methods and apparatus within the scope of this disclosure may be apparent from the above representative description. Such modifications and variations are intended to fall within the scope of the appended representative claims. This disclosure is limited only by the conditions of the appended representative claims and the entire scope of equivalents to which such representative claims are entitled. It should also be understood that the terms used herein are intended solely to describe specific embodiments and are not intended to limit them.

Claims

1. It is a server, Processor, and, The device includes a memory which stores a first set of keys, a first set of input values, and a first set of encrypted messages from a contactless card. The aforementioned processor, The first input value is updated using the first numerical value derived from the first transaction associated with the contactless card, and the second input value is derived. A key selection algorithm and the second input value are used to select a first selected key, the first selected key being one of the first plurality of keys. The first encrypted message is decrypted using the first selected key, and the first unencrypted message is obtained. It is configured in such a way. server.

2. The first number derived from the transaction is the last digit of the total of the contactless card purchase transactions, The server according to claim 1.

3. The first input value is a counter value, and each time the contactless card is scanned by the client device, the counter value is incremented by the server. The server according to claim 1.

4. The server further, A second encrypted message is received from the aforementioned contactless card. The second input value is updated, and the third input value is derived using the second numerical value associated with the contactless card. A second selected key is selected using the key selection algorithm and the third input value, wherein the second selected key is one of the first multiple keys. The second encrypted message is decrypted using the second selected key, and the third unencrypted message is obtained. It is configured in such a way. The server according to claim 1.

5. The memory stores a second set of keys, a fourth input value, a verification algorithm, and a fifth input value, The aforementioned processor further, The client device receives a third encrypted message from the aforementioned contactless card. A third selected key is selected using the key selection algorithm and the fourth input value, wherein the third selected key is one of the first plurality of keys. Using the third selected key, the third encrypted message is decrypted to obtain the third unencrypted message. A fourth selected key is selected using the verification algorithm and the fifth input value, wherein the fourth selected key is one of the second plurality of keys. The third unencrypted message is verified using the fourth selected key. It is configured in such a way. The server according to claim 4.

6. The key selection algorithm selects the third selected key based on a counter value. The server according to claim 5.

7. The contactless card generates the first encrypted message using a key selected by the contactless card. The server according to claim 1.

8. The server updates the first input value using a first numerical value derived from a first transaction associated with the contactless card, and derives a second input value. The server selects a first selected key using a key selection algorithm and the second input value, wherein the first selected key is one of a first plurality of keys. The server uses a second selected key to decrypt the first encrypted message from the contactless card stored in memory and obtain the first unencrypted message. method.

9. The first input value is updated to derive the second input value having the last digit of the total of the purchase transactions by the contactless card, The method according to claim 8.

10. The memory stores a second encrypted communication message from the contactless card, The above method further, The second input value is updated, and a third input value is derived using the second numerical value derived from the second transaction associated with the contactless card. A second selected key is selected using the key selection algorithm and the third input value, and the second selected key is one of the first multiple keys. The second encrypted message is decrypted using the second selected key, and the second unencrypted message is obtained. The method according to claim 8.

11. The first input value is a counter value, and each time a contactless card is scanned by a client device, the counter value is incremented by the server. The method according to claim 8.

12. The first input value comprises a user's photograph. The server according to claim 1.

13. The first input value includes a date, The server according to claim 1.

14. The first input value includes the position of the terminal, The server according to claim 1.

15. A system comprising a server, The aforementioned server, Processor, and, The device includes a memory which stores a first set of keys, a first set of input values, and a first set of encrypted messages from a contactless card. The aforementioned server, The first input value is updated using the first numerical value derived from the first transaction associated with the contactless card, and the second input value is derived. A key selection algorithm and the second input value are used to select a first selected key, the first selected key being one of the first plurality of keys. The first encrypted message is decrypted using the first selected key, and the first unencrypted message is obtained. It is configured in such a way. system.

16. The first number derived from the transaction is the last digit of the sum of the contactless card purchase transactions, The system according to claim 15.

17. The first input value includes the position of the terminal, The system according to claim 15.

18. The first input value is a counter value, and each time the contactless card is scanned by the client device, the counter value is incremented by the server. The system according to claim 15.

19. The first input value comprises a value entered by a user on the terminal. The system according to claim 15.

20. The server further, A second encrypted message is received from the aforementioned contactless card. The second input value is updated, and the third input value is derived using the second numerical value associated with the contactless card. A second selected key is selected using the key selection algorithm and the third input value, wherein the second selected key is one of the first multiple keys. The second encrypted message is decrypted using the second selected key, and the third unencrypted message is obtained. It is configured in such a way. The system according to claim 15.