US 12,407,497 B2
Secure multi-party reach and frequency estimation
Craig Wright, Louisville, CO (US); Benjamin R. Kreuter, Jersey City, NJ (US); James Robert Koehler, Boulder, CO (US); Evgeny Skvortsov, Kirkland, WA (US); Arthur Asuncion, Mountain View, CA (US); Laura Grace Book, Mountain View, CA (US); Sheng Ma, Belmont, CA (US); Jiayu Peng, Sunnyvale, CA (US); and Xichen Huang, Sunnyvale, CA (US)
Assigned to GOOGLE LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Jan. 5, 2024, as Appl. No. 18/405,738.
Application 18/405,738 is a continuation of application No. 17/276,643, granted, now 11,909,864, previously published as PCT/US2020/043894, filed on Jul. 28, 2020.
Claims priority of provisional application 63/002,138, filed on Mar. 30, 2020.
Claims priority of provisional application 62/987,645, filed on Mar. 10, 2020.
Claims priority of provisional application 62/981,960, filed on Feb. 26, 2020.
Claims priority of provisional application 62/977,141, filed on Feb. 14, 2020.
Prior Publication US 2024/0204988 A1, Jun. 20, 2024
This patent is subject to a terminal disclaimer.
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)] 18 Claims
OG exemplary drawing
 
1. A method of generating an encrypted data structure representative of a set of identifiers having attributes that satisfy target criteria for secure and computationally efficient transmission, comprising:
maintaining, by a data processing system comprising one or more processors and a memory, in a database, a set of identifiers, each of the set of identifiers comprising an attribute;
generating, by the data processing system, a vector data structure comprising a plurality of coordinates each corresponding to a respective one of a plurality of counter registers;
accessing, by the data processing system, each of the plurality of counter registers that correspond to a plurality of register identifiers to identify a set of counter registers that satisfy a minimum value threshold, wherein identifying the set of counter registers that satisfy the minimum value threshold comprises:
determining a value for each respective counter register of the plurality of counter registers to determine a minimum value;
comparing the value for each respective counter register of the plurality of counter registers;
identifying one or more counter registers of the plurality of counter registers as satisfying the minimum value threshold if the value of the respective counter register is equal to the minimum value; and
identifying one or more counter registers of the plurality of counter registers as not satisfying the minimum value threshold if the value of the respective counter register is not equal to the minimum value;
incrementing, by the data processing system, each of the set of counter registers that satisfy the minimum value threshold;
not incrementing, by the data processing system, each of the set of counter registers that do not satisfy the minimum value threshold;
encrypting, by the data processing system, the vector data structure to create an encrypted data structure, such that the encrypted data structure can be combined with a second encrypted data structure; and
transmitting, by the data processing system, the encrypted data structure to a worker computing device.