IP Library Granted Patent US 12,470,397
Granted Patent B2
US 12,470,397 · App. 18/069,017 · Granted Nov 11, 2025

Secure computation of shared data intersections

Inventors: Joern Kussmaul (Motzingen, DE); Anselme Tueno (Ettlingen, DE)
Assignee: SAP SE
H04L9/3239G06F16/2255H04L9/008
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 12,470,397
App. No.
18/069,017
Granted
Nov 11, 2025
Kind
B2
Abstract

Mechanisms are disclosed for providing an extended private set intersection nested cuckoo hashing scheme for secure computation of private set intersections. A set of outer hash functions and a set of inner hash functions are exchanged between a server and a client. A server outer hash table is populated using an outer hash function in the set of outer hash functions and the set of server items to create a set of server bins. For each server bin in the server outer hash table, server items to be inserted are iteratively placed into a server inner cuckoo hash table using a plurality of inner hash functions corresponding to each server bin, based on determining that a first corresponding hash table position is free.

Claims (40)

1 . One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor, perform a method for providing an extended private set intersection nested cuckoo hashing scheme for secure computation of private set intersections, the method comprising:

exchanging, between a server and a client, a set of outer hash functions and a set of inner hash functions,

wherein the set of outer hash functions maps a set of client items and a set of server items to a set of client outer indices and server outer indices, respectively, and wherein the set of inner hash functions maps a set of client items and a set of server items to a set of client inner indices and server inner indices, respectively;

creating a server outer hash table using an outer hash function in the set of hash outer functions and the set of server items to create a set of server bins; and

for each server bin in the server outer hash table, iteratively placing server items to be inserted into a server inner cuckoo hash table using a plurality of inner hash functions corresponding to each server bin, based on determining that a first corresponding hash table position is free,

wherein each outer index in the set of client outer indices uniquely identifies a location within a client cuckoo hash table and wherein client outer index in the set of client outer indices uniquely identifies a cuckoo hash table within a server nested cuckoo hash table, the server nested cuckoo hash table comprising the server outer hash table and a set of server inner cuckoo hash tables.

2 . The non-transitory computer-readable media of claim 1 , wherein the method further comprises:

based on determining that a second corresponding hash table position is not free, swapping contents of the second corresponding hash table position with a server item to be inserted; and

based on determining that a configurable number of iterations has been exceeded, the configurable number of iterations associated with the iteratively placing server items, inserting the contents of the second corresponding hash table position into a stash list.

3 . The non-transitory computer-readable media of claim 1 , wherein exchanging the set of outer hash functions and the set of inner hash functions is carried out by the server generating the set of outer hash functions and the set of inner hash functions and transmitting the set of outer hash functions and the set of inner hash functions to the client.

4 . The non-transitory computer-readable media of claim 1 , wherein the server outer hash table is a simple hash table.

5 . The non-transitory computer-readable media of claim 1 , wherein the server iteratively receives encoded information regarding the set of client items and causes the client to generate a set of elements the client has in common with the server without the server gaining information regarding the set of client items.

6 . The non-transitory computer-readable media of claim 5 , wherein the encoded information regarding the set of client items is provided in connection with one of: additive homomorphic encryption and masked oblivious transfer in connection with a garbled circuit.

7 . A method for providing an extended private set intersection nested cuckoo hashing scheme for secure computation of private set intersections, the method comprising:

exchanging, between a server and a client, a set of outer hash functions and a set of inner hash functions,

wherein the set of outer hash functions maps a set of client items and a set of server items to a set of client outer indices and server outer indices, respectively, and wherein the set of inner hash functions maps a set of client items and a set of server items to a set of client inner indices and server inner indices, respectively;

creating a server outer hash table using an outer hash function in the set of outer hash functions and the set of server items to create a set of server bins; and

for each server bin in the server outer hash table, iteratively placing server items to be inserted into a server inner cuckoo hash table using a plurality of inner hash functions corresponding to each server bin, based on determining that a first corresponding hash table position is free,

wherein each outer index in the set of client outer indices uniquely identifies a location within a client cuckoo hash table and wherein client outer index in the set of client outer indices uniquely identifies a cuckoo hash table within a server nested cuckoo hash table, the server nested cuckoo hash table comprising the server outer hash table and a set of server inner cuckoo hash tables.

8 . The method of claim 7 , further comprising:

based on determining that a second corresponding hash table position is not free, swapping contents of the second corresponding hash table position with a server item to be inserted; and

based on determining that a configurable number of iterations has been exceeded, the configurable number of iterations associated with the iteratively placing server items, inserting the contents of the second corresponding hash table position into a stash list.

9 . The method of claim 8 , wherein exchanging the set of outer hash functions and the set of inner hash functions is carried out by the server generating the set of outer hash functions and the set of inner hash functions and transmitting the set of outer hash functions and the set of inner hash functions to the client.

10 . The method of claim 7 , wherein the server outer hash table is a simple hash table.

11 . The method of claim 9 , wherein the server iteratively receives encoded information regarding the set of client items and causes the client to generate a set of elements the client has in common with the server without the server gaining information regarding the set of client items.

12 . The method of claim 11 , wherein the encoded information regarding the set of client items is provided in connection with one of: additive homomorphic encryption and masked oblivious transfer in connection with a garbled circuit.

13 . A system for providing an extended private set intersection nested cuckoo hashing scheme for secure computation of private set intersections, the system comprising:

at least one processor;

and at least one non-transitory memory storing computer executable instructions that when executed by the at least one processor cause the system to carry out actions comprising:

exchanging, between a server and a client, a set of outer hash functions and a set of inner hash functions,

wherein the set of outer hash functions maps a set of client items and a set of server items to a set of client outer indices and server outer indices, respectively, and wherein the set of inner hash functions maps a set of client items and a set of server items to a set of client inner indices and server inner indices, respectively;

creating a server outer hash table using an outer hash function in the set of outer hash functions and the set of server items to create a set of server bins; and

for each server bin in the server outer hash table, iteratively placing server items to be inserted into a server inner cuckoo hash table using a plurality of inner hash functions corresponding to each server bin, based on determining that a first corresponding hash table position is free,

wherein each outer index in the set of client outer indices uniquely identifies a location within a client cuckoo hash table and wherein client outer index in the set of client outer indices uniquely identifies a cuckoo hash table within a server nested cuckoo hash table, the server nested cuckoo hash table comprising the server outer hash table and a set of server inner cuckoo hash tables.

14 . The system of claim 13 , wherein the actions further comprise:

based on determining that a second corresponding hash table position is not free, swapping contents of the second corresponding hash table position with a server item to be inserted; and

based on determining that a configurable number of iterations has been exceeded, the configurable number of iterations associated with the iteratively placing server items, inserting the contents of the second corresponding hash table position into a stash list.

15 . The system of claim 13 , wherein exchanging the set of outer hash functions and the set of inner hash functions is carried out by the server generating the set of outer hash functions and the set of inner hash functions and transmitting the set of outer hash functions and the set of inner hash functions to the client.

16 . The system of claim 13 , wherein the server outer hash table is a simple hash table.

17 . The system of claim 15 , wherein the server iteratively receives encoded information regarding the set of client items and causes the client to generate a set of elements the client has in common with the server without the server gaining information regarding the set of client items.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2022
From: KUSSMAUL, JOERN; TUENO, ANSELME
To: SAP SE
Reel/Frame 062163/0861 →
Continuity (1)
Related Publication 20240205015A1 · Jun 20, 2024
References Cited (6)
US 20190342270A1 · Laine · 2019 [cited by examiner]
US 20210336770A1 · Ahmed · 2021 [cited by examiner]
US 20230359631A1 · Badrinarayanan · 2023 [cited by examiner]
Resende et al., “Faster Unbalanced Private Set Intersection”, Institute of Computing—University of Campinas (UNICAMP) (Year: 2017). [cited by examiner]
Bui et al., “Private Set Intersection from Pseudorandom Correlation”, IACR Cryptol. ePrint Arch (Year: 2022). [cited by examiner]
Pinkas et al., “Efficient Circuit-Based PSI via Cuckoo Hashing”, Advanced in Cryptography—EuroCrypt 2018, pp. 125-157 (Year: 2018). [cited by examiner]