Systems and methods for cryptographic authentication of contactless cards
Example embodiments of systems and methods for data transmission between transmitting and receiving devices are provided. In an embodiment, each of the transmitting and receiving devices can contain a master key. The transmitting device can generate a diversified key using the master key, protect a counter value and encrypt data prior to transmitting to the receiving device. The receiving device can generate the diversified key based on the master key and can decrypt the data and validate the protected counter value using the diversified key.
1 . A method, comprising:
processing, by a contactless card comprising a processor and a memory containing a private key, a public key, transmission data, and a counter value, the counter value using a first cryptographic algorithm and the private key to yield a cryptographic result;
encrypting, by the contactless card, the transmission data and the cryptographic result using a second cryptographic algorithm and the public key to yield encrypted transmission data; and
transmitting, by the contactless card, the encrypted transmission data and the public key to a receiving device.
2 . The method of claim 1 , further comprising:
signing, by the contactless card, the counter value using the private key, and
encrypting, by the contactless card, the signed counter value using the public key and the second cryptographic algorithm.
3 . The method of claim 1 , further comprising, prior to encrypting the transmission data and the cryptographic result using the second algorithm and the public key, generating the public key.
4 . The method of claim 3 , wherein the public key is generated based on a prior public key and the counter value.
5 . The method of claim 1 , wherein, prior to transmitting the public key, encrypting, by the contactless card, the public key.
6 . The method of claim 1 , wherein the public key includes a signed certificate to authenticate an issuer of the public key.
7 . The method of claim 1 , wherein the transmission data comprises activation data for the contactless card.
8 . The method of claim 1 , further comprising:
receiving, by a server from the contactless card, the encrypted transmission data and the public key, wherein the server comprises a processor and a memory containing a server counter value;
generating, by the server, a second public key using the public key; and
decrypting, by the server, the encrypted transmission data using the second public key.
9 . The method of claim 8 , wherein the server receives the encrypted transmission data and the public key from the contactless card via one or more intermediary devices.
10 . The method of claim 8 , further comprising:
comparing, by the server, the decrypted transmission data to record data accessible to the server; and
responsive to a successful comparison, activating, by the server, the contactless card.
11 . The method of claim 10 , further comprising, responsive to an unsuccessful comparison, transmitting, by the server, a request for entry of the contactless card into a communication field.
12 . The method of claim 10 , further comprising, responsive to an unsuccessful comparison, transmitting, by the server, at least one selected from the group of a message requesting assistance to activate the contactless card and a message indicative of an unsuccessful attempt to activate the contactless card.
13 . A contactless card comprising:
a processor; and a memory containing a private key, a public key, transmission data, and a counter value,
wherein the contactless card:
processes the counter value using a first cryptographic algorithm and the private key to yield a cryptographic result;
encrypts the transmission data and the cryptographic result using a second cryptographic algorithm and the public key to yield encrypted transmission data; and
transmits the encrypted transmission data and the public key to a receiving device.
14 . The contactless card of claim 13 , wherein the contactless card:
signs the counter value using the private key, and
encrypts the signed counter value using public key and the second cryptographic algorithm.
15 . The contactless card of claim 13 , wherein, prior to encrypting the transmission data and the cryptographic results using the second algorithm and the public key, the contactless card generates the public key.
16 . The contactless card of claim 15 , wherein the contactless card generates the public key based on a prior public key and the counter value.
17 . The contactless card of claim 13 , wherein the private key is specific to the contactless card.
18 . The contactless card of claim 13 , wherein the private key is a global private key.
19 . A non-transitory computer-readable medium containing instructions for execution by a contactless card, wherein, upon execution of the instructions, the contactless card performs procedures comprising:
processing a counter value using a first cryptographic algorithm and a private key to yield a cryptographic result;
encrypting the transmission data and the cryptographic result using a second cryptographic algorithm and a public key to yield encrypted transmission data; and
transmitting the encrypted transmission data and the public key to a receiving device.
20 . The non-transitory computer-readable medium of claim 19 , the procedures further comprising:
signing the counter value using the private key, and
encrypting the signed counter value using the public key and the second cryptographic algorithm.