Computer-Implemented Method, Medium, and Apparatus for Dynamically Adjusting NFC Reader Power

By dynamically adjusting the NFC reader power, increasing the power based on the checksum calculation results, solving the reliability problem caused by inaccurate user placement in NFC card communication, and improving the stability and availability of communication.

CN116346171BActive Publication Date: 2025-07-08CAPITAL ONE SERVICES LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310297701.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-06-17
Filing Date
2020-06-08
Publication Date
2025-07-08
Estimated Expiration
2040-06-08

Smart Images

  • Figure CN116346171B_ABST
    Figure CN116346171B_ABST
Patent Text Reader

Abstract

Disclosed is a dynamic power level in NFC card communication. Various embodiments relate to dynamically and temporarily adjusting the power to an NFC reader of a computing device from a first power level to a second power level based on a feedback mechanism between a contactless card and the computing device. The contactless card may provide a message containing a checksum. The computing device may receive the message and calculate a checksum based on the received message. By comparing the two checksums, it can be determined whether the entire message has been correctly received. If not, the power to the NFC reader may be temporarily increased to allow for better communication between the contactless card and the computing device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the application with application number 202080016094.5, application date June 8, 2020, and invention title "Dynamic Power Levels in NFC Card Communication".

[0002] Cross - reference to related applications

[0003] This application claims the priority of U.S. Patent Application Serial No. 16 / 442,603, entitled "Dynamic Power Levels in NFC Card Communications", filed on June 17, 2019 (authorized as U.S. Patent No. 10,516,447 on December 24, 2019). The content of the above - mentioned patent application is incorporated herein by reference in its entirety. Background Art

[0004] Near - Field Communication (NFC) is a set of communication protocols that enables two NFC - enabled components to establish communication by bringing them physically close to each other. An example of an NFC - enabled component can be a portable computing device such as a smartphone. Another example of an NFC - enabled component can be a contactless card, which can be an item the size of a credit card and contains an embedded integrated circuit configured to communicate via NFC with a terminal device such as a smartphone.

[0005] Typically, for a smartphone and a contactless card to communicate with each other, the contactless card must be placed precisely against the smartphone to achieve NFC read - write capabilities. For complex transactions that require multiple reads and writes between the smartphone and the contactless card, the card may need to be placed at a specific "most effective point" near the smartphone for a predetermined amount of time.

[0006] However, requiring the user to place the contactless card precisely at the most effective point for a specific duration is not only cumbersome but also highly unreliable. Therefore, it is necessary to compensate for the user's inaccuracies and improve the overall usability of the card. Summary of the Invention

[0007] Various embodiments relate to dynamically and temporarily adjusting the power to an NFC reader of a computing device from a first power level to a second power level based on a feedback mechanism between a contactless card and the computing device. The contactless card can provide a message containing a checksum. The computing device can receive the message and calculate a checksum based on the received message. By comparing the two checksums, it can be determined whether the entire message has been correctly received. If not, the power to the NFC reader can be temporarily increased to allow for better communication between the contactless card and the computing device. Brief Description of the Drawings

[0008] Figure 1A Illustrates an example data transfer system in accordance with one or more embodiments.

[0009] Figure 1B Illustrates an example sequence diagram for providing authenticated access in accordance with one or more embodiments.

[0010] Figure 2 Illustrates an example system using a contactless card in accordance with one or more embodiments.

[0011] Figure 3A Illustrates an example contactless card in accordance with one or more embodiments.

[0012] Figure 3B Illustrates an example contact pad of a contactless card in accordance with one or more embodiments.

[0013] Figure 4 Illustrates an example sequence diagram of a feedback mechanism between a contactless card and a mobile computing device in accordance with one or more embodiments.

[0014] Figure 5 Illustrates an example checksum calculation in accordance with one or more embodiments.

[0015] Figure 6 Illustrates an example adjustment of the power level of a reader coil in accordance with one or more embodiments.

[0016] Figure 7 Illustrates example storage and comparison techniques for one or more portions of an NDEF message in accordance with one or more embodiments.

[0017] Figure 8 Illustrates an example flowchart in accordance with one or more embodiments. Detailed Description

[0018] Various embodiments are mainly related to dynamically adjusting the power to an NFC reader of a device to improve communication with NFC-enabled components. For example, the device can be a mobile computing device such as a smartphone, and the NFC-enabled component can be a contactless card. The mobile computing device can be configured to evaluate the accuracy, integrity, and / or completeness of communication from the contactless card, and based on that evaluation, the mobile computing device can temporarily increase the power to the NFC reader, e.g., from a first power level (e.g., a default power setting) to a second power level (e.g., a fraction or portion of the maximum power setting). At least in this regard, a stronger magnetic field can be temporarily created by the NFC reader, which can provide a more powerful electric field to the contactless card, thereby improving communication between the mobile communication device and the contactless card.

[0019] In an embodiment, a feedback mechanism can be configured between a mobile computing device and a contactless card for the computing device to evaluate the accuracy, integrity, and / or completeness of a message or file received from the contactless card. For example, when the contactless card enters an active magnetic field generated by an NFC reader of the mobile computing device, the contactless card can send an NFC Data Exchange Format (NDEF) message or file that includes a payload with a checksum. When the mobile computing device detects the NDEF message, the device can use a checksum algorithm or function to calculate the checksum and determine whether the calculated checksum matches the checksum included in the NDEF message. If the checksums do not match, or are inaccurate or incomplete, the power to the NFC reader (e.g., the NFC reader coil) can be temporarily increased to establish a stronger magnetic field. This process can be repeated until the two checksums match, or until the entire NDEF message has been received. After the NDEF message has been successfully received, or after a predetermined duration (even if the NFC reader fails to read the NDEF message), the power to the NFC can be gradually reduced to a normal or default level.

[0020] According to an example, the mobile computing device can determine, for example, based on the calculated checksum, the percentage of NDEF messages that have been correctly received. Depending on that percentage, the power to the NFC reader may be ramped up accordingly. For example, if only 45% of the messages are detected or received by the mobile computing device, the ramped-up power to the NFC reader may be 55% of the maximum power that can be provided to the NFC reader without damaging the reader coil. Thus, in other words, the second power level or the dynamically adjusted power level can be a fraction or portion of the maximum power that can be provided to the NFC reader, where the fraction is inversely proportional to the percentage of NDEF messages that have been correctly detected or received. In other instances, if the percentage of accurately received messages is below a predetermined threshold percentage, such as 20%, the power to the NFC reader can be increased to the maximum power level.

[0021] In a further example, the mobile computing device can determine, each time the contactless card is read, for example at an adjusted power level, which parts of the complete NDEF message have been correctly received. Those parts of the message can be stored in memory. The mobile computing device can then compare the stored parts of the message to determine whether the content of the message has been fully acquired.

[0022] In previous solutions, a single power setting on an NFC reader has generally been used to communicate with contactless cards, which places an unnecessary burden on the user to place the contactless card near the mobile computing device in an accurate manner. The embodiments and examples described herein overcome and have advantages over previous solutions in that they compensate for user inaccuracies and improve card usability by dynamically and temporarily ramping up the power of the NFC reader when needed to improve card communication.

[0023] Reference will now be made to the accompanying drawings, where like reference numerals are used throughout to refer to like elements. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding. It will be evident, however, that novel embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form to facilitate description. All modifications, equivalents, and alternatives falling within the scope of the claims are intended to be covered.

[0024] Figure 1A An example data transfer system in accordance with one or more embodiments is shown. As further discussed below, system 100 includes a contactless card 105, a client device 110, a network 115, and a server 120. Although Figure 1A a single instance of the components is shown, system 100 may include any number of components.

[0025] System 100 may include one or more contactless cards 105, which will be further explained with reference to Figure 3A and Figure 3B below. In some embodiments, contactless card 105 may wirelessly communicate with client device 110 using, for example, NFC.

[0026] System 100 may include client device 110, which may be a network-enabled computer. As referred to herein, a network-enabled computer may include, but is not limited to, a computing device or a communication device including, for example, a server, a network appliance, a personal computer, a workstation, a telephone, a smartphone, a handheld PC, a personal digital assistant, a thin client, a fat client, an Internet browser, or other devices. Client device 110 may also be a mobile computing device, such as an iPhone, iPod, iPad from or any other suitable device running Apple's operating system, any device running Microsoft's mobile operating system, any device running Google's Any device of an operating system, and / or any other suitable mobile computing device, such as a smart phone, a tablet computer, or a similar wearable mobile device.

[0027] Client device 110 may include a processor and a memory, and it will be understood that the processing circuitry may include additional components, including a processor, a memory, an error and parity / CRC checker, a data encoder, an anti-collision algorithm, a controller, a command decoder, security primitives, and anti-tampering hardware, as necessary to perform the functions described herein. Client device 110 may further include a display and an input device. The display may be any type of device for presenting visual information, such as a computer monitor, a tablet display, and a mobile device screen including, including liquid crystal displays, light emitting diode displays, plasma panels, and cathode ray tube displays. The input device may include any device for inputting information into the user device that is available to and supported by the user device, such as a touch screen, a keyboard, a mouse, a cursor control device, a touch screen, a microphone, a digital camera, a video camera, or a camcorder. These devices may be used to input information and interact with the software and other devices described herein.

[0028] In some examples, client device 110 of system 100 may execute one or more applications, such as software applications, that enable network communication, such as network communication with one or more components of system 100 and transmit and / or receive data.

[0029] Client device 110 may communicate with one or more servers 120 via one or more networks 115 and may operate as a corresponding front-end to back-end pairing with server 120. Client device 110 may, for example, transmit one or more requests from a mobile device application executing on client device 110 to server 120. The one or more requests may be associated with obtaining data from server 120. Server 120 may receive the one or more requests from client device 110. Based on the one or more requests from client device 110, server 120 may be configured to obtain the requested data from one or more databases (not shown). Based on receiving the requested data from the one or more databases, server 120 may be configured to transmit the received data to server device 110, the received data in response to the one or more requests.

[0030] System 100 may include one or more networks 115. In some examples, network 115 may be a wireless network, a wired network, or one or more of any combination of a wireless network and a wired network, and may be configured to connect client device 110 to server 120. For example, network 115 may include one or more of the following: fiber optic network, passive optical network, wired network, Internet network, satellite network, wireless local area network (LAN), global system for mobile communications, personal communication service, personal area network, wireless application protocol, multimedia messaging service, enhanced messaging service, short message service, time division multiplexing-based system, code division multiple access (CDMA)-based system, 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, etc.

[0031] In addition, network 115 may include, but is not limited to, telephone lines, fiber optics, IEEE Ethernet 802.3, wide area network, wireless personal area network, LAN, or a global network such as the Internet. In addition, network 115 may support Internet network, wireless communication network, cellular network, etc., or any combination thereof. Network 115 may further include one network or any number of the above exemplary types of networks, operating either as independent networks or in cooperation with each other. Network 115 may utilize one or more protocols of one or more network elements communicatively coupled thereto. Network 115 may translate to other protocols or translate from other protocols to one or more protocols of network devices. Although network 115 is depicted as a single network, it should be understood that according to one or more examples, network 115 may include multiple interconnected networks, such as the Internet, a service provider's network, a cable television network, an enterprise network, such as a credit card association network and a home network.

[0032] System 100 may include one or more servers 120. In some examples, server 120 may include one or more processors coupled to a memory. Server 120 may be configured as a central system, server, or platform to control and invoke various data at different times to perform multiple workflow actions. Server 120 may be configured to connect to one or more databases. Server 120 may be connected to at least one client device 110.

[0033] Figure 1B An example sequence diagram for providing authenticated access according to one or more embodiments is shown. The diagram may include a contactless card 105 and a client device 110, which may include an application 122 and a processor 124. Figure 1B Reference may be made to components similar to those shown in Figure 1A as shown.

[0034] At step 102, the application 122 communicates with the contactless card 105 (e.g., after being brought near the contactless card 105). The communication between the application 122 and the contactless card 105 may involve the contactless card 105 being brought close enough to a card reader (not shown) of the client device 110 such that NFC data can be transferred between the application 122 and the contactless card 105.

[0035] At step 104, after communication has been established between the client device 110 and the contactless card, the contactless card 105 generates a Message Authentication Code (MAC) ciphertext. In some examples, this may occur when the contactless card 105 is read by the application 122. In particular, this may occur upon reading of a Near Field Data Exchange (NDEF) tag, such as an NFC read, which may be created according to the NFC data exchange format.

[0036] For example, a reader such as the application 122 may transmit a message with a small program ID of a small program produced by NDEF, such as a small program selection message. Upon confirmation of the selection, a sequence of select file messages for reading a file message may then be transmitted. For example, the sequence may include "select capacity file", "read capacity file", and "select NDEF file". At this time, the counter value maintained by the contactless card 105 may be updated or incremented, followed by "read NDEF file". At this time, the message may be generated, which may include a header and a shared secret. Then a session key may be generated. The MAC ciphertext may be created from the message, which may include a header and a shared secret. The MAC ciphertext may then be concatenated with one or more blocks of random data, and the MAC ciphertext and random number (RND) may be encrypted using the session key. Thereafter, the ciphertext and the header may be concatenated, encoded as ASCII hexadecimal, and returned in the NDEF message format (in response to the "read NDEF file" message).

[0037] In some examples, the MAC ciphertext may be transmitted as an NDEF tag, and in other examples, the MAC ciphertext may be included with a Uniform Resource Indicator (e.g., as a formatted string).

[0038] In some examples, the application 122 may be configured to transmit a request to the contactless card 105, the request including an instruction to generate a MAC ciphertext.

[0039] At step 106, the contactless card 105 sends the MAC ciphertext to the application 122. In some examples, the transmission of the MAC ciphertext occurs via NFC. However, the present disclosure is not limited thereto. In other examples, this communication can occur via Bluetooth, Wi-Fi, or other means of wireless data communication.

[0040] At step 108, the application 122 conveys the MAC ciphertext to the processor 124. At step 112, the processor 124 verifies the MAC ciphertext according to instructions from the application 122. For example, as described below, the MAC ciphertext can be verified.

[0041] In some examples, verifying the MAC ciphertext can be performed by a device other than the client device 110, such as a server 120 (as Figure 1A shown) that communicates with the client device 110. For example, the processor 124 can output the MAC ciphertext for transmission to the server 120, which can verify the MAC ciphertext.

[0042] In some examples, the MAC ciphertext can be used as a digital signature for verification purposes. Other digital signature algorithms, such as public key asymmetric algorithms (e.g., digital signature algorithms and RSA algorithms) or zero-knowledge protocols, can be used to perform this verification.

[0043] It can be understood that in some examples, the contactless card 105 can initiate communication after the contactless card is brought near the client device 110. For example, the contactless card 105 can send a message to the client device 110, such as indicating that the contactless card has established communication. Thereafter, as described above, the application on the client device 110 can continue to communicate with the contactless card at step 102.

[0044] Figure 2 An example system 200 using a contactless card is shown. The system 200 can include a contactless card 205, one or more client devices 210, a network 215, servers 220, 225, one or more hardware security modules 230, and a database 235. Although Figure 2 a single instance of the components is shown, the system 200 can include any number of components.

[0045] The system 200 can include one or more contactless cards 205, which will be referred to with reference to Figure 3A and Figure 3BThis is further explained below. In some embodiments, the contactless card 205 may communicate wirelessly with the client device 210, such as NFC communication. For example, the contactless card 205 may include one or more chips, such as radio frequency identification chips, configured to communicate via NFC or other short-range protocols. In other embodiments, the contactless card 205 may communicate with the client device 210 by other means including but not limited to Bluetooth, satellite, Wi-Fi, wired communication, and / or any combination of wireless and wired connections. According to some embodiments, the contactless card 205 may be configured to communicate with the reader 213 of the client device 210 (which may also be referred to herein as an NFC reader, NFC card reader, or reader) via NFC when the contactless card 205 is within the range of the reader 213. In other examples, communication with the contactless card 205 may be implemented through a physical interface, such as a universal serial bus interface or a swiping interface.

[0046] The system 200 may include a client device 210, which may be a network-enabled computer. As referred to herein, a network-enabled computer may include, but is not limited to, for example, a computer device, or a communication device including, for example, a server, a network appliance, a personal computer, a workstation, a mobile device, a telephone, a handheld PC, a personal digital assistant, a thin client, a fat client, an Internet browser, or other devices. One or more client devices 210 may also be mobile devices. For example, a mobile device may include an iPhone, an iPod, an iPad from or any other mobile device running Apple's operating system, any device running Microsoft's mobile operating system, any device running Google's operating system, and / or any other smartphone or similar wearable mobile device. In some examples, the client device 210 may be the same as or similar to the client device 110 as described with reference to Figure 1A or Figure 1B above.

[0047] The client device 210 can communicate with one or more servers 220 and 225 via one or more networks 215. The client device 210 can, for example, transmit one or more requests from an application 21 executing on the client device 210 to one or more servers 220 and 225. The one or more requests can be associated with obtaining data from one or more servers 220 and 225. The servers 220 and 225 can receive one or more requests from the client device 210. Based on the one or more requests from the client device 210, the one or more servers 220 and 225 can be configured to obtain the requested data from one or more databases 235. Based on receiving the requested data from one or more databases 235, the one or more servers 220 and 225 can be configured to transmit the received data to the server device 210, the received data in response to the one or more requests.

[0048] The system 200 can include one or more hardware security modules (HSMs) 230. For example, one or more HSMs 230 can be configured to perform one or more of the cryptographic operations described herein. In some examples, one or more HSMs 230 can be configured as dedicated security devices that are configured to perform one or more cryptographic operations. The HSM 230 can be configured such that keys are never exposed outside of the HSM 230, but are maintained within the HSM 230. For example, one or more HSMs 230 can be configured to perform at least one of key derivation, decryption, and MAC operations. One or more HSMs 230 can be included within the servers 220 and 225 or can communicate data with the servers 220 and 225.

[0049] System 200 may include one or more networks 215. In some examples, network 215 may be a wireless network, a wired network, or one or more of any combination of a wireless network and a wired network, and may be configured to connect client device 210 to server 220 and / or 225. For example, network 215 may include one or more of the following: fiber optic network, passive optical network, wired network, cellular network, Internet network, satellite network, wireless LAN, global system for mobile communications, personal communication service, personal area network, wireless application protocol, multimedia messaging service, enhanced messaging service, short message service, time division multiplexing-based system, code division multiple access (CDMA)-based system, D-AMPS, Wi-Fi, fixed wireless data, IEEE 802.11b, 802.15.1, 802.11n, and 802.11g, Bluetooth, NFC, RFID, Wi-Fi, and / or any combination of its networks. As a non-limiting example, the communication from contactless card 205 to client device 210 may include NFC communication, the cellular network between client device 210 and the carrier, and the Internet between the carrier and the backend.

[0050] In addition, network 215 may include, but is not limited to, telephone lines, fiber optics, IEEE Ethernet 802.3, wide area network, wireless personal area network, local area network, or a global network such as the Internet. In addition, network 215 may support Internet networks, wireless communication networks, cellular networks, etc., or any combination thereof. Network 215 may further include one network or any number of the above exemplary types of networks, operating as independent networks or in cooperation with each other. Network 215 may utilize one or more protocols of one or more network elements communicatively coupled thereto. Network 215 may translate into other protocols, or translate from other protocols into one or more protocols of network devices. Although network 215 is depicted as a single network, it should be understood that according to one or more examples, network 215 may include multiple interconnected networks, such as the Internet, a service provider's network, a cable television network, an enterprise network, such as a credit card association network and a home network.

[0051] In various examples according to the present disclosure, client device 210 of system 200 may execute one or more applications 211 and include one or more processors 212 and one or more readers 213. For example, one or more applications 211 (such as software applications) may be configured to be capable of, for example, network communication with one or more components of system 200 and transmitting and / or receiving data. It can be understood that although only a single instance of the components of client device 210 is shown in Figure 2However, any number of devices 210 can be used. The card reader 213 can be configured to read from and / or communicate with the contactless card 205. Along with one or more applications 211, the card reader 213 can communicate with the contactless card 205. In an example, the card reader 213 can include circuitry or circuit components such as an NFC reader coil that generates a magnetic field to allow communication between the client device 210 and the contactless card 205.

[0052] The application 211 of any client device 210 can communicate with the contactless card 205 using short-range wireless communication (e.g., NFC). The application 211 can be configured to interface with the card reader 213 of the client device 210, which is configured to communicate with the contactless card 205. It should be noted that those skilled in the art will understand that a distance of less than twenty centimeters is within the NFC range.

[0053] In some embodiments, the application 211 communicates with the contactless card 205 through an associated reader (e.g., the card reader 213).

[0054] In some embodiments, card activation can occur without user authentication. For example, the contactless card 205 can communicate with the application 211 via NFC through the card reader 213 of the client device 210. Such communication (e.g., a tap of the card close to the card reader 213 of the client device 210) allows the application 211 to read data associated with the card and perform activation. In some cases, the tap can activate or launch the application and then initiate one or more actions or communication with an account server to activate the card for subsequent use. In some cases, if the application 211 is not installed on the client device 210, a tap of the card on the card reader 213 can initiate the download of the application 211 (e.g., navigate to the application download page). After installation, a tap of the card can activate or launch the application 211 and then initiate (e.g., via the application or other backend communication) the activation of the card. After activation, the card can be used in various transactions including commercial transactions.

[0055] According to some embodiments, the contactless card 205 can include a virtual payment card. In those embodiments, the application 211 can obtain information associated with the contactless card 205 by accessing a digital wallet implemented on the client device 210, where the digital wallet includes the virtual payment card. In some examples, the virtual payment card data can include one or more static or dynamically generated virtual card numbers.

[0056] Server 220 may include a web server that communicates with database 235. Server 225 may include an account server. In some examples, server 220 may be configured to verify one or more credentials from contactless card 205 and / or client device 210 by comparing them with one or more credentials in database 235. Server 225 may be configured to authorize one or more requests from contactless card 205 and / or client device 210, such as payments and transactions.

[0057] Figure 3A One or more contactless cards 300 are shown, which may include payment cards issued by service provider 305, such as credit cards, debit cards, or gift cards, and the service provider is shown on the front or back of the card 300. In some examples, contactless card 300 is not related to a payment card and may include, but is not limited to, an identification card. In some examples, the payment card may include a dual-interface contactless payment card. Contactless payment card 300 may include a substrate 310, which may include a single layer or one or more laminates composed of plastic, metal, and other materials. Exemplary substrate materials include polyvinyl chloride, polyvinyl chloride-vinyl acetate, acrylonitrile-butadiene-styrene, polycarbonate, polyester, anodized titanium, palladium, gold, carbon, paper, and biodegradable materials. In some examples, contactless card 300 may have physical characteristics in the ID-1 format compliant with ISO / IEC 7810 standard, and the contactless card may additionally comply with ISO / IEC 14443 standard. However, it is understood that according to the present disclosure, contactless card 300 may have different characteristics, and the present disclosure does not require the contactless card to be implemented in a payment card.

[0058] Contactless card 300 may also include identification information 315 displayed on the front and / or back of the card, and a contact pad 320. The contact pad 320 may be configured to establish contact with another communication device, such as a user device, smartphone, laptop, desktop computer, or tablet computer. Contactless card 300 may also include processing circuitry, an antenna, and other components not shown in Figure 3A These components may be located behind the contact pad 320 or elsewhere on the substrate 310. Contactless card 300 may also include a magnetic stripe or tape, which may be located on the back of the card ( Figure 3A not shown in

[0059] As Figure 3B shown, Figure 3AThe contact pad 320 may include processing circuitry 325 for storing and processing information, which includes a microprocessor 330 and a memory 335. It will be appreciated that the processing circuitry 325 may contain additional components, including processors, memories, error and parity / CRC checkers, data encoders, anti-collision algorithms, controllers, command decoders, security phrases, and tamper-resistant hardware, as necessary to perform the functions described herein.

[0060] The memory 335 may be a read-only memory, a write-once read-many memory, or a read / write memory, such as RAM, ROM, and EEPROM, and the contactless card 300 may include one or more of these memories. The read-only memory may be factory-programmable as read-only or one-time programmable. One-time programmability provides the possibility of writing once and then reading many times. The write-once / read-many memory may be programmed at some point after the memory chip has left the factory. Once the memory is programmed, it cannot be rewritten, but it can be read many times. The read / write memory may be programmed and reprogrammed many times after leaving the factory. It can also be read many times.

[0061] The memory 335 may be configured to store one or more applets 340, one or more counters 345, and a user identifier 350. The one or more applets 340 may include one or more software applications that are configured to execute on one or more contactless cards, such as Java Card applets. However, it will be appreciated that the applets 340 are not limited to Java Card applets, but may be any software application that can run on a contactless card or other device with limited memory. The one or more counters 345 may include digital counters sufficient to store integers. The user identifier 350 may include a unique alphanumeric identifier assigned to the user of the contactless card 300, and the identifier may distinguish the user of the contactless card from the users of other contactless cards. In some examples, the user identifier 350 may identify a customer and the account assigned to that customer, and may further identify the contactless card associated with the customer's account.

[0062] Although the processor and memory elements of the foregoing exemplary embodiments have been described with reference to the contact pad, the present disclosure is not limited thereto. It will be appreciated that these elements may be implemented outside the pad 320, or distinct therefrom, or as additional elements within the contact pad 320 in addition to the processor 330 and memory 335 elements.

[0063] In some examples, the contactless card 300 may include one or more antennas 355. The one or more antennas 355 may be placed within the contactless card 300 and around the processing circuitry 325 of the contact pad 320. For example, the one or more antennas 355 may be integrated with the processing circuitry 325 and the one or more antennas 355 may be used together with an external boost coil. As another example, the one or more antennas 355 may be external to the contact pad 320 and the processing circuitry 325.

[0064] In an embodiment, the coil of the contactless card 300 may act as the secondary of an air-core transformer. The terminal may communicate with the contactless card 300 by means of inductive power or amplitude modulation. The contactless card 300 may use the gap in the power connection of the contactless card to infer the data transmitted from the terminal, which may be functionally maintained by one or more capacitors. The contactless card 300 may communicate back by switching the load on the coil of the contactless card or load modulation. The load modulation may be detected by interference in the coil of the terminal.

[0065] As explained above, the contactless card 300 may be built on a software platform (such as a Java card) operable on a smart card or other device with limited memory, and one or more applications or applets may be securely executed. An applet may be added to the contactless card to provide a one-time password (OTP) for multi-factor authentication (MFA) in various mobile application-based use cases. The applet may be configured to respond to one or more requests (such as a near-field data exchange request) from a reader (such as a mobile NFC reader), and generate an NDEF message that includes an encrypted secure OTP encoded as an NDEF text tag.

[0066] Figure 4 Sequence diagram 400 shows an example of a feedback mechanism between a contactless card 402 and a mobile computing device 404 according to one or more embodiments. The mobile computing device 404 may be a client device, such as a smartphone configured to communicate with the contactless card 402. As described above, the mobile computing device 404 may at least include an NFC reader configured to establish NFC communication with the contactless card via an NFC reader coil.

[0067] At step 410, communication can be established between the contactless card 402 and the mobile computing device 404. In an example, the communication can be automatically established when the contactless card enters the active magnetic field generated by the NFC reader coil of the mobile computing device. In other examples, the mobile computing device 404 can first establish communication by sending a signal to the contactless card 402 when the computing device 404 detects that the contactless card 402 has entered the active magnetic field generated by the NFC reader coil. It can be understood that step 410 can be an optional step. In an example, once the card enters the active magnetic field of the NFC reader coil of the mobile computing device, the contactless card can automatically start providing messages to the mobile computing device 404.

[0068] At step 412, the contactless card 402 can transfer or provide an NDEF message to the mobile computing device. The NDEF message can include, for example, one or more NDEF records, and each NDEF record can include one or more NDEF payloads and associated headers, flags, etc. In one or more NDEF payloads (or any other suitable part of the NDEF message), a checksum or checksum value can be included. Further included in the NDEF message can be information related to the type of checksum function or the algorithm used to generate the embedded checksum value.

[0069] At step 414, the mobile computing device can detect, receive, or access the NDEF message and evaluate the message. As will be further described below, the mobile computing device can use, for example, a specified checksum function or algorithm in the NDEF message to perform the calculation of the checksum on the message content received in one or more payloads. After calculating the checksum, the mobile computing device can compare it with the checksum provided in the NDEF message. If the two checksums match, it can be determined that the entire NDEF message has been correctly received. If the two checksums do not match, the mobile computing device 404 can increase the power to the NFC reader coil from the current power level, such as the default or factory-set power level, to a second power level, such as a fraction of the maximum allowable power level for the reader coil.

[0070] Optionally, as depicted by the dashed arrow, at step 416, the mobile computing device 404 may send a retransmission request and / or a negative acknowledgment (NACK) message to the contactless card 402, which prompts the contactless card 402 to re-send or re-provide the NDEF message sent at step 412. Otherwise, if the contactless card 402 remains within the magnetic field generated by the NFC reader coil of the mobile computing device 404, the NDEF message may be continuously available for the mobile computing device to detect or receive until the entire NDEF message has been received. In additional or alternative examples, the contactless card 402 may automatically provide the NDEF message at a predetermined time interval (e.g., every second, every five seconds, every twenty seconds, etc.) or for a predetermined period of time until the mobile computing device 404 has received the entire NDEF message. Thus, at step 418, the NDEF message is provided to the mobile computing device 404 a second time, assuming that at step 414, the mobile computing device 404 has determined based on the checksum calculation that the complete NDEF message has not been received.

[0071] At step 420, the NDEF message is evaluated again. The mobile computing device 404 may calculate a new checksum for the NDEF message received at step 418 and determine whether it matches the checksum provided in the NDEF message. If the two checksums match, then at step 422 the mobile computing device 404 may optionally send an acknowledgment (ACK) message, as shown by the dashed arrow. If the two checksums do not match, the NDEF message may be provided to the mobile computing device 404 again and further evaluated. The process may continue until the entire NDEF message has been received by the mobile computing device 404. In other examples, the entire process may stop after a predetermined number of iterations or a predetermined duration. If the mobile computing device 404 fails to read the entire NDEF message after a predetermined number of iterations or a predetermined duration, an error message may be returned to the user via the user interface.

[0072] Figure 5 A checksum calculation 500 of an example according to one or more embodiments is shown. The NDEF message 502 may be provided by the contactless card to the mobile computing device. As shown, the NDEF message 502 includes a payload 504 and a checksum 506 associated with the payload 504. It will be appreciated that the payload 504 (and other payloads that may be included in the NDEF message 502) may include message content or any other suitable type of data. In an example, the NDEF message 502 may include information on how the checksum 506 is calculated, such as an indication of a particular checksum function, algorithm, etc. applied to the payload 504 to arrive at the checksum 506.

[0073] The payload 504 sent by the contactless card can be received by the mobile computing device as payload 508. The mobile computing device can then perform a checksum calculation on the received payload 508 using a checksum function (or algorithm) 510. As described above, the checksum function 510 can be the checksum function indicated in the NDEF message 502. Alternatively, the checksum function 510 can be known, determined, or pre-agreed upon between the contactless card and the mobile computing device. It can be understood that the checksum function 510 can be based on any suitable type of algorithm such as a parity byte or parity word algorithm, modular sum algorithm, location-dependent algorithm, etc., or other techniques such as check digits, Damn algorithm, data rot, file verification, Fletcher checksum, frame check sequence, "cksum", "md5sum", "sha1sum", SYSV checksum, "xxHash", etc., or any suitable type of hash function.

[0074] When applying the checksum function 510 to the received payload 508, a checksum 512 can be generated or derived. Thereafter, a determination can be made as to whether the checksum 512 matches 506. In other instances, a determination can also be made as to whether the calculated checksum 512 is inaccurate or incomplete. In an example, the calculated checksum 512 (and / or its comparison with the checksum 506) can reveal what percentage of the original payload 504 in the NDEF message 502 is correctly received by the mobile computing device. For example, as shown, it can be determined that the payload 508 contains only 40% of the message content of the original payload 504. As will be further described below, based on this determination, the power supplied to the NFC reader coil of the mobile computing device may be increased accordingly.

[0075] Figure 6 An example adjustment of the power level of the reader coil 600 according to one or more embodiments is shown. As shown, the reader coil 600 of the NFC reader of the mobile computing device can be set at a default power level, which generates a magnetic field 602 corresponding to the default power level. In an example, the default power level can be a preset power level, factory setting, etc.

[0076] To improve communication between the contactless card and the mobile computing device, the power to the reader coil 600 can be increased to a second power level to generate a larger magnetic field, such as magnetic field 604. For example, referring back to Figure 5, if only 40% of the NDEF message is correctly received by the mobile computing device, the device can increase the power to the reader coil 600 from the default power level to a power level that is 60% of the maximum allowable power that can be provided to the reader coil 600. Thus, in other words, the second power level or the dynamically adjusted power level can be a fraction or a portion of the maximum power that can be provided to the reader coil 600, where the fraction is inversely proportional to the percentage of the NDEF message that has been correctly detected or received. It can be understood that the maximum allowable power or the maximum power level means the maximum amount of power that can be provided to the reader coil 600 without damaging or burning out the coil 600.

[0077] According to a further example, the power to the reader coil 600 can be dynamically adjusted to any suitable level. For example, if the percentage of the NDEF message that is correctly received is below a predetermined threshold percentage such as 20%, 15%, etc., the power to the reader coil 600 can be increased to the maximum power level.

[0078] In some examples, even though the power level of the reader 600 is ramped up to its maximum allowable power, the mobile computing device still cannot receive the entire NDEF message. In these instances, the mobile computing device can further instruct the user via the user interface to move or place the contactless card closer to a specific location on the mobile computing device, or move or place it near the reader coil 600 at a precise angle or orientation.

[0079] It can be understood that the shapes of the magnetic fields 602, 604 and the shape and configuration of the reader coil 600 are for illustrative purposes and are not limited thereto.

[0080] Figure 7 Illustrated is an example storage and comparison technique for one or more portions of an NDEF message according to one or more embodiments. The technique involves storing and piecing together fragments of the NDEF message by reading multiple times to ultimately obtain the complete NDEF message. For example, a contactless card can provide an NDEF message that includes at least a payload 702. The mobile computing device can detect or receive the NDEF message, and based on checksum calculation, the mobile computing device can determine that only a portion or only a certain percentage of the payload 702 of the NDEF message, such as the payload portion 704, has been received. In response, the mobile computing device can store the received payload portion 704 in a memory.

[0081] After the power to the NFC reader coil of the mobile computing device has been dynamically adjusted, the contactless card can again provide an NDEF message that at least includes payload 702. Another checksum calculation can be performed by the mobile computing device. Based on this calculation, the mobile computing device can again determine only a portion of the payload 702, such as payload portion 706. The mobile computing device can also store the received payload portion 706.

[0082] At this time, the mobile computing device can compare the stored payload portions (“PPs”) 704 and 706. For example, the payload portions can be compared for any redundancy or overlap in the message content of payload 702. If any redundancy in the message content is found, it can be removed. The payload portions 704 and 706 can be combined, and the mobile computing device can perform a new checksum calculation on the “combined” payload. If the new checksum matches the checksum provided in the NDEF message, this indicates that the message content payload 702 has been fully and completely obtained via the combination of payloads 704 and 706, which were received in two separate reads.

[0083] However, if the new checksum does not match the checksum provided in the NDEF message, or if the new checksum is incomplete or inaccurate, the storing and comparing techniques can continue. As shown, payload portion 708 can subsequently be received. The payload portions 704, 706, and 708 can be compared for any redundancy and then combined to calculate a new checksum. A similar method can be applied to payload portion 710 and so on.

[0084] The storing and comparing techniques can be advantageous in that pieces or fragments of the message content in payload 702 can be collected over time or over multiple reads or iterations, which can later be compared, combined, and analyzed to determine whether the pieces or fragments that add up together result in the entire message contained in payload 702. Thus, this technique compensates for the fact that the mobile computing device may never obtain the entire payload 702 on every read.

[0085] Figure 8 An example flowchart 800 is shown in accordance with one or more embodiments. The flowchart 800 is related to dynamically increasing the power to the NFC reader coil from a first power level to a second power level. It can be understood that the features associated with the shown blocks can be performed or implemented by one or more computing devices, such as a mobile computing device and / or the processing circuitry included therein. Additionally, it can be understood that the blocks in flowchart 800 are not limited to any particular order, and one or more blocks can be performed or implemented simultaneously.

[0086] At block 802, a first NDEF message or file can be received via the NFC reader coil at a first power level, which can be a default power level. The first NDEF message can include message content such as data, which can be contained in one or more payloads, and can include a first checksum associated with the message content.

[0087] At block 804, a second checksum can be calculated. As described above, a checksum function or algorithm can be applied to the received message content or message data to calculate the second checksum. The second checksum can indicate the accuracy, integrity, and / or completeness of the first NDEF message received from the contactless card.

[0088] At block 806, the first checksum and the second checksum can be compared, and it can be determined whether the first checksum and the second checksum match. If the first and second checksums match, it can indicate that the first NDEF message has been correctly received.

[0089] If the first and second checksums do not match, at block 808, the power to the NFC reader coil can be increased from the first power level to a second power level. The second power level can be dynamically determined and adjusted. For example, if a certain percentage of the NDEF message has been correctly received, the second power level can be set to a fraction of the maximum power available to the NFC reader coil, where the fraction is inversely proportional to the percentage of the NDEF message that has been correctly received. In other words, if the percentage of correctly received NDEF is below a predetermined percentage threshold, the second power level can be the maximum power level.

[0090] Although the above embodiments and examples relate to a reader coil implemented in a mobile computing device, it can be understood that the power to any NFC reader installed in any type of device can be dynamically adjusted to improve NFC communication. Additionally, the above NDEF messages and corresponding payloads can include message content or data related to various use cases of the contactless card, such as contactless card activation, user verification, user authentication, various transactions, sales, purchases, etc.

[0091] The components and features of the above device can be implemented using any combination of discrete circuits, application specific integrated circuits (ASICs), logic gates, and / or single-chip architectures. Moreover, the features of the device can be implemented using a microcontroller, programmable logic array, and / or microprocessor, or any combination of the foregoing where appropriate. It should be noted that hardware, firmware, and / or software elements can be collectively or individually referred to herein as "logic" or "circuitry".

[0092] At least one computer-readable storage medium may include instructions that, when executed, cause a system to perform any of the computer-implemented methods described herein.

[0093] Some embodiments may be described using the terms "one embodiment" or "an embodiment" and derivatives thereof. These terms mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The phrase "in one embodiment" appearing in the specification does not necessarily all refer to the same embodiment. Additionally, unless otherwise stated, the above features are recognized as being used in any combination together. Thus, any features discussed separately can be adopted in combination with each other, unless it is noted that the features are incompatible with each other.

[0094] Primarily with reference to the symbols and nomenclature used herein, the detailed description in the text can be presented in accordance with program procedures executed on a computer or a network of computers. These programmatic descriptions and representations are used by those skilled in the art to most effectively convey the substance of their work to other technicians in the field.

[0095] A process is herein, and is generally conceived as a self-consistent sequence of operations that lead to a desired result. These operations are those that require physical manipulation of physical quantities. Ordinarily, though not necessarily, these physical quantities take the form of electrical, magnetic, or optical signals that can be stored, transferred, combined, compared, and otherwise processed. Primarily for reasons of common usage, it has proven convenient at times to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, etc. However, it should be noted that all of these and similar terms are associated with appropriate physical quantities and are merely convenient labels applied to those quantities.

[0096] Furthermore, the operations performed are often referred to in terms, such as addition or comparison, that are generally associated with mental operations performed by a human operator. In most cases, the ability of such a human operator is not necessary or not required in any of the operations described herein that form part of one or more embodiments. Rather, the operations are machine operations.

[0097] Some embodiments may be described using the expressions "coupled" and "connected" and derivatives thereof. These terms are not necessarily intended as synonyms for each other. For example, some embodiments may use the terms "connected" and / or "coupled" to describe that two or more elements are in direct physical or electrical contact with each other. However, the term "coupled" can also mean that two or more elements are not in direct contact with each other, but still cooperate or interact with each other.

[0098] The various embodiments also relate to apparatuses or systems for performing these operations. The apparatus may be specially constructed for the required purposes and may be selectively activated or reconfigured by a computer program stored in a computer. The processes presented herein are not inherently related to a particular computer or other apparatus. The required structure for various such machines will be apparent from a given specification.

[0099] It should be emphasized that the abstract of the disclosure is provided to enable the reader to quickly ascertain the nature of the technical disclosure. The abstract should be read with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Additionally, in the foregoing detailed description, for purposes of brevity, various features are grouped together in a single embodiment. The disclosed method is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as reflected in the following claims, the inventive subject matter lies in less than all of the features of a single disclosed embodiment. Accordingly, the following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separate embodiment. In the appended claims, the terms "comprising" and "wherein" are used as the plain-English equivalents of the respective terms "including" and "wherein". Additionally, the terms "first", "second", "third", etc. are used merely as labels and are not intended to impose numerical requirements on their objects.

[0100] The foregoing includes examples of the disclosed architecture. Of course, it is not possible to describe every conceivable combination of components and / or methods, but one of ordinary skill in the art will recognize that many further combinations and permutations are possible. Accordingly, this innovative architecture is intended to cover all such alternatives, modifications, and variations that fall within the spirit and scope of the appended claims.

Claims

1. A computer-implemented method, comprising: Processing a message received from a contactless card via a Near Field Communication (NFC) reader; Determining that one or more portions of the message have not been correctly received via the NFC reader; Determining that the NFC reader is at maximum power; And In response to determining that the NFC reader is at maximum power, causing one or more instructions for moving or placing the contactless card closer to a specific location on the mobile computing device, or moving or placing it near the coil of the NFC reader at a precise angle or orientation, to be displayed on a display device; Wherein determining one or more portions of the message that have not been correctly received includes performing a checksum calculation, wherein the checksum calculation is at least partially based on a checksum value in the message; Wherein the message is a Near Field Communication Data Exchange Format (NDEF) message including a checksum value.

2. The method according to claim 1, comprising presenting on a display device an indication for tapping the contactless card onto the surface of the mobile device to initially receive a message from the contactless card.

3. The method according to claim 1, comprising: Receiving a subsequent NDEF message, wherein the respective message contents of the NDEF message and the subsequent NDEF message are the same; Storing one or more portions of the NDEF message that have been correctly received; And Based on a comparison of one or more portions of the subsequently received NDEF message that have been correctly received with the stored one or more portions of the NDEF message that have been correctly received, determining whether the message content has been fully acquired.

4. The method according to claim 1, wherein the NDEF message includes a Message Authentication Code (MAC) ciphertext generated by the contactless card.

5. The method according to claim 4, wherein the MAC ciphertext is generated by applying a pair of generated diversified session keys to a shared secret or unique identifier by the contactless card.

6. A non-transitory computer-readable storage medium, the computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform the following: Processing a message received from a contactless card via a Near Field Communication (NFC) reader; Determining that one or more portions of the message have not been correctly received via the NFC reader; Determining that the NFC reader is at maximum power; And In response to the NFC reader being at maximum power, causing one or more instructions for moving or placing the contactless card closer to a specific location on the mobile computing device, or moving or placing it near the coil of the NFC reader at a precise angle or orientation, to be displayed on a display device; Wherein the processor for determining one or more portions of the message that have not been correctly received includes a processor that performs a checksum calculation, wherein the checksum calculation is at least partially based on a checksum value in the message; Wherein the message is a Near Field Communication Data Exchange Format (NDEF) message including a checksum value.

7. The non - transitory computer - readable storage medium according to claim 6, further comprising instructions that cause a processor to perform the following: presenting, on a display device, an indication for tapping the non - contact card onto a surface of a mobile device to initially receive a message from the non - contact card.

8. The non - transitory computer - readable storage medium according to claim 6, further comprising instructions that cause a processor to perform the following: Receiving subsequent NDEF messages, wherein the NDEF message and the respective message content of the subsequent NDEF messages are the same; Storing one or more portions of the NDEF messages that are correctly received; and Determining whether the message content has been fully obtained based on a comparison of one or more portions of the correctly received subsequent NDEF messages with one or more portions of the stored correctly received NDEF messages.

9. The non - transitory computer - readable storage medium according to claim 6, wherein the NDEF message includes a message authentication code (MAC) ciphertext generated by the non - contact card.

10. The non - transitory computer - readable storage medium according to claim 9, wherein the MAC ciphertext is generated by the non - contact card applying a pair of generated diversified session keys to a shared secret or a unique identifier.

11. A computing device, comprising: A display device; A processor; And A memory storing instructions that, when executed by the processor, cause the processor to perform the following: Processing a message received from a non - contact card via a near - field communication (NFC) reader; Determining that one or more portions of the message have not been correctly received via the NFC reader; Determining that the NFC reader is at maximum power; And In response to the NFC reader being at maximum power, causing one or more instructions for moving or placing the non - contact card closer to a specific location on the mobile computing device, or moving or placing it near the coil of the NFC reader at a precise angle or orientation to be displayed on the display device, Wherein determining one or more portions of the message not correctly received includes performing a checksum calculation, wherein the checksum calculation is at least partially based on a checksum value in the message, Wherein the message is a near - field communication data exchange format (NDEF) message including a checksum value.

12. The computing device according to claim 11, wherein the instructions are further configured to cause the processor to present, on the display device, an indication for tapping the non - contact card onto a surface of a mobile device to initially receive a message from the non - contact card.

13. The computing device according to claim 11, wherein the instructions are further configured to cause the processor to perform the following: Receiving subsequent NDEF messages, wherein the NDEF message and the respective message content of the subsequent NDEF messages are the same; Storing one or more portions of the NDEF messages that are correctly received; and Determining whether the message content has been fully obtained based on a comparison of one or more portions of the correctly received subsequent NDEF messages with one or more portions of the stored correctly received NDEF messages.

14. The computing device according to claim 11, wherein the NDEF message includes a message authentication code (MAC) ciphertext generated by the contactless card.

Citation Information

Patent Citations

  • Data integrity for proximity-based communication

    CN103650554A

  • Methods and apparatus for reducing overhead for NFC data exchange protocol messages

    CN104662931A