IP Library Granted Patent US 11,018,854
Granted Patent B2
US 11,018,854 · App. 16/813,678 · Granted May 25, 2021

Data conversion systems and methods

Inventors: Sergio A. Fernandez (San Diego, CA); Bruce Conway (Williston, ND); Drew Conway (Williston, ND); David J. Gotrik (Coronado, CA); Ayman Ibaida (Mill Park, AU); Dhiah Al-Shammary (Lalor, AU); Alsharif Abuadbba (Victoria, AU); Mark Conway (San Diego, CA)
Assignee: AgilePQ, Inc.
H04L9/0662H04L1/0075H04L9/065H04L9/12H04L9/14H04L9/16G06F21/602H04L1/0061H04L9/06H04L2209/043H04L2209/08H04L2209/16H04L2209/805
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,018,854
App. No.
16/813,678
Granted
May 25, 2021
Kind
B2
Abstract

In various embodiments, a computer-readable memory medium coupled to a processor is disclosed. The memory medium is configured to store instructions which cause the processor to retrieve a seed value, receive a digital bit stream, generate a stream of random bits, using the seed value as a seed to a pseudo random number generator (PRNG), wherein the stream of random bits contains at least as many bits as the digital bit stream, shuffle bits of the stream of random bits to create a random bit buffer, generate an obfuscated digital bit stream by applying a first exclusive OR (XOR) to the digital bit stream and the random bit buffer, wherein the obfuscated digital bit stream has the same number of bits as the digital bit stream, and provide the obfuscated digital bit stream to the communications interface.

Claims (60)

1. A communications device comprising:

a communications interface;

a processor; and

a non-transient computer-readable memory medium operatively coupled to the processor, wherein the memory medium is configured to store instructions configured to cause the processor to:

retrieve a seed value;

receive a digital bit stream;

generate a stream of random bits comprising at least as many bits as the digital bit stream, using the seed value as a seed to a pseudo random number generator (PRNG);

generate a random bit buffer by swapping at least two bits or flipping at least one bit of the stream of random bits;

generate an obfuscated digital bit stream by applying a first exclusive OR (XOR) to the digital bit stream and the random bit buffer, wherein the obfuscated digital bit stream has the same number of bits as the digital bit stream; and

provide the obfuscated digital bit stream to the communications interface.

2. The communications device of claim 1 , wherein the stream of random bits consists of a power of two number of bytes.

3. The communications device of claim 1 , wherein the instructions are further configured to cause the processor to shuffle the bits of the stream of random bits such that the processor:

initializes the random bit buffer;

transverses the bits in the stream of random bits and for each bit that is set, calculates a destination bit location; and

flips the bit in the random bit buffer at the destination bit location.

4. The communications device of claim 3 , wherein the instructions are further configured to cause the processor to initialize the random bit buffer such that the processor sets all of the bits of the random bit buffer to be the same value.

5. The communications device of claim 3 , wherein the instructions are further configured to cause the processor to initialize the random bit buffer such that the processor sets all of the bits of the random bit buffer to be 0.

6. The communications device of claim 3 , wherein the instructions are configured to cause the processor to calculate the destination bit location using a table lookup.

7. The communications device of claim 1 , wherein the instructions are further configured to cause the processor to:

calculate a CRC of the digital bit stream; and

modify the digital bit stream, prior to generating the obfuscated digital bit stream, such that the digital bit stream includes the CRC.

8. A computer-implemented method for obfuscating data comprising:

retrieving a seed value;

receiving a digital bit stream;

generating a stream of random bits comprising at least as many bits as the digital bit stream, using the seed value as a seed to a pseudo random number generator (PRNG);

generating a random bit buffer by swapping at least two bits or flipping at least one bit of the stream of random bits; and

generating an obfuscated digital bit stream by applying a first exclusive OR (XOR) to the digital bit stream and the random bit buffer, wherein the obfuscated digital bit stream has the same number of bits as the digital bit stream.

9. The computer-implemented method of claim 8 , further comprising:

initializing the random bit buffer;

traversing the bits in the stream of random bits and for each bit that is set, calculating a destination bit location; and

flipping the bit in the random bit buffer at the destination bit location.

10. The computer-implemented method of claim 9 , wherein initializing the random bit buffer sets all of the bits of the random bit buffer to be the same value.

11. The computer-implemented method of claim 9 , wherein calculating the destination bit comprises using a table lookup.

12. The computer-implemented method of claim 8 , wherein:

the stream of random bits consists of a power of two number of bytes.

13. The computer-implemented method of claim 9 , wherein

initializing the random bit buffer sets all of the bits of the random bit buffer to be 0.

14. The computer-implemented method of claim 8 , further comprising:

calculating a CRC of the digital bit stream; and

modifying the digital bit stream, prior to generating the obfuscated digital bit stream, such that the digital bit stream includes the CRC.

15. A non-transient computer-readable memory medium configured to store instructions thereon that when loaded by a processor cause the processor to:

retrieve a seed value;

receive a digital bit stream;

generate a stream of random bits containing of at least as many bits as the digital bit stream, using the seed value as a seed to a pseudo random number generator (PRNG);

generate a random bit buffer by swapping at least two bits or flipping at least one bit of the stream of random bits;

generate an obfuscated digital bit stream by applying a first exclusive OR (XOR) to the digital bit stream and the random bit buffer, wherein the obfuscated digital bit stream has the same number of bits as the digital bit stream; and

provide the obfuscated digital bit stream to a communications interface.

16. The non-transient computer-readable memory medium of claim 15 , wherein the instructions stored thereon further cause the processor to:

generate the stream of random bits such that the stream of random bits consists of a power of two number of bytes.

17. The non-transient computer-readable memory medium of claim 15 , wherein the instructions stored thereon further cause the processor to:

initialize the random bit buffer;

traverse the bits in the stream of random bits and for each bit that is set, calculate a destination bit location;

flip the bit in the random bit buffer at the destination bit location.

18. The non-transient computer-readable memory medium of claim 17 , wherein the instructions stored thereon further cause the processor to:

initialize the random bit buffer such that all of the bits of the random bit buffer are set to be the same value.

19. The non-transient computer-readable memory medium of claim 17 , wherein the instructions stored thereon further cause the processor to:

calculate the destination bit location using a lookup table.

20. The non-transient computer-readable memory medium of claim 15 , wherein the instructions stored thereon further cause the processor to:

calculate a CRC of the digital bit stream; and

modify the digital bit stream, prior to generating the obfuscated digital bit stream, such that the digital bit stream includes the CRC.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2020
From: FERNANDEZ, PH.D., SERGIO A.; CONWAY, BRUCE; CONWAY, DREW; GOTRIK, DAVID J.; IBAIDA, AYMAN; AL-SHAMMARY, DIAH; ABUADBBA, ALSHARIF; CONWAY, MARK
To: AGILEPQ, INC.
Reel/Frame 052527/0223 →
Continuity (7)
Continuation 15614328 · Jun 5, 2017
Provisional Application 62346451 · Jun 6, 2016
Provisional Application 62354615 · Jun 24, 2016
Provisional Application 62376876 · Aug 18, 2016
Provisional Application 62401609 · Sep 29, 2016
Provisional Application 62438443 · Dec 22, 2016
Related Publication 20200213096A1 · Jul 2, 2020
Cited By (2)
US 12,309,360 US 12,411,682