IP Library › Granted Patent US 11,455,406
Granted Patent B2
US 11,455,406 · App. 17/121,282 · Granted Sep 27, 2022

Delegated private set intersection, and applications thereof

Inventors: Aurélien Renaud François Nicolas (Berlin, DE); Daniel Messod Benarroch Guenun (Tel Aviv, IL); Arbel Deutsch Peled (Tel Aviv, IL); Ori Wallenstein (Raanana, IL)
Assignee: QED-it Systems Ltd.
G06F21/602H04L9/008H04L9/0643H04L9/3221H04L63/0281H04L63/0464H04L9/50
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,455,406
App. No.
17/121,282
Granted
Sep 27, 2022
Kind
B2
Abstract

Embodiments disclosed herein describe computing private set intersection (PSI) between various parties using delegation to other devices and in one round of interaction (request and response). The various parties involved and their associated computing devices are referred to herein as participants. The protocol is forward-secure and completely hides the data of participants from an eavesdropper. Because the protocol only uses a single round of interaction, it is more efficient and does not require each participant to have servers that remain online continuously.

Claims (41)

1. A system for determining an intersection between two private data sets, the system comprising:

one or more processors; and

at least one memory including at least one non-transitory computer-readable medium storing a software application executable by the one or more processors, wherein the software application includes:

a proxy module configured to receive a first value from a first participant and a second value from a second participant, the first value representing a first record from a first private data set and the second value representing a second record from a second private data set;

a plurality of delegate modules that together are configured to calculate a first keyed hash value of the first value using a virtual private key and to calculate a second keyed hash value of the second value using the virtual private key, wherein each delegate module has a partial key private to the respective delegate modules and wherein the virtual private key is a combination of the partial keys private to each of the delegate modules,

wherein each delegate module is configured (i) to receive, at a respective delegate module of the plurality of delegate modules, a first intermediate value based on the first value and a second intermediate value based on the second value and (ii) to apply, to the first and second intermediate values received, a partial key private to the respective delegate module to determine next first and second intermediate values such that the next first and second intermediate values are used to determine the first and second keyed hash values; and

a matcher module configured to compare the first and second keyed hash values to determine whether the first and second values match.

2. The system of claim 1 , wherein the matcher module is a centralized, non-trusted entity.

3. The system of claim 1 , wherein the plurality of delegate modules are configured to generate a zero knowledge proof proving that the first and second keyed hash values were correctly calculated.

4. The system of claim 3 , wherein the proxy module is configured to validate the zero-knowledge proof.

5. The system of claim 1 , wherein the proxy module is configured to receive a first private data set comprising the first value and a second private data set comprising the second value, wherein the plurality of delegate modules calculate a key hash value for each value in the first and second private data sets, and wherein the matcher module compares the calculated key hash values to determine which values in the first and second private data sets match.

6. The system of claim 1 , wherein the first and second values are normalized into a common format.

7. The system of claim 1 , wherein the applying (ii) comprises applying a collision resistant hash function.

8. The system of claim 1 , wherein the first record has a first identifier and the second record has a second identifier, and wherein the matcher module is configured to, when the first and second values are determined to match, select the first identifier to return to the first participant and the second identifier to return to the second participant.

9. A computer-implemented method for determining an intersection between two private data sets, comprising:

(a) receiving a first value from a first participant and a second value from a second participant, the first value representing a first record from a first private data set and the second value representing a second record from a second private data set;

(b) calculating, using a plurality of delegate modules, a first keyed hash value of the first value using a virtual private key and to calculate a second keyed hash value of the second value using the virtual private key, wherein each delegate module has a partial key private to the respective delegate modules of the plurality of delegate modules and wherein the virtual private key is a combination of the partial keys private to each of the plurality of delegate modules, wherein the calculating (b) comprises, repeatedly:

(i) receiving, at a respective delegate module of the plurality of delegate modules, a first intermediate value based on the first value and a second intermediate value based on the second value,

(ii) applying, to the first and second intermediate values received, a partial key private to the respective delegate module in (i) to determine next first and second intermediate values such that the next first and second intermediate values are used to determine the first and second keyed hash values; and

(c) comparing the first and second keyed hash values to determine whether the first and second values match.

10. The method of claim 9 , wherein comparing (c) is conducted by a centralized, non-trusted entity.

11. The method of claim 9 , further comprising generating a zero knowledge proof proving that the first and second keyed hash values were correctly calculated.

12. The method of claim 11 , further comprising validating the zero knowledge proof.

13. The method of claim 9 , wherein the receiving (a) comprises receiving the first private data set comprising the first value and the second private data set comprising the second value, wherein the calculating (b) comprises calculating a key hash value for each value in the first and second private data set, and wherein a matcher module compares the calculated key hash values to determine which values in the first and second private data sets match.

14. The method of claim 9 , wherein the first and second values are normalized into a common format.

15. The method of claim 9 , wherein the applying (ii) comprises applying a collision resistant hash function.

16. The method of claim 9 , wherein the first record has a first identifier and the second record has a second identifier, and further comprising, when the first and second values are determined to match:

returning the first identifier to the first participant; and

returning the second identifier to return to the second participant.

17. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations for determining an intersection between two private data sets, the operations comprising:

(a) receiving a first value from a first participant and a second value from a second participant, the first value representing a first record from a first private data set and the second value representing a second record from a second private data set;

(b) calculating, using a plurality of delegate modules, a first keyed hash value of the first value using a virtual private key and a second keyed hash value of the second value using the virtual private key, wherein each delegate module has a partial key private to respective delegate modules of the plurality of delegate modules and wherein the virtual private key is a combination of the partial keys private to each of the delegate modules, wherein the calculating (b) comprises, repeatedly:

(i) receiving, at a respective delegate module of the plurality of delegate modules, a first intermediate value based on the first value and a second intermediate value based on the second value,

(ii) applying, to the first and second intermediate values received, a partial key private to the respective delegate module in (i) to determine next first and second intermediate values such that the next first and second intermediate values are used to determine the first and second keyed hash values; and

(c) comparing the first and second keyed hash values to determine whether the first and second values match.

18. The device of claim 17 , wherein the comparing (c) is conducted by a centralized, non-trusted entity.

19. The device of claim 17 , the operations further comprising generating a zero knowledge proof proving that the first and second keyed hash values were correctly calculated.

20. The device of claim 19 , the operations further comprising validating the zero knowledge proof.

21. The device of claim 17 , wherein the receiving (a) comprises a first private data set comprising the first value and a second private data set comprising the second value, wherein the calculating (b) comprises calculating a key hash value for each value in the first and second private data set, and wherein a matcher module compares the calculated key hash values to determine which values in the first and second private data sets match.

22. The device of claim 17 , wherein the first and second values are normalized into a common format.

23. The device of claim 17 , wherein the applying (ii) comprises applying a collision resistant hash function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2020
From: NICOLAS, AURELIEN RENAUD FRANCOIS; BENARROCH GUENUN, DANIEL MESSOD; PELED, ARBEL DEUTSCH; WALLENSTEIN, ORI
To: QED-IT SYSTEMS LTD.
Reel/Frame 054671/0527 →
Continuity (2)
Continuation 16780671 · Feb 3, 2020
Related Publication 20210240841A1 · Aug 5, 2021