IP Library Granted Patent US 10,903,976
Granted Patent B2
US 10,903,976 · App. 15/875,914 · Granted Jan 26, 2021

End-to-end secure operations using a query matrix

Inventors: Ellison Anne Williams (Fulton, MD); Ryan Carr (Fulton, MD)
Assignee: Enveil, Inc.
H04L9/008G06F16/254G06F16/3344G06F17/16G06F21/6218G06F40/30G09C1/00H04L9/0643H04L9/0861H04L9/14H04L9/30H04L9/302H04L9/3242H04L63/0435G06F21/30G06F40/211G06F40/253G06F40/284G06F40/295G06N3/04G06N3/08G06N7/08H04L2209/04H04L2209/12
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 10,903,976
App. No.
15/875,914
Granted
Jan 26, 2021
Kind
B2
Abstract

Systems and methods for an end-to-end secure operation using a query matrix Q_M having dimensions d×s. Exemplary methods include: extracting a set of term components {T} of the operation using a term generation function; partitioning a range of a keyed hash function H(T) into a set of vectors {c_T}; setting Q_M (j,m)=E(B_j,m) when c_T[j]=m for j=0, . . . , (d−1) and for m=0, . . . , (s−1), E(B_j,m) being a non-zero bitmask corresponding to element T from the set of term components {T} encrypted using a homomorphic encryption scheme E; and setting Q_M (j,m)=E(0) when c_T[j]≠m for j=0, . . . , (d−1) and for m=0, . . . , (s−1), E(0) being a zero bitmask encrypted using the homomorphic encryption scheme E.

Claims (54)

1. A computer implemented method for an end-to-end secure operation over a communications link using a query matrix Q_M having dimensions d×s, comprising:

extracting, by a processor associated with a client, from a query, a set of term components {T} of the operation using a term generation function, the set of term components {T} corresponding to elements in a target data source, the target data source being associated with a server;

partitioning, by the processor, a range of a keyed hash function H(T) into a set of vectors {c_T}, where C(H(T))={c_T: c_T being a d-dimensional vector partitioning the range of the keyed hash function H(T) into d-many bitwise components}, such that |C(H(T))|=|H(T)|=|{T}|; and

encrypting, by the processor, the query by constructing, based on the query, the query matrix Q_M by:

setting Q_M (j,m)=E(B_j,m) when c_T[j]=m for j=0, . . . , (d−1) and for m=0, . . . , (s−1), E(B_j,m) being a homomorphic encryption scheme E and B j,m being a non-zero bitmask chosen for entry j,m in Q_M (j,m) corresponding to element T from the set of term components {T}; and

setting Q_M (j,m)=E(0) when c_T[j]≠m for j=0, . . . , (d−1) and for m=0, . . . , (s−1), E(0) being a zero bitmask encrypted using the homomorphic encryption scheme E;

the query matrix Q_M being provided to the server over the communications link to be run, by the server, over the target data source.

2. The method of claim 1 , further comprising:

receiving the operation;

providing the query matrix Q_M, the term generation function, and the keyed hash function to a server, the server:

including a target data source;

extracting the set of term components {T} from the target data source using the term generation function; and

applying the query matrix Q_M over the set of term components {T} to produce encrypted result E(R); and

decrypting encrypted result E(R) using a decryption key to produce result R.

3. The method of claim 1 , wherein the target data source is at least one of: unencrypted, deterministically encrypted, and semantically encrypted.

4. The method of claim 1 , further comprising:

decrypting result R using another key when the target data source is encrypted, the another key being associated with an encryption method used to encrypt the target data source.

5. The method of claim 1 , wherein the homomorphic encryption scheme E is partially homomorphic.

6. The method of claim 5 , wherein the homomorphic encryption scheme E is at least one of RSA, ElGamal, and Paillier cryptosystems.

7. The method of claim 1 , wherein the homomorphic encryption scheme E is fully homomorphic.

8. The method of claim 7 , wherein the homomorphic encryption scheme E is at least one of Brakerski-Gentry-Vaikuntanathan, Brakerski's scale-invariant, NTRU- based, and Gentry-Sahai-Waters (GSW) cryptosystems.

9. The method of claim 1 , wherein the server comprises multiple instances of one or more of a hardware sever, virtual machine, and container, each instance of the multiple instances including a subset of the target data source.

10. The method of claim 1 , further comprising:

authenticating the operation.

11. A system for an end-to-end secure operation over a communications link using a query matrix Q_M having dimensions d×s, comprising:

a client:

extracting, by a hardware processor associated with the client, from a query, a set of term components {T} of the operation using a term generation function, the set of term components {T} corresponding to elements in a target data source, the target data source being associated with a server;

partitioning, by the processor, a range of a keyed hash function H(T) into a set of vectors {c_T}, where C(H(T))={c_T: c_T being a d-dimensional vector partitioning the range of the keyed hash function H(T) into d-many bitwise components}, such that |C(H(T))|=|H(T)|=|{T}|; and

encrypting, by the processor, the query by constructing, based on the query, the query matrix Q_M by:

setting Q_M (j,m)=E(B_j,m) when c_T[j]=m for j=0, . . . , (d−1) and for m=0, . . . , (s−1), E(B_j,m) being a homomorphic encryption scheme E and B j,m being a non-zero bitmask chosen for entry j,m in Q_M (j,m) corresponding to element T from the set of term components {T}; and

setting Q_M (j,m)=E(0) when c_T[j]≠m for j=0, . . . , (d−1) and for m=0, . . . , (s−1), E(0) being a zero bitmask encrypted using the homomorphic encryption scheme E;

the query matrix Q_M being provided to the server over the communications link to be run, by the server, over the target data source.

12. The system of claim 11 , wherein the client further:

receives the operation;

provides the query matrix Q_M, the term generation function, and the keyed hash function to a server; and

decrypts encrypted result E(R) using a decryption key to produce result R; and the system further comprises:

the server including a target data source, the server:

extracting the set of term components {T} from the target data source using the term generation function; and

applying the query matrix Q_M over the set of term components {T} to produce the encrypted result E(R).

13. The system of claim 11 , wherein the target data source is at least one of: unencrypted, deterministically encrypted, and semantically encrypted.

14. The system of claim 11 , wherein the client further:

decrypts result R using another key when the target data source is encrypted, the another key being associated with an encryption method used to encrypt the target data source.

15. The system of claim 11 , wherein the homomorphic encryption scheme E is partially homomorphic.

16. The system of claim 15 , wherein the homomorphic encryption scheme E is at least one of RSA, ElGamal, and Paillier cryptosystems.

17. The system of claim 11 , wherein the homomorphic encryption scheme E is fully homomorphic.

18. The system of claim 17 , wherein the homomorphic encryption scheme E is at least one of Brakerski-Gentry-Vaikuntanathan, Brakerski's scale-invariant, NTRU-based, and Gentry-Sahai-Waters (GSW) cryptosystems.

19. The system of claim 11 , wherein the server comprises multiple instances of one or more of a hardware sever, virtual machine, and container, each instance of the multiple instances including a subset of the target data source.

20. A system for an end-to-end secure operation over a communications link using a query matrix Q_M having dimensions d×s, comprising computer instructions stored in a computer memory to perform a method comprising:

extracting, by a processor associated with a client, from a query, a set of term components {T} of the operation using a term generation function, the set of term components {T} corresponding to elements in a target data source, the target data source being associated with a server; and

partitioning, by the processor, a range of a keyed hash function H(T) into a set of vectors {c_T}, where C(H(T))={c_T: c_T being a d-dimensional vector partitioning the range of the keyed hash function H(T) into d-many bitwise components}, such that |C(H(T))|=|H(T)|=|{T}|;

encrypting, by the processor, the query by constructing, based on the query, the query matrix Q_M by:

setting Q_M (j,m)=E(B_j,m) when c_T[j]=m for j=0, . . . , (d−1) and for m=0, . . . , (s−1), E(B_j,m) being a homomorphic encryption scheme E and B j,m being a non-zero bitmask for entry j,m in Q_M (j,m) corresponding to element T from the set of term components {T}; and

setting Q_M (j,m)=E(0) when c_T[j]≠m for j=0, . . . , (d−1) and for m=0, . . . , (s−1), E(0) being a zero bitmask encrypted using the homomorphic encryption scheme E;

the query matrix Q_M being provided to the server over the communications link to be run, by the server, over the target data source.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2018
From: WILLIAMS, ELLISON ANNE; CARR, RYAN
To: ENVEIL, INC.
Reel/Frame 045860/0192 →
Continuity (14)
Provisional Application 62448890 · Jan 20, 2017
Provisional Application 62448918 · Jan 20, 2017
Provisional Application 62448893 · Jan 20, 2017
Provisional Application 62448906 · Jan 20, 2017
Provisional Application 62448908 · Jan 20, 2017
Provisional Application 62448913 · Jan 20, 2017
Provisional Application 62448916 · Jan 20, 2017
Provisional Application 62448883 · Jan 20, 2017
Provisional Application 62448885 · Jan 20, 2017
Provisional Application 62448902 · Jan 20, 2017
Provisional Application 62448896 · Jan 20, 2017
Provisional Application 62448899 · Jan 20, 2017
Provisional Application 62462818 · Feb 23, 2017
Related Publication 20180212751A1 · Jul 26, 2018
Cited By (2)
US 12,250,291 US 12,309,127