IP Library Granted Patent US 11,531,782
Granted Patent B1
US 11,531,782 · App. 17/743,887 · Granted Dec 20, 2022

Systems and methods for finding a value in a combined list of private values

Inventors: Babak Poorebrahim Gilkalaye (Kansas City, MO); Riddhiman Das (Parkville, MO); Gharib Gharibi (Overland Park, MO)
Assignee: TripleBlind, Inc.
G06F21/6245
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,531,782
App. No.
17/743,887
Granted
Dec 20, 2022
Kind
B1
Abstract

A system and method are disclosed for each party of a group of m parties to be able to learn an Nth smallest value in a combined list of the values in which each party has separate lists of values. A method includes creating, by each party of a group of m parties, m lists of additive shares associated with each party's respective list of data, distributing, from each party to each other party in the group of m parties, m−1 of the lists of additive shares to yield a respective combined list of additive shares W i obtained by each party of the m parties, receiving from a trusted party a list of additive shares V i associated with a hot-code vector V, computing, in a shared space by each party, a respective R i value using a secure multiplication protocol and comparing, in the shared space, by each party and using secure multi-party comparison protocol, the respective R i to all elements in the respective combined list of additive shares W i to yield a total number P i of values in W i that are smaller than R i . The value P i is used to either end the method or loop back for further processing with new values of W i and in some cases a new value of N.

Claims (44)

1. A method of enabling separate parties to compute securely an N th smallest value in a combined list of values from m number of parties W, the method comprising:

(1) creating, by each party of the m parties, m additive shares for each value in a respective list of values for each party of the m parties to yield m lists of additive shares for each party of the m parties;

(2) distributing, from each party of the m parties, m−1 lists of additive shares from the m lists of additive shares for each party by distributing one of the m−1 lists of additive shares to each other party of the m parties to yield a respective combined list of shares W i having S values for each of the m parties, wherein S equals the total number of values in the combined list of values from the m parties;

(3) receiving, from a trusted party and by each of the m parties, a respective list of additive shares V i associated with a hot-code vector V comprising a value of 1 randomly assigned a position in V and the rest of the values being 0;

(4) computing, by each party of the m parties and via a SecureMult protocol, R i =Sum(SecureMult(W i ,V i ,);

(5) applying a comparison protocol to compare, by each party of the m parties, R against all elements in W, such that each party learns a total number of values in W that are smaller than R as a value in shared space P i , wherein P i values add up to P and wherein a position or R i in W i is equal to P i +1;

(6) when N=P+1, returning, from each party, a value R i and concluding the method;

(7) when N>P+1, removing, by each party, all numbers smaller than and R i , and R i as well, from each party's W i and setting N=N−(P+1) to yield a new W i and new N;

(8) when N<P+1, removing, by each party, all numbers bigger than R i , and R i as well, from W i to yield a new W i ; and

(9) returning to step (3).

2. The method of claim 1 , wherein the hot-code vector V has a number of values equal to S.

3. The method of claim 1 , wherein the comparison protocol comprises a SecureCompare protocol.

4. The method of claim 1 , wherein the method loops from step (9) to step (3) until N=P i +1.

5. The method of claim 1 , wherein each party does not know what numbers are being compared.

6. The method of claim 1 , wherein an owner of a value in the combined list only learns that the value in the combined list W is smaller or bigger than a number the owner of the value does not know from the combined list W.

7. The method of claim 3 , wherein the SecureMult protocol and the SecureCompare protocol operate on a Ring R set equipped with two binary operations.

8. The method of claim 7 , wherein the Ring R=[Z] 2 64.

9. The method of claim 3 , wherein the SecureMult protocol and the SecureCompare protocol comprise multi-party computation primitives enabling each party to perform multiplication and comparison securely.

10. A system for enabling separate parties to compute securely an N th smallest value in a combined list of values from m number of parties W, the system being operated by one of the parties of the m parties, the system comprising:

a processor; and

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

(1) creating m additive shares for each value in a respective list of values for each party of the m parties to yield m lists of additive shares for each party of the m parties;

(2) distributing m−1 lists of additive shares from the m lists of additive shares for each party by distributing one of the m−1 lists of additive shares to each other party of the m parties to yield a respective combined list of shares W i having S values for each of the m parties, wherein S equals the total number of values in the combined list of values from the m parties;

(3) receiving, from a trusted party, a respective list of additive shares V i associated with a hot-code vector V comprising a value of 1 randomly assigned a position in V and the rest of the values being 0;

(4) computing, via a SecureMult protocol, R i =Sum(SecureMult(W i ,V i ,);

(5) applying a comparison protocol to compare, by each party of the m parties, R against all elements in W, to learn a total number of values in W that are smaller than R as a value in shared space P i , wherein a position of R i in W i is equal to P i +1 and wherein values of P i add to a value P;

(6) when N=P+1, returning a value R i and concluding the operations;

(7) when N>P+1, removing all numbers smaller than R i , and R i as well, from each party's W i and setting N=N−(P+1) to yield a new W i and new N;

(8) when N<P+1, removing all numbers bigger than R i , and R i as well, from W i to yield a new W i ; and

(9) returning to step (3).

11. The system of claim 10 , wherein the hot-code vector V has a number of values equal to S.

12. The system of claim 10 , wherein the comparison protocol comprises a SecureCompare protocol.

13. The system of claim 10 , wherein the method loops from step (9) to step (3) until N=P i + 1 .

14. The system of claim 10 , wherein each party does not know what numbers are being compared.

15. The system of claim 10 , wherein an owner of a value in the combined list only learns that the value in the combined list W is smaller or bigger than a number the owner of the value does not know from the combined list W.

16. The system of claim 12 , wherein the SecureMult protocol and the SecureCompare protocol operate on a Ring R set equipped with two binary operations.

17. The system of claim 16 , wherein the Ring R=[Z] 2 64.

18. The system of claim 12 , wherein the SecureMult protocol and the SecureCompare protocol comprise multi-party computation primitives enabling each party to perform multiplication and comparison securely.

19. A method of determining an Nth smallest value in a list of combined values, the method comprising:

creating, by each party of a group of m parties, m lists of additive shares associated with each party's respective list of data;

distributing, from each party to each other party in the group of m parties, m−1 of the lists of additive shares to yield a respective combined list of additive shares W i obtained by each party of the m parties; receiving from a trusted party a list of additive shares V i associated with a hot-code vector V;

computing, in a shared space by each party, a respective R i value using a secure multiplication protocol;

applying, in the shared space, by each party a secure multi-party comparison protocol to R i and W i , to yield a total number in shared space of P i of values in W i that are smaller than R i , wherein adding P i values equals P; and

using P to either (1) return R i when N=P+1 and end the method; (2) remove all numbers smaller and R i , and R i as well, from Wi and set a new value of N and return to an earlier step in the method until N=P+1; or (3) remove all numbers bigger than R i , and R i as well, from W i and return to an earlier step in the method until N=P+1.

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 Nov 15, 2022
From: POOREBRAHIM GILKALAYE, BABAK; DAS, RIDDHIMAN; GHARIBI, GHARIB
To: TRIPLEBLIND, INC.
Reel/Frame 061769/0208 →