IP Library Granted Patent US 11,615,202
Granted Patent B2
US 11,615,202 · App. 17/126,379 · Granted Mar 28, 2023

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 11,615,202
App. No.
17/126,379
Granted
Mar 28, 2023
Kind
B2
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 (31)

1. A computer-implemented method of creating a re-generatable encryption key for a database table column comprising:

(a) ordering all the data that a user can input into the database table column into sorted order on a client computer to form sorted data,

(b) dividing the sorted data into sequential non-overlapping intervals on the client computer,

(c) using or creating a deterministic pseudo-random number generator that creates a specific sequence of values when initialized with a specific numeric seed value,

(d) for every non-overlapping interval into which the database table column was divided, using or converting, according to a deterministic formula, the starting value of the interval into a numeric seed value to be used for the pseudo-random number generator,

(e) initializing the pseudo-random number generator with the numeric seed value so that it generates the deterministic sequence of values for the non-overlapping interval,

(f) based on the generated sequence of values, placing every original data element of the interval into one of two or more overlapping groups,

(g) again ordering all the data that a user can input into the database table column into sorted order on a client computer to form a second sorted data,

(h) separating the second sorted data into the same number of two or more original overlapping groups as the number of groups as when handling the non-overlapping intervals, but the groups of the second sorted do not overlap,

(i) assign the separated non-overlapping groups to the overlapping groups as the encrypted data for the data in the overlapping groups,

(j) for each interval, recording the starting non-encrypted value of each overlapping group, the starting encrypted value of the corresponding non-overlapping group, and the numeric seed value used to create the deterministic sequence of values to be used by the pseudo-random number generator,

(k) storing the re-generatable encryption key on the client computer

wherein the re-generatable encryption key is the collection of non-encrypted and encrypted values and the numeric seed values for all the intervals.

2. A computer-implemented method of regenerating parts of a re-generatable encryption key to encrypt values using the key comprising:

(a) obtaining the original non-encrypted value that needs encryption,

(b) searching through all the non-overlapping intervals in the re-generatable encryption key to find the interval numeric seed value compared to which the original non-encrypted value is equal to or greater than, while the original non-encrypted value is also equal to or less than the numeric seed value in the next interval if it is not at the end of the interval list,

(c) using a deterministic pseudo-random number generator that creates a specific sequence of values when initialized with a specific numeric seed value,

(d) using the numeric seed value from the identified interval as recorded in the re-generable encryption key to initialize the pseudo-random number generator,

(e) copying the initial non-encrypted and encrypted values for each of the two or more groups from the re-generatable encryption key in preparation for regenerating that interval of the re-generable encryption key,

(f) generating a deterministic sequence of values from the pseudo-random number generator that assigns each non-encrypted value in the interval to one of two or more groups and creates the encrypted value of the non-encrypted value as the initial encrypted value that had been set up initially for that group if the non-encrypted value is the first value that is being processed in the interval, or the encrypted value is obtained as the next lexical value in the list of the encrypted values that had been built up for that group if the non-encrypted value that is being processed is any other value except the first value in the interval,

(g) placing, once the non-encrypted value in the interval equaling the original non-encrypted value is reached, the non-encrypted value into its group based on the deterministic value generated by the pseudo-random number generator, and the next encrypted value for that group is assigned to the non-encrypted value as the encrypted value of the non-encrypted value,

(h) outputting the encrypted value as the encrypted value of the original non-encrypted value.

3. A computer-implemented method of regenerating parts of a re-generatable encryption key to decrypt values using the key comprising:

(a) obtaining the original encrypted value that needs decryption,

(b) searching, for each interval in the re-generatable encryption key, through each of the two or more groups present in that interval, and determining if compared to the starting encrypted value for a given group the original encrypted value is equal to or greater than it, while the original encrypted value is also equal to or less than the encrypted value in the same group in the next interval if it is not the end of the interval list,

(c) using a deterministic pseudo-random number generator that creates a specific sequence of values when initialized with a specific numeric seed value,

(d) using the numeric seed value from the identified interval as recorded in the regenerable encryption key to initialize the pseudo-random number generator,

(e) copying the initial non-encrypted and encrypted values for each of the two or more groups from the re-generatable encryption key in preparation for regenerating that interval of the re-generable encryption key,

(f) generating a deterministic sequence of values from the pseudo-random number generator that assigns each non-encrypted value in the interval to one of two or more groups and creates the encrypted value of the non-encrypted value as the initial encrypted value that had been set up initially for that group if the non-encrypted value is the first value that is being processed in the interval, or the encrypted value is obtained as the next lexical value in the list of the encrypted values that had been built up for that group if the non-encrypted value that is being processed is any other value except the first value in the interval,

(g) obtaining, once the encrypted value in the interval that equals the original encrypted value is reached, the non-encrypted value for it by accessing the non-encrypted value assigned to it from the list in its group,

(h) outputting the non-encrypted value as the non-encrypted value of the original encrypted value.

Continuity (8)
Division 15947796 · Apr 7, 2018
Continuation In Part 15249249 · Aug 26, 2016
Continuation In Part 14277056 · May 14, 2014
Continuation In Part 14093499 · Dec 1, 2013
Continuation In Part 13090803 · Apr 20, 2011
Provisional Application 61326405 · Apr 21, 2010
Provisional Application 61823350 · May 14, 2013
Related Publication 20210357521A1 · Nov 18, 2021