Secure analytics using homomorphic encryption
First Claim
1. A method for performing a secure analysis using homomorphic encryption, the method comprising:
- receiving, from a client, by at least one server, at least one analytic vector, the at least one analytic vector being encrypted using a homomorphic encryption scheme, a term generation function, and a keyed hash function, wherein the homomorphic encryption scheme includes a public key for encryption and a private key for decryption;
extracting, by the at least one server, a set of term components from a data set using the term generation function and the keyed hashed function;
evaluating, by the at least one server, the at least one analytic vector over the set of term components to obtain at least one encrypted result; and
sending, by the at least one server, the at least one encrypted result to the client, wherein the client is configured to decrypt the at least one encrypted result using the homomorphic encryption scheme,wherein the at least one analytic vector is generated based on an analytic and at least one parameter associated with the analytic; and
wherein the generation of the at least one analytic vector includes;
extracting, using the term generation function, a set of term elements from the analytic and the at least one analytic parameter;
generating, using the keyed hash function, a set of hashes from the set of the term elements;
determining whether an index of at least one element of the at least one analytical vector is present in the set of hashes;
if the index is present in the set of hashes, assigning the at least one element to a non-zero value; and
if the index is not present in the set of hashes, assigning the at least one element a zero value.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are methods and systems for performing a secure analytic over a data source. An example method includes acquiring, by a client, an analytic, at least one analytic parameter associated with the analytic, and an encryption scheme. The encryption scheme can include a public key for encryption and a private key for decryption. The method further includes generating, using the encryption scheme, at least one analytical vector based on the analytic and analytic parameter, and sending the analytical vector and the encryption scheme to at least one server. The method includes extracting, by the at least one server based on the encryption scheme, a set of terms from a data set, and evaluating the analytical vector over the set of terms to obtain an encrypted result. The method further includes sending, by the server, the encrypted result and the error to the client where the encrypted result is decrypted.
-
Citations
16 Claims
-
1. A method for performing a secure analysis using homomorphic encryption, the method comprising:
-
receiving, from a client, by at least one server, at least one analytic vector, the at least one analytic vector being encrypted using a homomorphic encryption scheme, a term generation function, and a keyed hash function, wherein the homomorphic encryption scheme includes a public key for encryption and a private key for decryption; extracting, by the at least one server, a set of term components from a data set using the term generation function and the keyed hashed function; evaluating, by the at least one server, the at least one analytic vector over the set of term components to obtain at least one encrypted result; and sending, by the at least one server, the at least one encrypted result to the client, wherein the client is configured to decrypt the at least one encrypted result using the homomorphic encryption scheme, wherein the at least one analytic vector is generated based on an analytic and at least one parameter associated with the analytic; and wherein the generation of the at least one analytic vector includes; extracting, using the term generation function, a set of term elements from the analytic and the at least one analytic parameter; generating, using the keyed hash function, a set of hashes from the set of the term elements; determining whether an index of at least one element of the at least one analytical vector is present in the set of hashes; if the index is present in the set of hashes, assigning the at least one element to a non-zero value; and if the index is not present in the set of hashes, assigning the at least one element a zero value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for performing a secure analysis using homomorphic encryption, the system comprising:
-
at least one processor; and a memory communicatively coupled with the at least one processor, the memory storing instructions, which when executed by the at least one processor perform a method comprising; receiving, from a client, at least one analytic vector, the at least one analytic vector being encrypted using a homomorphic encryption scheme, a term generation function, and a keyed hash function, wherein the homomorphic encryption scheme includes a public key for encryption and a private key for decryption; extracting, by at least one server, a set of term components from a data set using the term generation function and the keyed hashed function; evaluating the at least one analytic vector over the set of term components to obtain at least one encrypted result; and sending the at least one encrypted result to the client, wherein the client is configured to decrypt the at least one encrypted result using the homomorphic encryption scheme, wherein the client is configured to generate the at least one analytic vector based on an analytic and at least one parameter associated with the analytic; and wherein the generation of the at least one analytic vector includes; extracting, using the term generation function, a set of term elements from the analytic and the at least one analytic parameter; generating, using the keyed hash function, a set of hashes from the set of the term elements; determining whether an index of at least one element of the at least one analytical vector is present in the set of hashes; if the index is present in the set of hashes, assigning the at least one element a non-zero value; and if the index is not present in the set of hashes, assigning the at least one element a zero value. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-readable storage medium having embodied thereon instructions, which when executed by at least one processor, perform steps of a method, the method comprising:
-
receiving, by at least one server from a client, at least one analytic vector, the at least one analytic vector being encrypted using a homomorphic encryption scheme, a term generation function, and a keyed hash function, wherein the homomorphic encryption scheme including a public key for encryption and a private key for decryption; extracting, by the at least one server, a set of term components from a data set using the term generation function and the keyed hashed function; evaluating, by the at least one server, the at least one analytic vector over the set of term components to obtain at least one encrypted result; and sending, by the at least one server, the at least one encrypted result to the client, wherein the client is configured to decrypt the at least one encrypted result using the homomorphic encryption scheme, wherein the at least one analytic vector is generated based on an analytic and at least one parameter associated with the analytic; and wherein the generation of the at least one analytic vector includes; extracting, using the term generation function, a set of term elements from the analytic and the at least one analytic parameter; generating, using the keyed hash function, a set of hashes from the set of the term elements; determining whether an index of at least one element of the at least one analytical vector is present in the set of hashes; if the index is present in the set of hashes, assigning the at least one element to a non-zero value; and if the index is not present in the set of hashes, assigning the at least one element a zero value.
-
Specification