IP Library Granted Patent US 8,886,926
Granted Patent B2
US 8,886,926 · App. 13/671,351 · Granted Nov 11, 2014

Single-pass data compression and encryption

Inventors: Luis Gerardo Paris (Hershey, PA); Michael Patrick Mackey (Lake Stevens, WA)
Assignee: Centri Technology, Inc.
H04L9/0637H04L2209/30
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 8,886,926
App. No.
13/671,351
Granted
Nov 11, 2014
Kind
B2
Abstract

Embodiments compress and encrypt data in a single pass to reduce inefficiencies that occur from compression and encrypting data separately. Typically, compression and encryption are implemented in separate functional units. This has a few disadvantages: 1) encryption cannot make use of compression state to further secure the message, 2) processed data is read and written twice, 3) additional space, time, and resources are consumed, and 4) it is more prone to potential cipher-attacks since the encryption stage is independent from compression. Embodiments overcome these disadvantages by structuring these operations so that both compression and encryption is executed within the same processing loop. Thus: 1) encryption is stronger due to the dependence on the compression state, 2) I/O buffers are accessed only once reducing overhead, 3) system footprint is reduced, and 4) cipher analysis is more complex since the decryption process cannot be separated from the decompression process.

Claims (60)

1. A method for communicating data over a network with a network device that is operative to perform actions, comprising:

responsive to receiving data that includes plain text data, performing further actions in a single pass through the received data, including:

employing at least one received cryptographic key to generate a key stream, wherein the key stream is employed to generate a first code book;

generating at least one data block from at least a portion of the received plain text data;

compressing the at least one data block using at least one compression component that stores at least compressed plain text data in a cache memory, wherein a second code book is dynamically generated based on at least a portion of the compressed plain text data stored in the cache memory during compression of the data block;

employing at least one cryptographic component to encrypt the at least one compressed data block based on at least the first and second code books; and

generating at least one cipher text block based on the at least one encrypted data block; and

communicating the at least one cipher text block over the network to at least one other network device.

2. The method of claim 1 , wherein receiving data that includes plain text data further comprises, receiving a data stream that continuously provides plain text data from which data blocks are sequentially generated.

3. The method of claim 1 , wherein compressing the data block, further comprises using the second code book at least as a cache.

4. The method of claim 1 , wherein employing at least one encryption component o encrypt the at least one compressed data block, further comprises, encrypting the compressed data block based on at least one hash value that is determined by at least two or more intermediate keys that are based on the received cryptographic key.

5. The method claim 1 , wherein dynamically generating the second code book further comprises, generating input for the second code book based on at least a combination of a plurality of symbols generated by the compression component.

6. The method of claim 1 , wherein compressing the at least one data block, further comprises, generating a key value that is hashed down to a defined bit-width corresponding to each compressed symbol that is outputted by the compression component.

7. The method of claim 1 , further comprising, responsive to receiving data that includes cipher text data, performing further actions in a single pass through the received data including:

receiving at least one cipher block;

employing the at least one cryptographic component to decrypt the at least one cipher block;

employing the at least one compression component to decompress the at least one decrypted cipher block;

generating at least one plain text block based on the at least one decompressed cipher data block; and

communicating the at least one plain text block over the network to at the least one other network device.

8. A network device for communicating data over a network that is operative to perform actions, comprising:

a transceiver component for communicating over a network;

a memory component for storing instructions and data; and

a processor component that executes instructions that enable actions, including:

responsive to receiving data that includes plain text data, performing further actions in a single pass through the received data, including:

employing at least one received cryptographic key to generate a key stream, wherein the key stream is employed to generate a first code book;

generating at least one data block from at least a portion of the received plain text data;

compressing the at least one data block using at least one compression component that stores at least compressed plain text data in a cache memory, wherein a second code book is dynamically generated based on at least a portion of the compressed plain text data stored in the cache memory during compression of the data block;

employing at least one cryptographic component to encrypt the at least one compressed data block based on at least the first and second code books; and

generating at least one cipher text block based on the at least one encrypted data block; and

communicating the at least one cipher text block over the network to at least one other network device.

9. The network device of claim 8 , wherein receiving data that includes plain text data further comprises, receiving a data stream that continuously provides plain text data from which data blocks are sequentially generated.

10. The network device of claim 8 , wherein compressing the data block, further comprises using the second code book at least as a cache.

11. The network device of claim 8 , wherein employing at least one encryption component to encrypt the at least one compressed data block, further comprises, encrypting the compressed data block based on at least one hash value that is determined by at least two or more intermediate keys that are based on the received cryptographic key.

12. The network device of claim 8 , wherein dynamically generating the second code book further comprises, generating input for the second code book based on at least a combination of a plurality of symbols generated by the compression component.

13. The network device of claim 8 , wherein compressing the at least one data block, further comprises, generating a key value that is hashed down to a defined bit-width corresponding to each compressed symbol that is outputted by the compression component.

14. The network device of claim 8 , further comprising, responsive to receiving data that includes cipher text data, performing further actions in a single pass through the received data including:

receiving at least one cipher block;

employing the at least one cryptographic component to decrypt the at least one cipher block;

employing the at least one compression component to decompress the at least one decrypted cipher block;

generating at least one plain text block based on the at least one decompressed cipher data block; and

communicating the at least one plain text block over the network to at the least one other network device.

15. A processor readable non-transitory storage media that includes executable instructions for communicating data over a network with a network device, wherein a processor component that is operative to execute the instructions enables actions, comprising:

responsive to receiving data that includes plain text data, performing further actions in a single pass through the received data, including:

employing at least one received cryptographic key to generate a key stream, wherein the key stream is employed to generate a first code book;

generating at least one data block from at least a portion of the received plain text data;

compressing the at least one data block using at least one compression component that stores at least compressed plain text data in a cache memory, wherein a second code book is dynamically generated based on at least a portion of the compressed plain text data stored in the cache memory during compression of the data block;

employing at least one cryptographic component to encrypt the at least one compressed data block based on at least the first and second code books; and

generating at least one cipher text block based on the at least one encrypted data block; and

communicating the at least one cipher text block over the network to at least one other network device.

16. The media of claim 15 , wherein receiving data that includes plain text data further comprises, receiving a data stream that continuously provides plain text data from which data blocks are sequentially generated.

17. The media of claim 15 , wherein compressing the data block, further comprises using the second code book at least as a cache.

18. The media of claim 15 , wherein employing at least one encryption component to encrypt the at least one compressed data block, further comprises, encrypting the compressed data block based on at least one hash value that is determined by at least two or more intermediate keys that are based on the received cryptographic key.

19. The media of claim 15 , wherein dynamically generating the second code book further comprises, generating input for the second code book based on at least a combination of a plurality of symbols generated by the compression component.

20. The media of claim 15 , wherein compressing the at least one data block, further comprises, generating a key value that is hashed down to a defined bit-width corresponding to each compressed symbol that is outputted by the compression component.

21. The media of claim 15 , further comprising, responsive to receiving data that includes cipher text data, performing further actions in a single pass through the received data including:

receiving at least one cipher block;

employing the at least one cryptographic component to decrypt the at least one cipher block;

employing the at least one compression component to decompress the at least one decrypted cipher block;

generating at least one plain text block based on the at least one decompressed cipher data block; and

communicating the at least one plain text block over the network to at the least one other network device.

Assignments (3)
SECURITY INTEREST Recorded Feb 20, 2020
From: CENTRI TECHNOLOGY, INC.
To: PERKINS COIE LLP
Reel/Frame 051870/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2019
From: CENTRI TECHNOLOGY, INC.
To: UNIVERSITY OF MISSISSIPPI
Reel/Frame 048321/0341 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2012
From: PARIS, LUIS GERARDO; MACKEY, MICHAEL PATRICK
To: CENTRI TECHNOLOGY, INC.
Reel/Frame 029258/0930 →
Continuity (1)
Related Publication 20140129824A1 · May 8, 2014