IP Library › Granted Patent US 12,040,820
Granted Patent B2
US 12,040,820 · App. 18/522,178 · Granted Jul 16, 2024

System and method for data compression with homomorphic encryption

Inventors: Joshua Cooper (Columbia, SC); Charles Yeomans (Orinda, CA)
Assignee: ATOMBEAM TECHNOLOGIES INC.
H03M7/3059G06N20/00H03M7/6005
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 12,040,820
App. No.
18/522,178
Filed
Nov 28, 2023
Granted
Jul 16, 2024
Kind
B2
Art Unit
2845
USPC
707/693
Abstract

A system and method for data compression with homomorphic encryption, which enables secure storage of private information in a database, and which enables searching and comparison of encrypted data within the database, comprising a stream condition system configured to optimize the contents of received data for lossless compression by a data encoder, a data encoder to perform the lossless compression, and an encrypted search engine configured to encrypt the compressed data according to a homomorphic encryption scheme and store the encrypted data in a database. The system may receive a data query and encrypt the data query according to the homomorphic encryption scheme. The encrypted data query may be compared against an encrypted element in the database and an encryption score generated. The encryption score may be compared against a set of criteria to determine if a match is found. Matched data may be returned to the requesting entity.

Claims (67)

1. A system for searching compressed and encrypted data, comprising:

a computing device comprising a processor and a memory;

a data deconstruction engine comprising a first plurality of programming instructions stored in the memory which, when operating on the processor, causes the computing device to:

receive a conditioned data stream comprising a plurality of data blocks;

compress the conditioned data stream using a codebook; and

send the compressed data to an encrypted search engine; and

an encrypted search engine comprising a second plurality of programming instructions stored in the memory which, when operating on the processor, causes the computing device to:

receive the compressed data;

encrypt the compressed data using homomorphic encryption;

store the encrypted compressed data in database;

receive a data query, the data query comprising one or more selected data blocks;

produce an encrypted query by encrypting the one or more selected data blocks;

determine if the encrypted compressed data in the database comprises matching encrypted data with the encrypted query by:

retrieve an encrypted, compressed data block from the database;

determine an encryption value between the encrypted query and the retrieved encrypted, compressed data block by performing an intersection computation on the encrypted query and the retrieved encrypted, compressed data block;

compare the encryption value against a predetermined threshold value, wherein if the encryption value surpasses the predetermined threshold value, then the retrieved encrypted, compressed data block and the encrypted query comprise matching data;

record each encrypted, compressed data block which is determined to be a match in a list.

2. The system of claim 1 , wherein the homomorphic encryption is fully homomorphic encryption.

3. The system of claim 1 , wherein the homomorphic encryption is partially homomorphic encryption.

4. The system of claim 1 , wherein the homomorphic encryption is the Brakerski-Gentry-Vaikuntanathan (BGV) scheme.

5. The system of claim 1 , wherein the intersection computation comprises one or more addition steps, one or more multiplication steps, or some combination thereof.

6. The system of claim 1 , further comprising a stream analyzer comprising a third plurality of programming instructions stored in the memory which, when operating on the processor, causes the computing device to:

receive an input data stream;

analyze the frequency distribution of a plurality of data blocks within the input data stream to determine whether the input data stream meets a configured threshold for data conditioning; and

if the input data stream fails to meet the configured threshold, send the input data stream to a stream conditioner.

7. The system of claim 6 , further comprising the stream conditioner comprising a fourth plurality of programming instructions stored in the memory which, when operating on the processor, causes the computing device to:

receive the input data stream from the stream analyzer;

produce the conditioned data stream and an error stream by, for each of a plurality of data blocks within the data stream:

analyzing the data block within the data stream to compare the data block's real frequency within the data stream against an ideal frequency;

if the difference between the data block's real frequency and ideal frequency exceeds a configured conditioning threshold, applying a conditioning rule to the data block;

applying a logical XOR operation to the data block;

appending the output of the logical XOR operation to the error stream;

send the conditioned data stream and the error stream as output.

8. The system of claim 1 , wherein the list of matched encrypted, compressed blocks is decrypted and sent to a data reconstruction engine wherein the decrypted compressed blocks may be decompressed.

9. The system of claim 8 , wherein the decompressed blocks are returned to the entity which generated the data query.

10. A method for searching compressed and encrypted data, comprising the steps of:

receiving a conditioned data stream comprising a plurality of data blocks;

compressing the conditioned data stream using a codebook;

sending the compressed data to an encrypted search engine;

receiving the compressed data;

encrypting the compressed data using homomorphic encryption;

storing the encrypted compressed data in database;

receiving a data query, the data query comprising one or more selected data blocks;

producing an encrypted query by encrypting the one or more selected data blocks;

determining if the encrypted compressed data in the database comprises matching encrypted data with the encrypted query by:

retrieving an encrypted, compressed data block from the database;

determining an encryption value between the encrypted query and the retrieved encrypted, compressed data block by performing an intersection computation on the encrypted query and the retrieved encrypted, compressed data block;

comparing the encryption value against a predetermined threshold value, wherein if the encryption value surpasses the predetermined threshold value, then the retrieved encrypted, compressed data block and the encrypted query comprise matching data;

recording each encrypted, compressed data block which is determined to be a match in a list.

11. The method of claim 1 , wherein the homomorphic encryption is fully homomorphic encryption.

12. The method of claim 1 , wherein the homomorphic encryption is partially homomorphic encryption.

13. The method of claim 1 , wherein the homomorphic encryption is the Brakerski-Gentry-Vaikuntanathan (BGV) scheme.

14. The method of claim 1 , wherein the intersection computation comprises one or more addition steps, one or more multiplication steps, or some combination thereof.

15. The method of claim 1 , further comprising the steps of:

receiving an input data stream;

analyzing the frequency distribution of a plurality of data blocks within the input data stream to determine whether the input data stream meets a configured threshold for data conditioning; and

if the input data stream fails to meet the configured threshold, sending the input data stream to a stream conditioner.

16. The method of claim 6 , further comprising the steps of:

receiving the input data stream from the stream analyzer;

producing the conditioned data stream and an error stream by, for each of a plurality of data blocks within the data stream:

analyzing the data block within the data stream to compare the data block's real frequency within the data stream against an ideal frequency;

if the difference between the data block's real frequency and ideal frequency exceeds a configured conditioning threshold, applying a conditioning rule to the data block;

applying a logical XOR operation to the data block;

appending the output of the logical XOR operation to the error stream;

sending the conditioned data stream and the error stream as output.

17. The method of claim 1 , wherein the list of matched encrypted, compressed blocks is decrypted and sent to a data reconstruction engine wherein the decrypted compressed blocks may be decompressed.

18. The method of claim 8 , wherein the decompressed blocks are returned to the entity which generated the data query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2024
From: COOPER, JOSHUA; YEOMANS, CHARLES
To: ATOMBEAM TECHNOLOGIES INC.
Reel/Frame 067523/0994 →
Continuity (18)
Continuation In Part 18190044 · Mar 24, 2023
Continuation In Part 17875201 · Jul 27, 2022
Continuation 17514913 · Oct 29, 2021
Continuation In Part 17404699 · Aug 17, 2021
Continuation In Part 16455655 · Jun 27, 2019
Continuation In Part 16200466 · Nov 26, 2018
Continuation In Part 15975741 · May 9, 2018
Continuation 17458747 · Aug 27, 2021
Continuation In Part 16923039 · Jul 7, 2020
Continuation In Part 16716098 · Dec 16, 2019
Continuation 16455655 · Jun 27, 2019
Continuation In Part 17727913 · Apr 25, 2022
Continuation 17404699 · Aug 17, 2021
Provisional Application 63388411 · Jul 12, 2022
Provisional Application 63027166 · May 19, 2020
Provisional Application 62926723 · Oct 28, 2019
Provisional Application 62578824 · Oct 30, 2017
Related Publication 20240113729A1 · Apr 4, 2024
Cited By (3)
US 12,200,102 US 12,574,207 US 12,712,706