IP Library Granted Patent US 11,489,659
Granted Patent B2
US 11,489,659 · App. 17/083,789 · Granted Nov 1, 2022

Multiple data source secure data processing

Inventors: Kai Chung Cheung (Markham, CA); Mathew Rogers (Montreal, CA); Jeremy Taylor (Quebec, CA)
Assignee: Via Science, Inc.
H04L9/008H04L9/0825H04L9/0869H04L9/3066H04L2209/046
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,489,659
App. No.
17/083,789
Granted
Nov 1, 2022
Kind
B2
Abstract

Multiple systems may determine neural-network output data and neural-network parameter data and may transmit the data therebetween to train and run the neural-network model to predict an event given input data. A data-provider system may perform a dot-product operation using encrypted data, and a secure-processing component may decrypt and process that data using an activation function to predict an event. Multiple secure-processing components may be used to perform a multiplication operation using homomorphic encrypted data.

Claims (78)

1. A computer-implemented method comprising:

determining, by a first system, encrypted first input data from first input data and encrypted second input data from second input data, wherein at least one of the encrypted first input data and the encrypted second input data correspond to an event;

determining, by the first system, an encrypted first random number and an encrypted second random number;

determining, by the first system, first data representing a result of a first homomorphic operation using the encrypted first input data and the encrypted first random number;

determining, by the first system, second data representing a result of a second homomorphic operation using the encrypted second input data and the encrypted second random number;

sending, from the first system to a second system, the first data and the second data;

decrypting, by the second system, the first data to determine a first number based at least in part on the encrypted first random number;

decrypting, by the second system, the second data to determine a second number based at least in part on the encrypted second random number;

multiplying, by the second system, the first number and the second number to determine third data;

encrypting, by the second system, the third data to determine encrypted third data;

determining, by the second system using a third homomorphic operation, an encrypted product of the first input data and the second input data based at least in part on the encrypted third data; and

determining a prediction of the event based at least in part on the encrypted product.

2. The computer-implemented method of claim 1 , wherein determining the first data comprises adding, using a homomorphic addition operation, the encrypted first input data and the encrypted first random number; and

wherein determining the second data comprises adding, using the homomorphic addition operation, the encrypted second input data and the encrypted second random number.

3. The computer-implemented method of claim 2 , further comprising:

determining fourth data by adding the encrypted first input data and the encrypted first random number and by negating the encrypted second random number;

determining fifth data by negation of the encrypted first random number and by adding the encrypted second input data and the encrypted second random number; and

determining sixth data corresponding to the encrypted first random number and the encrypted second random number.

4. The computer-implemented method of claim 1 , further comprising:

receiving, by a first secure-processing component of the second system, the first data; and

sending, by the first secure-processing component to a second secure-processing component of the second system, the encrypted third data.

5. The computer-implemented method of claim 4 , further comprising:

receiving, by the second secure-processing component, the encrypted third data; and

sending, by the second secure-processing component to a third system, an indication of the prediction.

6. The computer-implemented method of claim 1 , wherein the encrypted first input data and the encrypted second input data correspond to operands of a dot-product operation.

7. The computer-implemented method of claim 1 , further comprising:

determining that the encrypted first input data corresponds to a first scale;

determining that the encrypted second input data corresponds to a second scale different from the first scale; and

modifying the encrypted first input data to correspond to the second scale.

8. The computer-implemented method of claim 1 , wherein the encrypted first input data and the encrypted second input data correspond to elements of a vector.

9. The computer-implemented method of claim 1 , further comprising:

determining public key data corresponding to a public encryption key; and

determining private key data corresponding to a private encryption key, wherein decrypting the first data corresponds to the private key data and wherein encrypting the third data corresponds to the public key data.

10. The computer-implemented method of claim 9 , wherein determining the encrypted first random number and the encrypted second random number comprises:

determining a first random number and a second random number;

encrypting, using the private key data, the first random number; and

encrypting, using the private key data, the second random number.

11. A system comprising:

at least one processor; and

at least one memory including instructions that, when executed by the at least one processor, cause the system to:

determine, by a first system, encrypted first input data from first input data and encrypted second input data from second input data, wherein at least one of the encrypted first input data and the encrypted second input data correspond to an event;

determine, by the first system, an encrypted first random number and an encrypted second random number;

determine, by the first system, first data representing a result of a first homomorphic operation using the encrypted first input data, data and the encrypted first random number;

determine, by the first system, second data representing a result of a second homomorphic operation using the encrypted second input data and the encrypted second random number;

send, from the first system to a second system, the first data and the second data;

decrypt, by the second system, the first data to determine a first number based at least in part on the encrypted first random number,

decrypt, by the second system, the second data to determine a second number based at least in part on the encrypted second random number;

multiply, by the second system, the first number and the second number to determine third data;

encrypt, by the second system, the third data to determine encrypted third data;

determine, by the second system using a third homomorphic operation, an encrypted product of the first input data and the second input data based at least in part on the encrypted third data; and

determine a prediction of the event based at least in part on the encrypted product.

12. The system of claim 11 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

add, using a homomorphic addition operation, the encrypted first input data and the encrypted first random number; and

add, using the homomorphic addition operation, the encrypted second input data and the encrypted second random number.

13. The system of claim 12 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

determine fourth data by adding the encrypted first input data and the encrypted first random number and by negating the encrypted second random number;

determine fifth data by negation of the encrypted first random number and by adding the encrypted second input data and the encrypted second random number; and

determine sixth data corresponding to the encrypted first random number and the encrypted second random number.

14. The system of claim 11 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

receive, by a first secure-processing component of the second system, the first data; and

send, by the first secure-processing component to a second secure-processing component of the second system, the encrypted third data.

15. The system of claim 14 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

receive, by the second secure-processing component, the encrypted third data; and

send, by the second secure-processing component to a third system, an indication of the prediction.

16. The system of claim 11 , wherein the encrypted first input data and the encrypted second input data correspond to operands of a dot-product operation.

17. The system of claim 11 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

determine that the encrypted first input data corresponds to a first scale;

determine that the encrypted second input data corresponds to a second scale different from the first scale; and

modify the encrypted first input data to correspond to the second scale.

18. The system of claim 11 , wherein the encrypted first input data and the encrypted second input data correspond to elements of a vector.

19. The system of claim 11 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

determine public key data corresponding to a public encryption key; and

determine private key data corresponding to a private encryption key,

wherein decrypting the first data corresponds to the private key data and wherein encrypting the third data corresponds to the public key data.

20. The system of claim 19 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

determine a first random number and a second random number;

encrypt, using the private key data, the first random number; and

encrypt, using the private key data, the second random number.

Assignments (2)
SECURITY INTEREST Recorded Sep 30, 2025
From: VIA SCIENCE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 072422/0488 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2021
From: CHEUNG, KAI CHUNG; ROGERS, MATHEW; TAYLOR, JEREMY
To: VIA SCIENCE, INC.
Reel/Frame 055374/0439 →
Continuity (4)
Provisional Application 62935722 · Nov 15, 2019
Provisional Application 62927908 · Oct 30, 2019
Provisional Application 62927909 · Oct 30, 2019
Related Publication 20210135837A1 · May 6, 2021