Enhanced randomness for digital systems
AssigneeQuantropi Inc.
InventorsYurang Kuang, Nicolas Bettenburg
Life of this patent
Estimating the term…
Abstract
A digital processing method, which comprises obtaining a stream of N-bit input data words; obtaining a value k between 0 and M−1, inclusively, where M>1; processing each of the N-bit input data words at least based on the kth of M permutation elements to produce a corresponding N-bit output data word; and outputting a stream of N-bit output data words on a network or storing the stream of the N-bit output data words in a non-transitory storage medium.
Claims31
A method of operating a computing device connected to a network for cryptographic communication over the network with a recipient device, the method comprising:
- storing a secret S in a non-transitory storage medium, wherein the secret S is shared with the recipient device;
- obtaining a stream of N-bit input data words;
- obtaining a value k between 0 and M−1, inclusively, where M>1, wherein the value k is obtained based at least in part on the secret S;
- processing each of the N-bit input data words at least based on the kth of M permutation elements to produce a corresponding N-bit output data word by (a) converting each of the N-bit input data words into a corresponding sparse 2N-element input array, (b) processing the sparse 2N-element input array with said kth of M permutation elements to produce a sparse 2N-element output array and (c) converting the sparse 2N-element output array into the corresponding N-bit output data word;
- and
- sending a stream of the N-bit output data words to the recipient device over the network.
A digital communications system, comprising:
- a sender device connected to a network and configured for:
- storing a secret S in a memory of the sender device;
- obtaining N-bit first data words;
- obtaining a value k between 0 and M−1, inclusively, where M>1, wherein the value k is obtained based at least in part on the secret S;
- processing each of the N-bit first data words at least based on the kth of M first permutation elements to produce corresponding N-bit second data words by (a) converting each of the N-bit first data words into a corresponding sparse 2N-element input array, (b) processing the sparse 2N-element input array with said kth of M permutation elements to produce a sparse 2N-element output array and (c) converting the sparse 2N-element output array into the corresponding N-bit second data word;
- and
- releasing the N-bit second data words on the network towards a recipient device connected to the network;
- and
- the recipient device configured for:
- receiving the N-bit second data words;
- obtaining a value j between 0 and M−1, inclusively wherein the secret S was shared by the sender device and wherein the value j is obtained based at least in part on the secret S;
- processing each of the N-bit second data words at least based on the jth of M second permutation elements to produce corresponding N-bit third data words by (a) converting each of the N-bit second data words into a corresponding sparse 2N-element second input array, (b) processing the sparse 2N-element second input array with said kth of M permutation elements to produce a sparse 2N-element second output array and (c) converting the sparse 2N-element second output array into the corresponding N-bit third data word,
- the values of j and k being synchronized so that k and j are the same when a particular N-bit second data word is processed by the kth permutation element of the sender device and the jth permutation element of the recipient device, the kth and jth permutation elements being characterizable as permutation matrices that are transposes of one another;
- and
- outputting the N-bit third data words on the network or storing the N-bit third data words in a memory of the recipient device.
A system for cryptographic communication over a network with a recipient device, comprising:
- a memory storing instructions;
- a network I/O for connection to the network;
- and
- a processor accessing the instructions and, based on the instructions, being configured to:
- store a secret S in the memory, wherein the secret S is shared with the recipient device;
- obtain a stream of N-bit input data words,
- obtain a value k between 0 and M−1, inclusively, where M>1, wherein the value k is obtained based at least in part on the secret S;
- process each of the N-bit input data words at least based on the kth of M permutation elements to produce a corresponding N-bit output data word by (a) converting each of the N-bit input data words into a corresponding sparse 2N-element input array, (b) processing the sparse 2N-element input array with said kth of M permutation elements to produce a sparse 2N-element output array and (c) converting the sparse 2N-element output array into the corresponding N-bit output data word;
- and
- send a stream of the N-bit output data words to the recipient device via the network I/O.
Dependencies are inferred from the claim text.