Using multi-party computation and k-anonymity techniques to protect confidential information
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.
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.