IP Library › Granted Patent US 12,657,341
Granted Patent B2
US 12,657,341 · App. 17/918,598 · Granted Jun 16, 2026

Using multi-party computation and k-anonymity techniques to protect confidential information

Inventors: Marcel M. Moti Yung (New York, NY); Gang Wang (Frederick, MD)
Assignee: Google LLC
G06F21/6254H04L9/0825H04L2209/46
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,657,341
App. No.
17/918,598
Granted
Jun 16, 2026
Kind
B2
Abstract

This disclosure relates to protecting the confidential information of multiple entities using secure multi-party computation (MPC) and k-anonymity techniques. In some aspects, a method includes receiving, by a first MPC computing system from a client device, a content request including encrypted user group identifiers. Each encrypted user group identifier is encrypted using a first encryption key of a second MPC computing system. For each encrypted user group identifier, a request is transmitted to the second MPC computing system. The request includes the encrypted user group identifier. For each user group identifier that satisfies a k-anonymity, the first MPC computing system receives, from the second MPC computing system, a plaintext value of the user group identifier. The first MPC computing system transmits a selection parameter request to one or more platforms. The selection parameter request includes the plaintext value of the user group identifier.

Claims (93)

1 . A method comprising:

receiving, by a first multi-party computation (MPC) computing system and from a client device, a content request comprising a set of encrypted user group identifiers, wherein each encrypted user group identifier is encrypted using a first encryption key of a second MPC computing system;

for each encrypted user group identifier, transmitting a request to the second MPC computing system to decrypt the encrypted user group identifier, the request comprising the encrypted user group identifier;

for each user group identifier that satisfies a k-anonymity process performed by the second MPC computing system that ensures that requests that include the user group identifier have been received from at least a threshold number of different applications before decrypting the user group identifier:

receiving, by the first MPC computing system from the second MPC computing system, a plaintext value of the user group identifier, wherein the second MPC computing system decrypts each encrypted user group identifier that satisfies the k-anonymity process, and wherein the second MPC computing system ensures that requests that include the user group identifier have been received from at least a threshold number of different applications before decrypting the user group identifier by (i) determining a number of different applications from which requests have been received that include the user group identifier and (ii) comparing the number of requests to the threshold; and

transmitting, by the first MPC computing system, a selection parameter request to one or more platforms different from the first and second MPC computing systems, the selection parameter request comprising the plaintext value of the user group identifier and requesting selection parameters for use in selecting a digital component to provide to the client device in response to the content request;

receiving, by the first MPC computing system and from the second MPC computing system, a set of selection parameter elements that each comprise a creative element for a corresponding digital component and a selection parameter identifier for the digital component;

selecting, by the first MPC computing system, a given digital component based on the selection parameter identifiers; and

transmitting, by the first MPC computing system and to the client device, the creative element for the digital component.

2 . The method of claim 1 , wherein the content request comprises a resource locator for a resource for which a digital component is being requested, the method further comprising:

generating, by the first MPC computing system, a request identifier based on the resource locator and a nonce corresponding to the content request; and

encrypting, by the first MPC computing system, the request identifier,

wherein the request comprises the encrypted request identifier.

3 . The method of claim 2 , wherein:

receiving the plaintext value of each user group identifier that satisfies the k-anonymity process comprises receiving a return request for each user group identifier that satisfies the k-anonymity process, each return request comprising the user group identifier and a twice-encrypted request identifier encrypted generated by the second MPC computing system by encrypting the encrypted request identifier using a second encryption key of the second MPC computing system;

each selection parameter request comprises the twice-encrypted request identifier; and

each selection parameter element comprises the encrypted request identifier generated by the second MPC computing system by decrypting the twice-encrypted request identifier after receiving, from a platform, the twice-encrypted request along with the creative element and the selection parameter identifier of the selection parameter element.

4 . The method of claim 3 , wherein the second MPC computing system:

receives, from each of the one or more platforms, a selection parameter response comprising the twice-encrypted request identifier, a respective creative element for a respective digital component, a selection parameter for the respective digital component, and a digital component provider identifier that publishes the respective digital component;

identifies, for each selection parameter response, a corresponding selection parameter identifier based on a range of selection parameter values in which the selection parameter of the selection parameter is included; and

generates the selection parameter elements based on the selection parameter responses and the selection parameter identifiers.

5 . The method of claim 1 , wherein the content request comprises, for each user group identifier, an encrypted composite message, the encrypted composite message comprising an encrypted version of a composite message comprising the user group identifier, an application public key for an application of the client device that initiated the content request and a Signed Redemption Record issued by a trust token issuer in response to determining that the client device is trustworthy.

6 . The method of claim 1 , wherein the content request comprises contextual signals, the method further comprising:

determining that the contextual signals satisfy k-anonymity by determining that, for each contextual signal, at least a threshold number of content requests d that include the contextual signal have been received; and

in response to determining that the contextual signals satisfy k-anonymity:

encrypting, by the first MPC computing system, the contextual signals; and

including, in the request, each contextual signal that satisfies k-anonymity.

7 . The method of claim 1 , wherein the content request comprises a resource locator for a resource for which a digital component is being requested, wherein the method further comprises:

identifying, in each creative element, a first set of properties for the corresponding digital component; and

identifying, in a lookup table, a second set of excluded properties excluded by a publisher of the resource;

wherein selecting, by the first MPC computing system, a given digital component based on the selection parameter comprises:

determining, for each creative element, whether one or more properties in the first set of properties for the creative element matches an excluded property; and

excluding each creative element having at least one property that matches an excluded property.

8 . The method of claim 1 , wherein selecting, by the first MPC computing system, a given digital component based on the selection parameter identifiers comprises:

for each selection parameter element:

identifying, in a first lookup table, a share code for the creative element of the selection parameter element based on a resource locator for a resource and a digital component identifier to a digital component provider that publishes the corresponding digital component of the creative element; and

identifying, in second lookup table, a publisher return identifier based on the share code and the selection parameter identifier of the selection parameter element; and

selecting, as the given digital component, a digital component of a given selection parameter element having a highest publisher return identifier.

9 . The method of claim 8 , wherein transmitting, by the first MPC computing system and to the client device, the creative element for the digital component comprises transmitting a content request result comprising the creative element, the publisher return identifier for the given selection parameter element, the digital component provider identifier for the given digital component, a timestamp indicating a time at which the given digital component was selected, and a digital signature.

10 . The method of claim 9 , wherein:

the client device transmits a second content request to a second platform;

the second content request result comprises the content request result and additional contextual signals; and

the second platform selects a second digital component for presentation at the client device from among a set of digital components comprising the given digital component and one or more digital components selected based on the additional contextual signals.

11 . A system comprising:

one or more processors; and

one or more 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 a first multi-party computation (MPC) computing system and from a client device, a content request comprising a set of encrypted user group identifiers, wherein each encrypted user group identifier is encrypted using a first encryption key of a second MPC computing system;

for each encrypted user group identifier, transmitting a request to the second MPC computing system to decrypt the encrypted user group identifier, the request comprising the encrypted user group identifier;

for each user group identifier that satisfies a k-anonymity process performed by the second MPC computing system that ensures that requests that include the user group identifier have been received from at least a threshold number of different applications before decrypting the user group identifier:

receiving, by the first MPC computing system from the second MPC computing system, a plaintext value of the user group identifier, wherein the second MPC computing system decrypts each encrypted user group identifier that satisfies the k-anonymity process, and wherein the second MPC computing system ensures that requests that include the user group identifier have been received from at least a threshold number of different applications before decrypting the user group identifier by (i) determining a number of different applications from which requests have been received that include the user group identifier and (ii) comparing the number of requests to the threshold; and

transmitting, by the first MPC computing system, a selection parameter request to one or more platforms different from the first and second MPC computing systems, the selection parameter request comprising the plaintext value of the user group identifier and requesting selection parameters for use in selecting a digital component to provide to the client device in response to the content request;

receiving, by the first MPC computing system and from the second MPC computing system, a set of selection parameter elements that each comprise a creative element for a corresponding digital component and a selection parameter identifier for the digital component;

selecting, by the first MPC computing system, a given digital component based on the selection parameter identifiers; and

transmitting, by the first MPC computing system and to the client device, the creative element for the digital component.

12 . The system of claim 11 , wherein the content request comprises a resource locator for a resource for which a digital component is being requested, the operations comprising:

generating, by the first MPC computing system, a request identifier based on the resource locator and a nonce corresponding to the content request; and

encrypting, by the first MPC computing system, the request identifier,

wherein the request comprises the encrypted request identifier.

13 . The system of claim 12 , wherein:

receiving the plaintext value of each user group identifier that satisfies the k-anonymity process comprises receiving a return request for each user group identifier that satisfies the k-anonymity process, each return request comprising the user group identifier and a twice-encrypted request identifier encrypted generated by the second MPC computing system by encrypting the encrypted request identifier using a second encryption key of the second MPC computing system;

each selection parameter request comprises the twice-encrypted request identifier; and

each selection parameter element comprises the encrypted request identifier generated by the second MPC computing system by decrypting the twice-encrypted request identifier after receiving, from a platform, the twice-encrypted request along with the creative element and the selection parameter identifier of the selection parameter element.

14 . The system of claim 13 , wherein the second MPC computing system:

receives, from each of the one or more platforms, a selection parameter response comprising the twice-encrypted request identifier, a respective creative element for a respective digital component, a selection parameter for the respective digital component, and a digital component provider identifier that publishes the respective digital component;

identifies, for each selection parameter response, a corresponding selection parameter identifier based on a range of selection parameter values in which the selection parameter of the selection parameter is included; and

generates the selection parameter elements based on the selection parameter responses and the selection parameter identifiers.

15 . The system of claim 11 , wherein the content request comprises, for each user group identifier, an encrypted composite message, the encrypted composite message comprising an encrypted version of a composite message comprising the user group identifier, an application public key for an application of the client device that initiated the content request and a Signed Redemption Record issued by a trust token issuer in response to determining that the client device is trustworthy.

16 . The system of claim 11 , wherein the content request comprises contextual signals, the operations comprising:

determining that the contextual signals satisfy k-anonymity by determining that, for each contextual signal, at least a threshold number of content requests that include the contextual signal have been received; and

in response to determining that the contextual signals satisfy k-anonymity:

encrypting, by the first MPC computing system, the contextual signals; and

including, in the request, each contextual signal that satisfies k-anonymity.

17 . The system of claim 11 , wherein the content request comprises a resource locator for a resource for which a digital component is being requested and wherein the operations comprise:

identifying, in each creative element, a first set of properties for the corresponding digital component; and

identifying, in a lookup table, a second set of excluded properties excluded by a publisher of the resource;

wherein selecting, by the first MPC computing system, a given digital component based on the selection parameter comprises:

determining, for each creative element, whether one or more properties in the first set of properties for the creative element matches an excluded property; and

excluding each creative element having at least one property that matches an excluded property.

18 . The system of claim 11 , wherein selecting, by the first MPC computing system, a given digital component based on the selection parameter identifiers comprises:

for each selection parameter element:

identifying, in a first lookup table, a share code for the creative element of the selection parameter element based on a resource locator for a resource and a digital component identifier to a digital component provider that publishes the corresponding digital component of the creative element; and

identifying, in second lookup table, a publisher return identifier based on the share code and the selection parameter identifier of the selection parameter element; and

selecting, as the given digital component, a digital component of a given selection parameter element having a highest publisher return identifier.

19 . The system of claim 18 , wherein transmitting, by the first MPC computing system and to the client device, the creative element for the digital component comprises transmitting a content request result comprising the creative element, the publisher return identifier for the given selection parameter element, the digital component provider identifier for the given digital component, a timestamp indicating a time at which the given digital component was selected, and a digital signature.

20 . A non-transitory computer readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, by a first multi-party computation (MPC) computing system and from a client device, a content request comprising a set of encrypted user group identifiers, wherein each encrypted user group identifier is encrypted using a first encryption key of a second MPC computing system;

for each encrypted user group identifier, transmitting a request to the second MPC computing system to decrypt the encrypted user group identifier, the request comprising the encrypted user group identifier;

for each user group identifier that satisfies a k-anonymity process performed by the second MPC computing system that ensures that requests that include the user group identifier have been received from at least a threshold number of different applications before decrypting the user group identifier:

receiving, by the first MPC computing system from the second MPC computing system, a plaintext value of the user group identifier, wherein the second MPC computing system decrypts each encrypted user group identifier that satisfies the k-anonymity process, and wherein the second MPC computing system ensures that requests that include the user group identifier have been received from at least a threshold number of different applications before decrypting the user group identifier by (i) determining a number of different applications from which requests have been received that include the user group identifier and (ii) comparing the number of requests to the threshold; and

transmitting, by the first MPC computing system, a selection parameter request to one or more platforms different from the first and second MPC computing systems, the selection parameter request comprising the plaintext value of the user group identifier and requesting selection parameters for use in selecting a digital component to provide to the client device in response to the content request;

receiving, by the first MPC computing system and from the second MPC computing system, a set of selection parameter elements that each comprise a creative element for a corresponding digital component and a selection parameter identifier for the digital component;

selecting, by the first MPC computing system, a given digital component based on the selection parameter identifiers; and

transmitting, by the first MPC computing system and to the client device, the creative element for the digital component.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2023
From: YUNG, MARCEL M. MOTI; WANG, GANG
To: GOOGLE LLC
Reel/Frame 063416/0700 →
Priority Claims (1)
IL 276440 · Aug 2, 2020 · national
Continuity (1)
Related Publication 20230144140A1 · May 11, 2023
References Cited (49)
US 10424034B1 · Wang · 2019 [cited by examiner]
US 10547592B2 · Bellala et al. · 2020 [cited by applicant]
US 20150019323A1 · Goldberg · 2015 [cited by examiner]
US 20150095104A1 · Goldberg · 2015 [cited by examiner]
US 20150134446A1 · Castelli · 2015 [cited by examiner]
US 20170026345A1 · Salek · 2017 [cited by examiner]
US 20180012032A1 · Radich · 2018 [cited by examiner]
US 20180083976A1 · Egan · 2018 [cited by examiner]
US 20180096166A1 · Rogers · 2018 [cited by examiner]
US 20180122136A1 · Lynen · 2018 [cited by examiner]
US 20180123802A1 · Graul · 2018 [cited by examiner]
US 20180322170A1 · Alberton · 2018 [cited by examiner]
US 20190079944A1 · VanBlon · 2019 [cited by examiner]
US 20190335327A1 · Al-Kabra · 2019 [cited by examiner]
US 20200074112A1 · Ren · 2020 [cited by examiner]
US 20200074552A1 · Shier · 2020 [cited by examiner]
US 20200342459A1 · Boyle · 2020 [cited by examiner]
US 20200380166A1 · Kane · 2020 [cited by examiner]
US 20210165898A1 · Weiss · 2021 [cited by examiner]
US 20210167954A1 · Weiss · 2021 [cited by examiner]
US 20210182429A1 · Chen · 2021 [cited by examiner]
US 20210240854A1 · Krafcik · 2021 [cited by examiner]
US 20220414714A1 · Maher · 2022 [cited by examiner]
EP 3477527 · 2019 [cited by applicant]
JP 2013084063 · 2013 [cited by applicant]
JP 2014170369 · 2014 [cited by applicant]
JP 2023527709 · 2023 [cited by applicant]
KR 1020220110280 · 2022 [cited by applicant]
WO WO2012165518 · 2012 [cited by applicant]
WO WO2019194811 · 2019 [cited by applicant]
Notice of Allowance in Japanese Appln. No. 2022-568895, mailed on Mar. 18, 2024, 5 pages (with English translation). [cited by applicant]
Office Action in Indian Appln. No. 202227058844, mailed on May 16, 2024, 3 pages (with English translation). [cited by applicant]
Davidson Cloudfare Portugal, “Privacy Pass: Architectural Framework; draft-davidson-pp-architecture-01.txt,” Jul. 13, 2020, retrieved on Jul. 13, 2020, retrieved from URL <https://tools.ietf.org/html/draft-davidson-pp-a… [cited by applicant]
Github.com [online], “Aggregated Reporting API” Oct. 2019, retrieved on Dec. 28, 2022, retrieved from URL <https://github.com/csharrison/aggregate-reporting-api>, 6 pages. [cited by applicant]
Github.com [online], “Pigin” Aug. 2019, retrieved on Dec. 28, 2022, retrieved from URL <https://github.com/michaelkleber/pigin>, 8 pages. [cited by applicant]
Github.com [online], “trust token api” Aug. 2019, retrieved on Dec. 28, 2022, retrieved from URL <https://github.com/WICG/trust-token-api>, 13 pages. [cited by applicant]
Github.com [online], “TurtlelDove” Jan. 2020, retrieved on Dec. 28, 2022, retrieved from URL <https://github.com/WICG/turtledove>, 2 pages. [cited by applicant]
Github.com [online], “Webpackage” Oct. 2016, retrieved on Dec. 28, 2022, retrieved from URL <https://github.com/WICG/webpackage>, 4 pages. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2021/028354, mailed on Jul. 19, 2021, 18 pages. [cited by applicant]
Wikipedia.org [online], “Secure multi-party computation” May 2004, retrieved on Dec. 28, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Secure_multi-party_computation>, 13 pages. [cited by applicant]
Wikipedia.org [online], “Semantic security” Sep. 2004, retrieved on Dec. 28, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Semantic_security>, 3 pages. [cited by applicant]
Office Action in Israeli Appln. No. 276440, dated Jan. 24, 2023, 4 pages. [cited by applicant]
International Preliminary Report on Patentability in International Appln. No. PCT/US2021/028354, mailed on Feb. 16, 2023, 12 pages. [cited by applicant]
Notice of Allowance in Korean Appln. No. 10-2022-7039403, mailed on Mar. 6, 2025, 5 pages (with English translation). [cited by applicant]
Office Action in Indian Appln. No. 202227058844, dated Jul. 20, 2023, 7 pages (with English translation). [cited by applicant]
Office Action in Japanese Appln. No. 2022-568895, mailed on Dec. 11, 2023, 4 pages (with English translation). [cited by applicant]
Office Action in European Appln. No. 21724154.6, mailed on Jun. 18, 2025, 11 pages. [cited by applicant]
Office Action in Korean Appln. No. 10-2022-7039403, mailed on Jul. 9, 2024, 10 pages (with English translation). [cited by applicant]
Office Action in Chinese Appln. No. 202180034297.1, mailed on Jul. 30, 2024, 16 pages (with English translation). [cited by applicant]