True random number generator
Patent Information
- Application Number
- MYPI2023000282
- Authority / Receiving Office
- MY · MY
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-07-17
- Filing Date
- 2021-01-18
- Publication Date
- 2026-08-03
- Estimated Expiration
- 2041-01-18
AI Technical Summary
Existing true random number generators face challenges such as determinism, high computational expense, environmental dependency, energy consumption, and implementation difficulties in digital integrated circuits and programmable logic integrated circuits, particularly in achieving fast and efficient generation of high-quality random numbers for cryptographic purposes.
A digital chaotically oscillating autonomous Boolean network with a minimum size, utilizing three logical elements - two two-input XOR or XNOR elements and one three-input 'count of ones' element, to ensure chaotic behavior and reduce energy consumption, while allowing for external modulation to prevent stable states and promote fast random number generation.
The solution enables rapid generation of truly random numbers with minimal energy consumption, achieving unpredictable behavior and passing randomness tests, suitable for cryptographic applications and efficient implementation in various hardware platforms.
Abstract
Description
[0001] TRUE RANDOM NUMBER GENERATOR
[0002] The field of technology to which the invention relates.
[0003] The present invention relates to devices for generating truly random numbers, including a digital chaotically oscillating autonomous Boolean network as a source of entropy.
[0004] The following abbreviations are used in this description:
[0005] RNG - random number generator
[0006] PRNG - pseudo-random number generator
[0007] FPGA - programmable logic integrated circuit
[0008] ABS - autonomous Boolean network
[0009] SHO - synchronous chaotic oscillator
[0010] SBIS — very large-scale integrated circuit
[0011] ASIC — application-specific integrated circuit
[0012] State of the art.
[0013] Current technology includes digital pseudorandom number generators (PRNGs) based on a cyclic function, such as a linear congruential generator, a linear-feedback shift register generator, a generalized-feedback shift register generator, and the Mersenne vortex. The best results are achieved using a simple counter coupled in series with a cryptographic algorithm, such as a block cipher or a one-way hash function.
[0014] A common drawback of all PRNGs is the determinism of the resulting sequence, which precludes or greatly complicates the use of pseudorandom numbers for cryptographic purposes, as the entire chain of pseudorandom numbers can be predicted if the device's operating algorithm and the initial or any previous state of the generator are known. All these methods are also computationally expensive, and the higher the requirements for the quality of the random numbers, the more computations are required.
[0015] True random number generators based on specific physical principles are known. Historically, dice, radioactive decay, microphone sampling of ambient acoustic noise, atmospheric noise captured by a radio receiver, and other random physical phenomena have been used.
[0016] The disadvantage of these devices is the need for a special physical installation, a sensor or transducer, and a computer interface. Furthermore, their operation can be highly dependent on environmental conditions, they require a lot of power, and the random number generation rate is often too slow.
[0017] Generators based on physical principles and using only electronic components are known. For example, the ERNIE 1 setup and the Ferranti Mark 1 computer utilized the thermal noise of a resistor. Generators that utilize the avalanche breakdown of a reverse-biased p-n junction in a Zener diode are also frequently used [1].
[0018] A disadvantage of such devices is the need to manufacture a separate analog component, which precludes or significantly complicates the manufacture of digital integrated circuits (DICs) containing the RNG. Such a generator also cannot be implemented in a programmable logic gate array (FPGA).
[0019] RNGs are known that exploit the difference in frequency between two oscillators caused by thermal drift. For example, the Intel 82802 firmware storage chip has two oscillators—a fast one and a slow one—located in different parts of the crystal and measures the difference in their frequencies. Such an RNG can be implemented entirely using digital logic, since the oscillators typically use feedback inverters and a chain of buffer elements as a delay line.
[0020] The disadvantages of such generators include the need to place oscillators widely apart in the crystal layout to reduce thermal correlation between them, low performance due to the need to accumulate drift over a certain period of operation, and poor predictability of random number quality. Such a generator is also difficult to implement in FPGAs, as development tools do not allow for control over the physical placement of elements. Typically, with automatic placement, the oscillators, being logically connected, will also be located in close proximity to one another, resulting in a high frequency correlation between them. So-called "autonomous Boolean networks" (ABNs) have been actively researched in recent years. Such a network is a topologically connected graph of logical elements, to which no control or clock signals are supplied from the outside.Moreover, such a network is subject to obvious additional requirements: no element should have "dangling" inputs (not connected to any output), and no two outputs should be connected to each other. These requirements are driven by the certainty of the state of the network's logical elements and the electrical safety of its operation. Depending on the topology, an ABS can exhibit different behavior: it can be stable or quasi-stable, oscillate with a specific frequency and signal shape, or exist in a state of so-called "Boolean chaos." An example of a simple ABS is a repeater with an output connected to an input. Such a network is in a quasi-stable state: depending on the initial state—0 or 1—it will remain in this state indefinitely. Another example is one or more inverters connected to each other in a ring.Depending on the number of inverters in the ring, their behavior will be stable, quasi-stable, or oscillating. One inverter will most likely be in a stable state, intermediate between 0 and 1—this is due to the physical implementation of the inverter as an amplifier with a high gain and negative feedback equal to 1. For the same reason, oscillation may not occur in very small networks with elements with a low slew rate. With an odd number of inverters, the network will oscillate with a period proportional to the number of inverters. With an even number of inverters, the network is in a quasi-stable state. This shows that the random number generator implemented in the Intel 82802 chip using two oscillators and measuring the frequency drift between them is essentially a special case of the ABN—it uses two rings with different odd numbers of inverters. More complex networks can often generate chaotic behavior.
[0021] There's a direct physical analogy that helps clearly understand the behavior of an ABS in various situations. It's a pendulum. A simple pendulum, when deflected and released, begins to oscillate with a stable period—this is oscillatory behavior. If we flip the pendulum upside down, the top point represents a quasi-stable state; any small deflection will cause the pendulum to fall to the left or right. If we divide the pendulum's arm into two parts connected by a hinge, we get a so-called chaotic pendulum, whose evolution over time is impossible to accurately predict, since any infinitesimal change in the initial state (down to the quantum level) amplifies over time and leads to arbitrarily large changes in the pendulum's behavior.Using this analogy, one can measure random deviations in the frequency of two pendulums that arise due to chaotic external influences, but this will require lengthy analysis, but one can also deflect a chaotic pendulum and obtain a random value in the shortest possible time.
[0022] The example above demonstrates that oscillating ABNs can indeed be used to generate random numbers, but ABNs that exhibit chaotic behavior from the start are far more promising. The speed at which Boolean chaos develops and its qualitative characteristics are determined by a number of factors, the most important of which is the Lyapunov characteristic exponent. If its exponent is negative, deviations decay over time. If it is greater than zero, random deviations are amplified by the system. When zero, deviations neither decay nor amplified, but accumulate if they enter the system from outside. For rapid physical generation of random numbers, the exponent must be non-negative. A simple pendulum has a negative Lyapunov exponent, meaning that the oscillation frequency instantly stabilizes in the absence of external influences.A chaotic pendulum is a particular example of a system with a positive exponent, such that any small influence leads to a completely different dynamic within a short time. Binary logic does not have logical functions that amplify small deviations, but there are functions that prevent changes from disappearing—for two inputs, these are the XOR (exclusive or) and XNOR (equivalence) functions. Any change in any input signal in these functions causes a change in the output signal, which is why these functions are preferred in RNGs.
[0023] Current knowledge of ABN circuits reveals chaotic behavior. Chaos arises when network operation is determined by minute fluctuations in the supply voltage, edge shifts due to thermal fluctuations, interference, and other destabilizing factors. The literature [3] examines two- and three-input XOR or XNOR gates, in which the output is fed back to the inputs through two (or, respectively, three) delay lines. In such networks, chaotic behavior can be observed at a certain ratio of delay line lengths. The problem with this network is the strong dependence of behavior not only on the ratio of delay line lengths but also on their physical implementation; in this case, oscillations may occur instead of chaos. Also, despite the apparent schematic simplicity of the device, it requires a large number of logic elements, since each delay line is a chain of inverters.As a result, a seemingly simple circuit can contain several dozen elements. Moreover, three of the four variants of this generator have a fundamental flaw: generation ceases after a certain period of time. An XOR gate, regardless of the number of inputs, reaches a stable state with a zero output, while a two-input XNOR gate reaches a one output. A three-input XOR gate has an additional stable state—a one output. [4] showed that more or less stable generation is observed with a three-input XNOR gate and delay lines consisting of 18, 6, and 2 inverters.
[0024] In 2009, Rui Zhang et al. proposed [2] a circuit consisting of three two-input logic gates—two XOR gates and one XNOR gate—that exhibits Boolean chaos. He used discrete gates to implement the circuit. This circuit also has inherent drawbacks, which will be discussed below. When implementing such a network in an FPGA, generation may disappear, or oscillations may occur instead of random behavior.
[0025] In his dissertation [4], David Rosin proposed a more complex scheme that also exhibits chaotic behavior: large rings of three-input XOR gates, in which each gate receives an input from itself and its two nearest neighbors. The resulting signal is then sampled from several points in the ring and also combined through XOR gates. However, in its pure form, this scheme is ineffective, since rings with an even number of gates have as many as four different stable states and inevitably stabilize in one of them: states with all zeros, all ones, and two variants of alternating zeros and ones.
[0026] To eliminate the stable state, Rozin replaces one XOR gate in the generator with an XNOR gate. The quality of the resulting chaos in such a generator depends on the number of logic gates in the ring. Rozin proposes using 16 gates. However, the excitation generated in such a system must pass through eight logic gates before reaching the opposite side of the ring, which is comparable in time to one microprocessor cycle. Therefore, in hardware implementation, it is advisable to wait for several cycles to eliminate correlation between successive values. A drawback of both Rozin's generator and Zhang's generator is the impossibility of destabilizing external influences on the network.
[0027] A known prior art truly random number generator includes a digital chaotically oscillating autonomous Boolean network as an entropy source (see patent application WO201 9222866, published in 2019). Like the Rosin generator, this generator uses a ring of three XOR gates and one XNOR gate, and an XOR gate to collect signals from the ring. Unlike the Rosin generator, this generator uses an additional inverter to generate a high-frequency periodic signal and destabilize the autonomous Boolean network.
[0028] This device is the closest in technical essence and achievable technical result and was chosen as a prototype of the proposed invention.
[0029] Another disadvantage of this prototype is that it takes a long time to generate truly random numbers, contains many elements, and consumes a lot of energy.
[0030] Disclosure of invention.
[0031] Based on this original observation, the present invention primarily aims to provide a truly random number generator that includes a digital chaotically oscillating autonomous Boolean network as an entropy source, which allows at least one of the above-mentioned disadvantages to be mitigated, namely, to ensure an increase in the speed of generating truly random numbers while reducing the energy consumption, which is the stated objective.
[0032] The goal of this invention is to construct a partially controlled ABN that, while being minimally sized, is guaranteed to enter a state of Boolean chaos with the greatest possible speed. The most important requirement is the impossibility of a stable, quasi-stable, or oscillating network state. Furthermore, the rate of chaos growth directly depends on the size of the cyclic signal propagation paths present in the network. The larger the path size, the longer it takes for the signal to return to its starting point; therefore, the network should be as small as possible. This is evident from considering an oscillator consisting of an odd number of inverters—the oscillation period is directly proportional to the ring length.
[0033] For further analysis, it is better to consider a synchronous Boolean network. The practical difference between a synchronous Boolean network and an ABN is that the signal at the terminals of all logical elements changes simultaneously, so the network can be considered to go through a series of states. Theoretically, with absolutely identical element speeds, identical conductor lengths, and identical element operating conditions, an ABN becomes a synchronous Boolean network. Moreover, work [3] shows that the mutual influence of different network fragments can lead to their forced synchronization. This is a very important effect that must also be eliminated or minimized. Since the search is for the smallest possible network, they can be analyzed in order of increasing number of logical elements. Since the set of possible logical functions and networks based on them is countable and ordered, an exhaustive analysis can be performed.
[0034] A single-element network can consist of either a single repeater or a single inverter. In the former case, there is no generation, while in the latter case, we experience periodic oscillations. Therefore, a single-element network cannot generate chaos.
[0035] Consider a network with two elements. Each element can contain no more than two inputs, and a total of four different network states are possible. A large number of combinations of transitions between these states are possible, but they can be grouped by properties. The first category is when there is a single degenerate state in which the network remains indefinitely. These are clearly unsuitable. The second category is when there is at least one cycle of two or three states. In this case, one element is stable and the other oscillates, or both oscillate with the same period. Such networks are also unsuitable. The last possible case is when the network evolves through all four states. There are only 3! = 6 such different cycles. Examining all the options shows that in this case, one element oscillates with a period of T and the other with 2T, or both elements oscillate with the same period of 2T. Therefore, a network of two elements cannot be a reliable source of chaos.Thus, chaotic behavior requires a network of at least three elements. Generally speaking, these must be two- or three-input elements, since the presence of a single-input element transforms the network into a two-element network. Accordingly, the network can be in one of eight different states at any given time. The Zhang generator is a three-element network. However, an analysis of the state transition graph of the Zhang generator shows that, for any initial state, it enters a four-state cycle, in which one element oscillates with a period of T, and the other two elements with a period of 2T. Of course, this fact does not rule out chaos, but it does indicate the network's sensitivity to implementation and to the cross-influence of its elements.
[0036] To find the required network, we can immediately discard all networks with a stable state. We also immediately exclude all networks in which the cycle has fewer than eight states, as oscillations and cross-influences are possible in such networks. Only networks that evolve through all eight states remain. A total of 7! = 5040 different cycles are possible, starting with state 000, passing through all possible states, and returning to state 000 after eight iterations.
[0037] For further consideration, we must introduce the concept of autocorrelation of the output signal of a logic element. During the network's evolution, the output of each element cycles through eight states, which we can denote by an eight-digit binary number, for example, 01010101b. To calculate the autocorrelation, we cyclically shift this number by one bit seven times (moving the least significant bit to the most significant position) and each time count the number of bit matches with the original value in the corresponding positions. If the comparison reveals that all eight positions differ, then such a signal correlates just as well as if all eight positions match. The minimal correlation is the case with four matches and four differences. We define the total correlation as the sum of seven absolute values of the difference in the number of matches and 4, divided by two, since such a sum is always even.
[0038] For some sequences, zero autocorrelation is indeed possible. However, in such sequences, the number of zeros and ones differs, and in the case of a network that goes through a full cycle of all eight states, each element must have an equal number of states with ones and zeros at the output. Among all such sequences, the minimum possible autocorrelation is two. Only four fundamental sequences with such autocorrelation exist: 00010111b, 00011011b, 00100111 b, 00101011b. All other sequences with minimal possible autocorrelations are derived from them by a cyclic shift and inversion.
[0039] For a network of three elements, the minimum theoretically possible total autocorrelation is 6, and the maximum is 26. A three-digit binary counter has an autocorrelation of 18, and when implementing the corresponding ABN, chaotic behavior never occurs in it.
[0040] A total of 648 topologically distinct networks exist, each undergoing a full cycle of all eight states. Among these, 216 networks have the minimum possible total autocorrelation—6. Of these networks, we must discard those in which the signals at the outputs of two different elements are correlated with each other. In these networks, phase-locking of the elements' operation is theoretically possible, leading to signal ordering. There are even networks in which the signals at all three elements are correlated; these networks are particularly dangerous. Of the selected networks, only 80 lack correlation between the signals of their elements. Since we are looking for the minimum possible network, we will prefer networks with two-input elements. There are only 24 such networks.
[0041] There's another important reason for preferring two-input gates. All the generators discussed previously are uncontrollable, meaning they cannot be connected to an external destabilizing signal that would trigger chaos and allow networks to cascade with each other. Adding an additional input must transform one network into another, which also fully satisfies the specified criteria. This is most easily accomplished by adding a third input to two-input gates. Since two-input gates can only be XOR or XNOR gates, adding a new input is only possible to create three-input XOR and XNOR gates. Applying a logical 1 to the third input converts the two-input XOR and XNOR gates to each other.
[0042] It turns out that of the twenty-four remaining networks, only eight can be reconfigured in this way, changing the nature of generation while preserving all the basic characteristics. Moreover, these networks simultaneously possess a record-low level of complexity—each network has two two-input gates. All eight of these networks are grouped in pairs into four reconfigurable networks, each consisting of three three-input logical gates. Each reconfigurable network corresponds to two of the original networks. These four networks are functionally completely equivalent, but one network has a unique property: all of its logical gates are symmetrical with respect to the assignment of their inputs (the inputs of the gates are equivalent), which simplifies network implementation and avoids errors.
[0043] The essence of the invention lies in these four Boolean networks, which satisfy all the previously listed requirements and have the additional property of modulation. They all consist of three logical elements: two 3-XOR or 3-XNOR elements, and one three-input output element with a more complex, specialized function called "ones counting." These four networks are absolutely identical in the way their elements are connected to each other, differing only in the type of elements used. They are combined into two groups: "A" and "B." Group "A" uses the same elements, both 3-XOR or both 3-XNOR, while group "B" uses different elements, one 3-XOR, the other 3-XNOR. The logical diagram of all these networks is shown in the figures below.
[0044] The "ones counting" gate can be described as follows: the gate's output is 1 if no more than one input is 1; otherwise, the output is 0. Thus, if three inputs are zero, the output is also a logical 1. See Table 1.
[0045] Table 1. Truth table of the third "ones-counting" logic element. Depending on the network variant, one or two inputs of this element may be inverted. Signals from all three logic elements are fed to the input of the "ones-counting" element. The two inputs of the first XOR / XNOR element receive the signal from itself and from another XOR / XNOR element. The two inputs of the second XOR / XNOR element receive the signal from the first XOR / XNOR element and from the output of the "ones-counting" element. The remaining free inputs of both XOR / XNOR elements are combined together and represent the modulation input of the Boolean network.
[0046] Each of the Boolean networks described above is the basic building block of a random number generator. We'll call this basic block a "chaotic oscillator." It has an output and a modulation input. A chaotic oscillator cannot modulate itself. It's easy to verify that with such modulation, a chaotic oscillator degenerates either into a normal oscillator or into a stable level source. It's also not recommended to leave a chaotic oscillator without modulation at all, since the behavior of two oscillators without modulation can differ significantly due to the specifics of their physical implementation. It's preferable to use a block of oscillators that modulate each other, and it's desirable for the loop formed by the modulation to be as large as possible to reduce the mutual correlation between the oscillators.
[0047] In theory, the signal of an unmodulated oscillator can be taken from any of the three logic elements, but to reduce the mutual correlation of the signal from different oscillators, the chaotic signal must be taken from the “ones counting” element.
[0048] An autonomous Boolean network is always in a state of chaotic oscillation and consumes energy. To stop this oscillation, the network must be modified so that, for any initial state, it is guaranteed to arrive at a single deterministic state. For these networks, this cannot be achieved by turning off just one logic element. At least two elements must be turned off, and ideally, these are the same input XOR or XNOR elements. The network can be turned off by forcibly setting the outputs of these elements to either 0 or 1. If the outputs of the XOR / XNOR elements are set to 0, the network output will be 1, and vice versa.
[0049] A chaotic oscillator by itself cannot be used as a random number generator, as it only has an asynchronous output, which produces a wideband chaotic analog signal. Every chaotic oscillator, regardless of its internal structure, must be placed in a synchronous "wrapper," which performs two functions simultaneously. On the one hand, it provides a stable logical output signal, and on the other, it stores the previous state, which can be used via the modulation inputs as a "seed" to generate the next random number. The symbol and internal circuit diagram of such a synchronous chaotic oscillator (SCO) are shown in the figures below.
[0050] The random number generator (RNG) has a clock and modulation input and two outputs: a synchronous one used to generate a random number, and an asynchronous one required for modulating other RNGs. At each clock edge, a D-trigger captures the value of the asynchronous signal. The resulting value is fed to the synchronous output, while it can be used for modulation with an external signal using a two-input XOR element. The random number generator is built on these RNG blocks.
[0051] Despite mutual modulation, random-number blocks may exhibit a bias in the distribution of the number of zeros and ones at the output, meaning that one type of value is more likely to appear at the output than the other. This is also due to the physical operation of the circuit's logic elements. Eliminating this bias may require a procedure called "whitening" the resulting random numbers.
[0052] Thus, the essence of the invention is that the digital chaotically oscillating autonomous Boolean network includes three logical elements connected to each other, two of which are two-input logical elements of "exclusive or" and / or "exclusive or-not", and the third logical element has three inputs and one output and implements a special logical function of "counting ones", in which a logical one is set at its output if no more than one of its inputs contains a logical one, otherwise a logical zero is set.
[0053] These advantageous characteristics make it possible to generate truly random numbers in a very short time using a generator consisting of only three elements.
[0054] There is an advantageous embodiment of the device, in which the output of the first two-input logical element is connected to the first input of the second two-input logical element and to the second input of the third logical element "counting ones", the output of the second two-input logical element is connected to its second input, to the second input of the first two-input logical element and to the third input of the third logical element "counting ones", and the output of the third logical element "counting ones" is connected to its first input, to the first input of the first two-input logical element and to the output of the entire network.
[0055] These advantageous characteristics make it possible to guarantee the chaotic behavior of an autonomous Boolean network, which is the main generator of truly random numbers.
[0056] There is another version of the device, in which the second and / or third inputs of the third logical element “counting ones” are inverted.
[0057] These advantageous characteristics make it possible to concretely implement a truly random number generator.
[0058] There is also a version of the device in which both two-input logical elements “exclusive or” and / or “exclusive or-not” have additional third logical inputs that are combined together and connected to an additional input of external modulation of a digital chaotically oscillating autonomous Boolean network.
[0059] These advantageous characteristics make it possible to improve the statistical properties of a truly random number generator.
[0060] There is, in addition, a variant of the device design in which the generator has a shutdown input, and both logical elements “exclusive or” and / or “exclusive or-not” have additional shutdown inputs with the ability to force the output of both specified logical elements to the state of logical zero or logical one, regardless of the state of the remaining inputs, and these inputs are combined together and connected to the specified generator shutdown input.
[0061] These advantageous features make it possible to turn the truly random number generator on and off.
[0062] There is also a variant of the device design in which a digital chaotically oscillating autonomous Boolean network is combined with a D-trigger into a synchronous chaotic oscillator block having a clock input connected to the clock input of the D-trigger, a modulation input connected to the modulation input of the autonomous Boolean network, an asynchronous output connected to the output of the autonomous Boolean network, a synchronous output connected to the output of the D-trigger, while the output of the autonomous Boolean network is connected to the data input of the D-trigger.
[0063] These advantageous characteristics make it possible to connect a truly random number generator to external clocked circuits.
[0064] There is also a version of the device that includes an additional two-input “exclusive or” and / or “exclusive or-not” element, the first input of which is connected to the external modulation input, the second input of which is connected to the output of the D-trigger, and the output is connected to the modulation input of the autonomous Boolean network.
[0065] These advantageous characteristics make it possible to improve the statistical properties of a truly random number generator by changing its initial state.
[0066] Finally, there is a variant of the device design in which it includes a plurality of N synchronous chaotic oscillator blocks combined into a ring structure, the clock inputs of which are combined together and connected to a common clock signal, and their synchronous outputs are connected to an N-bit generator output, and a plurality of N additional two-input "exclusive or" and / or "exclusive or-not" elements, such that the output of each of the said logical elements is connected to the modulation input of the corresponding synchronous chaotic oscillator block, its first input is connected to the asynchronous output of the previous synchronous chaotic oscillator block in the chain, and the second input is connected to the asynchronous output of the next synchronous chaotic oscillator block in the chain.
[0067] These advantageous characteristics make it possible to generate multi-bit truly random numbers.
[0068] The essential features of the proposed invention are unknown in the prior art for methods with similar purposes, leading to the conclusion that the invention meets the "novelty" criterion for this method. Furthermore, this solution is not obvious to a person skilled in the art.
[0069] Brief description of the drawings. Other distinctive features and advantages of the present invention are clearly evident from the description given below for illustration and not as limiting, with reference to the accompanying drawings, in which:
[0070] — Figure 1 depicts a functional diagram of an autonomous Boolean network according to the invention,
[0071] — Figure 2 depicts a logical diagram of an autonomous Boolean network using XOR elements, according to the invention,
[0072] — Figure 3 depicts a logical diagram of an autonomous Boolean network using XNOR elements, according to the invention,
[0073] — Figure 4 depicts a logical diagram of an autonomous Boolean network using XOR elements and inversion of the input of the “counting ones” element, according to the invention,
[0074] — Figure 5 depicts a logic diagram of an autonomous Boolean network using XNOR elements and inversion of the input of the “counting ones” element, according to the invention,
[0075] — Figure 6 depicts a logical diagram of an autonomous Boolean network using XOR and XNOR elements, according to the invention,
[0076] — Figure 7 depicts a logical diagram of an autonomous Boolean network using XNOR and XOR elements, according to the invention,
[0077] — Figure 8 depicts a logical diagram of an autonomous Boolean network using XOR and XNOR elements and inversion of the inputs of the “ones counting” element, according to the invention,
[0078] — Figure 9 depicts a logical diagram of an autonomous Boolean network using XNOR and XOR elements and inversion of the inputs of the “ones counting” element, according to the invention,
[0079] — Figure 10 depicts a logical diagram of an autonomous Boolean network with a modulation input, according to the invention,
[0080] — Figure 11 depicts a logical diagram of an autonomous Boolean network with a modulation input and generation resolution, according to the invention,
[0081] — Figure 12 depicts the construction of a synchronous chaotic oscillator based on the described Boolean networks, according to the invention,
[0082] — Figure 13 depicts the designation of a synchronous chaotic oscillator according to the invention,
[0083] — Figure 14 depicts a variant of a synchronous chaotic oscillator using the previous value as a seed, according to the invention, — Figure 15 depicts a diagram of a random number generator based on a synchronous chaotic oscillator, according to the invention.
[0084] The figures indicate:
[0085] 1 is the first logical element
[0086] 2 - the second logical element
[0087] 3 is the third logical element
[0088] 4 - XOR logical element
[0089] 5 - XNOR logic element
[0090] 6 - synchronous chaotic oscillator
[0091] 7 - chaotic oscillator
[0092] 8 — D-trigger
[0093] Modulation — modulation input
[0094] Enable — generation enable input
[0095] Out — exit
[0096] Sync out — synchronous output
[0097] Async out — asynchronous output
[0098] Clock — clock signal
[0099] According to Figures 1-15, a truly random number generator that includes a digital chaotically oscillating autonomous Boolean network as an entropy source includes the following. The digital chaotically oscillating autonomous Boolean network includes three logical elements 1—the first, 2—the second, and 3—the third, connected to each other, two of which 1 and 2 are two-input logical elements of "exclusive or" and / or "exclusive or-not", and the third logical element 3 has three inputs (the inputs of all logical elements are designated by the Roman numerals I, II, and III) and one output.
[0100] Logical element 3 implements a special logical function “counting ones”, in which a logical one is set at its output if no more than one of its inputs has a logical one, otherwise a logical zero is set.
[0101] Preferably, the output of the first two-input logic element 1 is connected to the first input of the second two-input logic element 2 and to the second input of the third "ones-counting" logic element 3. The output of the second two-input logic element 2 is connected to its second input, to the second input of the first two-input logic element 1 and to the third input of the third "ones-counting" logic element 3. The output of the third "ones-counting" logic element 3 is connected to its first input, to the first input of the first two-input logic element 1 and to the output of the entire network.
[0102] The second and / or third inputs of the third logical element "counting ones" 3 can be inverted.
[0103] In a particular embodiment of the invention, both two-input logic elements 1 and 2 (exclusive-or and / or exclusive-or-not) have additional third logic inputs that are combined together and connected to an additional external modulation input of the digital chaotically oscillating autonomous Boolean network. See Figure 10.
[0104] In a particular embodiment of the invention, the generator has a shutdown input, and both exclusive-or and / or exclusive-nor-not logic elements have additional shutdown inputs with the ability to force the output of both of these logic elements to a logical zero or logical one state, regardless of the state of the remaining inputs. These inputs are combined together and connected to the generator's shutdown input. See Figure 11.
[0105] In particular, a digital chaotically oscillating autonomous Boolean network can be combined with a D-trigger into a synchronous chaotic oscillator block having a clock input connected to the clock input of the D-trigger, a modulation input connected to the modulation input of the autonomous Boolean network, an asynchronous output connected to the output of the autonomous Boolean network, a synchronous output connected to the output of the D-trigger, and the output of the autonomous Boolean network connected to the data input of the D-trigger. See Figures 12-13.
[0106] In a particular embodiment of the invention, the generator includes an additional two-input "exclusive or" and / or "exclusive or-not" gate, the first input of which is connected to the external modulation input, the second input of which is connected to the output of the D-trigger, and the output of which is connected to the modulation input of the autonomous Boolean network. See Figure 14.
[0107] In a particular embodiment of the invention, a plurality of N synchronous chaotic oscillator blocks combined into a ring structure, the clock inputs of which are combined together and connected to a common clock signal, and their synchronous outputs are connected to an N-bit generator output, and a plurality of N additional two-input "exclusive or" and / or "exclusive or-not" elements, such that the output of each of the said logical elements is connected to the modulation input of the corresponding synchronous chaotic oscillator block, its first input is connected to the asynchronous output of the previous synchronous chaotic oscillator block in the chain, and the second input is connected to the asynchronous output of the next synchronous chaotic oscillator block in the chain. See Figure 15.
[0108] Implementation of the invention.
[0109] A truly random number generator operates as follows. We will provide a comprehensive example of how to implement the invention, keeping in mind that this example does not limit the application of the invention.
[0110] A digital chaotically oscillating autonomous Boolean network is formed from three logical elements connected to each other, two of which are two-input logical elements “exclusive or” and / or “exclusive or-not”, and by means of the third logical element a special logical function “counting ones” is implemented, in which a logical one is set at its output if no more than one of its inputs contains a logical one, otherwise a logical zero is set.
[0111] A synchronous chaotic oscillator (SCO) is formed. It has clock and modulation inputs and two outputs: a synchronous one used to generate a random number, and an asynchronous one required for modulating other SCOs. At each clock signal edge, a D-trigger captures the value of the asynchronous signal. The resulting value is fed to the synchronous output, while a two-input XOR gate is used to conditionally invert the input modulation signal.
[0112] The random number generator is built on such SHO blocks.
[0113] A multi-bit true random number generator is constructed using a circuit that utilizes a ring of counter-modulated random number generator (RNG) blocks. A signal from an exclusive-or logic gate is fed to the modulation input of each RNG block, whose inputs are connected to the asynchronous outputs of the preceding and subsequent RNG blocks in the ring.
[0114] Industrial applicability.
[0115] The proposed truly random number generator can be implemented by a specialist in practice and, when implemented, ensures the implementation of the stated purpose, which allows us to conclude that the invention meets the “industrial applicability” criterion.
[0116] A prototype of a truly random number generator was manufactured in accordance with the proposed invention. During the study, both the aforementioned Zhang and Rosin generators and a generator based on the described Boolean network were experimentally investigated in an FPGA. The random nature of our generator's numbers is confirmed by the following experiment, which was conducted using an Altera Cyclone IV EP4CE22F17C6N FPGA. The network is in the "reset" state, i.e., the outputs of all logic elements are set to the predetermined "zero" state. Subsequently, the reset signal is removed in one clock cycle, and in the following clock cycle, the output state of the chaotic oscillator is fixed. Data collected during multiple network restarts met the randomness criteria and showed no significant correlation with each other at clock frequencies up to 150 MHz, indicating the onset of chaos in less than 7 nanoseconds.After the bleaching procedure, the resulting random numbers completely passed NIST randomness tests.
[0117] Thus, testing of the prototype of the truly random number generator showed that due to the fact that the digital chaotically oscillating autonomous Boolean network includes three logical elements connected to each other, two of which are two-input logical elements of "exclusive or" and / or "exclusive or-not", and the third logical element has three inputs and one output and implements a special logical function of "counting ones", in which a logical one is set at its output if no more than one of its inputs contains a logical one, otherwise a logical zero is set, and the declared technical result is achieved, namely: an increase in the speed of generation of truly random numbers with a decrease in energy consumption.
[0118] In addition, the technical result of the invention is a set of uniquely possible networks of logical elements, each of which has the following properties:
[0119] 1. It does not have stable states and short cycles that would cause the network to become organized and the Boolean chaos to disappear.
[0120] 2. The output signals of all elements have the lowest theoretically possible autocorrelation, which forces the network to degenerate into chaotic behavior. 3. There is no correlation in the shape of the output signals of all elements, which eliminates cross-phase modulation of the elements during network operation.
[0121] 4. It has the smallest possible size, which ensures the highest possible rate of chaos growth due to short signal propagation loops within the network.
[0122] 5. It has an external modulation input that allows the network to be destabilized, preventing physical equilibrium, and to be combined into scalable clusters using cross-modulation.
[0123] One network from this set also uses only input-symmetrical logic elements.
[0124] Thus, these networks allow the creation of a random number generator with unique characteristics:
[0125] 1. The resulting numbers are truly random, which allows them to be used for cryptographic purposes.
[0126] 2. The random number generation rate is so high that network behavior is unpredictable even during the signal propagation time through several logic elements. Therefore, when implemented in microprocessor systems, a random number can be generated in a single clock cycle. This generation rate satisfies virtually any conceivable need.
[0127] 3. The modulation input further improves performance by allowing it to be fed with a different random number, the so-called "seed" of the proposed random number generator. This forces the network to start from a new state each time.
[0128] 4. This same input allows for cross-modulation of the discharges of the proposed generator, thereby increasing the rate of growth of chaos.
[0129] 5. The minimum network size makes the proposed generator the most economical in terms of energy consumption.
[0130] 6. The proposed generator can be implemented equally effectively both on discrete elements and in FPGAs or ASICs.
[0131] 7. The design of the proposed generator is simple and the costs for its implementation are negligible, which allows it to be used everywhere, including in low-cost and energy-saving devices.
[0132] Read: [1] Maxim Semiconductors. Building a Low-Cost White-Noise Generator. Application note 3469.
[0133] [2] R. Zhang, H. L. D. de S. Cavalcante, Z. Gao, D. J. Gauthier, J. E. S. Socolar, M. M. Adams, and D. P. Lathrop. Boolean Chaos. Phys. Rev. E 80, 045202 (2009). [3] David P. Rosin, Damien Rontani, Daniel J. Gauthier, and Eckehard Scholl.
[0134] Experiments on autonomous Boolean networks. Chaos 23, 025102 (2013).
[0135] [4] Hugo LD de S. Cavalcante, Daniel J. Gauthier, Joshua ES Socolar and Rui Zhang. On the origin of chaos in autonomous Boolean networks. Phil. Trans. R. Soc. A (2010) 368, 495-513. [5] David Rosin. Dynamics of Complex Autonomous Boolean Networks. Doctoral dissertation. Technische Universitat Berlin.
Claims
CLAUSES OF THE INVENTION 1. A truly random number generator that includes a digital chaotically oscillating autonomous Boolean network as an entropy source, characterized in that the digital chaotically oscillating autonomous Boolean network includes three logical elements connected to each other, the first of which is a two-input exclusive-or or exclusive-or-not logical element, the second is a two-input exclusive-or or exclusive-or-not logical element, and the third logical element has three inputs and one output and implements the logical function of "counting ones", in which a logical one is set at its output if no more than one of its inputs contains a logical one, otherwise a logical zero is set, wherein the output of the first two-input logical element is connected to the first input of the second two-input logical element and to the second input of the third logical element of "counting ones",the output of the second two-input logical element is connected to its second input, to the second input of the first two-input logical element and to the third input of the third "ones counting" logical element, and the output of the third "ones counting" logical element is connected to its first input, to the first input of the first two-input logical element and to the output of the entire network.
2. The generator according to item 1, characterized in that the second and / or third inputs of the third logical element “counting ones” are inverted.
3. A generator according to any one of paragraphs 1-2, characterized in that both two-input logical elements “exclusive or” and / or “exclusive or-not” have additional third logical inputs that are combined together and connected to an additional input of external modulation of a digital chaotically oscillating autonomous Boolean network.
4. A generator according to any one of paragraphs 1-3, characterized in that the generator has a shutdown input, and both logical elements “exclusive or” and / or “exclusive or-not” have additional shutdown inputs with the ability to force the output of both said logical elements to the state of logical zero or logical one. regardless of the state of the other inputs, and these inputs are combined together and connected to the specified generator shutdown input.
5. A generator according to any one of paragraphs 3-4, characterized in that the digital chaotically oscillating autonomous Boolean network is combined with a D-trigger into a synchronous chaotic oscillator block having a clock input connected to the clock input of the D-trigger, a modulation input connected to the modulation input of the autonomous Boolean network, an asynchronous output connected to the output of the autonomous Boolean network, a synchronous output connected to the output of the D-trigger, wherein the output of the autonomous Boolean network is connected to the data input of the D-trigger.
6. The generator according to paragraph 5, characterized in that it includes an additional two-input “exclusive or” and / or “exclusive or-not” element, the first input of which is connected to the external modulation input, the second input of which is connected to the output of the D-trigger, and the output is connected to the modulation input of the autonomous Boolean network.
7. A generator according to any one of claims 5-6, characterized in that it includes a plurality of N blocks of synchronous chaotic oscillators, combined into a ring structure, the clock inputs of which are combined together and connected to a common clock signal, and their synchronous outputs are connected to an N-bit generator output, and a plurality of N additional two-input “exclusive or” and / or “exclusive or-not” elements, such that the output of each of the said logical elements is connected to the modulation input of the corresponding block of the synchronous chaotic oscillator, its first input is connected to the asynchronous output of the previous block of the synchronous chaotic oscillator in the chain, and the second input is connected to the asynchronous output of the next block of the synchronous chaotic oscillator in the chain.
