ASYMMETRIC ENCRYPTION SCHEME FOR SECURE DATA TRANSMISSION
First Claim
1. A data access computing device comprising a processor in communication with a database, wherein the database stores a plurality of user data elements associated with a user, the processor programmed to:
- receive a token request from a user computing device, the token request including an authentication key, wherein the token request identifies (i) a relying party and (ii) at least one user data element of the user to be shared with the relying party;
generate, in response to validating the authentication key, a secret value unique to the token request;
associate, in the database, the secret value with the at least one user data element;
encrypt the secret value in a first encryption layer using a private key A associated with the data access computing device to generate an A-encrypted secret value;
encrypt the A-encrypted secret value in a second encryption layer using a public key B associated with the relying party to generate a sharing token;
transmit the sharing token to the user computing device;
receive a payload encrypted using a private key B associated with the relying party from a relying party computing device, wherein the payload includes the A-encrypted secret value and a nonce value, and wherein the private key B is complementary to the public key B;
decrypt the payload using the public key B to recover the nonce value and the A-encrypted secret value;
decrypt the A-encrypted secret value using a public key A to recover the secret value, wherein the public key A is complementary to the private key A;
retrieve the at least one user data element from the database based on the secret value; and
transmit the at least one user data element to the relying party computing device.
1 Assignment
0 Petitions
Accused Products
Abstract
A data access computing device is provided. The data access computing device receives a token request from a user computing device, generates a secret value unique to the token request, encrypts the secret value using a private key associated with the data access computing device, encrypts the secret value using a public key associated with the relying party to generate a sharing token, transmits the sharing token to the user computing device, receives a payload encrypted using a private key associated with the relying party from a relying party computing device, where the payload includes the secret value and a nonce value, decrypts the payload using the to recover the nonce value and the secret value, retrieves the at least one user data element from the database based on the secret value, and transmits the at least one user data element to the relying party computing device.
8 Citations
20 Claims
-
1. A data access computing device comprising a processor in communication with a database, wherein the database stores a plurality of user data elements associated with a user, the processor programmed to:
-
receive a token request from a user computing device, the token request including an authentication key, wherein the token request identifies (i) a relying party and (ii) at least one user data element of the user to be shared with the relying party; generate, in response to validating the authentication key, a secret value unique to the token request; associate, in the database, the secret value with the at least one user data element; encrypt the secret value in a first encryption layer using a private key A associated with the data access computing device to generate an A-encrypted secret value; encrypt the A-encrypted secret value in a second encryption layer using a public key B associated with the relying party to generate a sharing token; transmit the sharing token to the user computing device; receive a payload encrypted using a private key B associated with the relying party from a relying party computing device, wherein the payload includes the A-encrypted secret value and a nonce value, and wherein the private key B is complementary to the public key B; decrypt the payload using the public key B to recover the nonce value and the A-encrypted secret value; decrypt the A-encrypted secret value using a public key A to recover the secret value, wherein the public key A is complementary to the private key A; retrieve the at least one user data element from the database based on the secret value; and transmit the at least one user data element to the relying party computing device. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method for secure data transmission, said method implemented using a data access computing device including a processor in communication with a database, said method comprising:
-
receiving a token request from a user computing device, the token request including an authentication key, wherein the token request identifies (i) a relying party and (ii) at least one user data element of the user to be shared with the relying party; generating, in response to validating the authentication key, a secret value unique to the token request; associating, in the database, the secret value with the at least one user data element; encrypting the secret value in a first encryption layer using a private key A associated with the data access computing device to generate an A-encrypted secret value; encrypting the A-encrypted secret value in a second encryption layer using a public key B associated with the relying party to generate a sharing token; transmitting the sharing token to the user computing device; receiving a payload encrypted using a private key B associated with the relying party from a relying party computing device, wherein the payload includes the A-encrypted secret value and a nonce value, and wherein the private key B is complementary to the public key B; decrypting the payload using the public key B to recover the nonce value and the A-encrypted secret value, and decrypting the A-encrypted secret value using a public key A to recover the secret value, wherein the public key A is complementary to the private key A; retrieving the at least one user data element from the database based on the secret value; and transmitting the at least one user data element to the relying party computing device. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable storage media having computer-executable instructions embodied thereon, wherein when executed by a data access computing device having a processor coupled to a database, the computer-executable instructions cause the processor to:
-
receive a token request from a user computing device, the token request including an authentication key, wherein the token request identifies (i) a relying party and (ii) at least one user data element of the user to be shared with the relying party; generate, in response to validating the authentication key, a secret value unique to the token request; associate, in the database, the secret value with the at least one user data element; encrypt the secret value in a first encryption layer using a private key A associated with the data access computing device to generate an A-encrypted secret value; encrypt the A-encrypted secret value in a second encryption layer using a public key B associated with the relying party to generate a sharing token; transmit the sharing token to the user computing device; receive a payload encrypted using a private key B associated with the relying party from a relying party computing device, wherein the payload includes the A-encrypted secret value and a nonce value, and wherein the private key B is complementary to the public key B; decrypt the payload using the public key B to recover the nonce value and the A-encrypted secret value; decrypt the A-encrypted secret value using a public key A to recover the secret value, wherein the public key A is complementary to the private key A; retrieve the at least one user data element from the database based on the secret value; and transmit the at least one user data element to the relying party computer system. - View Dependent Claims (14, 15, 16)
-
-
17. A relying party computing device comprising at least one processor in communication with a memory, the at least one processor programmed to:
-
request at least one user data element from a user; receive a sharing token from a user computing device associated with the user, the sharing token including a secret value encrypted in a first encryption layer using a private key A associated with a data access computing device, and in a second encryption layer using a public key B associated with the relying party computing device; decrypt the sharing token using a private key B to recover to the A-encrypted secret value, wherein the private key B is complementary to the public key B; generate a nonce value; encrypt the A-encrypted secret value and the nonce value together using the private key B to generate a payload; transmit the payload to the data access computing device; and receive, in response to the transmission of the payload, the at least one user data element. - View Dependent Claims (18, 19, 20)
-
Specification