Privacy-preserving computing with third-party service
AssigneeAmazon Technologies, Inc.
InventorsWilliam Horne, Eric Crockett
Life of this patent
Estimating the term…
Abstract
Systems, devices, and methods are provided for secure multiparty computation (MPC) protocols. A first computing entity may send a first cryptographically protected data set to a server and a second computing entity may send a second cryptographically protected data set to the server. The server may lack access to plaintext versions of the data sets. The server may compare cryptographically protected data elements from the first and second data sets as part of a secure MPC protocol to determine certain information regarding the data sets, such as determining which data elements are included in both sets, and perform homomorphic computations according to a homomorphic encryption scheme. The server is accordingly able to determine an encrypted result.
Claims21
A system, comprising:
- one or more processors;
- and
- memory storing executable instructions that, as a result of execution by the one or more processors, cause the system to:
- obtain, from a first computing entity, a first cryptographically protected data set comprising a first column of cryptographically protected data elements generated using a keyed one-way function and based on a first cryptographic secret, wherein the first cryptographic secret is shared between the first computing entity and a second computing entity;
- obtain, from the second computing entity, a second cryptographically protected data set comprising:
- a second column of cryptographically protected data elements generated using the keyed one-way function and based on the first cryptographic secret;
- and
- a third column of cryptographically protected data elements encrypted according to a homomorphic encryption scheme, wherein plaintext of the third column is inaccessible to the system;
- perform a privacy-preserving comparison of the first cryptographically protected data set and the second cryptographically protected data set to identify a joined cryptographically protected data set comprising a subset of the third column;
- compute an encrypted result of the subset of the third column according to the homomorphic encryption scheme;
- and
- provide the encrypted result to the second computing entity, wherein the second computing entity has access to a second cryptographic key usable to decrypt the encrypted result.
A computer-implemented method, comprising:
- at a third computing entity:
- obtaining, from a first computing entity, a first cryptographically protected data set comprising a first set generated based on cryptographic material shared between the first computing entity and a second computing entity;
- obtaining, from the second computing entity, a second cryptographically protected data set comprising:
- a second set generated based on the cryptographic material;
- and
- a plurality of encrypted data elements generated according to a homomorphic encryption scheme that correspond to the second set;
- performing a join, based on the first cryptographically protected data set and the second cryptographically protected data set, to identify a collection of one or more encrypted data elements;
- performing, according to the homomorphic encryption scheme, one or more privacy-preserving computations using the collection of one or more encrypted data elements;
- and
- providing an encrypted result of the one or more computations to the second computing entity.
A non-transitory computer-readable storage medium storing executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
- establish a first cryptographic secret with a second computer system;
- obtain a first data set comprising a plurality of rows of data elements;
- determine a cryptographically protected first data set by at least:
- cryptographically protecting a first portion of the first data set using the first cryptographic secret;
- and
- homomorphically encrypting a second portion of the first data set using a second cryptographic secret and according to a homomorphic encryption scheme;
- shuffling the plurality of rows;
- provide, to a third computer system and according to a multiparty computation (MPC) protocol, the cryptographically protected first data set to cause the third computer system to perform one or more privacy-preserving computations based on the first cryptographically protected data set and a second cryptographically protected data set generated by the second computer system, wherein:
- the second cryptographically protected data set is also generated based on the first cryptographic secret;
- and
- the third computer system lacks access to the first cryptographic secret;
- obtain an encrypted result of the one or more privacy-preserving computations performed based on the first cryptographically protected data set and the second cryptographically protected data set;
- and
- decrypt the encrypted result to obtain a plaintext result.
Dependencies are inferred from the claim text.