Methods and systems for data protection
AssigneeQuantropi Inc.
InventorRandy Kuang
Life of this patent
Estimating the term…
Abstract
A communication system, comprising a first apparatus and a second apparatus. A processing entity of the first apparatus is configured for: obtaining a first bit stream; subdividing it into a plurality of N-bit input segments; for each of the input segments, determining an input index as a value represented by the N bits of a particular input segment, determining an output index based on the input index and a mapping between 2N possible input indexes and 2N possible output indexes, and setting bits of a corresponding N-bit output segment so as to represent the value of the output index; and causing transmission of a second bit stream formed using each corresponding first output segment to the second apparatus, where a similar operation is performed to recover the N-bit first input segments.
Claims41
A communication system, comprising:
- a first apparatus comprising a first processing entity coupled to a first memory;
- and
- a second apparatus comprising a second processing entity coupled to a second memory;
- wherein the first and second apparatuses communicate over a communication channel;
- wherein the first memory stores first computer-readable instructions and a first mapping between 2N possible input indexes and 2N possible output indexes, N being an integer greater than one;
- wherein the second memory stores second computer-readable instructions and a second mapping between 2N possible input indexes and 2N possible output indexes, the second mapping being derivable from the first mapping;
- wherein the first processing entity is configured for:
- obtaining a first bit stream;
- subdividing the first bit stream into a plurality of N-bit first input segments;
- for each of the N-bit first input segments, determining a first input index as a value represented by the N bits of a particular one of the N-bit first input segments, determining a first output index based on the first input index and the first mapping, and setting bits of a corresponding N-bit first output segment so as to represent the value of the first output index;
- and
- causing a second bit stream formed using each corresponding N-bit first output segment to be transmitted over the communication channel;
- wherein the second processing entity is configured for:
- receiving the second bit stream;
- subdividing the second bit stream into a plurality of N-bit second input segments;
- for each of the N-bit second input segments, determining a second input index as a value represented by the N bits of a particular one of the N-bit second input segments, determining a second output index based on the second input index and the second mapping, and setting bits of a corresponding N-bit second output segment so as to represent the value of the second output index so as to recover a corresponding one of the N-bit input segments;
- and
- outputting a third bit stream formed using each corresponding N-bit second output segment.
A method of implementing a secure network amongst a plurality of communication devices, comprising:
- determining a mapping between 2N possible input indexes and 2N possible output indexes, where N>1;
- securely embedding the mapping within a memory of each of the communication devices;
- configuring one or more processors in each of the communication devices to execute a data encoding method when transmitting data to other ones of the communication devices;
- and
- configuring one or more processors in each of the communication devices to execute a data decoding method when processing data received from other ones of the communication devices;
- the data encoding and decoding methods comprising:
- obtaining an input bit stream;
- subdividing the input bit stream into a plurality of N-bit input segments;
- producing a plurality of N-bit output segments corresponding to respective ones of the N-bit input segments, wherein a particular one of the N-bit output segments is produced from a particular one of the N-bit input segments by:
- determining an input index as a value represented by the N bits of the particular one of the N-bit input segments;
- determining an output index based on the input index and the mapping;
- and
- setting the bits of the particular one of the N-bit output segments so as to represent the value of the output index;
- and
- outputting an output bit stream formed using the N-bit output segments.
A data protection method comprising:
- storing in a computer memory a permutation mapping that maps each possible 2N-bit input array having a 1 in a single position and 0s in each of the 2N-1 other positions to a respective 2N-1 other positions, N being an integer greater than one;
- obtaining an input bit stream;
- subdividing the input bit stream into a plurality of N-bit input segments stored in the computer memory;
- producing, by one or more processors, a plurality of N-bit output segments corresponding to respective ones of the N-bit input segments, the N-bit output segments stored in the computer memory,
- wherein a particular one of the N-bit output segments is produced from a particular one of the N-bit input segments by the one or more processors by:
- determining a 2N-bit input array from the N bits of the particular one of the N-bit input segments;
- determining a 2N-bit output array based on the 2N-bit input array and the permutation mapping;
- and
- setting the bits of the particular one of the N-bit output segments so as to represent the value of the 2N-bit output array;
- and
- outputting an output bit stream formed using the N-bit output segments.
A non-transitory computer-readable storage medium storing instructions which, when executed by at least one processor, cause the at least one processor to execute a method that comprises:
- obtaining an input bit stream;
- subdividing the input bit stream into a plurality of N-bit input segments stored in the computer memory, N being an integer greater than one;
- producing, by one or more processors, a plurality of N-bit output segments corresponding to respective ones of the N-bit input segments, the N-bit output segments stored in the computer memory,
- wherein a particular one of the N-bit output segments is produced from a particular one of the N-bit input segments by the one or more processors by:
- determining a 2N-bit input array from the N bits of the particular one of the N-bit input segments;
- determining a 2N-bit output array based on the 2N-bit input array and a stored permutation mapping that maps each possible 2N-bit input array having a 1 in a single position and 0s in each of the 2N-1 other positions to a respective 2N-bit output array having a 1 in a corresponding single position and 0s in each of the 2N-1 other positions;
- and
- setting the bits of the particular one of the N-bit output segments so as to represent the value of the 2N-bit output array;
- and
- outputting an output bit stream formed using the N-bit output segments.
Dependencies are inferred from the claim text.