US 11,757,847 B2
Computing a private set intersection
Kim Laine, Redmond, WA (US); Hao Chen, Redmond, WA (US); Peter Byerley Rindal, Walla Walla, WA (US); and Zhicong Huang, Redmond, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Dec. 16, 2020, as Appl. No. 17/123,511.
Application 17/123,511 is a continuation of application No. 16/008,915, filed on Jun. 14, 2018, granted, now 10,904,225.
Claims priority of provisional application 62/667,988, filed on May 7, 2018.
Prior Publication US 2021/0194856 A1, Jun. 24, 2021
Int. Cl. H04L 29/06 (2006.01); H04L 9/40 (2022.01); H04L 9/00 (2022.01); H04L 9/14 (2006.01); G06F 21/60 (2013.01); H04L 9/06 (2006.01); G06F 16/901 (2019.01); H04L 9/32 (2006.01); G06F 16/22 (2019.01); G06F 16/14 (2019.01); G06F 16/13 (2019.01); G06F 16/31 (2019.01)
CPC H04L 63/0428 (2013.01) [G06F 16/134 (2019.01); G06F 16/152 (2019.01); G06F 16/2255 (2019.01); G06F 16/325 (2019.01); G06F 16/9014 (2019.01); G06F 21/602 (2013.01); H04L 9/008 (2013.01); H04L 9/0643 (2013.01); H04L 9/14 (2013.01); H04L 9/3236 (2013.01); H04L 9/3239 (2013.01); H04L 9/3242 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A server comprising:
processing hardware that provides functionality of a communications application; and
a memory, the memory storing a first set of contacts of users of the communications application and instructions which, upon execution by the processing hardware, cause the processing hardware to perform operations comprising:
receive a homomorphic encryption of a client hash table for a second set of contacts, the second set of contacts smaller than the first set of contacts;
split each batch of batches of a server hash table into a plurality of splits by separating batched server hash tables into multiple tables to generate split batched server hash tables;
generate, based on the split batched server hash tables and the homomorphic encryption of the client hash table, a homomorphically encrypted number indicating which contact is in both of the first and second sets of contacts; and
provide the homomorphically encrypted number to the client device.