IP Library Granted Patent US 12,386,985
Granted Patent B2
US 12,386,985 · App. 18/368,811 · Granted Aug 12, 2025

High speed private and secure cross-entity data processing

Inventor: Matthew Tran Clegg (Los Angeles, CA)
Assignee: Google LLC
G06F21/606
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,386,985
App. No.
18/368,811
Filed
Sep 15, 2023
Granted
Aug 12, 2025
Kind
B2
Art Unit
2438
USPC
726/26
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium. In one aspect, a method includes receiving, from a content distributor, plan data specifying a set of distribution plans that cause distribution of content. Instructions are transmitted to publishers to submit secret shares of a multi-register sketch representing presentations of the content. A notification that the content distributor has requested an analysis of the presentations of the content is sent to a multi-party computing group. A result share of the analysis of the presentation of the content is received from multiple MPC devices in the MPC group. A set of result shares received from the of MPC devices are transmitted to the content distributor.

Claims (62)

1. A method, comprising:

receiving, by a controller comprising one or more data processing apparatus and from a content distributor, plan data specifying a set of distribution plans that cause distribution of content with electronic documents from multiple online publishers;

transmitting, by the controller, instructions for each given publisher among the multiple online publishers to submit secret shares of each register of a multi-register sketch representing presentations of the content at an electronic document provided by the given online publisher, wherein multiple secret shares for a given register is required to recover a value of the given register;

transmitting, by the controller and to a plurality of multi-party computation (MPC) devices, a notification that the content distributor has requested an analysis of the presentations of the content distributed according to the set of distribution plans;

receiving, by the controller and from each given MPC device among the plurality of MPC devices, a result share of the analysis of the presentation of the content distributed according to the set of distribution plans, wherein multiple result shares generated by the plurality of MPC devices are required to recover a final result of the analysis of the presentation of the content distributed according to the set of distribution plans;

transmitting, by the controller and to the content distributor, a set of result shares received from the plurality of MPC devices.

2. The method of claim 1 , further comprising:

receiving, by the plurality of MPC devices and from each given online publisher among the multiple online publishers, the secret shares of each register of the multi-register sketch representing the presentations of the content at the electronic document provided by the given publisher;

computing, by the plurality of MPC devices and using the secret shares, a non-zero register count for each multi-register sketch received from the multiple online publishers without revealing individual values of registers in the multi-register sketch; and

adding, by the plurality of MPC devices, random noise to the non-zero register count to obtain noisy result shares; and

transmitting, by the plurality of MPC devices, the noisy result shares to the controller.

3. The method of claim 2 , wherein computing the non-zero register count for each multi-register sketch comprises computing a number of bits having a value of 1 in a union of multiple multi-register sketches received from the multiple online publishers.

4. The method of claim 3 , further comprising:

receiving, from the multiple online publishers, different bit strings; and

performing a Boolean exclusive-or (XOR) on the different bit strings to obtain an output bit stream that is unknown to any of the multiple online publishers.

5. The method of claim 4 , further comprising determining the random noise based, at least in part, on the output bit stream.

6. The method of claim 5 , wherein determining the random noise comprises:

converting the output bit stream into a one-hot vector having a specified bit length; and

computing a dot product of the one-hot vector and a quantile vector of the specified bit length, wherein the quantile vector represents quantiles of a discrete Gaussian distribution.

7. The method of claim 6 , further comprising computing a frequency vector representing, for each number of presentations between one and a specified number, how many different users were presented content distributed according to the set of distribution plans different numbers of times between one and the specified number.

8. A non-transitory computer readable medium storing instructions that, upon execution by one or more data processing apparatus, cause the one or more data processing apparatus to perform operations comprising:

receiving, from a content distributor, plan data specifying a set of distribution plans that cause distribution of content with electronic documents from multiple online publishers;

transmitting instructions for each given publisher among the multiple online publishers to submit secret shares of each register of a multi-register sketch representing presentations of the content at an electronic document provided by the given online publisher, wherein multiple secret shares for a given register is required to recover a value of the given register;

transmitting, to a plurality of multi-party computation (MPC) devices, a notification that the content distributor has requested an analysis of the presentations of the content distributed according to the set of distribution plans;

receiving, from each given MPC device among the plurality of MPC devices, a result share of the analysis of the presentation of the content distributed according to the set of distribution plans, wherein multiple result shares generated by the plurality of MPC devices are required to recover a final result of the analysis of the presentation of the content distributed according to the set of distribution plans;

transmitting, by the controller and to the content distributor, a set of result shares received from the plurality of MPC devices.

9. The non-transitory computer readable medium of claim 8 , wherein the instructions cause the one or more data processing apparatus to cause operations comprising:

receiving, by the plurality of MPC devices and from each given online publisher among the multiple online publishers, the secret shares of each register of the multi-register sketch representing the presentations of the content at the electronic document provided by the given publisher;

computing, by the plurality of MPC devices and using the secret shares, a non-zero register count for each multi-register sketch received from the multiple online publishers without revealing individual values of registers in the multi-register sketch; and

adding, by the plurality of MPC devices, random noise to the non-zero register count to obtain noisy result shares; and

transmitting, by the plurality of MPC devices, the noisy result shares to the controller.

10. The non-transitory computer readable medium of claim 9 , wherein computing the non-zero register count for each multi-register sketch comprises computing a number of bits having a value of 1 in a union of multiple multi-register sketches received from the multiple online publishers.

11. The non-transitory computer readable medium of claim 10 , wherein the instructions cause the one or more data processing apparatus to perform operations comprising:

receiving, from the multiple online publishers, different bit strings; and

performing a Boolean exclusive-or (XOR) on the different bit strings to obtain an output bit stream that is unknown to any of the multiple online publishers.

12. The non-transitory computer readable medium of claim 11 , wherein the instructions cause the one or more data processing apparatus to perform operations comprising determining the random noise based, at least in part, on the output bit stream.

13. The non-transitory computer readable medium of claim 12 , wherein determining the random noise comprises:

converting the output bit stream into a one-hot vector having a specified bit length; and

computing a dot product of the one-hot vector and a quantile vector of the specified bit length, wherein the quantile vector represents quantiles of a discrete Gaussian distribution.

14. The non-transitory computer readable medium of claim 6 , wherein the instructions cause the one or more data processing apparatus to perform operations comprising computing a frequency vector representing, for each number of presentations between one and a specified number, how many different users were presented content distributed according to the set of distribution plans different numbers of times between one and the specified number.

15. A system, comprising:

one or more memory devices; and

a controller, including one or more data processing apparatus, configured to access the one or more memory devices and execute instructions that cause the one or more data processing apparatus to perform operations comprising:

receiving, by the controller comprising one or more data processing apparatus and from a content distributor, plan data specifying a set of distribution plans that cause distribution of content with electronic documents from multiple online publishers;

transmitting, by the controller, instructions for each given publisher among the multiple online publishers to submit secret shares of each register of a multi-register sketch representing presentations of the content at an electronic document provided by the given online publisher, wherein multiple secret shares for a given register is required to recover a value of the given register;

transmitting, by the controller and to a plurality of multi-party computation (MPC) devices, a notification that the content distributor has requested an analysis of the presentations of the content distributed according to the set of distribution plans;

receiving, by the controller and from each given MPC device among the plurality of MPC devices, a result share of the analysis of the presentation of the content distributed according to the set of distribution plans, wherein multiple result shares generated by the plurality of MPC devices are required to recover a final result of the analysis of the presentation of the content distributed according to the set of distribution plans;

transmitting, by the controller and to the content distributor, a set of result shares received from the plurality of MPC devices.

16. The system of claim 15 , further comprising:

the plurality of MPC devices configured to perform operations comprising:

receiving, by the plurality of MPC devices and from each given online publisher among the multiple online publishers, the secret shares of each register of the multi-register sketch representing the presentations of the content at the electronic document provided by the given publisher;

computing, by the plurality of MPC devices and using the secret shares, a non-zero register count for each multi-register sketch received from the multiple online publishers without revealing individual values of registers in the multi-register sketch; and

adding, by the plurality of MPC devices, random noise to the non-zero register count to obtain noisy result shares; and

transmitting, by the plurality of MPC devices, the noisy result shares to the controller.

17. The system of claim 16 , wherein computing the non-zero register count for each multi-register sketch comprises computing a number of bits having a value of 1 in a union of multiple multi-register sketches received from the multiple online publishers.

18. The system of claim 17 , wherein the plurality of MPC devices are configured to perform operations comprising:

receiving, from the multiple online publishers, different bit strings; and

performing a Boolean exclusive-or (XOR) on the different bit strings to obtain an output bit stream that is unknown to any of the multiple online publishers.

19. The system of claim 18 , wherein the plurality of MPC devices are configured to perform operations comprising determining the random noise based, at least in part, on the output bit stream.

20. The system of claim 19 , wherein determining the random noise comprises:

converting the output bit stream into a one-hot vector having a specified bit length; and

computing a dot product of the one-hot vector and a quantile vector of the specified bit length, wherein the quantile vector represents quantiles of a discrete Gaussian distribution.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2023
From: CLEGG, MATTHEW TRAN
To: GOOGLE LLC
Reel/Frame 065156/0480 →
Continuity (2)
Provisional Application 63376209 · Sep 19, 2022
Related Publication 20240104228A1 · Mar 28, 2024
References Cited (27)
US 10749671B2 · Teranishi · 2020 [cited by examiner]
US 11689371B2 · Yadlin · 2023 [cited by examiner]
US 20190372765A1 · Tegeder · 2019 [cited by examiner]
JP 2019205157A · 2019 [cited by examiner]
WO WO2019088979A1 · 2019 [cited by examiner]
Cramer, Ronald, Ivan Damgård, and Ueli Maurer. “General secure multi-party computation from any linear secret-sharing scheme.” International Conference on the Theory and Applications of Cryptographic Techniques. Berlin,… [cited by examiner]
Turban, Tiina. A Secure Multi-Party Computation Protocol Suite Inspired by Shamir's Secret Sharing Scheme. MS thesis. Institutt for telematikk, 2014. (Year: 2014). [cited by examiner]
Eugster, Patrick, Giorgia Azzurra Marson, and Bertram Poettering. “A cryptographic look at multi-party channels.” 2018 IEEE 31st Computer Security Foundations Symposium (CSF). IEEE, 2018. (Year: 2018). [cited by examiner]
International Preliminary Report on Patentability in International Appln. No. PCT/US2023/032832, mailed on Apr. 3, 2025, 11 pages. [cited by applicant]
An et al., “Cardinality and Frequency Estimation Evaluation Framework,” Jul. 6, 2020, retrieved on Nov. 28, 2023, retrieved from URL <https://github.com/world-federation-of-advertisers/cardinality_estimation_evaluation_… [cited by applicant]
Archibald et al., “The number of distinct values in a geometrically distributed sample,” European Journal of Combinatorics, Jul. 11, 2006, 27(7):1059-1081. [cited by applicant]
Beaver et al., “The round complexity of secure protocols,” Proceedings of the Twenty-Second Annual ACM Symposium on Theory of Computing, Apr. 1, 1990, pp. 503-513. [cited by applicant]
Damgard et al., “Unconditionally secure constant-rounds multi-party computation for equality, comparison, bits and exponentiation,” Proceedings of Theory of Cryptography Conference, Mar. 4, 2006, pp. 285-304. [cited by applicant]
Dwork et al., “The algorithmic foundations of differential privacy,” Foundations and Trends in Theoretical Computer Science, Aug. 10, 2014, vol. 9, Issues 3-4, 26 pages. [cited by applicant]
Flajolet et al., “Hyperloglog: the analysis of a near-optimal cardinality estimation algorithm,” Proceedings of 2007 Conference on Analysis of Algorithms, Jan. 1, 2007, 21 pages. [cited by applicant]
Flajolet et al., “Probabilistic counting algorithms for data base applications,” Journal of Computer and System Sciences, Oct. 1, 1985, 31(2):182-209. [cited by applicant]
Ghazi et al., “Multiparty reach and frequency histogram: Private, secure, and practical,” Proceedings on Privacy Enhancing Technologies, Jan. 2022, pp. 373-395. [cited by applicant]
github.com[online], “World-federation-of-advertisers /cross-media-measurement,” available on or before Dec. 12, 2023, via Internet Archive: Wayback Machine URL <https://web.archive.org/web/20231212100925/https://github.… [cited by applicant]
Hu et al., “How to make private distributed cardinality estimation practical, and get differential privacy for free,” Cryptology ePrint Archive, Dec. 17, 2020, p. 1-29. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/CN2023/032832, mailed on Dec. 7, 2023, 17 pages. [cited by applicant]
Keller, “MP-SPDZ: A versatile framework for multi-party computation,” Proceedings of the 2020 ACM SIGSAC conference on computer and communications security, Oct. 30, 2020, pp. 1575-1590. [cited by applicant]
Nishide et al., “Multiparty computation for interval, equality, and comparison without bit-decomposition protocol,” Proceedings of the 10th International Conference on Practice and Theory in Public-Key Cryptography, Apr… [cited by applicant]
Reistad et al., “Linear, constant-rounds bit-decomposition,” Proceedings of 12th International Conference on Information Security and Cryptology, Dec. 2-4, 2009, pp. 245-257. [cited by applicant]
Reistad, “Multiparty comparison-an improved multiparty protocol for comparison of secret-shared values,” Proceedings of International Conference on Security and Cryptography, Jul. 7, 2009, (1):325-330. [cited by applicant]
Shamir, “How to share a secret,” Communications of the ACM, Nov. 1979, 22(11):612-613. [cited by applicant]
Wright et al., “Privacy-Preserving Secure Cardinality and Frequency Estimation,” Google LLC, May 29, 2020, 20 pages. [cited by applicant]
Wright et al., “Private Reach & Frequency Estimators Evaluation Results,” Dec. 17, 2020, retrieved on Nov. 28, 2023, retrieved from URL <https://github.com/world-federation-of-advertisers/cross_media_measurement_project… [cited by applicant]