System and method for authentication with transaction cards

Information

  • Patent Grant
  • 12299672
  • Patent Number
    12,299,672
  • Date Filed
    Thursday, March 30, 2023
    2 years ago
  • Date Issued
    Tuesday, May 13, 2025
    7 days ago
Abstract
The present embodiments describe systems and methods for resynchronizing a counter value associated with a contactless card. The system includes a card, a client device, a client device application, and a server. The method includes generating a cryptogram including the counter value, transmitting the cryptogram to the client device, decrypting the cryptogram and thus acquiring the counter value. This method provides a quick and easy way to verify and re-sync the counter value between a card, a server, and a client device.
Description
FIELD OF DISCLOSURE

The present disclosure relates generally to authentication systems and methods associated with transaction cards.


BACKGROUND

Transactions cards, such as credit cards, debit cards, and gift cards, are frequently used for both online and offline transactions. The use of transaction cards is growing increasingly popular, and many users carry multiple transactions cards at any given time. As their popularity increases, transaction cards have also been increasingly targeted for fraud and other malicious activity.


Cryptography can be implemented to protect data communicated to and from transaction cards to reduce the risk that attempts at fraud and other malicious activity will be successful. However, cryptographic protections can reduce transaction efficiency, encounter errors during operation, and degrade the user experience.


These and other deficiencies exist. Therefore, there is a need to provide systems and methods that overcome these deficiencies and provide for the authentication of transaction cards.


SUMMARY OF THE DISCLOSURE

Embodiments of the present disclosure provide a method for synchronizing a counter value. The method includes with receiving, by a contactless card having a processor and memory, a random number. The memory further comprises a counter value, a public key, and a private key. Next, the contactless card can generate a cryptogram based on the random number, the private key, and the counter value. The cryptogram is further configured to be decrypted by one or more applications via a public key corresponding to the private key. Furthermore, the decryption of the cryptogram results in finding the counter value. Furthermore, the counter value is further configured to be stored in a memory and server.


Embodiments of the present disclosure also provide a system for synchronizing a counter value. The system comprises a contactless card having a processor and memory. The memory of the contactless card contains a counter value, a public key, and a private key. The contactless card can receive a random number. Next, the card can generate a cryptogram based on the random number, the private key, and the counter value. The cryptogram is further configured to be decrypted by one or more applications via a public key corresponding to the private key. The decryption of the cryptogram results in finding the counter value. The counter value is further configured to be stored in a memory and server.


Embodiments of the present disclosure also provide a computer readable non-transitory medium comprising computer executable instructions that, when executed on a processor, configure the processor to perform procedures comprising the following: The procedures can begin with receiving a random number. Next, the procedures continue with generating a cryptogram based on a random number, a private key, and a counter value. The cryptogram is further configured to be decrypted by one or more applications via a public key corresponding to the private key. The decryption of the cryptogram results in finding the counter value. The counter value is further configured to be stored in a memory and server.


Further features of the disclosed systems and methods, and the advantages offered thereby, are explained in greater detail hereinafter with reference to specific example embodiments illustrated in the accompanying drawings.





BRIEF DESCRIPTION OF THE DRAWINGS

In order to facilitate a fuller understanding of the present invention, reference is now made to the attached drawings. The drawings should not be construed as limiting the present invention, but are intended only to illustrate different aspects and embodiments of the invention.



FIG. 1 is a block diagram illustrating a system according to an exemplary embodiment.



FIG. 2 is a diagram illustrating a card according to an exemplary embodiment.



FIG. 3 is a diagram illustrating a card according to an exemplary embodiment.



FIG. 4 is a flowchart illustrating a process according to an exemplary embodiment.



FIG. 5 is a diagram illustrating system according to an exemplary embodiment.



FIG. 6 is a flowchart illustrating a process according to an exemplary embodiment.



FIGS. 7A, 7B, and 7C are flowcharts illustrating processes according to an exemplary embodiment.



FIG. 8 is a flowchart illustrating a process according to an exemplary embodiment.





DETAILED DESCRIPTION

Exemplary embodiments of the invention will now be described in order to illustrate various features of the invention. The embodiments described herein are not intended to be limiting as to the scope of the invention, but rather are intended to provide examples of the components, use, and operation of the invention.


Furthermore, the described features, advantages, and characteristics of any of the embodiments may be interchangeably combined with the features, advantages, and characteristics of any of the other embodiments. One skilled in the relevant art will recognize that the embodiments may be practiced with or without one or more of the specific features or advantages of an embodiment and additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments.


The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.


Although embodiments of the present invention have been described herein in the context of a particular implementation in a particular environment for a particular purpose, those skilled in the art will recognize that its usefulness is not limited thereto and that the embodiments of the present invention can be beneficially implemented in other related environments for similar purposes. The invention should therefore not be limited by the above described embodiments, method, and examples, but by all embodiments within the scope and spirit of the invention as claimed.


As used herein, user information, personal information, and sensitive information can include any information relating to the user, such as a private information and non-private information. Private information can include any sensitive data, including financial data (e.g., account information, account balances, account activity), personal information/personally-identifiable information (e.g., social security number, home or work address, birth date, telephone number, email address, passport number, driver's license number), access information (e.g., passwords, security codes, authorization codes, biometric data), and any other information that the user may desire to avoid revealing to unauthorized persons. Non-private information can include any data that is publicly known or otherwise not intended to be kept private.


In cryptography, a counter value is a numeric integer used to further improve the security of a cryptographically-protected transaction. Generally, the counter value changes with every transaction so that every transaction is uniquely protected. For example, a transmitting device and a receiving device will attempt to authenticate the user's identity for a transaction. The transmitting device will update the counter, e.g. increasing the counter by one, and encrypt an authentication credential over the counter value as well as one or more keys. By using the counter value to encrypt the authentication credential, the transmitting device guarantees that each authentication credential is unique to a specific transaction. Thus, an interfering party will find it very difficult to decrypt the authentication credential for any particular transaction let alone derive any key from said transaction.


Despite their advantages, counter values can be difficult under some circumstances. The counter value method relies on both the transmitting device and the receiving to be in sync regarding the counter value. Unfortunately, one or both of the device can become out of sync, thus preventing the user from performing a transaction. For example, the card can perform an offline transaction with a card reader. Though the card will increment its counter, the issuer associated with card will not increment its record of the counter. If the card is then used to perform an online transaction, the counter on the card and the counter from the issuer may be out of sync. This deficiency creates confusion and frustration in the user, and it could compel intervention from a more technologically intensive procedure to re-sync the devices.


Generally, the following embodiments include systems and methods for re-syncing a counter value between a transmitting device and receiving device. The transmitting device can be a contactless card provisioned with a counter value. The receiving device can be a user device or client device such as a smart phone or computer. Additionally, the system can include a server. The contactless card and the client device are provisioned with the same master key. To begin, the client device sends a randomly generated number to the contactless card via an NFC field. Upon receiving the random number, the card generates a cryptogram based on the random number. The cryptogram contains the counter value. The card transmits the cryptogram to the client device. The client device decrypts the cryptogram and gets the counter value. Having gotten the counter value from the card, the client device stores the counter value and sends it to the server. Thus, both the client device and the server are both in sync with the counter value from the card.


The systems and methods prevent and remediates a situation where the card and the client device become de-synced. This method provides a simple, quick process for re-syncing the card and the client device, thus preventing user confusion and frustration. Additionally, the security provided by the method ensures a secure process for validating the card. By storing the counter value in the client device, the system allows the client device to quickly verify whether the card has become de-synced. Furthermore, the client device can determine more quickly whether a nefarious party is trying to perform a transaction. For example, a nefarious party may be trying to perform a transaction with the card's information, but the transaction is using an incorrect counter number. The client device can then recognize that the counter number is incorrect and reject the transaction.



FIG. 1 is a block diagram illustrating a system according to an exemplary embodiment.



FIG. 1 illustrates a system 100 according to an example embodiment. The system 100 may comprise a contactless card 110, a user device 120, a server 130, a network 140, and a database 150. Although FIG. 1 illustrates single instances of components of system 100, system 100 may include any number of components.


System 100 may include one or more contactless cards 110 which are further explained below with reference to FIG. 2 and FIG. 3. In some embodiments, contactless card 110 may be in wireless communication, utilizing NFC in an example, with user device 120.


System 100 may include a user device 120. The user device 120 may be a network-enabled computer device. Exemplary network-enabled computer devices include, without limitation, a server, a network appliance, a personal computer, a workstation, a phone, a handheld personal computer, a personal digital assistant, a thin client, a fat client, an Internet browser, a mobile device, a kiosk, a contactless card, an automatic teller machine (ATM), or other computer device or communications device. For example, network-enabled computer devices may include an iPhone, iPod, iPad from Apple® or any other mobile device running Apple's iOS® operating system, any device running Microsoft's Windows® Mobile operating system, any device running Google's Android® operating system, and/or any other smartphone, tablet, or like wearable mobile device.


The user device 120 may include a processor 121, a memory 122, and an application 123. The processor 121 may be a processor, a microprocessor, or other processor, and the user device 120 may include one or more of these processors. The processor 121 may include processing circuitry, which may contain additional components, including additional processors, memories, error and parity/CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives and tamper-proofing hardware, as necessary to perform the functions described herein.


The processor 121 may be coupled to the memory 122. The memory 122 may be a read-only memory, write-once read-multiple memory or read/write memory, e.g., RAM, ROM, and EEPROM, and the user device 120 may include one or more of these memories. A read-only memory may be factory programmable as read-only or one-time programmable. One-time programmability provides the opportunity to write once then read many times. A write-once read-multiple memory may be programmed at a point in time after the memory chip has left the factory. Once the memory is programmed, it may not be rewritten, but it may be read many times. A read/write memory may be programmed and re-programed many times after leaving the factory. It may also be read many times. The memory 122 may be configured to store one or more software applications, such as the application 123, and other data, such as users' private data and financial account information.


The application 123 may comprise one or more software applications, such as a mobile application and a web browser, comprising instructions for execution on the user device 120. In some examples, the user device 120 may execute one or more applications, such as software applications, that enable, for example, network communications with one or more components of the system 100, transmit and/or receive data, and perform the functions described herein. Upon execution by the processor 121, the application 123 may provide the functions described in this specification, specifically to execute and perform the steps and functions in the process flows described below. Such processes may be implemented in software, such as software modules, for execution by computers or other machines. The application 123 may provide graphical user interfaces (GUIs) through which a user may view and interact with other components and devices within the system 100. The GUIs may be formatted, for example, as web pages in HyperText Markup Language (HTML), Extensible Markup Language (XML) or in any other suitable form for presentation on a display device depending upon applications used by users to interact with the system 100.


The user device 120 may further include a display 124 and input devices 125. The display 124 may be any type of device for presenting visual information such as a computer monitor, a flat panel display, and a mobile device screen, including liquid crystal displays, light-emitting diode displays, plasma panels, and cathode ray tube displays. The input devices 125 may include any device for entering information into the user device 120 that is available and supported by the user device 120, such as a touch-screen, keyboard, mouse, cursor-control device, touch-screen, microphone, digital camera, video recorder or camcorder. These devices may be used to enter information and interact with the software and other devices described herein.


System 100 may include a server 130. The server 130 may be a network-enabled computer device. Exemplary network-enabled computer devices include, without limitation, a server, a network appliance, a personal computer, a workstation, a phone, a handheld personal computer, a personal digital assistant, a thin client, a fat client, an Internet browser, a mobile device, a kiosk, a contactless card, or other computer device or communications device. For example, network-enabled computer devices may include an iPhone, iPod, iPad from Apple® or any other mobile device running Apple's iOS® operating system, any device running Microsoft's Windows® Mobile operating system, any device running Google's Android® operating system, and/or any other smartphone, tablet, or like wearable mobile device.


The server 130 may include a processor 131, a memory 132, and an application 133. The processor 131 may be a processor, a microprocessor, or other processor, and the server 130 may include one or more of these processors. The processor 131 may include processing circuitry, which may contain additional components, including additional processors, memories, error and parity/CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security primitives and tamper-proofing hardware, as necessary to perform the functions described herein.


The processor 131 may be coupled to the memory 132. The memory 132 may be a read-only memory, write-once read-multiple memory or read/write memory, e.g., RAM, ROM, and EEPROM, and the server 130 may include one or more of these memories. A read-only memory may be factory programmable as read-only or one-time programmable. One-time programmability provides the opportunity to write once then read many times. A write-once read-multiple memory may be programmed at a point in time after the memory chip has left the factory. Once the memory is programmed, it may not be rewritten, but it may be read many times. A read/write memory may be programmed and re-programed many times after leaving the factory. It may also be read many times. The memory 132 may be configured to store one or more software applications, such as the application 133, and other data, such as users' private data and financial account information.


The application 133 may comprise one or more software applications comprising instructions for execution on the server 130. In some examples, the server 130 may execute one or more applications, such as software applications, that enable, for example, network communications with one or more components of the system 100, transmit and/or receive data, and perform the functions described herein. Upon execution by the processor 131, the application 133 may provide the functions described in this specification, specifically to execute and perform the steps and functions in the process flows described below. For example, the application 133 may be executed to perform receiving web form data from the user device 120 and the card 110, retaining a web session between the user device 120 and the card 110, and masking private data received from the user device 120 and the card 110. Such processes may be implemented in software, such as software modules, for execution by computers or other machines. The application 133 may provide GUIs through which a user may view and interact with other components and devices within the system 100. The GUIs may be formatted, for example, as web pages in HyperText Markup Language (HTML), Extensible Markup Language (XML) or in any other suitable form for presentation on a display device depending upon applications used by users to interact with the system 100.


The server 130 may further include a display 134 and input devices 135. The display 134 may be any type of device for presenting visual information such as a computer monitor, a flat panel display, and a mobile device screen, including liquid crystal displays, light-emitting diode displays, plasma panels, and cathode ray tube displays. The input devices 135 may include any device for entering information into the server 130 that is available and supported by the server 130, such as a touch-screen, keyboard, mouse, cursor-control device, microphone, digital camera, video recorder or camcorder. These devices may be used to enter information and interact with the software and other devices described herein.


System 100 may include one or more networks 140. In some examples, the network 140 may be one or more of a wireless network, a wired network or any combination of wireless network and wired network, and may be configured to connect the user device 120, the server 130, the database 150 and the card 110. For example, the network 140 may include one or more of a fiber optics network, a passive optical network, a cable network, an Internet network, a satellite network, a wireless local area network (LAN), a Global System for Mobile Communication, a Personal Communication Service, a Personal Area Network, Wireless Application Protocol, Multimedia Messaging Service, Enhanced Messaging Service, Short Message Service, Time Division Multiplexing 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, Radio Frequency Identification (RFID), Wi-Fi, and/or the like.


In addition, the network 140 may include, without limitation, telephone lines, fiber optics, IEEE Ethernet 902.3, a wide area network, a wireless personal area network, a LAN, or a global network such as the Internet. In addition, the network 140 may support an Internet network, a wireless communication network, a cellular network, or the like, or any combination thereof. The network 140 may further include one network, or any number of the exemplary types of networks mentioned above, operating as a stand-alone network or in cooperation with each other. The network 140 may utilize one or more protocols of one or more network elements to which they are communicatively coupled. The network 140 may translate to or from other protocols to one or more protocols of network devices. Although the network 140 is depicted as a single network, it should be appreciated that according to one or more examples, the network 140 may comprise a plurality of interconnected networks, such as, for example, the Internet, a service provider's network, a cable television network, corporate networks, such as credit card association networks, and home networks. The network 140 may further comprise, or be configured to create, one or more front channels, which may be publicly accessible and through which communications may be observable, and one or more secured back channels, which may not be publicly accessible and through which communications may not be observable.


System 100 may include a database 150. The database 150 may be one or more databases configured to store data, including without limitation, private data of users, financial accounts of users, identities of users, transactions of users, and certified and uncertified documents. The database 150 may comprise a relational database, a non-relational database, or other database implementations, and any combination thereof, including a plurality of relational databases and non-relational databases. In some examples, the database 150 may comprise a desktop database, a mobile database, or an in-memory database. Further, the database 150 may be hosted internally by the server 130 or may be hosted externally of the server 130, such as by a server, by a cloud-based platform, or in any storage device that is in data communication with the server 130.


In some examples, exemplary procedures in accordance with the present disclosure described herein can be performed by a processing arrangement and/or a computing arrangement (e.g., computer hardware arrangement). Such processing/computing arrangement can be, for example entirely or a part of, or include, but not limited to, a computer/processor that can include, for example one or more microprocessors, and use instructions stored on a non-transitory computer-accessible medium (e.g., RAM, ROM, hard drive, or other storage device). For example, a computer-accessible medium can be part of the memory of the contactless card 110, the user device 120, the server 130, the network 140, and the database 150 or other computer hardware arrangement.


In some examples, a computer-accessible medium (e.g., as described herein, a storage device such as a hard disk, floppy disk, memory stick, CD-ROM, RAM, ROM, etc., or a collection thereof) can be provided (e.g., in communication with the processing arrangement). The computer-accessible medium can contain executable instructions thereon. In addition or alternatively, a storage arrangement can be provided separately from the computer-accessible medium, which can provide the instructions to the processing arrangement so as to configure the processing arrangement to execute certain exemplary procedures, processes, and methods, as described herein above, for example.



FIG. 2 illustrates a contactless card 200 according to an example embodiment. The contactless card 200 may comprise a payment card, such as a credit card, debit card, or gift card, issued by a service provider 205 displayed on the front or back of the card 200. In some examples, the payment card may comprise a dual interface contactless payment card. In some examples, the contactless card 200 is not related to a payment card, and may comprise, without limitation, an identification card, a membership card, a loyalty card, a transportation card, and a point of access card.


The contactless card 200 may comprise a substrate 210, which may include a single layer or one or more laminated layers composed of plastics, metals, and other materials. Exemplary substrate materials include polyvinyl chloride, polyvinyl chloride acetate, acrylonitrile butadiene styrene, polycarbonate, polyesters, anodized titanium, palladium, gold, carbon, paper, and biodegradable materials. In some examples, the contactless card 200 may have physical characteristics compliant with the ID-1 format of the ISO/IEC 7810 standard, and the contactless card may otherwise be compliant with the ISO/IEC 14443 standard. However, it is understood that the contactless card 200 according to the present disclosure may have different characteristics, and the present disclosure does not require a contactless card to be implemented in a payment card.


The contactless card 200 may also include identification information 215 displayed on the front and/or back of the card, and a contact pad 220. The contact pad 220 may be configured to establish contact with another communication device, such as a user device, smart phone, laptop, desktop, or tablet computer. The contactless card 200 may also include processing circuitry, antenna and other components not shown in FIG. 2 and FIG. 3. These components may be located behind the contact pad 220 or elsewhere on the substrate 210. The contactless card 200 may also include a magnetic strip or tape, which may be located on the back of the card (not shown in FIG. 2).



FIG. 3 illustrates a contact pad 305 of a contactless card 200 according to an example embodiment.


As illustrated in FIG. 3, the contact pad 305 may include processing circuitry 310 for storing and processing information, including a microprocessor 320 and a memory 325. It is understood that the processing circuitry 310 may contain additional components, including processors, memories, error and parity/CRC checkers, data encoders, anticollision algorithms, controllers, command decoders, security primitives and tamperproofing hardware, as necessary to perform the functions described herein.


The memory 325 may be a read-only memory, write-once read-multiple memory or read/write memory, e.g., RAM, ROM, and EEPROM, and the contactless card 200 may include one or more of these memories. A read-only memory may be factory programmable as read-only or one-time programmable. One-time programmability provides the opportunity to write once then read many times. A write once/read-multiple memory may be programmed at a point in time after the memory chip has left the factory. Once the memory is programmed, it may not be rewritten, but it may be read many times. A read/write memory may be programmed and re-programed many times after leaving the factory. It may also be read many times.


The memory 325 may be configured to store one or more applets 330, one or more counters 335, and a customer identifier 340. The one or more applets 330 may comprise one or more software applications configured to execute on one or more contactless cards, such as Java Card applet, and perform the functions described herein. However, it is understood that applets 330 are not limited to Java Card applets, and instead may be any software application operable on contactless cards or other devices having limited memory. The one or more counters 335 may comprise a numeric counter sufficient to store an integer. The customer identifier 340 may comprise a unique alphanumeric identifier assigned to a user of the contactless card 200, and the identifier may distinguish the user of the contactless card from other contactless card users. In some examples, the customer identifier 340 may identify both a customer and an account assigned to that customer and may further identify the contactless card associated with the customer's account.


The processor and memory elements of the foregoing exemplary embodiments are described with reference to the contact pad, but the present disclosure is not limited thereto. It is understood that these elements may be implemented outside of the pad 305 or entirely separate from it, or as further elements in addition to processor 320 and memory 325 elements located within the contact pad 305.


In some examples, the contactless card 200 may comprise one or more antennas 315. The one or more antennas 315 may be placed within the contactless card 200 and around the processing circuitry 310 of the contact pad 305. For example, the one or more antennas 315 may be integral with the processing circuitry 310 and the one or more antennas 315 may be used with an external booster coil. As another example, the one or more antennas 315 may be external to the contact pad 305 and the processing circuitry 310.


In an embodiment, the coil of contactless card 200 may act as the secondary of an air core transformer. The terminal may communicate with the contactless card 200 by cutting power or amplitude modulation. The contactless card 200 may infer the data transmitted from the terminal using the gaps in the contactless card's power connection, which may be functionally maintained through one or more capacitors. The contactless card 200 may communicate back by switching a load on the contactless card's coil or load modulation. Load modulation may be detected in the terminal's coil through interference.


As explained above, the contactless cards 200 may be built on a software platform operable on smart cards or other devices having limited memory, such as JavaCard, and one or more or more applications or applets may be securely executed. Applets may be added to contactless cards to provide a one-time password (OTP) for multifactor authentication (MFA) in various mobile application-based use cases. Applets may be configured to respond to one or more requests, such as near field data exchange requests, from a reader, such as a mobile NFC reader, and produce an NFC Data Exchange Format (NDEF) message that comprises a cryptographically secure OTP encoded as an NDEF text tag.



FIG. 4 is a flow chart of method 400 of key diversification according to an example of the present disclosure.


In some examples, a sender and recipient may desire to exchange data via a transmitting device and a receiving device. In some embodiments, the transmitting device is the contactless card and the receiving device is the server. It is understood that one or more transmitting devices and one or more receiving devices may be involved so long as each party shares the same shared secret symmetric key. In some examples, the transmitting device and receiving device may be provisioned with the same master symmetric key. In other examples, the transmitting device may be provisioned with a diversified key created using the master key. In some examples, the symmetric key may comprise the shared secret symmetric key which is kept secret from all parties other than the transmitting device and the receiving device involved in exchanging the secure data. It is further understood that part of the data exchanged between the transmitting device and receiving device comprises at least a portion of data which may be referred to as the counter value. The counter value may comprise a number that changes each time data is exchanged between the transmitting device and the receiving device.


The transmitting device and the receiving device may be configured to communicate via NFC, Bluetooth, RFID, Wi-Fi, and/or the like. The transmitting device and the receiving device may be network-enabled computer devices. In some examples, the transmitting device may comprise a contactless card and the receiving device may comprise a server. In other examples, the receiving device may comprise a user device or a user device application.


The method 400 can begin with step 405. In step 405, a transmitting device and receiving device may be provisioned with the same master key, such as the same master symmetric key. When the transmitting device is preparing to process the sensitive data with symmetric cryptographic operation, the transmitting device may update a counter. In addition, the transmitting device may select an appropriate symmetric cryptographic algorithm, which may include at least one of a symmetric encryption algorithm, HMAC algorithm, and a CMAC algorithm. In some examples, the symmetric algorithm used to process the diversification value may comprise any symmetric cryptographic algorithm used as needed to generate the desired length diversified symmetric key. Non-limiting examples of the symmetric algorithm may include a symmetric encryption algorithm such as 3DES or AES128, a symmetric HMAC algorithm, such as HMAC-SHA-256, and a symmetric CMAC algorithm, such as AES-CMAC.


In step 410, the transmitting device may take the selected cryptographic algorithm, and using the master symmetric key, process the counter value. For example, the transmitting device may select a symmetric encryption algorithm, and use a counter which updates with every conversation between the transmitting device and the receiving device. The one or more counters may comprise a numeric counter sufficient to store an integer. The transmitting device may increment the counter one or more times.


In step 415, the transmitting device generates two session keys: one ENC (encryption) session key and one MAC (message authentication code) session key. The transmitting device may encrypt the counter value with the selected symmetric encryption algorithm using the master symmetric key to create a session key.


In step 420, the transmitting device generates the MAC over the counter, the unique customer identifier, and the shared secret MAC session key. The customer identifier may comprise a unique alphanumeric identifier assigned to a user of the contactless card, and the identifier may distinguish the user of the contactless card from other contactless card users. In some examples, the customer identifier may identify both a customer and an account assigned to that customer and may further identify the contactless card associated with the customer's account.


In step 425, the transmitting device encrypts the MAC with the ENC session key. As encrypted, the MAC can become a cryptogram. In some examples, a cryptographic operation other than encryption may be performed, and a plurality of cryptographic operations may be performed using the diversified symmetric keys prior to transmittal of the protected data. In some examples, the MAC cryptogram can be a digital signature used to verify user information. Other digital signature algorithms, such as public key asymmetric algorithms, e.g., the Digital Signature Algorithm and the RSA algorithm, or zero knowledge protocols, may be used to perform this verification.


In step 430, the transmitting device transmits a cryptogram to the receiving device. The cryptogram can include the applet information, the unique customer identifier, the counter value, and the encrypted MAC.


In step 435, the receiving device validates the cryptogram.



FIG. 5 is a diagram illustrating near field communication (NFC) according to an exemplary embodiment.


Generally, NFC is the transmission of data through electromagnetic radio fields which enable two or more devices to communicate with each other without touching. NFC operates at 13.56 MHz on ISO/IEC 18000-3 air interface and at rates ranging from 106 kbit/s to 424 kbit/s. When two NFC-enabled devices are placed within a very small distances (e.g. a few centimeters), they can perform a transaction of information. NFC is beneficial to consumer transactions because it allows for near instantaneous reading of information. The receiving device reads the transmitted data the instant that it is sent. Therefore, human error is greatly reduced. Additionally, NFC reduces the time need to read a card. Rather than swipe a card through a reader, a consumer can simply touch the card or user device to an NFC enabled reader. Additionally, NFC reduces the risk of interference from fraudulent parties. Because NFC devices may communicate only over a very short distance, it is extremely difficult to intercept the information being sent between the devices.


Some examples of NFC communication include NFC card emulation where smartphones act like smart cards allowing users to perform transactions such as payment. As another example, NFC reader/writer communication allows devices to read information stored on NFC tags embedded into labels or smart posters. As another example, NFC peer-to-peer communication allows two NFC-enabled devices to communicate with each other to exchange information.


NFC standards cover communications protocols and data exchange formats, and are based on existing RFID standards including ISO/IEC 14443 and FeliCa. The standards include ISO/IEC 18092 and those defined by the NFC Forum.


In FIG. 5, a user device 505 and a contactless card 510 are interacting within an NFC field 515. The user device is further explained with reference to FIG. 1. The contactless card is further explained with reference to FIGS. 2 and 3. Both the user device and contactless card may be enabled with NFC technology. The user and the card are in close contact with each other so that they can exchange information within the communication field. The user device can include without limitation a computer-enabled device such as a card reading terminal, smart phone, computer, or other device. The device may or may not be associated with the card issuer. It is understood that the client device may not be connected to an external network. That is, the client device may conduct the sharing of information offline.



FIG. 6 is a flowchart illustrating a method according to an exemplary embodiment.


The method 600 can include a client device, a card, and one or more servers. The client device can be a computer-enabled smart device such as a smart phone, smart watch, personal computer, card reader, or some other merchant device. The card can include a contactless card. The card can be associated with one or more financial accounts such as a spending account, savings account, investment account, credit account or some other account associated with a banking or financial institution. Regarding decryption capabilities, the client device and the card can be provisioned with the same master key.


In action 605, the client device can generate a random number. This action can be performed by a processor associated with the client device. The random number can be generated by a predetermined function such as a hash function. Having produced the random number, in action 610 the client device can transmit the number to the contactless card. To transmit the random number, the client device can open a communication field. The communication field can include without limitation a near-field communication (NFC) field, a Bluetooth field, or a radio frequency identification (RFID) field. Communication fields are discussed further with reference to FIG. 5. Once the communication field is opened, the card may enter the communication field and receive the random number from the client device. Through the communication field, the random number can be sent by a processor associated with the client device. It is understood that the client device may open a communication field one or more times in response to requests received from either the card, the server, or some other device. Upon receiving the random number, in action 615 the card can generate a cryptogram based on the random number. Generally, a cryptogram is one or more encrypted texts. The card can create the cryptogram by encrypting the random number, the counter number, and the private key associated with the card. The counter number can be previously incremented in response to initiating a communication with the client device. It is understood that the card can generate the cryptogram over other information including without limitation the card's unique identifier. Additionally, the card can generate a message authentication code (MAC) over the counter, a unique identifier, and a session key. The generation of a MAC as well as other aspects of a diversified session key exchange are discussed with further reference to FIG. 4. The encryption can be performed by some predetermined encryption algorithm or diversified key exchange. In addition to generating the cryptogram over the random number, the card may also store the random number in its memory. Once the cryptogram is generated, in action 620 the card transmits the cryptogram to the client device. This action can be performed over a communication field or a wireless network. Alternatively, the client device may receive the cryptogram even when the client device is not connected to an external network. That is, the client device may receive the cryptogam locally. Furthermore, this action can be performed by a processor or microprocessor associated with the card. Having received the cryptogram, in action 625 the client device can decrypt the cryptogram. The client device can perform the decryption by using the shared master or public key. Additionally, the client device can use a private key or a derived session key. Diversified session key exchange is discussed with further reference to FIG. 4. Additionally, the cryptogram can be validated with a secret key by the client application. The secret key may be derived from the information contained in the cryptogram or it may be provisioned by other methods. The secret key may be stored in the memory of a server or within the hardware security module of the client device. In action 630, the client device can determine the counter value based on the decrypted cryptogram. Additionally, the client device determines the private key and public key signature from the cryptogram. In action 635, the client device can verify the public key signature from the cryptogram with an authority list from a Certificate Authority (CA). Generally, a CA is a trusted organization that verifies websites and other entities through public key infrastructure (PKI). An authority list is a list of certificates maintained or stored by the CA for the purpose of authorizing transactions using public keys. The authority list may be requested or retrieved by the processor over a network. Having verified the public key, in action 640 the client device can store the counter value in its memory. The client device may store the counter value for the purpose of verifying future transactions. As a nonlimiting example, the client device may reference the stored counter number when verifying the next transaction involving the card. In action 645, the client device can transmit the counter value to the server. The counter value may be transmitted over a wireless network. The server can store the counter value in a database or data storage unit for future reference.


It is understood that the authentication of the card can be a dynamic authentication process (DDA) or a combined dynamic authentication process (CDA) discussed with further reference to FIGS. 7A-7C.



FIG. 7A illustrates the one or more elements present in a public key authentication of a card. An issuer public key (PK) certificate 701 can include an issuer public key 702 and a certificate authority private key 703. A card public key certificate 704 can include static data 705, a card public key 706, and an issuer private key 707. Other elements include a card private key 708 and dynamic data 709. The issuer can be without limitation an institution or entity that provides the card to the user.



FIGS. 7B-7C are flowcharts illustrating a method according to an exemplary embodiment. The client device can send the counter values to the first and second servers over an internal or external network such as static data authentication (SDA), dynamic data authentication (DDA), or combined data authentication (CDA). SDA can determine that the data read from the chip associated with the card has not been manipulated or changed since it was issued, although SDA does not determine that the card itself is genuine. DDA determines that both the card and the data read from the chip associated with the card are genuine. DDA authenticates the card by performing offline dynamic authentication using data from the terminal or client device generated for each transaction. CDA authenticates the card by combining the digital signature with the generation of the application cryptogram to verify that the cryptogram came from a valid card.



FIG. 7A describes an exemplary embodiment of a method of card authentication using dynamic data authentication (DDA). DDA can include without limitation an issuer public key certificate further including an issuer public key and certificate authority private key; a card public key certificate including a card public key, an issuer private key, and some predetermined static data; a card private key; and some dynamic data that is created specifically for each transaction such that each dynamic datum is different. It is understood that DDA can be performed locally or offline.


The exemplary processes in FIGS. 7B and 7C are described under the assumption that a card is interacting with a client device discussed with further reference to FIG. 1. However, in each action described in FIGS. 7B and 7C, it is understood that the action can be performed by a processor associated with the card, the client device, or a server. The actions of transmitting and receiving can be done over one or more wired or wireless networks, including but not limited to one or more of NFC fields, RFID fields, or Bluetooth.


In action 710, the card transmits the issuer public key certificate to client device. In action 715, the client device can verify the issuer public key certificate with a certificate authority public key which was previously provisioned to the client device. In action 720, the card can transmit the card public key certificate to the client device. In action 725, the client device can verify or validate the static data sent in the card public key certificate as well as the card public key. In action 730, the card receives dynamic data from the client device. The dynamic data can be unique to every transaction. In action 735, the card signs the dynamic data with the card private key. In action 740, the card transmits the signed dynamic data to the client device. In action 745, the client device verifies the signed dynamic data with the card public key. Thus, the client device verifies the card with dynamic data.


In FIG. 7C the card and client device can engage in combined data authentication (CDA). CDA follows the same steps of DDA except that CDA includes the exchange of a cryptogram. The CDA process is similar to the DDA process except that when the card sends the final card certificate, the card also sends the cryptogram. It is understood that CDA can be performed locally or offline. By storing the counter value among multiple devices and servers, this system and method further protects the user from fraudulent hacking or other nefarious uses of the card.


In action 750, the card transmits the issuer public key certificate to client device. In action 755, the client device can verify the issuer public key certificate with a certificate authority public key which was previously provisioned to the client device. In action 760, the card can transmit the card private key certificate to the client device. In action 765, the client device can verify or validate the static data sent in the card public key certificate as well as the card public key. In action 770, the card receives dynamic data from the client device. The dynamic data can be unique to every transaction. In action 775, the card signs the dynamic data with the card private key. In action 780, the card can send the dynamic data signed with the private key as well as a cryptogram to the client device. The cryptogram in FIG. 7C may be the same cryptogram described in FIG. 6, but it is understood that the present disclosure is not limited thereto. In action 785, the client device verifies the random data with the card public key. In action 790, the client device decrypts a cryptogram sent from the card.


Exemplary embodiments of the process of receiving a cryptogram from the card are described with further reference to FIG. 6. Generally, this action can be performed by a processor associated with the client device. Upon decrypting the cryptogram, the client device gets the counter value from the card in addition to the card's private key and public key signature. In action 795, the client device can store the counter value in the client device, a first server, and a second server. These actions can be performed by a processor associated with the client device. The client device can be a computer-enabled smart device such as a smart phone, smart watch, personal computer, card reader, or some other merchant device. The first server and second server can be associated without limitation with one or more financial institutions, merchant institutions, security institutions, or other secure institution. By storing the counter value among the client device and the servers, the method ensures that the counter value is synced among more than one organization. It is understood that other information associated with the card and the transaction may be stored in the client device or the servers. As a nonlimiting example, the client application can transmit the transaction amount associated with the cryptogram to the client device or the servers. As another nonlimiting example, the client device may store a secret key within the hardware of the client device or the application may transmit the secret key to one or more servers. The client application may also store the signature authority list in the memory of the client device and one or more servers.


It is understood that when the counter value is changed or updated, the client application can call an application programming interface (API) to update the counter value within the records of the client device and servers.


Furthermore, if the client device becomes de-synced from the card, the device can connect with one of the servers to re-sync with the counter value. This avoids the situation where the client device must wait until the next transaction with the card to re-sync the counter value. It is understood that although two servers are depicted in FIG. 6, any number of servers can be used. Furthermore, it is understood that the client device and the servers can engage in independent verification processes before sending and receiving counter values.



FIG. 8 is a flowchart illustrating a method according to an exemplary embodiment.


In action 805, the client device decrypts the cryptogram sent by the card. The generating and transmission of the cryptogram is discussed further with reference to FIG. 6. In addition to decrypting the cryptogram as a means of verifying the card information, the client device may also send an authorization request to a server associated with a card issuer. It is understood that the client device may or may not be associated with a card issuer.


In action 810, the client device can send a zero dollar authorization request to the card issuer server. Generally, the zero dollar authorization request is a request aimed to validate an account number associated with a card. Rather than validate the card through a normal transaction, the server associated with the card issuer may perform a $0.00 transaction or an otherwise very small transaction such as $0.0250. Thus, the zero dollar authentication validates the card without charging it. Additionally, the zero dollar authorization request can validate a card verification value (CVV) and address verification service (AVS). The zero dollar authorization request simulates a transaction without charging any money to the cardholder's account.


In action 815, the client device can receive a zero dollar authorization response from the server. The response can be sent over a network. The response can be sent once the server determines that the account associated with the card has sufficient funds or some other element is verified. Additionally, the client application can send the offline zero dollar amount request to one or more servers based on the cryptogram.


The authorization process can be conducted online or offline. Generally, an offline EMV authorization is a transaction resulting from a request by a card-reading terminal (i.e. the client device) to the card for approval of a transaction without requesting online authorizations from the issuer host. Both the card and the client device must support and be certified for offline authorization in order for offline authorization to occur. It is understood that the client applicant may not be associated with an issuer of a contactless card.


When an offline authorization is possible, the client device may use an application certification (AC) to the ask the chip associated with the card to approve of the transaction. The chip can respond with either a transaction certificate (TC) as approval of the transaction or respond with an application authentication cryptogram (ACC) and indicate that it is declining the transaction. Furthermore, the client device may perform a deferred authorization. A deferred authorization is an authorization request or financial request that can occur when online connectivity is briefly not available. While online capabilities are paused, the client device may hold the transaction until connectivity is restored. Once connectivity is restored, the client device may send an authorization request to the issuer.


The offline authorization described in FIG. 8 may be associated with Europay, MasterCard, and Visa (EMV) standards. Additionally, the offline authorization processes described in FIG. 8 may be a dynamic data authentication process (DDA) or combined dynamic authentication process (CDA) discussed with further reference to FIG. 7.


In some aspects, the techniques described herein relate to a method for synchronizing a counter value, including: receiving, by a contactless card having a processor and memory, a random number, wherein the memory further includes a counter value, a public key, and a private key; generating, by the contactless card, a cryptogram based on the random number, the private key, and the counter value, wherein the cryptogram is further configured to be decrypted by one or more applications via the public key corresponding to the private key, wherein the decryption of the cryptogram results in finding the counter value, and wherein the counter value is further configured to be stored in a memory and a server.


In some aspects, the techniques described herein relate to a method, wherein the method further includes the steps of: generating, by a client application, the random number; transmitting, by the client application, the random number to the contactless card; decrypting the cryptogram, by the client application based on the public key and the random number; determining, by the client application, the counter value based on the decrypted cryptogram; authenticating, by the client application, a signature of the public key with a signature authority list; storing, by the client application, the counter value in a memory; and transmitting, by the client application, the counter value to a server.


In some aspects, the techniques described herein relate to a method, wherein the counter value is stored in a memory of a client device by the client application.


In some aspects, the techniques described herein relate to a method, wherein the counter value is stored in a memory of a second server by the client application.


In some aspects, the techniques described herein relate to a method, wherein the contactless card transmits the cryptogram to the client application when the client application is not connected to an external network.


In some aspects, the techniques described herein relate to a method, wherein the client application transmits the counter value to the server over an external network when the client application is connected to the external network.


In some aspects, the techniques described herein relate to a method, wherein the authenticating of the public key signature is a dynamic data authentication process.


In some aspects, the techniques described herein relate to a method, wherein the dynamic data authentication process is performed locally.


In some aspects, the techniques described herein relate to a method, wherein the authenticating of the public key signature is a combined dynamic data authentication process wherein the client application transmits an indication of a transaction amount associated with the cryptogram to the server.


In some aspects, the techniques described herein relate to a method, wherein the cryptogram is validated with a secret key by the client application.


In some aspects, the techniques described herein relate to a system for synchronizing a counter value, including: a contactless card having a processor and memory, the memory of the contactless card containing a counter value, a public key, and a private key, wherein the contactless card is configured to: receive a random number, and generate a cryptogram based on the random number, the private key, and the counter value, wherein the cryptogram is further configured to be decrypted by one or more applications via a public key corresponding to the private key, wherein the decryption of the cryptogram results in finding the counter value, and wherein the counter value is further configured to be stored in a memory and server.


In some aspects, the techniques described herein relate to a system, wherein the system further includes: a client device having a client application including instructions for execution on the client device; wherein the client application is configured to: generate the random number, transmit the random number to the contactless card, receive the cryptogram and the public key from the contactless card, decrypt the cryptogram using the public key and the random number, determine the counter value based on the decrypted cryptogram, verify a signature of the public key with a signature authority list, store the counter value in a memory of the client device, and transmit the counter value to a server.


In some aspects, the techniques described herein relate to a system, wherein the signature authority list is stored in a memory of the client device.


In some aspects, the techniques described herein relate to a system, wherein the client application is configured to authenticate the contactless card upon a reception of the cryptogram when the client device is not connected to an external network.


In some aspects, the techniques described herein relate to a system, wherein the client application is configured to transmit the counter value to the server when the client device is connected to the external network.


In some aspects, the techniques described herein relate to a system, wherein the client application is further configured to call an application programming interface to update a counter value of record to the counter value.


In some aspects, the techniques described herein relate to a system, wherein the client application is associated with an issuer of the transmitting device.


In some aspects, the techniques described herein relate to a system, wherein the client application is further configured to transmit an offline zero dollar authorization request to the server based on the cryptogram.


In some aspects, the techniques described herein relate to a computer readable non-transitory medium including computer executable instructions that, when executed on a processor, configure the processor to perform procedures including: receiving a random number, generating, a cryptogram based on the random number, a private key, and a counter value, wherein the cryptogram is further configured to be decrypted by one or more applications via a public key corresponding to the private key, wherein the decryption of the cryptogram results in finding the counter value, and wherein the counter value is further configured to be stored in a memory and server.


In some aspects, the techniques described herein relate to a computer readable non-transitory medium, further configured, when executed on a processor, to perform via the processor the procedures including: generating a random number; transmitting, the random number to a contactless card; decrypting the cryptogram based on the public key and the random number; determining the counter value based on the decrypted cryptogram; verifying a signature of the public key with a signature authority list; storing the counter value in a memory of a client device; and transmitting the counter value to a server.


Although embodiments of the present invention have been described herein in the context of a particular implementation in a particular environment for a particular purpose, those skilled in the art will recognize that its usefulness is not limited thereto and that the embodiments of the present invention can be beneficially implemented in other related environments for similar purposes. The invention should therefore not be limited by the above described embodiments, method, and examples, but by all embodiments within the scope and spirit of the invention as claimed.


In the invention, various embodiments have been described with references to the accompanying drawings. It may, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of the invention as set forth in the claims that follow. The invention and drawings are accordingly to be regarded in an illustrative rather than restrictive sense.


The invention is not to be limited in terms of the particular embodiments described herein, which are intended as illustrations of various aspects. Many modifications and variations can be made without departing from its spirit and scope. Functionally equivalent systems, processes and apparatuses within the scope of the invention, in addition to those enumerated herein, may be apparent from the representative descriptions herein. Such modifications and variations are intended to fall within the scope of the appended claims. The invention is to be limited only by the terms of the appended claims, along with the full scope of equivalents to which such representative claims are entitled.


As used herein, the terms “card,” “transaction card,” and “contactless card” are not limited to a particular type of card. Rather, it is understood that these terms can refer to a contact-based card, a contactless card, or any other card, unless otherwise indicated. It is further understood that the present disclosure is not limited to cards having a certain purpose (e.g., payment cards, gift cards, identification cards, or membership cards), to cards associated with a particular type of account (e.g., a credit account, a debit account, a membership account), or to cards issued by a particular entity (e.g., a financial institution, a government entity, or a social club). Instead, it is understood that the present disclosure includes cards having any purpose, account association, or issuing entity.


As used herein, user information, personal information, and sensitive information can include any information relating to the user, such as a private information and non-private information. Private information can include any sensitive data, including financial data (e.g., account information, account balances, account activity), personal information/personally-identifiable information (e.g., social security number, home or work address, birth date, telephone number, email address, passport number, driver's license number), access information (e.g., passwords, security codes, authorization codes, biometric data), and any other information that user may desire to avoid revealing to unauthorized persons. Non-private information can include any data that is publicly known or otherwise not intended to be kept private.


It is further noted that the systems and methods described herein may be tangibly embodied in one or more physical media, such as, but not limited to, a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a hard drive, read only memory (ROM), random access memory (RAM), as well as other physical media capable of data storage. For example, data storage may include random access memory (RAM) and read only memory (ROM), which may be configured to access and store data and information and computer program instructions. Data storage may also include storage media or other suitable type of memory (e.g., such as, for example, RAM, ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, floppy disks, hard disks, removable cartridges, flash drives, any type of tangible and non-transitory storage medium), where the files that comprise an operating system, application programs including, for example, web browser application, email application and/or other applications, and data files may be stored. The data storage of the network-enabled computer systems may include electronic information, files, and documents stored in various ways, including, for example, a flat file, indexed file, hierarchical database, relational database, such as a database created and maintained with software from, for example, Oracle® Corporation, Microsoft® Excel file, Microsoft® Access file, a solid state storage device, which may include a flash array, a hybrid array, or a server-side product, enterprise storage, which may include online or cloud storage, or any other storage mechanism. Moreover, the figures illustrate various components (e.g., servers, computers, processors, etc.) separately. The functions described as being performed at various components may be performed at other components, and the various components may be combined or separated. Other modifications also may be made.


Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.


Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, to perform aspects of the present invention.


These computer readable program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified herein. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the functions specified herein.


The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions specified herein.


Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.


Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).


The preceding description of exemplary embodiments provides non-limiting representative examples referencing numerals to particularly describe features and teachings of different aspects of the invention. The embodiments described should be recognized as capable of implementation separately, or in combination, with other embodiments from the description of the embodiments. A person of ordinary skill in the art reviewing the description of embodiments should be able to learn and understand the different described aspects of the invention. The description of embodiments should facilitate understanding of the invention to such an extent that other implementations, not specifically covered but within the knowledge of a person of skill in the art having read the description of embodiments, would be understood to be consistent with an application of the invention.

Claims
  • 1. A method for synchronizing a counter value, comprising: receiving, by a contactless card having a processor and a memory, a random number, wherein the memory comprises a counter value, a public key, and a private key;generating, by the contactless card, a cryptogram based on the random number, the private key, and the counter value, the cryptogram including an encrypted version of the counter value;transmitting, by the contactless card to a client application of a client device, the cryptogram, including the encrypted version of the counter value, when the client application is not connected to an external network;transmitting, by the contactless card to the client application of the client device, an issuer public key certificate, the issuer public key certificate including an issuer public key, a certificate authority private key, and static data;verifying, by the client application of the client device, the issuer public key certificate with a certificate authority public key which was previously provisioned to the client device when the client device was connected to the external network;verifying, by the client application of the client device, the static data;decrypting, by the client application, the cryptogram using the public key and the random number that was generated by the client application, wherein decrypting the cryptogram includes decrypting the encrypted version of the counter value, thereby providing the counter value, as decrypted, to the client application;storing the counter value into memory on the client device; andcalling, by the client application, an application programming interface to update the counter value within a first server to thereby synchronize the counter value between the contactless card, the client device, and the first server;wherein, in response to the client device determining that the counter value of the client device later becomes unsynchronized with at least the first server, the method further includes the client application communicating with the first server to synchronize the counter value with the first server without waiting for a new interaction with the contactless card.
  • 2. The method of claim 1, wherein the method further comprises the steps of: transmitting, by the client application, the random number to the contactless card, before the cryptogram is generated; andauthenticating, by the client application, a signature of the public key with a signature authority list.
  • 3. The method of claim 2, wherein the counter value is stored in the memory of the client device by the client application.
  • 4. The method of claim 2, wherein the counter value is sent by the client application to a second server to be stored in a memory of the second server.
  • 5. The method of claim 2, wherein the client application transmits the counter value to the first server over the external network when the client application is connected to the external network.
  • 6. The method of claim 2, wherein the authenticating of the signature of the public key is a dynamic data authentication process.
  • 7. The method of claim 6, wherein the dynamic data authentication process is performed locally.
  • 8. The method of claim 2, wherein the authenticating of the signature of the public key is a combined dynamic data authentication process wherein the client application transmits an indication of a transaction amount associated with the cryptogram to the first server.
  • 9. The method of claim 7, wherein the cryptogram is validated with a secret key by the client application.
  • 10. The method of claim 1, wherein: the memory further comprises a unique identifier associated with the card, andthe cryptogram is generated based on the random number, the private key, the counter value, and the unique identifier.
  • 11. The method of claim 2, wherein the method further comprises the step verifying, by the client application with the counter value, a transaction involving the contactless card.
  • 12. A system for synchronizing a counter value, comprising: a contactless card having a processor and a memory, the memory of the contactless card containing a counter value, a public key, and a private key, wherein the contactless card is configured to: receive a random number; andgenerate a cryptogram based on the random number, the private key, and the counter value, the cryptogram including an encrypted version of the counter value; anda client device having a client application comprising instructions for execution on the client device, wherein the client application is configured to: receive, from the contactless card when the client application is not connected to an external network, the cryptogram, including the encrypted version of the counter value;receive, from the contactless card, an issuer public key certificate, the issuer public key certificate including an issuer public key, a certificate authority private key, and static data;verify the issuer public key certificate with a certificate authority public key which was previously provisioned to the client device when the client device was connected to the external network;verify the static data;decrypt the cryptogram using the public key and the random number that was generated by the client application, wherein decrypting the cryptogram includes the client application to decrypt the encrypted version of the counter value, thereby providing the counter value, as decrypted, to the client application;store the counter value into memory on the client device; andcall an application programming interface to update the counter value within a first server to thereby synchronize the counter value between the contactless card, the client device, and the first server;wherein, in response to the client device determining that the counter value of the client device later becomes unsynchronized with at least the first server, the client device is further configured to communicate with the first server to synchronize the counter value with the first server without waiting for a new interaction with the contactless card.
  • 13. The system of claim 12, wherein the client application is configured to: transmit the random number to the contactless card before the cryptogram is generated,receive the public key from the contactless card, andverify a signature of the public key with a signature authority list.
  • 14. The system of claim 13, wherein the signature authority list is stored in the memory of the client device.
  • 15. The system of claim 13, wherein the client application is configured to transmit the counter value to the first server when the client device is connected to the external network.
  • 16. The system of claim 12, wherein the client application is associated with an issuer of the contactless card.
  • 17. The system of claim 13, wherein the client application is further configured to transmit an offline zero dollar authorization request to the first server based on the cryptogram.
  • 18. A computer readable non-transitory medium comprising computer executable instructions that, when executed on one or more processors, configure the one or more processors to perform procedures comprising: receiving, at a contactless card, a random number;generating a cryptogram based on the random number, a private key, and a counter value, the cryptogram including an encrypted version of the counter value;transmitting the cryptogram, including the encrypted version of the counter value, to a client application of a client device when the client application is not connected to an external network;transmitting an issuer public key certificate, the issuer public key certificate including an issuer public key and a certificate authority private key;verifying the issuer public key certificate with a certificate authority public key which was previously provisioned to the client device when the client device was connected to the external network,decrypting the cryptogram using the public key and the random number that was generated by the client application, wherein decrypting the cryptogram includes decrypting the encrypted version of the counter value, thereby providing the counter value, as decrypted, to the client application;storing the counter value into memory on the client device; andcalling an application programming interface to update the counter value within a first server to thereby synchronize the counter value between the contactless card, the client device, and the first server;wherein, in response to the client device determining that the counter value of the client device later becomes unsynchronized with at least the first server, the procedures further include the client application communicating with the first server to synchronize the counter value with the first server without waiting for a new interaction with the contactless card.
  • 19. The computer readable non-transitory medium of claim 18, wherein the computer executable instructions that, when executed on the one or more processors, further configure the one or more processors to perform procedures comprising: transmitting, the random number to the contactless card, before the cryptogram is generated; andverifying a signature of the public key with a signature authority list.
US Referenced Citations (549)
Number Name Date Kind
4683553 Mollier Jul 1987 A
4827113 Rikuna May 1989 A
4910773 Hazard et al. Mar 1990 A
5036461 Elliott et al. Jul 1991 A
5363448 Koopman, Jr. et al. Nov 1994 A
5377270 Koopman, Jr. et al. Dec 1994 A
5533126 Hazard Jul 1996 A
5537314 Kanter Jul 1996 A
5592553 Guski et al. Jan 1997 A
5616901 Crandall Apr 1997 A
5666415 Kaufman Sep 1997 A
5764789 Pare, Jr. et al. Jun 1998 A
5768373 Lohstroh et al. Jun 1998 A
5778072 Samar Jul 1998 A
5796827 Coppersmith et al. Aug 1998 A
5832090 Raspotnik Nov 1998 A
5883810 Franklin et al. Mar 1999 A
5901874 Deters May 1999 A
5929413 Gardner Jul 1999 A
5960411 Hartman et al. Sep 1999 A
6021203 Douceur et al. Feb 2000 A
6049328 Vanderheiden Apr 2000 A
6058373 Blinn et al. May 2000 A
6061666 Do et al. May 2000 A
6105013 Curry et al. Aug 2000 A
6199114 White et al. Mar 2001 B1
6199762 Hohle Mar 2001 B1
6216227 Goldstein et al. Apr 2001 B1
6227447 Campisano May 2001 B1
6282522 Davis et al. Aug 2001 B1
6324271 Sawyer et al. Nov 2001 B1
6342844 Rozin Jan 2002 B1
6367011 Lee et al. Apr 2002 B1
6402028 Graham, Jr. et al. Jun 2002 B1
6438550 Doyle et al. Aug 2002 B1
6501847 Helot et al. Dec 2002 B2
6631197 Taenzer Oct 2003 B1
6641050 Kelley et al. Nov 2003 B2
6655585 Shinn Dec 2003 B2
6662020 Aaro et al. Dec 2003 B1
6721706 Strubbe et al. Apr 2004 B1
6731778 Oda et al. May 2004 B1
6779115 Naim Aug 2004 B1
6792533 Jablon Sep 2004 B2
6829711 Kwok et al. Dec 2004 B1
6834271 Hodgson et al. Dec 2004 B1
6834795 Rasmussen et al. Dec 2004 B1
6852031 Rowe Feb 2005 B1
6865547 Brake, Jr. et al. Mar 2005 B1
6873260 Lancos et al. Mar 2005 B2
6877656 Jaros et al. Apr 2005 B1
6889198 Kawan May 2005 B2
6905411 Nguyen et al. Jun 2005 B2
6910627 Simpson-Young et al. Jun 2005 B1
6971031 Haala Nov 2005 B2
6990588 Yasukura Jan 2006 B1
7006986 Sines et al. Feb 2006 B1
7085931 Smith et al. Aug 2006 B1
7127605 Montgomery et al. Oct 2006 B1
7128274 Kelley et al. Oct 2006 B2
7140550 Ramachandran Nov 2006 B2
7152045 Hoffman Dec 2006 B2
7165727 de Jong Jan 2007 B2
7175076 Block et al. Feb 2007 B1
7202773 Oba et al. Apr 2007 B1
7206806 Pineau Apr 2007 B2
7232073 de Jong Jun 2007 B1
7246752 Brown Jul 2007 B2
7254569 Goodman et al. Aug 2007 B2
7263507 Brake, Jr. et al. Aug 2007 B1
7270276 Vayssiere Sep 2007 B2
7278025 Saito et al. Oct 2007 B2
7287692 Patel et al. Oct 2007 B1
7290709 Tsai et al. Nov 2007 B2
7306143 Bonneau, Jr. et al. Dec 2007 B2
7319986 Praisner et al. Jan 2008 B2
7325132 Takayama et al. Jan 2008 B2
7373515 Owen et al. May 2008 B2
7374099 de Jong May 2008 B2
7375616 Rowse et al. May 2008 B2
7380710 Brown Jun 2008 B2
7424977 Smets et al. Sep 2008 B2
7453439 Kushler et al. Nov 2008 B1
7472829 Brown Jan 2009 B2
7487357 Smith et al. Feb 2009 B2
7568631 Gibbs et al. Aug 2009 B2
7584153 Brown et al. Sep 2009 B2
7597250 Finn Oct 2009 B2
7628322 Holtmanns et al. Dec 2009 B2
7652578 Braun et al. Jan 2010 B2
7689832 Talmor et al. Mar 2010 B2
7703142 Wilson et al. Apr 2010 B1
7748609 Sachdeva et al. Jul 2010 B2
7748617 Gray Jul 2010 B2
7748636 Finn Jul 2010 B2
7762457 Bonalle et al. Jul 2010 B2
7789302 Tame Sep 2010 B2
7793851 Mullen Sep 2010 B2
7796013 Murakami et al. Sep 2010 B2
7801799 Brake, Jr. et al. Sep 2010 B1
7801829 Gray et al. Sep 2010 B2
7805755 Brown et al. Sep 2010 B2
7809643 Phillips et al. Oct 2010 B2
7827115 Weller et al. Nov 2010 B2
7828214 Narendra et al. Nov 2010 B2
7848746 Juels Dec 2010 B2
7882553 Tuliani Feb 2011 B2
7900048 Andersson Mar 2011 B2
7908216 Davis et al. Mar 2011 B1
7922082 Muscato Apr 2011 B2
7933589 Mamdani et al. Apr 2011 B1
7949559 Freiberg May 2011 B2
7954716 Narendra et al. Jun 2011 B2
7954723 Charrat Jun 2011 B2
7962369 Rosenberg Jun 2011 B2
7993197 Mamdani et al. Aug 2011 B2
8005426 Huomo et al. Aug 2011 B2
8010405 Bortolin et al. Aug 2011 B1
RE42762 Shin Sep 2011 E
8041954 Plesman Oct 2011 B2
8060012 Sklovsky et al. Nov 2011 B2
8074877 Mullen et al. Dec 2011 B2
8082450 Frey et al. Dec 2011 B2
8095113 Kean et al. Jan 2012 B2
8099332 Lemay et al. Jan 2012 B2
8103249 Markison Jan 2012 B2
8108687 Ellis et al. Jan 2012 B2
8127143 Abdallah et al. Feb 2012 B2
8135648 Oram et al. Mar 2012 B2
8140010 Symons et al. Mar 2012 B2
8141136 Lee et al. Mar 2012 B2
8150321 Winter et al. Apr 2012 B2
8150767 Wankmueller Apr 2012 B2
8186602 Itay et al. May 2012 B2
8196131 von Behren et al. Jun 2012 B1
8215563 Levy et al. Jul 2012 B2
8224753 Atef et al. Jul 2012 B2
8232879 Davis Jul 2012 B2
8233841 Griffin et al. Jul 2012 B2
8245292 Buer Aug 2012 B2
8249654 Zhu Aug 2012 B1
8266451 Leydier et al. Sep 2012 B2
8285329 Zhu Oct 2012 B1
8302872 Mullen Nov 2012 B2
8312519 Bailey et al. Nov 2012 B1
8316237 Felsher et al. Nov 2012 B1
8332272 Fisher Dec 2012 B2
8365988 Medina, III et al. Feb 2013 B1
8369960 Tran et al. Feb 2013 B2
8371501 Hopkins Feb 2013 B1
8381307 Cimino Feb 2013 B2
8391719 Alameh et al. Mar 2013 B2
8417231 Sanding et al. Apr 2013 B2
8439271 Smets et al. May 2013 B2
8475367 Yuen et al. Jul 2013 B1
8489112 Roeding et al. Jul 2013 B2
8511542 Pan Aug 2013 B2
8559872 Butler Oct 2013 B2
8566916 Vernon et al. Oct 2013 B1
8567670 Stanfield et al. Oct 2013 B2
8572386 Takekawa et al. Oct 2013 B2
8577810 Dalit et al. Nov 2013 B1
8583454 Beraja et al. Nov 2013 B2
8589335 Smith et al. Nov 2013 B2
8594730 Bona et al. Nov 2013 B2
8615468 Varadarajan Dec 2013 B2
8620218 Awad Dec 2013 B2
8667285 Coulier et al. Mar 2014 B2
8723941 Shirbabadi et al. May 2014 B1
8726405 Bailey et al. May 2014 B1
8740073 Vijayshankar et al. Jun 2014 B2
8750514 Gallo et al. Jun 2014 B2
8752189 De Jong Jun 2014 B2
8794509 Bishop et al. Aug 2014 B2
8799668 Cheng Aug 2014 B2
8806592 Ganesan Aug 2014 B2
8807440 Von Behren et al. Aug 2014 B1
8811892 Khan et al. Aug 2014 B2
8814039 Bishop et al. Aug 2014 B2
8814052 Bona et al. Aug 2014 B2
8818867 Baldwin et al. Aug 2014 B2
8850538 Vernon et al. Sep 2014 B1
8861733 Benteo et al. Oct 2014 B2
8880027 Darringer Nov 2014 B1
8888002 Chesney et al. Nov 2014 B2
8898088 Springer et al. Nov 2014 B2
8934837 Zhu et al. Jan 2015 B2
8977569 Rao Mar 2015 B2
8994498 Agrafioti et al. Mar 2015 B2
9004365 Bona et al. Apr 2015 B2
9038894 Khalid May 2015 B2
9042814 Royston et al. May 2015 B2
9047531 Showering et al. Jun 2015 B2
9069976 Toole et al. Jun 2015 B2
9081948 Magne Jul 2015 B2
9104853 Venkataramani et al. Aug 2015 B2
9118663 Bailey et al. Aug 2015 B1
9122964 Krawczewicz Sep 2015 B2
9129280 Bona et al. Sep 2015 B2
9152832 Royston et al. Oct 2015 B2
9203800 Izu et al. Dec 2015 B2
9209867 Royston Dec 2015 B2
9251330 Boivie et al. Feb 2016 B2
9251518 Levin et al. Feb 2016 B2
9258715 Borghei Feb 2016 B2
9270337 Zhu et al. Feb 2016 B2
9306626 Hall et al. Apr 2016 B2
9306942 Bailey et al. Apr 2016 B1
9324066 Archer et al. Apr 2016 B2
9324067 Van Os et al. Apr 2016 B2
9332587 Salahshoor May 2016 B2
9338622 Bjontegard May 2016 B2
9373141 Shakkarwar Jun 2016 B1
9379841 Fine et al. Jun 2016 B2
9413430 Royston et al. Aug 2016 B2
9413768 Gregg et al. Aug 2016 B1
9420496 Indurkar Aug 2016 B1
9426132 Alikhani Aug 2016 B1
9432339 Bowness Aug 2016 B1
9455968 Machani et al. Sep 2016 B1
9473509 Arsanjani et al. Oct 2016 B2
9491626 Sharma et al. Nov 2016 B2
9553637 Yang et al. Jan 2017 B2
9619952 Zhao et al. Apr 2017 B1
9635000 Muftic Apr 2017 B1
9665858 Kumar May 2017 B1
9674705 Rose et al. Jun 2017 B2
9679286 Colnot et al. Jun 2017 B2
9680942 Dimmick Jun 2017 B2
9710804 Zhou et al. Jul 2017 B2
9740342 Paulsen et al. Aug 2017 B2
9740988 Levin et al. Aug 2017 B1
9763097 Robinson et al. Sep 2017 B2
9767329 Forster Sep 2017 B2
9769662 Queru Sep 2017 B1
9773151 Mil'shtein et al. Sep 2017 B2
9780953 Gaddam et al. Oct 2017 B2
9891823 Feng et al. Feb 2018 B2
9940571 Herrington Apr 2018 B1
9953323 Candelore et al. Apr 2018 B2
9961194 Wiechman et al. May 2018 B1
9965756 Davis et al. May 2018 B2
9965911 Wishne May 2018 B2
9978058 Wurmfeld et al. May 2018 B2
10043164 Dogin et al. Aug 2018 B2
10075437 Costigan et al. Sep 2018 B1
10129648 Hernandez et al. Nov 2018 B1
10133979 Eidam et al. Nov 2018 B1
10217105 Sangi et al. Feb 2019 B1
20010010723 Pinkas Aug 2001 A1
20010029485 Brody et al. Oct 2001 A1
20010034702 Mockett et al. Oct 2001 A1
20010054003 Chien et al. Dec 2001 A1
20020078345 Sandhu et al. Jun 2002 A1
20020093530 Krothapalli et al. Jul 2002 A1
20020100808 Norwood et al. Aug 2002 A1
20020120583 Keresman, III et al. Aug 2002 A1
20020152116 Yan et al. Oct 2002 A1
20020153424 Li Oct 2002 A1
20020165827 Gien et al. Nov 2002 A1
20030023554 Yap et al. Jan 2003 A1
20030034873 Chase et al. Feb 2003 A1
20030055727 Walker et al. Mar 2003 A1
20030078882 Sukeda et al. Apr 2003 A1
20030167350 Davis et al. Sep 2003 A1
20030208449 Diao Nov 2003 A1
20040015958 Veil et al. Jan 2004 A1
20040039919 Takayama et al. Feb 2004 A1
20040127256 Goldthwaite et al. Jul 2004 A1
20040215674 Odinak et al. Oct 2004 A1
20040230799 Davis Nov 2004 A1
20050044367 Gasparini et al. Feb 2005 A1
20050075985 Cartmell Apr 2005 A1
20050081038 Arditti Modiano et al. Apr 2005 A1
20050138387 Lam et al. Jun 2005 A1
20050156026 Ghosh et al. Jul 2005 A1
20050160049 Lundholm Jul 2005 A1
20050195975 Kawakita Sep 2005 A1
20050247797 Ramachandran Nov 2005 A1
20060006230 Bear et al. Jan 2006 A1
20060040726 Szrek et al. Feb 2006 A1
20060041402 Baker Feb 2006 A1
20060044153 Dawidowsky Mar 2006 A1
20060047954 Sachdeva et al. Mar 2006 A1
20060085848 Aissi et al. Apr 2006 A1
20060136334 Atkinson et al. Jun 2006 A1
20060173985 Moore Aug 2006 A1
20060174331 Schuetz Aug 2006 A1
20060242698 Inskeep et al. Oct 2006 A1
20060280338 Rabb Dec 2006 A1
20070033642 Ganesan et al. Feb 2007 A1
20070055630 Gauthier et al. Mar 2007 A1
20070061266 Moore et al. Mar 2007 A1
20070061487 Moore et al. Mar 2007 A1
20070116292 Kurita et al. May 2007 A1
20070118745 Buer May 2007 A1
20070197261 Humbel Aug 2007 A1
20070224969 Rao Sep 2007 A1
20070241182 Buer Oct 2007 A1
20070256134 Lehtonen et al. Nov 2007 A1
20070258594 Sandhu et al. Nov 2007 A1
20070278291 Rans et al. Dec 2007 A1
20080008315 Fontana et al. Jan 2008 A1
20080011831 Bonalle et al. Jan 2008 A1
20080014867 Finn Jan 2008 A1
20080035738 Mullen Feb 2008 A1
20080071681 Khalid Mar 2008 A1
20080072303 Syed Mar 2008 A1
20080086767 Kulkarni et al. Apr 2008 A1
20080103968 Bies et al. May 2008 A1
20080109309 Landau et al. May 2008 A1
20080110983 Ashfield May 2008 A1
20080120711 Dispensa May 2008 A1
20080156873 Wilhelm et al. Jul 2008 A1
20080162312 Sklovsky et al. Jul 2008 A1
20080164308 Aaron et al. Jul 2008 A1
20080207307 Cunningham, II et al. Aug 2008 A1
20080209543 Aaron Aug 2008 A1
20080223918 Williams et al. Sep 2008 A1
20080285746 Landrock et al. Nov 2008 A1
20080308641 Finn Dec 2008 A1
20090037275 Pollio Feb 2009 A1
20090048026 French Feb 2009 A1
20090132417 Scipioni et al. May 2009 A1
20090143104 Loh et al. Jun 2009 A1
20090171682 Dixon et al. Jul 2009 A1
20090210308 Toomer et al. Aug 2009 A1
20090235339 Mennes et al. Sep 2009 A1
20090249077 Gargaro et al. Oct 2009 A1
20090282264 Amiel et al. Nov 2009 A1
20100023449 Skowronek et al. Jan 2010 A1
20100023455 Dispensa et al. Jan 2010 A1
20100029202 Jolivet et al. Feb 2010 A1
20100030649 Ubelhor Feb 2010 A1
20100033310 Narendra et al. Feb 2010 A1
20100036769 Winters et al. Feb 2010 A1
20100078471 Lin et al. Apr 2010 A1
20100082491 Rosenblatt et al. Apr 2010 A1
20100094754 Bertran et al. Apr 2010 A1
20100095130 Bertran et al. Apr 2010 A1
20100100480 Altman et al. Apr 2010 A1
20100114731 Kingston et al. May 2010 A1
20100192230 Steeves et al. Jul 2010 A1
20100207742 Buhot et al. Aug 2010 A1
20100211797 Westerveld et al. Aug 2010 A1
20100240413 He et al. Sep 2010 A1
20100257357 McClain Oct 2010 A1
20100312634 Cervenka Dec 2010 A1
20100312635 Cervenka Dec 2010 A1
20110028160 Roeding et al. Feb 2011 A1
20110035604 Habraken Feb 2011 A1
20110060631 Grossman et al. Mar 2011 A1
20110068170 Lehman Mar 2011 A1
20110084132 Tofighbakhsh Apr 2011 A1
20110101093 Ehrensvard May 2011 A1
20110113245 Varadrajan May 2011 A1
20110125638 Davis et al. May 2011 A1
20110131415 Schneider Jun 2011 A1
20110153437 Archer et al. Jun 2011 A1
20110153496 Royyuru Jun 2011 A1
20110208658 Makhotin Aug 2011 A1
20110208965 Machani Aug 2011 A1
20110211219 Bradley Sep 2011 A1
20110218911 Spodak Sep 2011 A1
20110238564 Lim et al. Sep 2011 A1
20110246780 Yeap et al. Oct 2011 A1
20110258452 Coulier et al. Oct 2011 A1
20110280406 Ma et al. Nov 2011 A1
20110282785 Chin Nov 2011 A1
20110294418 Chen Dec 2011 A1
20110312271 Ma et al. Dec 2011 A1
20120024947 Naelon Feb 2012 A1
20120030047 Fuentes et al. Feb 2012 A1
20120030121 Grellier Feb 2012 A1
20120047071 Mullen et al. Feb 2012 A1
20120079281 Lowenstein et al. Mar 2012 A1
20120109735 Krawczewicz et al. May 2012 A1
20120109764 Martin et al. May 2012 A1
20120143754 Patel Jun 2012 A1
20120150737 Rottink Jun 2012 A1
20120178366 Levy et al. Jul 2012 A1
20120196583 Kindo Aug 2012 A1
20120207305 Gallo et al. Aug 2012 A1
20120209773 Ranganathan Aug 2012 A1
20120238206 Singh et al. Sep 2012 A1
20120239560 Pourfallah et al. Sep 2012 A1
20120252350 Steinmetz et al. Oct 2012 A1
20120254394 Barras Oct 2012 A1
20120284194 Liu et al. Nov 2012 A1
20120290472 Mullen et al. Nov 2012 A1
20120296818 Nuzzi et al. Nov 2012 A1
20120316992 Oborne Dec 2012 A1
20120317035 Royyuru et al. Dec 2012 A1
20120317628 Yeager Dec 2012 A1
20130005245 Royston Jan 2013 A1
20130008956 Ashfield Jan 2013 A1
20130026229 Jarman et al. Jan 2013 A1
20130048713 Pan Feb 2013 A1
20130054474 Yeager Feb 2013 A1
20130065564 Conner et al. Mar 2013 A1
20130080228 Fisher Mar 2013 A1
20130080229 Fisher Mar 2013 A1
20130099587 Lou Apr 2013 A1
20130104251 Moore et al. Apr 2013 A1
20130106576 Hinman et al. May 2013 A1
20130119130 Braams May 2013 A1
20130130614 Busch-Sorensen May 2013 A1
20130144793 Royston Jun 2013 A1
20130171929 Adams et al. Jul 2013 A1
20130179351 Wallner Jul 2013 A1
20130185772 Jaudon et al. Jul 2013 A1
20130191279 Calman et al. Jul 2013 A1
20130200999 Spodak et al. Aug 2013 A1
20130216108 Hwang et al. Aug 2013 A1
20130226791 Springer et al. Aug 2013 A1
20130226796 Jiang et al. Aug 2013 A1
20130232082 Krawczewicz et al. Sep 2013 A1
20130238894 Ferg et al. Sep 2013 A1
20130282360 Shimota et al. Oct 2013 A1
20130303085 Boucher et al. Nov 2013 A1
20130304651 Smith Nov 2013 A1
20130312082 Izu et al. Nov 2013 A1
20130314593 Reznik et al. Nov 2013 A1
20130344857 Berionne et al. Dec 2013 A1
20140002238 Taveau et al. Jan 2014 A1
20140019352 Shrivastava Jan 2014 A1
20140027506 Heo et al. Jan 2014 A1
20140032409 Rosano Jan 2014 A1
20140032410 Georgiev et al. Jan 2014 A1
20140040120 Cho et al. Feb 2014 A1
20140040139 Brudnicki et al. Feb 2014 A1
20140040147 Varadarakan et al. Feb 2014 A1
20140047235 Lessiak et al. Feb 2014 A1
20140067690 Pitroda et al. Mar 2014 A1
20140074637 Hammad Mar 2014 A1
20140074655 Lim et al. Mar 2014 A1
20140081720 Wu Mar 2014 A1
20140138435 Khalid May 2014 A1
20140171034 Aleksin et al. Jun 2014 A1
20140171039 Bjontegard Jun 2014 A1
20140172700 Teuwen et al. Jun 2014 A1
20140180851 Fisher Jun 2014 A1
20140208112 McDonald et al. Jul 2014 A1
20140214674 Narula Jul 2014 A1
20140229375 Zaytzsev et al. Aug 2014 A1
20140245391 Adenuga Aug 2014 A1
20140256251 Caceres et al. Sep 2014 A1
20140258099 Rosano Sep 2014 A1
20140258113 Gauthier et al. Sep 2014 A1
20140258125 Gerber et al. Sep 2014 A1
20140274179 Zhu et al. Sep 2014 A1
20140279479 Maniar et al. Sep 2014 A1
20140337235 Van Heerden et al. Nov 2014 A1
20140339315 Ko Nov 2014 A1
20140346860 Aubry et al. Nov 2014 A1
20140365780 Movassaghi Dec 2014 A1
20140379361 Mahadkar et al. Dec 2014 A1
20150012444 Brown et al. Jan 2015 A1
20150032635 Guise Jan 2015 A1
20150071486 Rhoads et al. Mar 2015 A1
20150088757 Zhou et al. Mar 2015 A1
20150089586 Ballesteros Mar 2015 A1
20150134452 Williams May 2015 A1
20150140960 Powell et al. May 2015 A1
20150154595 Collinge et al. Jun 2015 A1
20150170138 Rao Jun 2015 A1
20150178724 Ngo et al. Jun 2015 A1
20150186871 Laracey Jul 2015 A1
20150205379 Mag et al. Jul 2015 A1
20150302409 Malek Oct 2015 A1
20150317626 Ran et al. Nov 2015 A1
20150332266 Friedlander et al. Nov 2015 A1
20150339474 Paz et al. Nov 2015 A1
20150339664 Wong Nov 2015 A1
20150371234 Huang et al. Dec 2015 A1
20160012465 Sharp Jan 2016 A1
20160026997 Tsui et al. Jan 2016 A1
20160048913 Rausaria et al. Feb 2016 A1
20160055480 Shah Feb 2016 A1
20160057619 Lopez Feb 2016 A1
20160065370 Le Saint et al. Mar 2016 A1
20160087957 Shah et al. Mar 2016 A1
20160092696 Guglani et al. Mar 2016 A1
20160148193 Kelley et al. May 2016 A1
20160232523 Venot et al. Aug 2016 A1
20160239672 Khan et al. Aug 2016 A1
20160253651 Park et al. Sep 2016 A1
20160255072 Liu Sep 2016 A1
20160267486 Mitra et al. Sep 2016 A1
20160277383 Guyomarc'h et al. Sep 2016 A1
20160277388 Lowe et al. Sep 2016 A1
20160307187 Guo et al. Oct 2016 A1
20160307189 Zarakas et al. Oct 2016 A1
20160314472 Ashfield Oct 2016 A1
20160330027 Ebrahimi Nov 2016 A1
20160335531 Mullen et al. Nov 2016 A1
20160379217 Hammad Dec 2016 A1
20170004502 Quentin et al. Jan 2017 A1
20170011395 Pillai et al. Jan 2017 A1
20170011406 Tunnell et al. Jan 2017 A1
20170017957 Radu Jan 2017 A1
20170017964 Janefalkar et al. Jan 2017 A1
20170024716 Jiam et al. Jan 2017 A1
20170039566 Schipperheijn Feb 2017 A1
20170041759 Gantert et al. Feb 2017 A1
20170068950 Kwon Mar 2017 A1
20170103388 Pillai et al. Apr 2017 A1
20170104739 Lansler et al. Apr 2017 A1
20170109509 Baghdasaryan Apr 2017 A1
20170109730 Locke et al. Apr 2017 A1
20170116447 Cimino et al. Apr 2017 A1
20170124568 Moghadam May 2017 A1
20170140379 Deck May 2017 A1
20170154328 Zarakas et al. Jun 2017 A1
20170154333 Gleeson et al. Jun 2017 A1
20170180134 King Jun 2017 A1
20170230189 Toll et al. Aug 2017 A1
20170237301 Elad et al. Aug 2017 A1
20170289127 Hendrick Oct 2017 A1
20170295013 Claes Oct 2017 A1
20170316696 Bartel Nov 2017 A1
20170317834 Smith et al. Nov 2017 A1
20170330173 Woo et al. Nov 2017 A1
20170374070 Shah et al. Dec 2017 A1
20180034507 Wobak et al. Feb 2018 A1
20180039986 Essebag et al. Feb 2018 A1
20180068316 Essebag et al. Mar 2018 A1
20180129945 Saxena et al. May 2018 A1
20180160255 Park Jun 2018 A1
20180191501 Lindemann Jul 2018 A1
20180205712 Versteeg et al. Jul 2018 A1
20180240106 Garrett et al. Aug 2018 A1
20180254909 Hancock Sep 2018 A1
20180268132 Buer et al. Sep 2018 A1
20180270214 Caterino et al. Sep 2018 A1
20180294959 Traynor et al. Oct 2018 A1
20180300716 Carlson Oct 2018 A1
20180302396 Camenisch et al. Oct 2018 A1
20180315050 Hammad Nov 2018 A1
20180316666 Koved et al. Nov 2018 A1
20180322486 Deliwala et al. Nov 2018 A1
20180359100 Gaddam et al. Dec 2018 A1
20190014107 George Jan 2019 A1
20190019375 Foley Jan 2019 A1
20190036678 Ahmed Jan 2019 A1
20190238517 D'Agostino Aug 2019 A1
20200104841 Osborn Apr 2020 A1
20200376373 Amaitis et al. Dec 2020 A1
20210192300 Rule Jun 2021 A1
Foreign Referenced Citations (40)
Number Date Country
3010336 Jul 2017 CA
3158054 Jul 2021 CA
101192295 Jun 2008 CN
103023643 Apr 2013 CN
103417202 Dec 2013 CN
1 085 424 Mar 2001 EP
1 223 565 Jul 2002 EP
1 265 186 Dec 2002 EP
1 783 919 May 2007 EP
2 852 070 Jan 2009 EP
2 139 196 Dec 2009 EP
1 469 419 Feb 2012 EP
2881900 Aug 2006 FR
2 457 221 Aug 2009 GB
2 516 861 Feb 2015 GB
2 551 907 Jan 2018 GB
101508320 Apr 2015 KR
WO 0049586 Aug 2000 WO
WO 2006070189 Jul 2006 WO
WO 2008055170 May 2008 WO
WO 2009025605 Feb 2009 WO
WO 2010049252 May 2010 WO
WO 2011112158 Sep 2011 WO
WO 2012001624 Jan 2012 WO
WO 2013039395 Mar 2013 WO
WO 2013155562 Oct 2013 WO
WO 2013192358 Dec 2013 WO
WO 2014043278 Mar 2014 WO
WO 2014170741 Oct 2014 WO
WO 2015179649 Nov 2015 WO
WO 2015183818 Dec 2015 WO
WO 2016097718 Jun 2016 WO
WO 2016160816 Oct 2016 WO
WO 2016168394 Oct 2016 WO
WO 2017042375 Mar 2017 WO
WO 2017042400 Mar 2017 WO
WO 2017157859 Sep 2017 WO
WO 2017208063 Dec 2017 WO
WO 2018063809 Apr 2018 WO
WO 2018137888 Aug 2018 WO
Non-Patent Literature Citations (42)
Entry
Batina, Lejla and Poll, Erik, “SmartCards and RFID,” PowerPoint Presentation for IPA Security Course, Digital Security at University of Nijmegen, Netherlands (date unknown), 75 pages.
Haykin M. and Warnar, R., “Smart Card Technology: New Methods for Computer Access Control,” Computer Science and Technology NIST Special Publication 500-157:1-60 (1988).
Lehpamer, Harvey, “Component of the RFID System,” RFID Design Principles, 2nd edition pp. 133-201 (2012).
Pourghomi, Pardis et al., “A Proposed NFC Payment Application,” International Journal of Advanced Computer Science and Applications, vol. 4, No. 8 (2013).
Author Unknown, “CardrefresherSM from American Express®,” [online] 2019 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://merchant-channel.americanexpress.com/merchant/en_US/cardrefresher, 2 pages.
Author Unknown, “Add Account Updater to your recurring payment tool,” [online] 2018-19 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.authorize.net/our-features/account-updater/, 5 pages.
Author Unknown, “Visa® Account Updater for Merchants,” [online] 2019 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://usa.visa.com/dam/VCOM/download/merchants/visa-account-updater-product-information-fact-sheet-for-merchants.pdf, 2 pages.
Author Unknown, “Manage the cards that you use with Apple Pay,” Apple Support [online] 2019 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://support.apple.com/en-us/HT205583, 5 pages.
Author Unknown, “Contactless Specifications for Payment Systems,” EMV Book B—Entry Point Specification [online] 2016 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.emvco.com/wp-content/uploads/2017/05/BookB_Entry_Point_Specification_v2_6_20160809023257319.pdf, 52 pages.
Author Unknown, “EMV Integrated Circuit Card Specifications for Payment Systems, Book 2, Security and Key Management,” Version 3.4, [online] 2011 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.emvco.com/wp-content/uploads/2017/05/EMV_v4.3_Book_2_Security_and_Key_Management_20120607061923900.pdf, 174 pages.
Author unknown, “NFC Guide: All You Need to Know About Near Field Communication” Square Guide [online] 2018 [retrieved on Nov. 13, 2018]. Retrieved from Internet URL: https://squareup.com/guides/nfc, 8 pages.
Profis, S., “Everything you need to know about NFC and mobile payments” CNET Directory [online], 2014 [retrieved on Mar. 25, 2019]. Retrieved from the Internet URL: https://www.cnet.com/how-to/how-nfc-works-and-mobile-payments/, 6 pages.
Cozma, N., “Copy data from other devices in Android 5.0 Lollipop setup” CNET Directory [online] 2014 [retrieved on Mar. 25, 2019]. Retrieved from the Internet URL: https://www.cnet.com/how-to/copy-data-from-other-devices-in-android-5-0-lollipop-setup/, 5 pages.
Kevin, Android Enthusiast, “How to copy text string from nfc tag” StackExchange [online] 2013 [retrieved on Mar. 25, 2019]. Retrieved from the Internet URL: https://android.stackexchange.com/questions/55689/how-to-copy-text-string-from-nfc-tag, 11 pages.
Author unknown, “Tap & Go Device Setup” Samsung [online] date unknown [retrieved on Mar. 25, 2019]. Retrieved from the Internet URL: https://www.samsung.com/us/switch-me/switch-to-the-galaxy-s-5/app/partial/setup-device/tap-go.html, 1 page.
Author Unknown, “Multiple encryption”, Wikipedia [online] 2019 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://en.wikipedia.org/wiki/Multiple_encryption, 4 pages.
Krawczyk, et al., “HMAC: Keyed-Hashing for Message Authentication”, Network Working Group RFC:2104 memo [online] 1997 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://tools.ietf.org/html/rfc2104, 12 pages.
Song, et al., “The AES-CMAC Algorithm”, Network Working Group RFC: 4493 memo [online] 2006 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://tools.ietf.org/html/rfc4493, 21 pages.
Katz, J., and Lindell, Y., “Aggregate Message Authentication Codes”, Topics in Cryptology [online] 2008 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.cs.umd.edu/˜jkatz/papers/aggregateMAC.pdf, 11 pages.
Adams, D., and Maier, A-K, “Goldbug Big Seven open source crypto-messengers to be compared - : or Comprehensive Confidentiality Review & Audit of GoldBug Encrypting E-Mail-Client & Secure Instant Messenger”, Big Seven Study 2016 [online] [retrieved on Mar. 25, 2018]. Retrieved from Internet URL: https://sf.net/projects/goldbug/files/bigseven-crypto-audit.pdf, 309 pages.
Author Unknown, “Triple DES”, Wikipedia [online] 2018 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://simple.wikipedia.org/wiki/Triple_DES, 2 pages.
Song, F., and Yun, A.l, “Quantum Security of NMAC and Related Constructions—PRF domain extension against quantum attacks”, IACR Cryptology ePrint Archive [online] 2017 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://eprint.iacr.org/2017/509.pdf, 41 pages.
Saxena, N., “Lecture 10: NMAC, HMAC and Number Theory”, CS 6903 Modern Cryptography [online] 2008 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: http://isis.poly.edu/courses/cs6903/Lectures/lecture10.pdf, 8 pages.
Berg, Guy, “Fundamentals of EMV” Smart Card Alliance [online] date unknown [retrieved on Mar. 27, 2019]. Retrieved from Internet URL: https://www.securetechalliance.org/resources/media/scap13_preconference/02.pdf, 37 pages.
Pierce, Kevin, “Is the amazon echo NFC compatible,?” Amazon.com Customer Q&A [online] 2016 [retrieved on Mar. 26, 2019]. Retrieved from Internet URL: https://www.amazon.com/ask/questions/Tx1RJXYSPE6XLJD?_ encodi . . . , 2 pages.
Author Unknown, “Multi-Factor Authentication”, idaptive [online] 2019 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.centrify.com/products/application-services/adaptive-multi-factor-authentication/risk-based-mfa/, 10 pages.
Author Unknown, “Adaptive Authentication”, SecureAuth [online] 2019 [retrieved on Mar. 25, 2019}. Retrieved from Internet URL: https://www.secureauth.com/products/access-management/adaptive-authentication, 7 pages.
Van den Breekel, J., et al., “EMV in a nutshell”, Technical Report, 2016 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.cs.ru.nl/E.Poll/papers/EMVtechreport.pdf, 37 pages.
Author Unknown, “Autofill”, Computer Hope [online] 2018 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.computerhope.com/jargon/a/autofill.htm, 2 pages.
Author Unknown, “Fill out forms automatically”, Google Chrome Help [online] 2019 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://support.google.com/chrome/answer/142893?co=GENIE.Platform%3DDesktop&hl=en, 3 pages.
Author unknown, “Autofill credit cards, contacts, and passwords in Safari on Mac”, Apple Safari User Guide [online] 2019 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://support.apple.com/guide/safari/use-autofill-ibrw1103/mac, 3 pages.
Menghin, M.J., “Power Optimization Techniques for Near Field Communication Systems” 2014 Dissertation at Technical University of Graz [online]. Retrieved from Internet URL: https://diglib.tugraz.at/download.php?id=576a7b910d2d6&location=browse, 135 pages.
Mareli, M., et al., “Experimental evaluation of NFC reliability between an RFID tag and a smartphone” Conference paper (2013) IEEE Africon at Mauritius [online] [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://core.ac.uk/download/pdf/54204839.pdf, 5 pages.
Davison, A., et al., “MonoSLAM: Real-Time Single Camera SLAM”, IEEE Transactions on Pattern Analysis and Machine Intelligence 29(6): 1052-1067 (2007).
Barba, R., “Sharing your location with your bank sounds creepy, but it's also useful”, Bankrate, LLC [online] 2017 [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.bankrate.com/banking/banking-app-location-sharing/, 6 pages.
Author unknown: “onetappayment™”, [online] Jan. 24, 2019, [retrieved on Mar. 25, 2019]. Retrieved from Internet URL: https://www.payubiz.in/onetap, 4 pages.
Vu et al., (2012). “Distinguishing users with capacitive touch communication” Proceedings of the Annual International Conference on Mobile Computing and Networking, MOBICOM. 10.1145/2348543.2348569.
EMVCo, EMV Card Personalization Specification, version 1.0 (Jun. 2003), 81 pages.
Ullmann et al., (2012). “On-Card” User Authentication for Contactless Smart Cards based on Gesture Recognition, LNI, 223-234, 12 pages.
Faraj et al. (2008). “Investigation of Java Smart Card Technology for Multi-Task Applications” J. of Al-Anbar University for Pure Science, vol. 2: No. 1: 2008, 11 pages.
Dhamdhere (2017) “Key Benefits of a Unified Platform for Loyalty, Referral Marketing, and UGC” Annex Cloud [retrieved on Jul. 3, 2019]. Retrieved from Internet URL: https://www.annexcloude.com/blog/benefits-unified-platform/, 13 pages.
The International Search Report and Written Opinion mailed Apr. 15, 2024, for related PCT/US2024/020670 (eight (8) pages).
Related Publications (1)
Number Date Country
20240330896 A1 Oct 2024 US