IP Library Granted Patent US 10,936,744
Granted Patent B1
US 10,936,744 · App. 15/947,796 · Granted Mar 2, 2021

Mathematical method for performing homomorphic operations

Inventors: Stanley Trepetin (Hoboken, NJ); Mark Reston (Hillsborough, NJ)
G06F21/6227G06F21/6254H04L9/002H04L9/0894G06F2221/2107H04L2209/42H04L2209/60
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,936,744
App. No.
15/947,796
Granted
Mar 2, 2021
Kind
B1
Abstract

The present invention relates generally to a system and method of querying an anonymized database. More particularly, the invention provides a method and system for querying an anonymized database without the need to decrypt queried data while it's processed. Even more specifically, the invention provides a method and system of anonymizing a database such that it may be queried efficiently in near real time while still retaining the ability to not decrypt requested data while it's being processed.

Claims (37)

1. A computer-implemented method of anonymizing one or more database table columns and querying them comprising:

(a) anonymizing one or more database table columns on a server computer,

(b) generating a query on a client computer,

(c) encrypting the query on the client computer to form an encrypted query,

(d) transmitting the encrypted query to the server computer,

(e) executing the encrypted query on one or more anonymized database table columns on the server computer to produce an encrypted result,

(f) returning the encrypted result to the client computer,

(g) decrypting the encrypted result at the client computer to produce a decrypted result and presenting the decrypted result to the user

wherein anonymizing one or more database table columns is accomplished such that for each database table column, the column is separated into two or more groups which overlap and the two or more groups are anonymized.

2. The method of claim 1 wherein the one or more database table columns are anonymized by a method which preserves the sorting order of the original data elements in each formed group within each column.

3. The method of claim 1 wherein the one or more database table columns are anonymized by a method which anonymizes data elements of longer length by re-using one or more encryption keys for data elements of shorter length.

4. The method of claim 1 wherein the one or more database table columns are anonymized by a method which preserves the data type of each column.

5. The method of claim 1 wherein one or more database table columns are anonymized, such that for each column the data length of each anonymized data element in the column is restricted to be between a length of one and the maximum length of all possible original data elements that could be stored in that column.

6. The method of claim 1 wherein the server computer is the client computer and all activities described as happening on the server computer happen on the client computer.

7. A computer-implemented method of using a re-generated encryption key for anonymizing one or more database table columns and querying them comprising:

(a) anonymizing one or more database table columns on a server computer,

(b) storing parts of the encryption key associated with the anonymization on the client computer,

(c) generating a query on the client computer,

(d) encrypting the query on the client computer to form an encrypted query,

(e) transmitting the encrypted query to the server computer,

(f) executing the encrypted query on one or more database table columns on the server computer to produce an encrypted result,

(g) returning the encrypted result to the client computer,

(h) decrypting the encrypted result at the client computer to produce a decrypted result and presenting the decrypted result to the user

wherein the encryption and decryption are accomplished by using parts of the encryption key which are re-generated as required.

8. The method of claim 7 wherein the server computer is the client computer and all activities described as happening on the server computer happen on the client computer.

9. A computer-implemented method of creating an encryption key on a database table column, encrypting one or more data elements of said column with said key, sending the encrypted data to be stored in a server computer, and querying said server computer comprising:

(a) creating an encryption key for a database table column on a client computer,

(b) encrypting one or more data elements of said column on the client computer to form encrypted data,

(c) transmitting encrypted data to a server computer so that it can be stored on the server computer,

(d) generating a query on the client computer,

(e) encrypting the query on the client computer to form an encrypted query,

(f) transmitting the encrypted query to the server computer,

(g) operating on the encrypted query at the server computer to produce an encrypted result,

(h) returning the encrypted result to the client computer,

(i) decrypting the encrypted result at the client computer to produce a decrypted result and presenting the decrypted result to the user

wherein creating the encryption key is accomplished by creating two or more overlapping groups over all possible original data in the database table column, anonymizing the two or more groups, and recording the parameters of the anonymization as the encryption key.

10. The method of claim 9 wherein the server computer is the client computer and all activities described as happening on the server computer happen on the client computer.

Continuity (6)
Continuation In Part 15249249 · Aug 26, 2016
Continuation In Part 14277056 · May 14, 2014
Continuation In Part 14093499 · Dec 1, 2013
Continuation 13090803 · Apr 20, 2011
Provisional Application 61326405 · Apr 21, 2010
Provisional Application 61823350 · May 14, 2013
Cited By (25)
US 12,189,822 US 12,250,310 US 12,261,952 US 12,267,396 US 12,284,512 US 12,309,272 US 12,335,399 US 12,341,790 US 12,353,599 US 12,395,353 US 12,425,230 US 12,438,731 US 12,443,700 US 12,445,305 US 12,499,201 US 12,538,123 US 12,554,885 US 12,566,727 US 12,580,746 US 12,587,371 US 12,602,352 US 12,608,507 US 12,632,586 US 12,645,836 US 12,670,186