US 12,069,161 B2
Secure multi-party reach and frequency estimation
Craig Wright, Mountain View, CA (US); Benjamin R. Kreuter, Mountain View, CA (US); James Robert Koehler, Mountain View, CA (US); Arthur Asuncion, Mountain View, CA (US); Evgeny Skvortsov, Mountain View, CA (US); Laura Grace Book, Mountain View, CA (US); Sheng Ma, Mountain View, CA (US); Jiayu Peng, Mountain View, CA (US); and Xichen Huang, Mountain View, CA (US)
Assigned to GOOGLE LLC, Mountain View, CA (US)
Appl. No. 17/278,496
Filed by GOOGLE LLC, Mountain View, CA (US)
PCT Filed Jul. 7, 2020, PCT No. PCT/US2020/041020
§ 371(c)(1), (2) Date Mar. 22, 2021,
PCT Pub. No. WO2021/162737, PCT Pub. Date Aug. 19, 2021.
Claims priority of provisional application 62/977,141, filed on Feb. 14, 2020.
Claims priority of provisional application 62/981,960, filed on Feb. 26, 2020.
Claims priority of provisional application 62/987,645, filed on Mar. 10, 2020.
Claims priority of provisional application 63/002,138, filed on Mar. 30, 2020.
Prior Publication US 2021/0359836 A1, Nov. 18, 2021
Int. Cl. H04L 9/08 (2006.01); G06F 16/22 (2019.01); G06F 16/23 (2019.01); G06F 21/62 (2013.01); G06N 7/01 (2023.01); H04L 9/00 (2022.01); H04L 9/06 (2006.01)
CPC H04L 9/0825 (2013.01) [G06F 16/2237 (2019.01); G06F 16/2379 (2019.01); G06F 21/6254 (2013.01); G06N 7/01 (2023.01); H04L 9/008 (2013.01); H04L 9/0643 (2013.01); H04L 9/085 (2013.01); H04L 9/0869 (2013.01); H04L 2209/08 (2013.01); H04L 2209/46 (2013.01)] 22 Claims
OG exemplary drawing
 
1. A method of efficiently transforming encrypted data structures representing sets of identifiers for secure and computationally efficient network transmission, comprising:
maintaining, by a worker computing device comprising one or more processors and a memory, in the memory, a private decryption key corresponding in part to an aggregated public key;
receiving, by the worker computing device from a publisher computing device, a first encrypted data structure;
decrypting, by the worker computing device, the first encrypted data structure using the private decryption key to generate a partially decrypted data structure;
generating, by the worker computing device, a random variable to determine an amount of noise to add to the partially decrypted data structure;
creating, by the worker computing device, a noise array based on a baseline noise value and a maximum frequency value, the noise array comprising a plurality of noise values;
permuting, by the worker computing device, the noise array to generate a permuted noise array;
encrypting, by the worker computing device, the partially decrypted data structure using a second encryption scheme to generate a second encrypted data structure;
permuting, by the worker computing device, at least two elements of the second encrypted data structure to create a shuffled data structure; and
transmitting, by the worker computing device, the shuffled data structure to a second worker computing device.