IP Library › Granted Patent US 11,588,617
Granted Patent B2
US 11,588,617 · App. 17/335,493 · Granted Feb 21, 2023

Validating confidential data using homomorphic computations

Inventors: Brian Andrew Lam (Toronto, CA); Milos Dunjic (Oakville, CA); Alexey Shpurov (Toronto, CA)
Assignee: The Toronto-Dominion Bank
H04L9/008G06F7/588
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,588,617
App. No.
17/335,493
Granted
Feb 21, 2023
Kind
B2
Abstract

The disclosed exemplary embodiments include computer-implemented apparatuses and methods that validate confidential data based privacy-preserving homomorphic computations involving encrypted data. For example, an apparatus may receive, from a first computing system, encrypted data that includes a first encrypted value representative of at least one of first account data or an element of cryptographic data. Based on the first encrypted value and on second encrypted values, the apparatus may generate encrypted residual values representative of second account data associated with one or more reference accounts, and the apparatus may request and receive a decrypted residual value associated with each of the encrypted residual values from a second computing system. The apparatus may transmit the decrypted residual values to the first computing system, which may validate the first account data based on at least the decrypted residual values and perform operations associated with the validated first account data.

Claims (85)

1. An apparatus, comprising:

a communications interface;

a memory storing instructions; and

at least one processor coupled to the communications interface and the memory, the at least one processor being configured to execute the instructions to:

receive, via the communications interface, encrypted data from a first computing system, the encrypted data comprising a first encrypted value representative of at least one of first account data or an element of cryptographic data;

generate encrypted residual values based on the first encrypted value and on second encrypted values, the second encrypted values being representative of second account data associated with one or more reference accounts;

via the communications interface, request and receive a decrypted residual value associated with each of the encrypted residual values from a second computing system; and

transmit the decrypted residual values to the first computing system via the communications interface, the first computing system being configured to validate the first account data based on at least the decrypted residual values, and to perform operations associated with the validated first account data.

2. The apparatus of claim 1 , wherein:

the element of cryptographic data comprises a random number; and

the first encrypted value comprises a encrypted sum of the first account data and the random number; and

the second encrypted values comprise encrypted elements of the second account data.

3. The apparatus of claim 2 , wherein the at least one processor is further configured to:

compute an encrypted difference between each of the second encrypted values and the first encrypted value; and

generate each of the encrypted residual values based on corresponding ones of the encrypted differences, the encrypted residual values being associated with corresponding ones of the reference accounts.

4. The apparatus of claim 2 , wherein:

the decrypted residual values comprise decrypted differences between corresponding ones of second encrypted values and the first encrypted value; and

the first computing system is further configured to:

compute an absolute value of each of the decrypted residual values; and

validate the first account data based on a determination that the each of the computed absolute values fail to be equivalent to the random number.

5. The apparatus of claim 1 , wherein:

the element of cryptographic data comprises a random number;

the first computing system is further configured to encrypt each of the first account data and the random number using a homomorphic encryption key;

the first encrypted value comprises the encrypted first account data, and the encrypted data further comprises the encrypted random number; and

the at least one processor is further configured to:

perform operations that partition the second encrypted values into a plurality of data partitions, and that associate a subset of the second encrypted values with each of the data partitions;

for each of the data partitions, generate a corresponding one of the encrypted residual values based on the associated subset of the second encrypted values and the first encrypted value.

6. The apparatus of claim 5 , wherein the at least one processor is further configured to:

compute an encrypted sum of each of the encrypted residual values and the encrypted random number; and

via the communications interface, request and receive a decrypted sum associated with each of the encrypted sums from the second computing system; and

transmit, via the communications interface, the decrypted sums to first computing system, the first computing system being further configured to validate the first account data based on a determination that the each of the decrypted sums exceeds the random number.

7. The apparatus of claim 1 , wherein the at least one processor is further configured to:

receive, via the communications interface, a homomorphic encryption key and at least a portion of the second encrypted values from the second computing system;

store the homomorphic encryption key within a corresponding portion of the memory;

receive, via the communication interface, a request for the homomorphic encryption key from the first computing system; and

based on the request, obtain the homomorphic encryption key from the memory and transmit the homomorphic encryption key to the first computing system via the communication interface.

8. The apparatus of claim 1 , wherein the at least one processor is further configured to:

transmit the encrypted residual values to the second computing system via the communications interface, the second computing system being configured to decrypt the encrypted residual values using a homomorphic decryption key; and

receive the decrypted residual values from the second computing system via the communications interface.

9. The apparatus of claim 1 , wherein the at least one processor is further configured to transmit, via the communications interface, the decrypted residual values to the first computing system in accordance with at least one of a Secure Sockets Layer (SSL) protocol or a Transport Layer Security (TLS) protocol.

10. The apparatus of claim 1 , wherein the first computing system is further configured to perform additional operations that execute a transaction involving the first account data based on the validation of the first account data.

11. A computer-implemented method, comprising:

receiving, using at least one processor, encrypted data from a first computing system, the encrypted data comprising a first encrypted value representative of first account data and an element of cryptographic data;

generating, using the at least one processor, encrypted residual values based on the first encrypted value and on second encrypted values, the second encrypted values being representative of second account data associated with one or more reference accounts;

using the at least one processor, requesting and receiving a decrypted residual value associated with each of the encrypted residual values from a second computing system; and

transmitting, using the at least one processor, the decrypted residual values to the first computing system, the first computing system being configured to validate the first account data based on at least the decrypted residual values, and to perform operations associated with the validated first account data.

12. An apparatus, comprising:

a communications interface;

a memory storing instructions; and

at least one processor coupled to the communications interface and the memory, the at least one processor being configured to execute the instructions to:

transmit, via the communications interface, encrypted data to a first computing system, the encrypted data comprising a first encrypted value representative of at least one of account data or an element of cryptographic data, and the first computing system being configured to generate, based on the encrypted data, encrypted residual values associated with a plurality of reference accounts and to obtain a decrypted residual value associated with each of the encrypted residual values from a second computing system;

receive the decrypted residual values from the first computing system via the communications interface; and

validate the account data based on at least the decrypted residual values, and perform operations associated with the validated account data.

13. The apparatus of claim 12 , wherein:

the element of cryptographic data comprises a random number; and

the at least one processor is further configured to execute the instructions to:

compute an absolute value of each of the decrypted residual values; and

validate the account data based on a determination that the each of the computed absolute values fails to be equivalent to the random number.

14. The apparatus of claim 12 , wherein the at least one processor is further configured to request and receive, via the communications interface, a homomorphic encryption key from the first computing system.

15. The apparatus of claim 12 , wherein:

the element of cryptographic data comprises a random number;

the at least one processor is further configured to execute the instructions to:

compute a sum of the account data and the random number;

encrypt the computing sum using a homomorphic encryption key; and

generate the first encrypted value based on the encrypted sum of the account data and the random number.

16. The apparatus of claim 12 , wherein:

the first computing system is further configured to access second encrypted values associated with corresponding ones of the reference accounts, compute encrypted differences between corresponding ones of the second encrypted values and the first encrypted value, and generate each of the encrypted residual values based on a corresponding one of the encrypted differences; and

the second computing system is configured to decrypt each of the encrypted differences using a homomorphic decryption key.

17. The apparatus of claim 12 , wherein:

the element of cryptographic data comprises a random number; and

the at least one processor is further configured to execute the instructions to encrypt each of the account data and the random number using a homomorphic encryption key;

the first encrypted value comprises the encrypted account data, and the encrypted data further comprises the encrypted random number;

the first computing system is further configured to:

access second encrypted values associated with corresponding ones of the reference accounts;

perform operations that partition the second encrypted values into a plurality of data partitions, and that associate a subset of the second encrypted values with each of the data partitions;

for each of the data partitions, generate a corresponding one of the encrypted residual values based on the associated subset of the second encrypted values and the first encrypted value; and

compute an encrypted sum of each of the encrypted residual values and the encrypted random number; and

the second computing system is configured to decrypt each of the encrypted sums using a homomorphic decryption key and generate the decrypted sums.

18. The apparatus of claim 17 , wherein the at least one processor is further configured to execute the instructions to:

receive the decrypted sums from the first computing system via the communications interface; and

validate the account data based on a determination that the each of the decrypted sums exceeds the random number.

19. The apparatus of claim 12 , wherein the at least one processor is further configured to execute the instructions to:

receive, via the communications interface, a request to execute a transaction, the request comprising at least a portion of the account data; and

generate the encrypted data based on the received request.

20. The apparatus of claim 19 , wherein the at least one processor is further configured to execute the instructions to perform additional operations that execute the requested transaction in accordance with the portion of the account data based on the validation of the account data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2022
From: LAM, BRIAN ANDREW; DUNJIC, MILOS; SHPUROV, ALEXEY
To: THE TORONTO-DOMINION BANK
Reel/Frame 061842/0243 →
Continuity (2)
Provisional Application 63108400 · Nov 1, 2020
Related Publication 20220140997A1 · May 5, 2022