IP Library Granted Patent US 11,991,156
Granted Patent B2
US 11,991,156 · App. 17/939,224 · Granted May 21, 2024

Systems and methods for secure averaging of models for federated learning and blind learning using secure multi-party computation

Inventors: Babak Poorebrahim Gilkalaye (Kansas City, MO); Gharib Gharibi (Overland Park, KS); Ravi Patel (Kansas City, MO); Greg Storm (Kansas City, MO); Riddhiman Das (Parkville, MO)
Assignee: TripleBlind, Inc.
H04L63/0428G06F16/13G06F17/16G06F18/2113G06F18/24G06F21/6245G06N3/04G06N3/048G06N3/082G06N3/098G06Q20/401G06Q30/0623H04L9/008H04L9/0625G06Q2220/00H04L2209/46
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,991,156
App. No.
17/939,224
Granted
May 21, 2024
Kind
B2
Abstract

A system and method are disclosed for providing an averaging of models for federated learning and blind learning systems. The method includes selecting, at a server, a generator g and a number p, transmitting, to at least two n client devices, the generator g and the number p, receiving, from each client device i of the at least two client devices, a respective value k i =g ri mod p and transmitting the set of respective values k i to each client device i of the at least two client devices where respective added group of shares are generated on each client device i. The method includes receiving each respective added group of shares from each client device i of the at least two client devices and adding all the respective added group of shares to make a global sum of shares and dividing the global sum of shares by n.

Claims (56)

1. A method comprising:

selecting, at a server, Diffie-Hellman numbers comprising: a generatorg and a number p, wherein the generatorg is a public base prime number and the prime number p is a public prime modulus;

transmitting, to at least two client devices, the generator g and the number p;

generating, at each client device i of the at least two client devices, a random number r, and computing a respective key k i using a formula k=g r i mod p, wherein mod is a modulus and wherein value of i identifies a respective client device of the at least two client devices;

receiving, at the server and from each client device i of the at least two client devices, the respective k i ;

transmitting the respective k i to each client device i of the at least two client devices, wherein:

each client device i of the at least two client devices computes a key k ij in which a client device i computes the key k ij with a client device j of the at least two client devices: k ij =k j r i in which r i is the random number generated by the client device i, wherein value of j identifies a different client device of the at least two client devices; and

each client device i creates n shares of a respective model (d) associated with the client device i of the at least two client devices using a s ha reGeneration function: [d] i1 . . . [d] in =ShareGeneration(d), wherein n is a value of how many client devices are in the at least two client devices;

computing for each client device i of the at least two client devices a client device j share of the n share of the respective model (d) associated with the client device j of the at least two client devices using a formula: k ij : ([d′] ij =[d] ij +seed (k ij ) for all 1≤j≤n and j≠i to yield an encrypted client device j share ([d′] ij );

receiving, at the server, the encrypted client device j share ([d′] ij ) from the client device i of the at least two client devices;

transmitting the encrypted client device j share ([d′] ij ) to each corresponding client device of the at least two client devices, wherein each respective client device decrypts the encrypted client device j share ([d′] ij ) with the k ij : [d] ij =[d′] ij −seed(k ij ) [[k ij ]] to yield decrypted client device j shares and adds all the decrypted client device j shares to generate a respective added group of shares;

receiving, at the server, each respective added group of shares from each client device i of the at least two client devices;

adding, at the server, all the respective added group of shares to yield a global sum of shares and dividing the global sum of shares by n to compute using secure multi-party computation an average of models; and

distributing the average of models to each client device i of the at least two client devices.

2. The method of claim 1 , wherein the generator g comprises a random number.

3. The method of claim 1 , wherein the server acts as a communication channel for a key exchange using a Diffie-Hellman key.

4. The method of claim 1 , wherein the key k ij comprises a Diffie-Hellman key.

5. The method of claim 1 , wherein the ShareGeneration(d) performs an operation comprising generating shares of a model (d) operating on a respective client device i.

6. The method of claim 1 , wherein selecting, at the server, the generator g is performed according to a Diffie-Hellman protocol.

7. A system comprising:

a processor; and

a computer-reada ble storage device storing instructions which, when executed by the processor, cause the processor to perform operations comprising:

selecting, at the system, Diffie-Hellman numbers comprising: a generator g and a number p, wherein the generatorg is a public base prime number and the prime number p is a public prime modulus;

transmitting, to at least two client devices, the generator g and the number p;

generating, at each client device i of the at least two client devices, a random number r i and computing a respective key k i using a formula k=g r i mod p, wherein mod is a modulus and wherein value of i identifies a respective client device of the at least two client devices;

receiving, from each client device i of the at least two client devices, the respective k i ;

transmitting the respective k i to each client device i of the at least two client devices, wherein:

each client device i of the at least two client devices computes a key k ij in which a client device i computes the key k ij with a client device j of the at least two client devices: k ij =k j r i in which r i is the random number generated by the client device i, wherein value of j identifies a different client device of the at least two client devices; and

each client device i creates n shares of a respective model (d) associated with the client device i of the at least two client devices using a shareGeneration function: [d] i1 . . . [d] in : =ShareGeneration(d), wherein n is a value of how many client devices are in the at least two client devices;

computing for each client device i of the at least two client devices a client device j share of the n share of the respective model (d) associated with the client device j of the at least two client devices using a formula: k ij : ([d′] ij =[d] ij +seed (k ij ) for all 1≤j≤n and j≠i to yield an encrypted client device j share ([d′] ij );

receiving, at the system, the encrypted client device j share ([d′] ij ) from the client device i of the at least two client devices;

transmitting the encrypted client device j share ([d′] ij ) to each corresponding client device of the at least two client devices, wherein each respective client device decrypts the encrypted client device j share ([d′] ij ) with the k ij : [d] ij =[d′] ij −seed(k ij ) [[k ij ]] to yield decrypted client device j shares and adds all the decrypted client device j shares to generate a respective added group of shares;

receiving, at the system, each respective added group of shares from each client device i of the at least two client devices;

adding all the respective added group of shares to yield a global sum of shares and dividing the global sum of shares by n to compute using secure multi-party computation an average of models; and

distributing the average of models to each client device i of the at least two client devices.

8. The system of claim 7 , wherein the generator g comprises a random number.

9. The system of claim 7 , wherein the server acts as a communication channel for a key exchange using a Diffie-Hellman key.

10. The system of claim 7 , wherein the key k ij comprises a Diffie-Hellman key.

11. The system of claim 7 , wherein the ShareGeneration(d) performs an operation comprising generating shares of a model (d) operating on a respective client device i.

12. The system of claim 7 , wherein selecting, at the server, the generator g is performed according to a Diffie-Hellman protocol.

13. A method comprising:

receiving, from a server and at a client device i of a group of client devices, Diffie-Hellman numbers comprising: a generator g and a number p, wherein the generator g is a public base prime number and the prime number p is a public prime modulus;

generating, at each client device i of the group of client devices, a random number r i and computing a respective key k i using a formula k=gr r i mod p, wherein mod is a modulus and wherein value of i identifies a respective client device of the group of client devices;

transmitting, to the server, the respective k i ;

receiving, from the server, the respective k i ;

computing a key k ij in which the client device i computes the key k ij with a client device j of the group of client device: k ij =k j r i in which r i is a random number generated by the client device i, wherein value of j identifies a different client device of the group of client devices;

creating, by each client device i, n shares of a respective model (d) associated with the client device i of the at least two client devices using a shareGeneration function: [d] i1 . . . [d] in :=ShareGeneration(d), wherein n is a value of how many client devices are in the group of client devices; and

encrypting a client device j share of the n shares of the respective model (d) using the key k ij ; ([d′] ij =[d] ij +seed(k ij )) for all 1≤j≤n and j≠i to yield an encrypted client device j share ([d′] ij );

transmitting, to the server, the encrypted client device j share ([d′] ij ) from the client device i of the group of client devices;

receiving, at the client device i, the encrypted client device j share ([d′] ij ) corresponding to the client device i of the group of client devices, wherein each respective client device of the group of client devices decrypts the encrypted client device j share ([d′] ij ) with the k ij : [d] ij =[d′] ij −seed(k ij ) to yield decrypted client device j shares and adds all the decrypted client device j shares to generate a respective added group of shares; and

transmitting, to the server, the respective added group of shares from the client device i, wherein the server adds all the respective added group of shares to yield a global sum of shares and divides the global sum of shares by n to compute using secure multi-party computation an average of models and distributes the average of models to each client device i of the group of client devices.

14. The method of claim 13 , further comprising receiving the average of models at the client device i.

15. The method of claim 13 , wherein the generator g comprises a random number.

16. The method of claim 13 , wherein the key k ij comprises a Diffie-Hellman key.

17. The method of claim 13 , wherein the ShareGeneration(d) performs an operation comprising generating shares of a model (d) operating on a respective client device i.

18. The method of claim 12 , wherein the server selects the generator g according to a Diffie-Hellman protocol.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2024
From: TRIPLEBLIND HOLDINGS, INC.
To: SELFIIE CORPORATION
Reel/Frame 068907/0556 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE SHOULD BE CORRECTED FROM TRIPLEBLIND HOLDING COMPANY TO TRIPLEBLIND HOLDINGS, INC. PREVIOUSLY RECORDED AT REEL: 67568 FRAME: 689. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 24, 2024
From: TRIPLEBLIND, INC.
To: TRIPLEBLIND HOLDINGS, INC.
Reel/Frame 068722/0100 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2024
From: TRIPLEBLIND, INC.
To: TRIPLEBLIND HOLDING COMPANY
Reel/Frame 067568/0689 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2023
From: POOREBRAHIM GILKALAYE, BABAK; GHARIBI, GHARIB; PATEL, RAVI; STORM, GREG; DAS, RIDDHIMAN
To: TRIPLEBLIND, INC.
Reel/Frame 065919/0418 →
Continuity (12)
Continuation 17180475 · Feb 19, 2021
Continuation In Part 16828085 · Mar 24, 2020
Continuation In Part 16828216 · Mar 24, 2020
Continuation In Part 17176530 · Feb 16, 2021
Continuation 16828354 · Mar 24, 2020
Continuation In Part 16828420 · Mar 24, 2020
Continuation 17743887 · May 13, 2022
Continuation 17742808 · May 12, 2022
Provisional Application 63241255 · Sep 7, 2021
Provisional Application 63020930 · May 6, 2020
Provisional Application 62948105 · Dec 13, 2019
Related Publication 20230006977A1 · Jan 5, 2023