SYSTEM AND METHOD FOR SENDING AND/OR RECEIVING ENTROPY AND ENTROPY EXPANSION
20220382520 · 2022-12-01
Inventors
Cpc classification
H04L9/0656
ELECTRICITY
G06F7/588
PHYSICS
International classification
H04L9/06
ELECTRICITY
H04L9/32
ELECTRICITY
Abstract
A message is embedded within an entropy stream. The message is encrypted using a onetime pad (OTP) and thus looks like part of the entropy string since the OTP encrypted messages is, as long as the “pad” material and message content are known, itself random to the observer. The encrypted message contains information used to identify and/or point to relevant information in another part of the entropy stream. For example, the OTP-encrypted message may indicate the number of units of the message, and point to a position in another part of the stream where another message is located. The stream may be randomly and deterministically expanded. Other techniques encrypt a stream using standard encryption, the stream comprising messages that are deterministically OTP encrypted; expand said encryption using a byte vector/array of randomness including at least one random vector; periodically swap out at least one member from the vector; hide vector random bytes in messages and/or using the messages to direct which bytes to remove from the stream of randomness/entropy; and store a stash of randomness separately from the messages and/or pull off the random/entropy stream as directed by the messages. By using true random and determinism, we create a method of generate a known pool of randomness that, if intercepted, cannot be discovered through mathematical analysis.
Claims
1. A secure transmission method comprising: embedding a onetime pad encrypted message within a random message stream, the onetime pad encrypted message comprising at least a pointer within the same or different stream to another one time pad encrypted message; and transmitting the random message stream including the embedded one time pad encrypted message to at least one receiver.
2. A secure receiving method comprising: receiving a random message stream including an embedded one time pad encrypted message; and decrypting the one time pad encrypted message to obtain at least a pointer to another one time pad encrypted message within the same or different stream.
3. A method comprising: receiving entropy; receiving at least one message with the entropy, the received message containing an instruction for expanding the transmitted entropy; recovering the instruction from the message using a One Time Pad decryption; and expanding the received entropy based on the instruction using a deterministic process.
4. The method of claim 3 wherein the at least one message is embedded in the received entropy.
5. The method of claim 3 wherein the entropy is transmitted over the Internet.
6. The method of claim 3 further including generating the entropy with a random number generator.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Features and advantages of example non-limiting implementations may be understood from the following detailed description of example non-limiting embodiments, in conjunction with the drawings of which:
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
DETAILED DESCRIPTION OF NON-LIMITING EMBODIMENTS
[0022] Non-limiting features and advantages of example non-limiting embodiments include: [0023] A stream that in some embodiments can use standard encryption [0024] Messages (deterministic) are OTP encrypted in the stream [0025] Both sides expand the encryption using byte vectors/arrays of randomness [0026] There is one or plural (e.g., two) random vectors [0027] Plural N (where N may be a random number) vectors provides better obfuscation (it may simply be a second pass) [0028] N number vectors have members periodically swapped out. [0029] Vector random bytes are hidden in messages; or in other embodiments, the messages direct which bytes may be swapped out from the stream of randomness/entropy. [0030] In some embodiments, a small stash of randomness is stored separately and comes in the messages and/or is pulled off the random/entropy stream as directed by the messages. This has a separate expansion vector process. [0031] Such a separate stash could also come from the expanded entropy as directed by the messaging. [0032] Vectors can start at different points per expansion as directed. [0033] Vectors can also be scrambled as directed per pass.
[0034] In one example non-limiting implementations, random information is transmitted in unencrypted form over a communications channel. In most practical systems, the designers of the system will assume that an attacker will have access to and can eavesdrop upon the random stream transmission.
[0035] In example non-limiting embodiments, a message is embedded within the stream. The messages encrypted using a random one time pad (OTP) look like part of the random string since the OTP is itself random. The encrypted message contains information used to identify and/or point to relevant information in another part of the random stream. For example, the OTP-encrypted message may indicate the number of units of the message, and point to a position in another part of the stream where another message is located.
[0036] In some example embodiments, the message is also a random string, i.e., a sequence of random values generated by a random number generator. Using a random One Time Pad to transpose or encrypt a sequence of random values results in a random string that cannot be attacked through frequency analysis or any other known cryptanalysis—it is perfectly secure. In some embodiments, the resulting random string is further encrypted using conventional encryption (e.g., AES 256 or any other symmetrical or asymmetrical encryption) before transmission. If desired, further precautions such as cryptographic key rotation, port rotation, and/or transmission of decoy stream, may be used to further increase security and make the random string inaccessible to an attacker. However, even if the attacker could defeat such additional security to obtain the transmitted random string, the attacker would still not be able to learn the underlying random string message because it has been encrypted using a perfectly secure One Time Pad.
[0037] In some non-limiting embodiments, the amount of transmitted random (entropy) data actually used to enable cryptographic processes can be reduced or minimized, and each (or multiple) ends of a cryptographic process can used shared secrets to expand the entropy data as needed. The shared secrets can be transmitted in additional expansion-instruction messages embedded within the stream that provide vectors for entropy expansion. These expansion-instruction messages can be entrypted using one time pads that comprise parts of the entropy stream or the expanded entropy stream. In some embodiments, the expansion-instruction messages can be shared at times that are different from when the entropy data is transmitted, using different communications channels. In some embodiments, the expansion-instruction messages could be shared in a highly secure way such as by courier or personal meeting. For example, they could be stored in tamper-resistant dongles or other memory devices that are provided in physical form.
[0038] When an attacker intercepts a random stream transmitted over the Internet or other insecure communications channel, he or she will not be able to distinguish the encrypted message from any other part of the stream. Because the message (which may itself be entropy) is encrypted using a onetime pad, it is perfectly secure. Only if one knows where the message is embedded and the length and format of the message as well as the random information used to encrypt the message using the one time pad (which, in a correct implementation is not accessible), is it possible to decrypt the message in order to learn its contents. In some cases, message contents indicate the other parts of the stream that contain particular random data used to encrypt messages to be communicated, expansion vector information (instructions used to expand the entropy stream), as well as other housekeeping information such as check sums and time stamps. In short, this system uses determinism and randomness to remove all but the expansion pass(es). For expansion, the vector, provided in the OTP encrypted messages, and the output are known. Even if we do not encrypt the stream of randomness to be expanded, the expanded entropy is still unknown. The proof, we know the random data is 10, is: 10.Math.Y=Z. There is no way to discover the values of Y or Z as there is not enough information. This makes discovering the expanded randomness impossible through mathematical analysis.
[0039] In accordance with other non-limiting aspects, the entropy transmission system can “farm” the output of the entropy generator in order to harvest random data for use. In such example non-limiting implementations, the system may direct the output of an entropy generator to a buffer in a memory device. The system may harvest selected portions of the buffer, deduplicate them to avoid possible duplicative information (although this will generally not be necessary if the entropy is truly random), and transmit the deduplicated information over a communications channel. The harvesting and deduplication processes are preferably performed in such a way that does not decrease the amount of entropy in the information being sent.
[0040] Example Entropy Farming System
[0041]
[0042] The entropy receiver 202 recovers the entropy files 250′ and stores the received entropy files in an entropy cache 210 for use in any application where entropy is useful.
[0043]
[0044] The system 100 also inserts, preferably at some random position within the random file stream, an embedded message encrypted using a One Time Pad (OTP).
[0045] A transmitter 116 transmits the file stream with embedded message(s) over one or more entropy channel(s). See e.g., U.S. Pat. Nos. 8,995,652 and 9,584,313. Port facading and other moving target defense strategies may be used to make it more difficult for an attacker to intercept any useful portion of the transmitted stream. The same or different transmitter 118 may be used to transmit, over the same or different channels, ciphertexts of messages the encryptor 112 encrypts.
[0046]
[0047] number of files 254
[0048] file names 1-N (256(1)-256(N)) corresponding to N files 254
[0049] cyclic redundancy check (CRC) values 258—one for each file
[0050] pointer 260 to the position of another message in the same or different file stream.
[0051] a random variable length pad 252a.
[0052] In the embodiment shown in
[0053]
[0054] The number of files 254 may be variable and may change randomly with each transmission. Thus, the number of files needed to cover a particular cache is a moving target that an attacker will not be able to predict beforehand.
[0055] The pointer 260 in some examples could point to the position of the next message 252 in the same file stream. In other implementations, the file stream could be transmitted in any order, and message 252 could point to a previously transmitted part of the file stream as opposed to a part of the file stream that already has been transmitted. The system 50 preferably locates the initially transmitted message via some convention that is not known to or discoverable by an attacker, and that can itself be randomized.
[0056] The message 252 is padded with a random length data string 252a of random content. Additional random content may be included in other parts of the stream in some embodiments such as before and/or after the file stream (or in some cases, in between files).
[0057]
[0058] While transmitter 100 includes an encryptor 112 and transmitter and receiver 200 includes a receiver 204 and decryptor 212 to convey encrypted messages securely, other embodiments (such as shown in
[0059] The examples shown in
[0060] Example Entropy Expansion
[0061] As shown in
[0062] If the expansion vector is randomly and deterministically changed, the overall message does not need to be encrypted before transmission and will nevertheless remain secure. Security is derived from the deterministically random expansion vector feature, which has the effect of preventing an attacker from learning the content of the underlying, untransmitted random string. Other embodiments may encrypt some or all of the message using for example standard encryption techniques.
[0063] Example Entropy Expansion System
[0064]
[0065] In the
[0066] In the
[0067] Additional messages 1006 are embedded in the
[0068] As shown in
X+Y=Z.
[0069] As long as two as the variables remain unknown, there is no way to solve for the problem. In this case, we ensure this by One Time Pad encrypting both the vector information and the message information to be expanded. As long as the base entropy is true random for all parts, the result will be an even distribution of probability that will be unsolvable.
[0070] Each message 1006 in this example is OTP encrypted. It contains message (msg) entropy as well replacement entropy for the expansion vector. It also contains determistic messages around rotation. This ensures that the expansion vector, the entropy used to encrypt these messages and any command/control data is perfectly secure and remains unknown. It also ensures that no known data is sent in the raw entropy stream. Command and control information would be repeatable data that could be used to decrypt the legacy encryption protecting the raw entropy. This leaves no opportunity for brute force cracking of the legacy encryption.
[0071] As
[0072] A processor, circuit, or other computing device expands each stored entropy by performing an expansion process 1020 using the techniques described above based on the received expansion vectors. The expansion process 1020 for the raw base entropy can but need not be the same as the expansion process for the message entropy. In the example show, the expansion process is a simple XOR with additional secret random entropy data shared in messages 1006. Multiple such XOR operations with multiple streams of additional shared secret entropy data yield any desired quantity of entropy. The expanded entropy is stored in storage devices 1016, 1018 and used as an expanded base entropy or pad and an expanded message entropy or pad, respectively.
[0073] In some non-limiting embodiments, the messages 1006 provide information in the way of pointers, indices or other constructs to synchronize or line up the resulting expanded entropy for use. For example, not all of the expanded entropy needs to be used—only a subset of the expanded entropy might be used in some embodiments. Additionally, the resulting expanded entropy can be rotated or substituted as needed with other expanded entropy.
[0074] All items cited above are hereby incorporated by reference as if expressly set forth.
[0075] While the invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention is not to be limited to the disclosed embodiments, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.