IP Library › Granted Patent US 12,192,342
Granted Patent B2
US 12,192,342 · App. 17/916,871 · Granted Jan 7, 2025

Enhanced performance of secure multi-party computation

Inventors: Gang Wang (Frederick, MD); Sarvar Patel (Montville, NJ); Marcel M. Moti Yung (New York, NY); Karn Seth (New York, NY); Kevin Wei Li Yeo (New York City, NY); Benjamin Kreuter (Jersey City, NJ); Mariana Raykova (New York City, NY); Tancrède Lepoint (New York, NY)
Assignee: Google LLC
H04L9/085H04L2209/466
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,192,342
App. No.
17/916,871
Granted
Jan 7, 2025
Kind
B2
Abstract

This document relates to using secure MPC to select digital components in ways that preserve user privacy and protects the security of data of each party that is involved in the selection process. In one aspect, a method includes receiving, by a first computing system of a secure MPC system and from a client device, a digital component request and a nonce. The first computing system generates, based on the nonce and a function, an array including a share of a Bloom filter representing user group identifiers for user groups that include a user of the client device as a member. For each of multiple user group identifiers, the first computing system calculates, in collaboration with one or more second computing systems of the secure MPC system and using the array, a respective first secret share of one or more user group membership condition parameters.

Claims (55)

1. A computer-implemented method comprising:

receiving, by a first computing system of a secure multi-party computation (MPC) system and from a client device, a digital component request and a nonce;

generating, based on the nonce and a function, an array comprising a share of a Bloom filter representing user group identifiers for user groups that include a user of the client device as a member;

for each of a plurality of user group identifiers, calculating, in collaboration with one or more second computing systems of the secure MPC system and using the array, a respective first secret share of one or more user group membership condition parameters representing whether the user of the client device is a member of a user group identified by the user group identifier;

for each digital component of a plurality of digital components:

identifying a given user group identifier corresponding to the digital component; and

calculating, in collaboration with each of the one or more second computing systems, a first secret share of a candidate parameter based at least on the respective first secret share of each user group membership condition parameter corresponding to a given user group identified by the given user group identifier and a second secret share of the user group membership condition parameter corresponding to a given user group identified by the given user group identifier held by each of the one or more second computing systems, wherein the candidate parameter indicates whether the digital component is an eligible candidate for the digital component request;

generating, based on the first secret share of the candidate parameter for each digital component and a selection value for each digital component, a first secret share of a selection result representing a selected digital component; and

sending the first secret share of the selection result to the client device.

2. The computer-implemented method of claim 1 , wherein calculating, in collaboration with the one or more second computing systems, the first secret share of the user group membership condition parameter comprises calculating the first secret share of the user group membership condition parameter using one of a garbled circuit protocol or a Goldreich-Micali-Wigderson (GMW) protocol.

3. The computer-implemented method of claim 1 , wherein calculating, in collaboration with each of the one or more second computing systems, the first secret share of the candidate parameter comprises calculating the first secret share of the candidate parameter based on respective secret shares of parameters for one or more additional conditions.

4. The computer-implemented method of claim 1 , further comprising:

receiving an additional nonce for an additional Bloom filter representing a set of blocked digital components;

generating an additional array representing a share of the additional Bloom filter; and

for one or more digital components of the plurality of digital components, calculating, in collaboration with the one or more second computing systems and using the additional array, a first secret share of a blocked condition parameter representing whether the digital component is blocked at the client device, wherein the candidate parameter for the digital component is based on the blocked condition parameter.

5. The computer-implemented method of claim 1 , wherein the first secret share of the selection result comprises a result calculated by performing a bitwise-XOR operation between a secret share of the selection result and a second mask received from the client device.

6. The computer-implemented method of claim 1 , wherein the first computing system comprises a serving pool comprising a set of processors and a load balancer that balances a computing load among the set of processors.

7. The computer-implemented method of claim 6 , wherein the first computing system comprises a log processor pool comprising an additional set of processors that generate snapshots based on updates to logs comprising data related to completed digital component selection processes and provide the snapshots to the serving pool.

8. A system comprising:

one or more processors of a first computing system; and

one or more non-transitory storage devices storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, by the first computing system of a secure multi-party computation (MPC) system and from a client device, a digital component request and a nonce;

generating, based on the nonce and a function, an array comprising a share of a Bloom filter representing user group identifiers for user groups that include a user of the client device as a member;

for each of a plurality of user group identifiers, calculating, in collaboration with one or more second computing systems of the secure MPC system and using the array, a respective first secret share of one or more user group membership condition parameters representing whether the user of the client device is a member of a user group identified by the user group identifier;

for each digital component of a plurality of digital components:

identifying a given user group identifier corresponding to the digital component; and

calculating, in collaboration with each of the one or more second computing systems, a first secret share of a candidate parameter based at least on the respective first secret share of each user group membership condition parameter corresponding to a given user group identified by the given user group identifier and a second secret share of the user group membership condition parameter corresponding to a given user group identified by the given user group identifier held by each of the one or more second computing systems, wherein the candidate parameter indicates whether the digital component is an eligible candidate for the digital component request;

generating, based on the first secret share of the candidate parameter for each digital component and a selection value for each digital component, a first secret share of a selection result representing a selected digital component; and

sending the first secret share of the selection result to the client device.

9. The system of claim 8 , wherein calculating, in collaboration with the one or more second computing systems, the first secret share of the user group membership condition parameter comprises calculating the first secret share of the user group membership condition parameter using one of a garbled circuit protocol or a Goldreich-Micali-Wigderson (GMW) protocol.

10. The system of claim 8 , wherein calculating, in collaboration with each of the one or more second computing systems, the first secret share of the candidate parameter comprises calculating the first secret share of the candidate parameter based on respective secret shares of parameters for one or more additional conditions.

11. The system of claim 8 , wherein the operations comprise:

receiving an additional nonce for an additional Bloom filter representing a set of blocked digital components;

generating an additional array representing a share of the additional Bloom filter; and

for one or more digital components of the plurality of digital components, calculating, in collaboration with the one or more second computing systems and using the additional array, a first secret share of a blocked condition parameter representing whether the digital component is blocked at the client device, wherein the candidate parameter for the digital component is based on the blocked condition parameter.

12. The system of claim 8 , wherein the first secret share of the selection result comprises a result calculated by performing a bitwise-XOR operation between a secret share of the selection result and a second mask received from the client device.

13. The system of claim 8 , wherein the first computing system comprises a serving pool comprising a set of processors and a load balancer that balances a computing load among the set of processors.

14. The system of claim 13 , wherein the first computing system comprises a log processor pool comprising an additional set of processors that generate snapshots based on updates to logs comprising data related to completed digital component selection processes and provide the snapshots to the serving pool.

15. A non-transitory computer readable storage medium carrying instructions that, when executed by one or more processors of a first computing system, cause the one or more processors to perform operations comprising:

receiving, by a first computing system of a secure multi-party computation (MPC) system and from a client device, a digital component request and a nonce;

generating, based on the nonce and a function, an array comprising a share of a Bloom filter representing user group identifiers for user groups that include a user of the client device as a member;

for each of a plurality of user group identifiers, calculating, in collaboration with one or more second computing systems of the secure MPC system and using the array, a respective first secret share of one or more user group membership condition parameters representing whether the user of the client device is a member of a user group identified by the user group identifier;

for each digital component of a plurality of digital components:

identifying a given user group identifier corresponding to the digital component; and

calculating, in collaboration with each of the one or more second computing systems, a first secret share of a candidate parameter based at least on the respective first secret share of each user group membership condition parameter corresponding to a given user group identified by the given user group identifier and a second secret share of the user group membership condition parameter corresponding to a given user group identified by the given user group identifier held by each of the one or more second computing systems, wherein the candidate parameter indicates whether the digital component is an eligible candidate for the digital component request;

generating, based on the first secret share of the candidate parameter for each digital component and a selection value for each digital component, a first secret share of a selection result representing a selected digital component; and

sending the first secret share of the selection result to the client device.

16. The non-transitory computer readable storage medium of claim 15 , wherein calculating, in collaboration with the one or more second computing systems, the first secret share of the user group membership condition parameter comprises calculating the first secret share of the user group membership condition parameter using one of a garbled circuit protocol or a Goldreich-Micali-Wigderson (GMW) protocol.

17. The non-transitory computer readable storage medium of claim 15 , wherein calculating, in collaboration with each of the one or more second computing systems, the first secret share of the candidate parameter comprises calculating the first secret share of the candidate parameter based on respective secret shares of parameters for one or more additional conditions.

18. The non-transitory computer readable storage medium of claim 15 , wherein the operations comprise:

receiving an additional nonce for an additional Bloom filter representing a set of blocked digital components;

generating an additional array representing a share of the additional Bloom filter; and

for one or more digital components of the plurality of digital components, calculating, in collaboration with the one or more second computing systems and using the additional array, a first secret share of a blocked condition parameter representing whether the digital component is blocked at the client device, wherein the candidate parameter for the digital component is based on the blocked condition parameter.

19. The non-transitory computer readable storage medium of claim 15 , wherein the first secret share of the selection result comprises a result calculated by performing a bitwise-XOR operation between a secret share of the selection result and a second mask received from the client device.

20. The non-transitory computer readable storage medium of claim 15 , wherein the first computing system comprises a serving pool comprising a set of processors and a load balancer that balances a computing load among the set of processors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2023
From: WANG, GANG; PATEL, SARVAR; YUNG, MARCEL M. MOTI; SETH, KARN; YEO, KEVIN WEI LI; KREUTER, BENJAMIN; RAYKOVA, MARIANA; LEPOINT, TANCREDE
To: GOOGLE LLC
Reel/Frame 063416/0560 →
Priority Claims (1)
IL 281330 · Mar 8, 2021 · national
Continuity (1)
Related Publication 20230155820A1 · May 18, 2023
References Cited (43)
US 10635824B1 · Triandopoulos · 2020 [cited by examiner]
US 20130010950A1 · Kerschbaum · 2013 [cited by examiner]
US 20170264531A1 · Mahyar · 2017 [cited by examiner]
US 20190205568A1 · Veugen · 2019 [cited by examiner]
US 20200359207A1 · Lee et al. · 2020 [cited by applicant]
US 20200401715A1 · Linton et al. · 2020 [cited by applicant]
JP 2015506485 · 2015 [cited by applicant]
WO WO2016178291 · 2016 [cited by applicant]
Boshrooyeh ST, Küpçü A, Özkasap Ö. Privado: Privacy-preserving group-based advertising using multiple independent social network providers. ACM Transactions on Privacy and Security (TOPS). May 31, 2020;23(3):1-36. (Year… [cited by examiner]
Uda R. Privacy Obfuscation with Bloom Filter for Effective Advertisement. In2013 27th International Conference on Advanced Information Networking and Applications Workshops Mar. 25, 2013 (pp. 941-946). IEEE. (Year: 2013… [cited by examiner]
Office Action in Japanese Appln. No. 2022-564428, mailed on Dec. 4, 2023, 4 pages (with English translation). [cited by applicant]
Notice of Allowance in Japanese Appln. No. 2022-564428, mailed on Mar. 11, 2024, 5 pages (with English translation). [cited by applicant]
Office Action in Israel Appln. No. 281330, dated Jun. 25, 2023, 4 pages. [cited by applicant]
International Preliminary Report on Patentability in International Appln. No. PCT/US2022/019,182, mailed on Sep. 21, 2023, 8 pages. [cited by applicant]
Alvarez et al., “Comprehensive survey on privacy-preserving protocols for sealed-bid auctions.” Computers & Security 88, Apr. 3, 2019, 1-14. [cited by applicant]
Boshrooyeh et al., “PPAD: Privacy Preserving Group-Based Advertising in Online Social Networks” 2018 IFIP Networking Conference (IFIP Networking) and Workshops. IEEE, May 2018, 10 pages. [cited by applicant]
Couteau, “New protocols for secure equality test and comparison.” International Conference on Applied Cryptography and Network Security. Springer, Cham, Jul. 2018, 34 pages. [cited by applicant]
Docker.com [online], “Develop faster. Run anywhere.” Dec. 1996, retrieved on Dec. 20, 2022, retrieved from URL <https://www.docker.com/>, 10 pages. [cited by applicant]
Github.com [online], “Dovekey Auction.MD” Jan. 2021, retrieved on Dec. 20, 2022, retrieved from URL <https://github.com/google/ads-privacy/blob/master/proposals/dovekey/dovekey_auction.md>, 9 pages. [cited by applicant]
Github.com [online], “Dovekey” Sep. 2020, retrieved on Dec. 20, 2022, retrieved from URL <https://github.com/google/ads-privacy/tree/master/proposals/dovekey>, 7 pages. [cited by applicant]
Github.com [online], “First Experiment (FLEDGE)” Jul. 2022, retrieved on Dec. 20, 2022, retrieved from URL <https://github.com/WICG/turtledove/blob/main/FLEDGE.md#2-sellers-run-on-device-auctions>, 32 pages. [cited by applicant]
Github.com [online], “Sparrow” Apr. 2020, retrieved on Dec. 20, 2022, retrieved from URL <https://github.com/WICG/sparrow>, 10 pages. [cited by applicant]
Goldreich et al., “How to play any mental game” STOC '87: Proceedings of the nineteenth annual ACM symposium on Theory of computing, Jan. 1987, 218-229. [cited by applicant]
Hao et al., “Fast multiset membership testing using combinatorial bloom filters.” IEEE INFOCOM 2009. IEEE, Apr. 19, 2009, 513-521. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2022/019,182, dated Jun. 30, 2022, 14 pages. [cited by applicant]
Ion et al., “On deploying secure computing: Private intersection-sum-with-cardinality.” 2020 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, Sep. 7, 2020, 370-389. [cited by applicant]
Luo et al., “Optimizing Bloom Filter: Challenges, Solutions, and Comparisons” submitted on Jan. 2019, arXiv: 1804.04777v2, 37 pages. [cited by applicant]
Medium.com [online], “Bloom Filter in Ads Recommendation” Jan. 2020, retrieved on Dec. 29, 2022, retrieved from URL <https://medium.com/tokopedia-engineering/bloom-filter-in-ads-recommendation-93a2f12e9465>, 10 pages. [cited by applicant]
Schnell et al., “Privacy-preserving record linkage using Bloom filters.” BMC Med Inform Decis Mak 9, 41, Aug. 2009, 11 pages. [cited by applicant]
Sophia Yakoubov, “A Gentle Introduction to Yao's Garbled Circuits” 2017, retrieved on Dec. 20, 2022, retrieved from URL <https://web.mit.edu/sonka89/www/papers/2017ygc.pdf>, 12 pages. [cited by applicant]
Stritzl, “Privacy-Preserving Matching Using Bloom Filters: An Analysis and an Encrypted Variant” MS thesis. University of Twente, Apr. 2019, 31 pages. [cited by applicant]
Wikipedia.org [online], “Bloom filter” Apr. 2004, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Bloom_filter>, 24 pages. [cited by applicant]
Wikipedia.org [online], “Boolean Circuit” Sep. 2006, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Boolean_circuit>, 4 pages. [cited by applicant]
Wikipedia.org [online], “Cryptographic nonce” Sep. 2006, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Cryptographic_nonce>, 3 pages. [cited by applicant]
Wikipedia.org [online], “Cryptographic protocol” Apr. 2004, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Cryptographic protocol>, 4 pages. [cited by applicant]
Wikipedia.org [online], “False positive rate” Apr. 2009, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/False_positive_rate>, 3 pages. [cited by applicant]
Wikipedia.org [online], “Function (mathematics)” Feb. 2003, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Function_(mathematics)>, 25 pages. [cited by applicant]
Wikipedia.org [online], “Garbled circuit” created on Sep. 2016, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Garbled_circuit>, 8 pages. [cited by applicant]
Wikipedia.org [online], “HMAC” Feb. 2002, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/HMAC>, 7 pages. [cited by applicant]
Wikipedia.org [online], “Oblivious transfer” Mar. 2004, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Oblivious_transfer>, 6 pages. [cited by applicant]
Wikipedia.org [online], “PID Controller” Jul. 2002, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/PID_controller>, 30 pages. [cited by applicant]
Wikipedia.org [online], “Secure multi-party computation” May 2004, retrieved on Dec. 20, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Secure_multi-party_computation>, 13 pages. [cited by applicant]
Zhu et al., “Outsourcing Set Intersection Computation Based on Bloom Filter for Privacy Preservation in Multimedia Processing” Security and Communication Networks vol. Apr. 2018, 12 pages. [cited by applicant]