US 11,991,156 B2
Systems and methods for secure averaging of models for federated learning and blind learning using secure multi-party computation
Babak Poorebrahim Gilkalaye, Kansas City, MO (US); Gharib Gharibi, Overland Park, KS (US); Ravi Patel, Kansas City, MO (US); Greg Storm, Kansas City, MO (US); and Riddhiman Das, Parkville, MO (US)
Assigned to TripleBlind, Inc., Kansas City, MO (US)
Filed by TripleBlind, Inc., Kansas City, MO (US)
Filed on Sep. 7, 2022, as Appl. No. 17/939,224.
Application 17/939,224 is a continuation of application No. 17/180,475, filed on Feb. 19, 2021.
Application 17/180,475 is a continuation in part of application No. 16/828,085, filed on Mar. 24, 2020, granted, now 11,582,203.
Application 16/828,085 is a continuation in part of application No. 16/828,216, filed on Mar. 24, 2020.
Application 16/828,216 is a continuation in part of application No. 17/176,530, filed on Feb. 16, 2021.
Application 17/176,530 is a continuation of application No. 16/828,354, filed on Mar. 24, 2020, granted, now 10,924,460, issued on Feb. 16, 2021.
Application 16/828,354 is a continuation in part of application No. 16/828,420, filed on Mar. 24, 2020, granted, now 11,363,002.
Application 16/828,420 is a continuation of application No. 17/743,887, filed on May 13, 2022, granted, now 11,531,782.
Application 17/743,887 is a continuation of application No. 17/742,808, filed on May 12, 2022, granted, now 11,599,671.
Claims priority of provisional application 63/241,255, filed on Sep. 7, 2021.
Claims priority of provisional application 63/020,930, filed on May 6, 2020.
Claims priority of provisional application 62/948,105, filed on Dec. 13, 2019.
Prior Publication US 2023/0006977 A1, Jan. 5, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 9/40 (2022.01); G06F 16/13 (2019.01); G06F 17/16 (2006.01); G06F 18/2113 (2023.01); G06F 18/24 (2023.01); G06F 21/62 (2013.01); G06N 3/04 (2023.01); G06N 3/048 (2023.01); G06N 3/082 (2023.01); G06N 3/098 (2023.01); G06Q 20/40 (2012.01); G06Q 30/0601 (2023.01); H04L 9/00 (2022.01); H04L 9/06 (2006.01)
CPC H04L 63/0428 (2013.01) [G06F 16/13 (2019.01); G06F 17/16 (2013.01); G06F 18/2113 (2023.01); G06F 18/24 (2023.01); G06F 21/6245 (2013.01); G06N 3/04 (2013.01); G06N 3/048 (2023.01); G06N 3/082 (2013.01); G06N 3/098 (2023.01); G06Q 20/401 (2013.01); G06Q 30/0623 (2013.01); H04L 9/008 (2013.01); H04L 9/0625 (2013.01); G06Q 2220/00 (2013.01); H04L 2209/46 (2013.01)] 18 Claims
OG exemplary drawing
 
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 ki using a formula k=gri 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 ki;
transmitting the respective ki 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 kij in which a client device i computes the key kij with a client device j of the at least two client devices: kij=kjri in which ri 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: kij: ([d′]ij=[d]ij+seed (kij) 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 kij: [d]ij=[d′]ij−seed(kij) [[kij]] 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.