IP Library › Granted Patent US 12,231,547
Granted Patent B2
US 12,231,547 · App. 17/924,561 · Granted Feb 18, 2025

Using secure multi-party computation and probabilistic data structures to protect access to information

Inventors: Kevin Wei Li Yeo (New York City, NY); Gang Wang (Frederick, MD)
Assignee: Google LLC
H04L9/085G06F16/285G06F21/6218H04L2209/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,231,547
App. No.
17/924,561
Granted
Feb 18, 2025
Kind
B2
Abstract

This document describes systems and techniques for protecting the security of information in content selection and distribution. In one aspect, a method includes receiving, by a first computing system of MPC systems, a digital component request including distributed point functions that represent a secret share of a respective point function that indicates whether a user of the client device is a member of a first user group. Selection values are identified. Each selection value corresponds to a respective digital component, a set of contextual signals, and a respective second user group identifier for a respective second user group to which the respective digital component is eligible to be distributed. A determination is made, for each selection value and using the distributed point functions in a secure MPC process, a candidate parameter that indicates whether the second user group identifier matches a user group that includes the user as a member.

Claims (56)

1. A computer-implemented method comprising:

receiving, from a client device and by a first computing system of a plurality of multi-party computation (MPC) systems, a digital component request comprising distributed point functions that each represent a secret share of a respective point function that indicates whether a user of the client device is a member of a respective first user group identified by a respective first user group identifier;

identifying a plurality of selection values, wherein each selection value corresponds to a respective digital component, a set of contextual signals, and a respective second user group identifier for a respective second user group to which the respective digital component is eligible to be distributed;

determining, for each selection value and using the distributed point functions in a secure MPC process performed in collaboration with one or more second computing systems of the plurality of MPC systems, a candidate parameter that indicates whether the second user group identifier corresponding to the selection value matches a user group that includes the user as a member;

generating, based on the selection values and the candidate parameters, a first secret share of a selection result that identifies, from a plurality of candidate digital components, a given digital component having a highest selection value, wherein each candidate digital component is a digital component for which the candidate parameter for the selection value corresponding to the digital component indicates that the second user group identifier corresponding to the selection value matches a user group that includes the user as a member; and

transmitting, to the client device, the first secret share of a selection result identifying the given digital component.

2. The computer-implemented method of claim 1 , wherein determining the candidate parameter for each selection value comprises determining a first secret share of the candidate parameter for each selection value.

3. The computer-implemented method of claim 1 , wherein generating the first secret share of the selection result comprises:

generating an order of the selection values based on a magnitude of each selection value;

determining, based on the order of the selection values and the candidate parameter for each selection value, a first secret share of an accumulated value for each selection value, wherein the accumulated value for each selection value indicates a position of the selection value in the order of the selection values;

determining, for each selection value, a first secret share of a winner parameter based on (i) the candidate parameter for the selection value and (ii) a result of an equality test that indicates whether the accumulated value for the selection value is a specified value; and

determining, as the first secret share of the selection result, a first secret share of a sum of, for each selection value, a product of the winner parameter for the selection value and a digital component information element for the selection value.

4. The computer-implemented method of claim 3 , wherein determining the first secret share of the accumulated value for each selection value comprises:

for each individual selection value, determining a quantity of selection values, between a highest selection value and the individual selection value, that have a candidate parameter that indicates that the second user group identifier corresponding to the selection value matches at least one of the one or more first user group identifiers.

5. The computer-implemented method of claim 3 , wherein the specified value is one or logical true.

6. The computer-implemented method of claim 1 , wherein the distributed point functions are generated based on a plurality of user groups that include the user of the client device as a member.

7. The computer-implemented method of claim 1 , wherein:

the digital component request comprises a user group request key that is based on a set of contextual signals for a digital component slot; and

identifying the plurality of selection values comprises identifying, in a data structure, each selection value that has a lookup key that matches the user group request key.

8. A system, comprising:

a first computing system comprising one or more processors; and

one or more computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, from a client device and by the first computing system of a plurality of multi-party computation (MPC) systems, a digital component request comprising distributed point functions that each represent a secret share of a respective point function that indicates whether a user of the client device is a member of a respective first user group identified by a respective first user group identifier;

identifying a plurality of selection values, wherein each selection value corresponds to a respective digital component, a set of contextual signals, and a respective second user group identifier for a respective second user group to which the respective digital component is eligible to be distributed;

determining, for each selection value and using the distributed point functions in a secure MPC process performed in collaboration with one or more second computing systems of the plurality of MPC systems, a candidate parameter that indicates whether the second user group identifier corresponding to the selection value matches a user group that includes the user as a member;

generating, based on the selection values and the candidate parameters, a first secret share of a selection result that identifies, from a plurality of candidate digital components, a given digital component having a highest selection value, wherein each candidate digital component is a digital component for which the candidate parameter for the selection value corresponding to the digital component indicates that the second user group identifier corresponding to the selection value matches a user group that includes the user as a member; and

transmitting, to the client device, the first secret share of a selection result identifying the given digital component.

9. The system of claim 8 , wherein determining the candidate parameter for each selection value comprises determining a first secret share of the candidate parameter for each selection value.

10. The system of claim 8 , wherein generating the first secret share of the selection result comprises:

generating an order of the selection values based on a magnitude of each selection value;

determining, based on the order of the selection values and the candidate parameter for each selection value, a first secret share of an accumulated value for each selection value, wherein the accumulated value for each selection value indicates a position of the selection value in the order of the selection values;

determining, for each selection value, a first secret share of a winner parameter based on (i) the candidate parameter for the selection value and (ii) a result of an equality test that indicates whether the accumulated value for the selection value is a specified value; and

determining, as the first secret share of the selection result, a first secret share of a sum of, for each selection value, a product of the winner parameter for the selection value and a digital component information element for the selection value.

11. The system of claim 10 , wherein determining the first secret share of the accumulated value for each selection value comprises:

for each individual selection value, determining a quantity of selection values, between a highest selection value and the individual selection value, that have a candidate parameter that indicates that the second user group identifier corresponding to the selection value matches at least one of the one or more first user group identifiers.

12. The system of claim 11 , wherein the specified value is one or logical true.

13. The system of claim 8 , wherein the distributed point functions are generated based on a plurality of user groups that include the user of the client device as a member.

14. The system of claim 8 , wherein:

the digital component request comprises a user group request key that is based on a set of contextual signals for a digital component slot; and

identifying the plurality of selection values comprises identifying, in a data structure, each selection value that has a lookup key that matches the user group request key.

15. One or more non-transitory computer-readable media storing 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, from a client device and by the first computing system of a plurality of multi-party computation (MPC) systems, a digital component request comprising distributed point functions that each represent a secret share of a respective point function that indicates whether a user of the client device is a member of a respective first user group identified by a respective first user group identifier;

identifying a plurality of selection values, wherein each selection value corresponds to a respective digital component, a set of contextual signals, and a respective second user group identifier for a respective second user group to which the respective digital component is eligible to be distributed;

determining, for each selection value and using the distributed point functions in a secure MPC process performed in collaboration with one or more second computing systems of the plurality of MPC systems, a candidate parameter that indicates whether the second user group identifier corresponding to the selection value matches a user group that includes the user as a member;

generating, based on the selection values and the candidate parameters, a first secret share of a selection result that identifies, from a plurality of candidate digital components, a given digital component having a highest selection value, wherein each candidate digital component is a digital component for which the candidate parameter for the selection value corresponding to the digital component indicates that the second user group identifier corresponding to the selection value matches a user group that includes the user as a member; and

transmitting, to the client device, the first secret share of a selection result identifying the given digital component.

16. The one or more non-transitory computer-readable media of claim 15 , wherein determining the candidate parameter for each selection value comprises determining a first secret share of the candidate parameter for each selection value.

17. The one or more non-transitory computer-readable media of claim 15 , wherein generating the first secret share of the selection result comprises:

generating an order of the selection values based on a magnitude of each selection value;

determining, based on the order of the selection values and the candidate parameter for each selection value, a first secret share of an accumulated value for each selection value, wherein the accumulated value for each selection value indicates a position of the selection value in the order of the selection values;

determining, for each selection value, a first secret share of a winner parameter based on (i) the candidate parameter for the selection value and (ii) a result of an equality test that indicates whether the accumulated value for the selection value is a specified value; and

determining, as the first secret share of the selection result, a first secret share of a sum of, for each selection value, a product of the winner parameter for the selection value and a digital component information element for the selection value.

18. The one or more non-transitory computer-readable media of claim 17 , wherein determining the first secret share of the accumulated value for each selection value comprises:

for each individual selection value, determining a quantity of selection values, between a highest selection value and the individual selection value, that have a candidate parameter that indicates that the second user group identifier corresponding to the selection value matches at least one of the one or more first user group identifiers.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the specified value is one or logical true.

20. The one or more non-transitory computer-readable media of claim 15 , wherein the distributed point functions are generated based on a plurality of user groups that include the user of the client device as a member.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2023
From: YEO, KEVIN WEI LI; WANG, GANG
To: GOOGLE LLC
Reel/Frame 063763/0081 →
Continuity (2)
Provisional Application 63125142 · Dec 14, 2020
Related Publication 20230188329A1 · Jun 15, 2023
References Cited (21)
US 20160180373A1 · Xu et al. · 2016 [cited by applicant]
US 20200186356A1 · Veeningen · 2020 [cited by examiner]
US 20200336313A1 · Knox · 2020 [cited by applicant]
JP 2017215968 · 2017 [cited by applicant]
JP 2023511649 · 2023 [cited by applicant]
International conference on Signal Processing, Communication, Power and Embedded System (SCOPES)-2016 Secure Multiparty Computation using Secret Sharing Kinjal Patel © 2016 IEEE (Year: 2016). [cited by examiner]
A Pragmatic Introduction to Secure Multi-Party Computation David Evans, Vladimir Kolesnikov, and Mike Rosulek NOW Publishers, 2018. (Version Updated: Apr. 15, 2020) (Year: 2020). [cited by examiner]
Office Action in Japanese Appln. No. 2022-570382, mailed on Feb. 5, 2024, 4 pages (with English translation). [cited by applicant]
International Preliminary Report on Patentability in International Appln. No. PCT/US2021/063,024, mailed on Jun. 29, 2023, 9 pages. [cited by applicant]
Notice of Allowance in Japanese Appln. No. 2022-570382, mailed on Jun. 3, 2024, 5 pages (with English translation). [cited by applicant]
Boyle et al., “Function secret sharing: Improvements and extensions.” Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, Oct. 2016, 12 pages. [cited by applicant]
Burkhart et al., “{SEPIA}:{Privacy-Preserving} Aggregation of {Multi-Domain} Network Events and Statistics.” 19th USENIX Security Symposium (USENIX Security 10), 2010, 17 pages. [cited by applicant]
Github.com [online], “TurtleDove” Jan. 2020, retrieved on Jan. 23, 2023, retrieved from URL <https://github.com/michaelkleber/turtledove>, 2 pages. [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2021/063,024, mailed on Apr. 4, 2022, 14 pages. [cited by applicant]
Nishide et al., “Multiparty computation for interval, equality, and comparison without bit-decomposition protocol.” International Workshop on Public Key Cryptography. Springer, Berlin, Heidelberg, Apr. 2007, 343-360. [cited by applicant]
Pagh et al., “Cuckoo hashing” Journal of Algorithms, vol. 51, Issue 2, May 2004, 122-144. [cited by applicant]
Wikipedia.org [online], “Cuckoo filter” created on Nov. 2018, retrieved on Jan. 23, 2023, retrieved from URL <https://en.wikipedia.org/wiki/Cuckoo_filter>, 2 pages. [cited by applicant]
Wikipedia.org [online], “Cuckoo Hashing” created on Feb. 2006, retrieved on Jan. 23, 2023, retrieved from URL <https://en.wikipedia.org/wiki/Cuckoo_hashing>, 8 pages. [cited by applicant]
Wikipedia.org [online], “PP (complexity)” created May 2004, retrieved on Jan. 23, 2023, retrieved from URL <https://en.wikipedia.org/wiki/PP_(complexity)>, 3 pages. [cited by applicant]
Wikipedia.org [online], “Private Information Retrieval” Nov. 2004, retrieved on Jan. 23, 2023, retrieved from URL <https://en.wikipedia.org/wiki/Private_information_retrieval>, 6 pages. [cited by applicant]
Wikipedia.org [online], “Shamir's secret sharing” created on Apr. 2007, retrieved on Jan. 23, 2023, retrieved from URL <https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing>, 7 pages. [cited by applicant]