IP Library Granted Patent US 12,237,848
Granted Patent B2
US 12,237,848 · App. 18/503,135 · Granted Feb 25, 2025

System and method for encrypted data compression

Inventors: Joshua Cooper (Columbia, SC); Aliasghar Riahi (Orinda, CA); Mojgan Haddad (Orinda, CA); Ryan Kourosh Riahi (Orinda, CA); Razmin Riahi (Orinda, CA); 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,237,848
App. No.
18/503,135
Filed
Nov 6, 2023
Granted
Feb 25, 2025
Kind
B2
Art Unit
2136
USPC
707/693
Abstract

A system and method for encrypted data compression, which uses frequency analysis on data blocks within an input data stream to produce a prefix table, representing a first layer of transformation, and which applies a Burrow's-Wheeler transform (BWT) to the data inside the prefix table, representing a second layer of transformation, and which compresses the transformed data. In some implementations, the system and method may further include applying the BWT to a conditioned stream of genomic data, wherein the conditioned stream of data is accompanied by an error stream comprising the differences between the original data and the encrypted data.

Claims (56)

1. A system for encrypted data compression, comprising:

a computing device comprising a processor and a memory;

a stream conditioner comprising a plurality of programming instructions stored in the memory which, when operating on the processor, causes the computing device to:

receive an input data stream comprising a plurality of data blocks;

analyze the input data stream to:

determine real frequencies of data blocks within the input data stream;

identify data blocks whose real frequencies deviate from ideal frequencies by more than a configured conditioning threshold;

generate a conditioned data stream having the same length as the input data stream by:

applying a conditioning rule to the identified data blocks to generate conditioned data blocks;

using the remaining data blocks from the input data stream unchanged; and

arranging the conditioned data blocks and unchanged data blocks in positions corresponding to their original positions in the input data stream;

create an error stream through sequential XOR operations, wherein:

for each position in the input data stream:

performing, a logical XOR operation between the data block in the input data stream and the corresponding data block in the conditioned data stream wherein the XOR result at each position directly forms the corresponding position of the error stream, such that the error stream is composed of the sequential XOR results; and

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

2. The system of claim 1 , further comprising a stream analyzer comprising a second 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 meets or exceeds the configured threshold, send the input data stream to the stream conditioner.

3. The system of claim 2 , wherein the stream analyzer is further configured to:

analyze the frequency distribution of the plurality of data blocks within the input data stream to determine the most frequent bytes or strings of bytes that occur at the beginning of each of the plurality of data blocks;

designate the most-frequent bytes or strings of bytes as prefixes;

compile a prefix table based on the results of the frequency distribution, the prefix table comprising the designated prefixes and the block lengths; and

send the prefix table to a data transformer.

4. The system of claim 3 , further comprising the data transformer comprising a third plurality of programming instructions stored in the memory which, when operating on the processor, causes the computing device to:

receive the prefix table;

transform each of the plurality of prefixes within the prefix table by applying a Burrow's-Wheeler transform (BWT) and generating as output a plurality BWT-prefixes; and

send the plurality of BWT-prefixes as output.

5. The system of claim 3 , wherein each of the plurality of data blocks are k-mers of genomic data and the prefixes are one or more base pairs that occur at the beginning of each k-mer.

6. A method for encrypted data compression, comprising the steps of:

receiving, at a stream conditioner, an input data stream comprising a plurality of data blocks;

analyzing the input data stream to:

determine real frequencies of data blocks within the input data stream;

identify data blocks whose real frequencies deviate from ideal frequencies by more than a configured conditioning threshold;

generating a conditioned data stream having the same length as the input data stream by:

applying a conditioning rule to the data blocks to generate conditioned data blocks;

using the remaining data blocks from the input data stream unchanged;

arranging the conditioned data blocks and unchanged data blocks in positions corresponding to their original positions in the input data stream;

creating an error stream through sequential XOR operations, wherein:

for each position in the input data stream:

performing, a logical XOR operation between the data block in the input data stream and the corresponding data block in the conditioned data stream, wherein the XOR result at each position directly forms the corresponding position of the error stream, such that the error stream is composted of the sequential XOR results; and

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

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

receiving, at a stream analyzer, 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 meets or exceeds the configured threshold, sending the input data stream to the stream conditioner.

8. The method of claim 7 , further comprising the steps of:

analyzing the frequency distribution of the plurality of data blocks within the input data stream to determine the most frequent bytes or strings of bytes that occur at the beginning of each of the plurality of data blocks;

designating the most-frequent bytes or strings of bytes as prefixes;

compiling a prefix table based on the results of the frequency distribution, the prefix table comprising the designated prefixes and the block lengths; and

sending the prefix table to a data transformer.

9. The method of claim 7 , further comprising the steps of:

receiving the prefix table using the data transformer;

transforming each of the plurality of prefixes within the prefix table by applying a Burrow's-Wheeler transform (BWT) and generating as output a plurality BWT-prefixes using the data transformer; and

sending the plurality of BWT-prefixes as output using the data transformer.

10. The method of claim 7 , wherein each of the plurality of data blocks are k-mers of genomic data and the prefixes are one or more base pairs that occur at the beginning of each k-mer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2024
From: COOPER, JOSHUA; RIAHI, ALIASGHAR; HADDAD, MOJGAN; RIAHI, RYAN KOUROSH; RIAHI, RAZMIN; YEOMANS, CHARLES
To: ATOMBEAM TECHNOLOGIES INC.
Reel/Frame 068994/0497 →
Continuity (25)
Continuation 18305305 · Apr 21, 2023
Continuation In Part 18190044 · Mar 24, 2023
Continuation In Part 17875201 · Jul 27, 2022
Continuation In Part 17727913 · Apr 25, 2022
Continuation 17514913 · Oct 29, 2021
Continuation 17458747 · Aug 27, 2021
Continuation 17404699 · Aug 17, 2021
Continuation In Part 17404699 · Aug 17, 2021
Continuation In Part 17234007 · Apr 19, 2021
Continuation In Part 17180439 · Feb 19, 2021
Continuation In Part 16923039 · Jul 7, 2020
Continuation In Part 16923039 · Jul 7, 2020
Continuation In Part 16716098 · Dec 16, 2019
Continuation 16455655 · Jun 27, 2019
Continuation In Part 16455655 · Jun 27, 2019
Continuation In Part 16200466 · Nov 26, 2018
Continuation In Part 15975741 · May 9, 2018
Provisional Application 63485518 · Feb 16, 2023
Provisional Application 63388411 · Jul 12, 2022
Provisional Application 63232041 · Aug 11, 2021
Provisional Application 63140111 · Jan 21, 2021
Provisional Application 63027166 · May 19, 2020
Provisional Application 62926723 · Oct 28, 2019
Provisional Application 62578824 · Oct 30, 2017
Related Publication 20240072825A1 · Feb 29, 2024
References Cited (7)
US 9524392B2 · Naehrig et al. · 2016 [cited by applicant]
US 20160006453A1 · Jalali · 2016 [cited by examiner]
US 20160179588A1 · Raman · 2016 [cited by examiner]
US 20180196609A1 · Niesen · 2018 [cited by applicant]
US 20200249990A1 · Barsness · 2020 [cited by examiner]
US 20200395955A1 · Choi et al. · 2020 [cited by applicant]
US 20220043778A1 · Cooper · 2022 [cited by examiner]