IP Library Granted Patent US 11,301,571
Granted Patent B2
US 11,301,571 · App. 17/329,677 · Granted Apr 12, 2022

Neural-network training using secure data processing

Inventors: Jeremy Taylor (Montreal, CA); Jesús Alejandro Cárdenes Cabré (Montreal, CA); Kai Chung Cheung (Markham, CA); John Christopher Muddle (Montreal, CA); Colin Gounden (Cambridge, MA)
Assignee: VIA SCIENCE, INC.
G06F21/602G06F7/588G06F11/3466G06F21/6245G06N3/0445G06N3/0454G06N3/0472G06N3/0481G06N3/084G06N3/10G06N20/10G06Q20/3823G06Q20/3829H04L9/008H04L9/3066G06F7/58
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,301,571
App. No.
17/329,677
Granted
Apr 12, 2022
Kind
B2
Abstract

Computer instructions corresponding to a neural-network model are received and encrypted using an encryption technique. Training data encrypted using the encryption technique is received from a data source. The model is trained using the training data using, for example, a gradient descent technique. If the model performs in accordance with a quality metric, it is sent to a device of a model user.

Claims (88)

1. A computer-implemented method comprising:

receiving, from a model provider, computer instructions corresponding to a neural-network model, wherein an output of the neural-network model is based at least in part on a set of weights of the model;

determining encrypted computer instructions by encrypting, using a public key and a generator point, at least a portion of the computer instructions;

sending, to a first data source and a second data source, the encrypted computer instructions;

receiving, from the first data source, first encrypted change data corresponding to the set of weights and the encrypted computer instructions, the first encrypted change data being encrypted using the public key and the generator point;

receiving, from the second data source, second encrypted change data corresponding to the set of weights and the encrypted computer instructions, the second encrypted change data being encrypted using the public key and the generator point;

determining encrypted summation change data by summing the first encrypted change data and the second encrypted change data;

determining that a metric associated with the encrypted summation change data satisfies a threshold; and

determining decrypted summation change data by decrypting the encrypted summation change data.

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

determining, using a filter component, that the first encrypted change data is greater than a second threshold.

3. The computer-implemented method of claim 1 , wherein determining the encrypted summation change data comprises using a multiplication operator on the first encrypted change data and the second encrypted change data.

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

determining, using a gradient descent algorithm, first change data corresponding the neural-network model;

encrypting the first change data, using the public key and the generator point, to determine the first encrypted change data.

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

determining output data based at least in part on operating the encrypted computer instructions using the decrypted summation change data;

determining a performance metric based at least in part on comparing the output data to an expected output;

determining that the performance metric is greater than a quality threshold; and

based at least in part on determining that the performance metric is greater than the quality threshold, sending, to a device associated with a model user, the decrypted change data.

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

generating a random number, wherein determining an output of the neural-network model is based at least in part on the random number; and

based at least in part on determining that the performance metric is greater than the quality threshold, sending, to a device associated with a model user, the random number.

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

determining that unencrypted input data corresponds to a fixed-point value;

determining a number of decimal places of the fixed-point value;

determining a block size corresponding to a size of a portion of the unencrypted input data;

sending, to the first data source and the second data source, the number of decimal places; and

sending, to the first data source and the second data source, the block size.

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

determining, based at least in part on the block size, a plurality of blocks of data corresponding to the decrypted summation change data;

generating second summation data based at least in part on the plurality of blocks of data; and

generating fixed-point summation data based at least in part on the second summation data and the number of decimal places.

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

receiving, from the first data source, first encrypted noise data, the first encrypted noise data corresponding to a first random number represented in the first encrypted change data;

receiving, from the first data source, second encrypted noise data, the second encrypted noise data corresponding to a second random number represented in the second encrypted change data; and

generating second summation data by decrypting, based at least in part on the first encrypted noise data and the second encrypted noise data, the encrypted summation change data.

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

receiving, at the first data source, the public key and the generator point;

generating, by the first data source, a random number;

generating, by the first data source, a first integer based at least in part on the random number and the generator point; and

generating, by the first data source, a second integer based at least in part on unencrypted input data and the public key,

wherein the first encrypted change data comprises the first integer and the second integer.

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:

receive, from a model provider, computer instructions corresponding to a neural-network model, wherein an output of the neural-network model is based at least in part on a set of weights of the model;

determine encrypted computer instructions by encrypting, using a public key of a public key/private key pair and a generator point, at least a portion of the computer instructions;

send, to a first data source and a second data source, the encrypted computer instructions;

receive, from the first data source, first encrypted change data corresponding to the set of weights and the encrypted computer instructions, the first encrypted change data being encrypted using the public key and the generator point;

receive, from the second data source, second encrypted change data corresponding to the set of weights and the encrypted computer instructions, the second encrypted change data being encrypted using the public key and the generator point;

determine encrypted summation change data by summing the first encrypted change data and the second encrypted change data;

determine that a metric associated with the encrypted summation change data satisfies a threshold; and

determine decrypted summation change data by decrypting the encrypted summation change data using a private key of the public key/private key pair and the generator point.

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

determine, using a filter component, that the first encrypted change data is greater than a second threshold.

13. The system of claim 11 , wherein determining the encrypted summation change data comprises using a multiplication operator on the first encrypted change data and the second encrypted change data.

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

determine, using a gradient descent algorithm, first change data corresponding the neural-network model;

encrypt the first change data, using the public key and the generator point, to determine the first encrypted change data.

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

determine output data based at least in part on operating the encrypted computer instructions using the decrypted summation change data;

determine a performance metric based at least in part on comparing the output data to an expected output;

determine that the performance metric is greater than a quality threshold; and

based at least in part on determining that the performance metric is greater than the quality threshold, send, to a device associated with a model user, the decrypted summation change data.

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

generate a random number, wherein determining an output of the neural-network model is based at least in part on the random number; and

based at least in part on determining that the performance metric is greater than the quality threshold, send, to a device associated with a model user, the random number.

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

determine that unencrypted input data corresponds to a fixed-point value;

determine a number of decimal places of the fixed-point value;

determine a block size corresponding to a size of a portion of the unencrypted input data;

send, to the first data source and the second data source, the number of decimal places; and

send, to the first data source and the second data source, the block size.

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

determine, based at least in part on the block size, a plurality of blocks of data corresponding to the encrypted summation change data;

generate second summation data based at least in part on the plurality of blocks of data; and

generate fixed-point summation data based at least in part on the second summation data and the number of decimal places.

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

receive, from the first data source, first encrypted noise data, the first encrypted noise data corresponding to a first random number represented in the first encrypted change data;

receive, from the first data source, second encrypted noise data, the second encrypted noise data corresponding to a second random number represented in the second encrypted change data; and

generate second summation data by decrypting, based at least in part on the first encrypted noise data and the second encrypted noise data, the encrypted summation change data.

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

receive, at the first data source, the public key and the generator point;

generate, by the first data source, a random number;

generate, by the first data source, a first integer based at least in part on the random number and the generator point; and

generate, by the first data source, a second integer based at least in part on unencrypted input data and the public key,

wherein the first encrypted change data comprises the first integer and the second integer.

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 May 25, 2021
From: TAYLOR, JEREMY; CÁRDENES CABRÉ, JESÚS ALEJANDRO; CHEUNG, KAI CHUNG; MUDDLE, JOHN CHRISTOPHER; GOUNDEN, COLIN
To: VIA SCIENCE, INC.
Reel/Frame 056344/0744 →
Continuity (3)
Continuation 16361982 · Mar 22, 2019
Provisional Application 62646525 · Mar 22, 2018
Related Publication 20210279342A1 · Sep 9, 2021