WO2021239564A1 - Zufallszahlengenerator - Google Patents

Zufallszahlengenerator Download PDF

Info

Publication number
WO2021239564A1
WO2021239564A1 PCT/EP2021/063431 EP2021063431W WO2021239564A1 WO 2021239564 A1 WO2021239564 A1 WO 2021239564A1 EP 2021063431 W EP2021063431 W EP 2021063431W WO 2021239564 A1 WO2021239564 A1 WO 2021239564A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
output
number generator
matrix
oscillator
Prior art date
Application number
PCT/EP2021/063431
Other languages
English (en)
French (fr)
Inventor
Andreas Schubert
Original Assignee
Andreas Schubert
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Andreas Schubert filed Critical Andreas Schubert
Publication of WO2021239564A1 publication Critical patent/WO2021239564A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Definitions

  • the present invention relates to a self-testable real random number generator based on a combination of individualized matrix field oscillators consisting of mutually influencing XOR mini-oscillators.
  • Random numbers are used in many areas. These include areas such as cryptography, Monte Carlo calculation and simulation, games of chance, etc. A particularly important area is cryptography. Here random numbers are used, among other things, for keys for symmetrical and asymmetrical cryptography procedures, cryptographic query-response protocols,
  • Chip cards for example, are a practical area of application in this area.
  • Random numbers can be generated by random number generators.
  • RNGs random number generators
  • deterministic (pseudo-random) RNGs DRNG or PRNG
  • nondeterministic random generators genuinely random, hardware
  • PTRNG physical true RNG - TRNG or PTRNG
  • Noise based random number generators noise based RNGs
  • Random number generators based on a free running oscillator RNGs
  • Quantum RNGs Quantum random number generators
  • FRO random number generators promise low costs and effort, but represent a solution with low entropy. They offer neither a very good nor a provable randomness. There is also a risk of FROs being coupled to the system clock or other logic circuitry on the chip, including nearby FROs. The implementation details of FROs often need to be adapted to the specific type, generation or technology of an FPGA or ASIC. Despite their interesting and innovative principle, Fibonacci ring oscillators and Galois ring oscillators only represent a partial solution to the problems of FROs. The problem of non-portability and the requirement of a sufficiently large noise for a reasonable random behavior, far from a pseudo-random behavior, remain exist.
  • a cryptographic circuit for the execution of symmetrical and / or asymmetrical cryptography methods can be created for the first time, which is completely built up on a single integrated digital circuit, including a real random number generator with robust, reliable, approximately maximum real randomness (entropy).
  • the random number generator comprises a matrix of individual oscillator circuits that have an even number of inputs that are each connected to an output of an adjacent oscillator circuit, two of the inputs with a first exclusive or Gates are connected, and the outputs of the first exclusive-or gates are connected to inputs of a further exclusive-or gate, the output signal of which forms an output signal of the individual oscillator circuit, and is connected to inputs of the respective neighboring oscillator circuits, wherein the oscillator circuits at the edges of the matrix are correspondingly connected to oscillator circuits at the opposite edges of the matrix, and the output signal of one of the oscillator circuits forms the signal output of the matrix.
  • the basic idea is to stay as close as possible to the idea of an oscillator-based random number generator with so-called matrix field oscillators, but a) the real random influence (real entropy) of unpredictable, intrinsic changes (instabilities) of delay times of circuit elements due to electronic noise to decisively increase or amplify the signal propagation and thus the states in a complex asynchronous circuit and thus significantly reduce the pseudo-random influence and b) use the positive properties of XOR logic modules in the form of so-called mini-oscillators as optimally as possible and c ) to significantly increase the security and robustness against undesired manipulations (attacks) through the selected complex circuit structure.
  • the output signals of the XOR mini oscillators at the edges of the matrix field oscillators are not fed back directly as input signals, but rather serve as input signals for the XOR mini oscillators at the opposite edges of the respective matrix field oscillator. This measure serves to improve the statistical properties of the random number generator.
  • the matrix field oscillators should not become too large in order to enable a combination of several matrix field oscillators.
  • the output signal of the individual oscillator circuit is also routed via a signal input of a multiplexer, the control input of which is connected to a first binary control signal and the other signal input of which is connected to a further binary control signal, and the output signal of which is the output signal of the individual oscillator Forms circuit, wherein the first binary control signal is used to activate and deactivate the matrix of oscillator circuits, and the further binary control signal is used to safely start up the individual oscillator circuits.
  • the random number generator according to the invention can be switched on and off in a targeted manner and, at the same time, reliable oscillation of the individual oscillator circuits can be brought about.
  • the matrix is two-dimensional, preferably square, and preferably comprises 6 ⁇ 6 individual oscillator circuits.
  • the present invention would also work with a one-dimensional matrix, but then reliable oscillation of the oscillators is no longer guaranteed and the random behavior could be manipulated by external influences.
  • a more than two-dimensional design of the matrix leads to an extremely complicated circuit structure without any significant gain in manipulation resistance and randomness of the circuit behavior.
  • a further one of the oscillator circuits of the matrix is connected to a special further binary control signal at its multiplexer, which is set up in such a way that it is activated for a short period of time directly before the matrix is activated via the first binary control signal , and thus serves to safely start up the oscillator circuits of the matrix. In this way, a reliable start-up of the oscillators of the matrix can be ensured. It is further preferred that only one further oscillator circuit in the matrix is provided with an inverter.
  • the output signal of the matrix to a D flip-flop (first metastabilty FF stage), the output signal of which represents the sampled - possibly metastable - output signal of the matrix.
  • first metastabilty FF stage the output signal of which represents the sampled - possibly metastable - output signal of the matrix.
  • the random number generator comprises several matrices of individual oscillator circuits, the sampled output signals of which are all connected to an input of an exclusive-OR gate, the output of which supplies the random sequence.
  • the XOR combination of several individualized matrix field oscillators at the same time as digitization (and synchronization) has the advantage that the failure of a matrix field oscillator may also be intercepted.
  • the XOR combination of independent matrix field oscillators makes the random number generator more random and robust, since the entropy at the output of the XOR combination is greater than the individual entropies at the outputs of the matrix field oscillators (before the XOR combination).
  • the output of the exclusive-or gate is connected to an input of the second D flip-flop stage (second metastability FF stage), the output of which supplies the digitized and synchronized random sequence.
  • the individual matrices connected by the exclusive-OR gate are individualized in that in each of the matrices the relative positions of the oscillator circuits with the inverter, the signal output and the special additional binary control signal (location the excitation) are different from each other.
  • the individualization of the matrix field oscillators by choosing the location of the excitation, the inverter and the output make the matrix field oscillators independent of one another. In this way, the statistical properties of the random number generator can be further improved and the risk of coupling matrix field oscillators can be avoided.
  • the use of an additional inverter in the matrix field serves to avoid the risk of an unwanted standstill or periodic oscillation of a matrix field oscillator.
  • the outputs of the exclusive-OR gates of different oscillator circuits of a matrix are each connected to an input of an OR gate, the output of which is connected to the reset input of a counter that counts up with a system clock, and its overflow provides a signal that the matrix is not oscillating properly.
  • an analog random output signal also means that the signal can be a constant zero or one over a longer period of time, since this signal sequence is unlikely but cannot be ruled out.
  • a waiting time is preferably introduced directly after the start of the random number generator before the first random values are output. During this time, the resulting data will be discarded. With this measure, the remaining pseudo-random influence on the Random number generator significantly reduced.
  • Built-in oscillation health tests enable reliable statements to be made about the states of the matrix field oscillators. The evaluation of all oscillation tests leads to a simple, effective and fast test for the detection of a total failure test (TOT) of the noise source.
  • TOT total failure test
  • the random number generator can be brought into a state of rest in a targeted manner by means of a corresponding input signal.
  • the random number generator is very easy to implement and portability when using only normal digital logic (suitable for all FPGAs and ASICs) with limited resources and no need for special manual interventions (instead, automatic synthesis) higher security through the implementation of the entire random number generator in a single chip and, if necessary, additional integration of a cryptographic system in the same chip, since the random number generator is implemented using only normal digital logic (suitable for all FPGAs and ASICs) with limited resources
  • To K Use of post-processing to further improve the statistical properties of the random data generated by the random number generator (in the vast majority of applications of this random number generator and especially in the case of the exemplary embodiment, this post-processing is not necessary and not advantageous or desirable, among other things because of the reduction in the data bit rate).
  • VHDL model of an exemplary embodiment of the random number generator according to the invention. Based on this VHDL model, a prototype of the exemplary embodiment of the random number generator is implemented on a SmartFusion evaluation board with the SmartFusion - FPGA A2F200M3F-FGG484 from Microsemi (Microchip Technology).
  • FIG. 1 shows an XOR mini-oscillator according to the invention without showing the feedback via neighboring mini-oscillators;
  • FIG. 2 shows the connection according to the invention of two adjacent XOR mini-oscillators from FIG. 1;
  • FIG. 1 shows an XOR mini-oscillator according to the invention without showing the feedback via neighboring mini-oscillators;
  • FIG. 2 shows the connection according to the invention of two adjacent XOR mini-oscillators from FIG. 1;
  • FIG. 1 shows an XOR mini-oscillator according to the invention without showing the feedback via neighboring mini-oscillators;
  • FIG. 2 shows the connection according to the invention of two adjacent XOR mini-oscillators from FIG. 1;
  • FIG. 1 shows an XOR mini-oscillator according to the invention without showing the feedback via neighboring mini-oscillators;
  • FIG. 2 shows the connection according to the invention of two adjacent XOR mini-os
  • FIG. 3 shows the structure of a matrix field oscillator according to the invention from a two-dimensional matrix of XOR mini-oscillators with an exemplary individualization without showing the connecting lines at the edges;
  • FIG. 4 shows the matrix field oscillator of FIG. 3 with a representation of the connecting lines at the edges (for the sake of clarity, the signal designations for the individual oscillators are omitted here);
  • FIG. 6 shows the overall circuit of a random number generator according to the invention from the individual elements described above with a digitized noise source (without total failure test and oscillation tests);
  • 8 shows the circuit for the oscillation test according to the invention
  • 9 shows the circuit according to the invention for the total failure test
  • 10 shows the output signal of a matrix field oscillator according to the invention in the time (upper part of the figure) and in the frequency domain (lower part of the figure) if the matrix field oscillator is deactivated;
  • FIG. 12 shows three curves of the profile of the differential output voltage of a matrix field oscillator according to the invention after three different restarts;
  • Fig. 16 shows the same frequency distribution if the data is only recorded after a waiting time of 45 microseconds after each restart.
  • FIG. 1 shows the structure of an XOR mini-oscillator 100.
  • the oscillator 100 shown here is intended for use in a two-dimensional matrix M. It therefore has four inputs to which the four output signals of the oscillators neighboring in the matrix M are connected: t (top): the output of the oscillator located above in the matrix is connected b (bottom): here is the output of the connected in the matrix below the oscillator
  • the inputs t and b are connected to the exclusive-or gate 102, the inputs I and r are connected to the exclusive-or gate 104.
  • the outputs of the two gates 102, 104 are in turn connected to the two inputs of a further downstream exclusive-or gate 106. Its output is connected to an input of a multiplexer 108.
  • the multiplexer 108 has two inputs which can be switched using the signal s [1].
  • the oscillator can thus be switched on and off by assigning the signal s [1] for switching on in such a way that the multiplexer 108 switches through the input to which the exclusive-OR gate 106 is connected. When switched off, the input to which the signal s [0] is applied is switched through.
  • This signal is usually set to 0, only in the case of a special oscillator in the matrix M, the oscillator "Start", which is used as the place of excitation for the oscillators the matrix M is used, this signal is briefly set to 1 during the switch-on process to ensure that the oscillator starts up before the multiplexer 108 is switched to the input that is connected to the output of the exclusive-OR gate 106.
  • the output of the multiplex 108 represents the output signal of the oscillator 100.
  • an inverter 110 connected between the output of the multiplex 108 and the final output o (out).
  • the dashed inverter 110 is optional, i.e. it is implemented as part of the individualization of a matrix field oscillator M at the output of only one XOR mini-oscillator 100 of a matrix field oscillator M. It is used to avoid the risk of an unwanted standstill or periodic oscillations of a matrix field oscillator M.
  • Embodiment not only two but 36 XOR mini-oscillators 100 are interconnected to form a so-called matrix field oscillator M. They are connected to one another in such a way that each XOR mini-oscillator 100 has four neighboring XOR mini-oscillators 100. In other words, each XOR mini-oscillator 100 basically has four options for forming a feedback path and generating oscillator signals.
  • Table 1 Value combinations of the inputs of two adjacent XOR mini-oscillators 100 with an inverter functionality in the feedback path
  • Equation (1) can be transformed as follows:
  • the absolute amount of the difference between the signal probability and the ideal probability of 0.5 is a measure of the similarity of a binary variable to an ideal binary random variable: 1
  • a sequence at the output of the XOR operation is more similar to a non-weighted (pseudo) random sequence than the two input sequences.
  • the XOR operation has the property of increasing the degree of randomness.
  • a circuit of a multiplicity of linked XOR gates reinforces these described properties.
  • P x 0.5, according to the equation:
  • a matrix field oscillator M in the embodiment shown in FIG. 3 consists of a two-dimensional 6 x 6 field of XOR mini-oscillators 100, the output signal of which is used as an input signal for the neighboring mini-oscillators 100 in all four directions.
  • each XOR mini-oscillator 100 is applied to the corresponding inputs of the four neighboring mini-oscillators 100.
  • the output signals of the XOR mini oscillators 100 at the edges of the matrix field oscillators M are not fed back directly as input signals, but rather serve as input signals for the XOR mini oscillators 100 on the opposite edges of the respective matrix field oscillator M (see Fig . 4).
  • 5 shows the numbering of the elements in a matrix field oscillator in the form (row, column).
  • Table 2 exemplary customization of the matrix field oscillators
  • Indirect excitation also takes place through the XOR mini oscillator Inv with the additional inverter 110.
  • the output of the XOR mini-oscillator Out also represents the output of the matrix field oscillator M.
  • the control signals of the individual XOR mini-oscillators 100 are determined by the two input signals enable and start (see table 3).
  • the matrix field oscillator M When the matrix field oscillator M is activated, starting from logic zero (0), these two input signals simultaneously assume the value logic one (1). While the enable input signal maintains this value for the duration of the activation of the matrix field oscillator M, the start input signal goes back to the initial value of logic zero (0) relatively shortly thereafter.
  • the matrix field oscillators M are deactivated (idle state).
  • the output signals are output as test signals at six locations in the matrix field oscillator M. They serve as
  • Two of the six test signals correspond to the output signals of the XOR mini-oscillators Out and Start and are therefore dependent on the individualization of the respective matrix field oscillator M.
  • the four other test signals are keyed at fixed locations of the Matrix field oscillators M die
  • the random number generator in the exemplary embodiment contains 9 asynchronous matrix field oscillators M as a noise source.
  • the analog output signals of the 9 matrix field oscillators M are digitized in the circuit shown in FIG. 6 and synchronized with the clock of the subsequent synchronous circuit.
  • the generated analog output signals (so-called raw random signals) of the 9 matrix field oscillators M are scanned with an activated enable signal by the first metastability flip-flop stage (9 D flip-flops 200) the XOR combination 210 and output after the second metastability flip-flop stage (1 D flip-flop 220) as a digital signal or as an original random sequence (so-called raw random sequence).
  • the XOR combination 210 compresses the sampled output signals from 9 independent matrix field oscillators M into one signal. This means that the real entropy at the output of the XOR combination 210 is greater than the individual real entropies at the outputs of the matrix field oscillators M (before the XOR combination).
  • the complex high-frequency output signals (chaotic oscillations) of the Matrix field oscillators M can cause frequent metastability effects in the first metastability flip-flop stage and lead to metastable signals after this first stage. Only after the second metastability flip-flop stage is a purely digital random sequence continuously output with a very low bias.
  • several copies of the same physical noise source here matrix field oscillators, whose sampling bits are XOR-combined, are considered as a single noise source.
  • the circuit according to the invention is preferably supplemented by a module 230 for implementing the waiting time (start-up time) of 45 ps.
  • the module 230 for implementing the waiting time (start-up time) of 45 ps is arranged above the digitizer in FIG. 6.
  • out_valid 1 that the start-up time is over and the bits of the original random sequence at the output out are valid.
  • out_valid 0, i.e. the bits of the output sequence at the output out should be discarded.
  • the digitizer 20 can also be activated by setting the input signal enable to 1 (condition: no activation of the asynchronous active-low reset) and deactivate it by setting the input signal enable to 0 (idle state).
  • the circuits oscillation test 30 and total failure test 40 are described below.
  • a faulty behavior of the matrix field oscillators M in the form of generating a periodic test sequence such as 10101 ... 01 is neither known nor plausible, since periodic oscillations, among other things, due to the use of the additional inverter 110 in each of the matrix fields Oscillators M are prevented. This case will therefore not be considered further in the following.
  • the edge detection subcircuit 300 (clk: system clock; res_a_n, R ⁇ : asynchronous active-low reset; R s : synchronous active-high reset) in FIG. 7 detects changes in a digitized test signal.
  • each of the 6 test signals of a matrix field oscillator M (for the selection of these test signals, see Table 4) is fed to a first D flip-flop 310 for scanning.
  • the output of this D flip-flop 310 is fed to the input of a further D flip-flop 320.
  • These two D flip-flops 310 and 320 serve as metastability flip-flops for digitizing and synchronizing the respective test signal.
  • the output of the D flip-flop 320 is fed to the D input of a further D flip-flop 330, which is used for the time delay required for edge detection, and the input of the D flip-flop 330 (this corresponds to the output of the D flip-flop 320) on the one hand and the output of the D flip-flop 330 is fed to the input of an exclusive-OR gate 340.
  • Its output signal "edge” indicates the presence of an edge in the digitized output signal test.
  • FIG. 8 shows the oscillation test circuit 30 (clk: system clock; res_a_n: asynchronous active-low reset; res_s: synchronous active-high reset).
  • the oscillation test circuit 30 shown in FIG. 8 comprises 6 edge detection circuits 300 (0 to 5), the respective output signals “edge” of which are fed to an OR gate 32.
  • the output of this OR gate 32 is fed to the reset input res_s of a counter 34.
  • the counter is incremented with the system clock, i.e. the system clock is on the counter input of the counter. If the counter overflows, i.e. no edge has occurred during as many system clocks as the counter can count, the counter overflow goes to logic 1 and is displayed as a "noedge" signal, i.e. an oscillation fault in the corresponding matrix field oscillator M.
  • the counter can count 100 cycles until it overflows; with a binary counter, a power of two is recommended, for example 128.
  • the overflow signals from counter 34 “noedge” are then used for overall monitoring of the inventive random number generator of a total failure test circuit 40 supplied.
  • the SmartFusion FPGA technology is based on the ProASIC3 FPGA Flash architecture. During the investigation, only the pure FPGA (FPGA fabric) is used without the processor also present in the SOC FPGA. The main goal of this investigation is to determine to what extent the generated by the random number generator Randomness is real. For this purpose, the behavior of an individual matrix field oscillator 100 is examined in section 1.1 and the behavior of the entire random number generator is examined in section 1.2.
  • Appendices A, B and C also contain brief analyzes of implementations of the above-described exemplary embodiment of the random number generator according to the invention on an IGLOO-FPGA (Microsemi), a Spartan-6-FPGA (Xilinx) and a Spartan-7-FPGA (Xilinx) shown.
  • Appendix D is followed by a brief analysis of a “Frequency Injection Attack”.
  • Appendix E lists some features (resource and power consumption) of implementations of the exemplary embodiment of the random number generator according to the invention.
  • Appendix F shows the results of a long-term oscillation test of the four implementations of the exemplary embodiment of the random number generator according to the invention.
  • the first example is to record the output signal (standard output) of the matrix field oscillator 0 of the random number generator according to the invention in the time and frequency domains (spectrum) with an oscilloscope.
  • 10 and 11 show the output signal of the matrix field oscillator 0 in the time (upper part of the figure) and in the frequency domain (lower part of the figure) if the matrix field oscillator 0 is deactivated (Fig. 10) or activated (Fig . 11) is.
  • the restart measurements were made using the above-mentioned FPGA technology.
  • the inactive state (output equal to 0) serves as the initial state of the matrix field oscillator 0, so that the initial conditions are essentially identical.
  • 0 LVDS outputs were selected for the output of the matrix field oscillator and corresponding output voltages were measured differentially in order to increase the accuracy of the measurement.
  • FIG. 12 shows three of a total of 1000 measured curves of the differential output voltage of the matrix field oscillator 0 after various restarts.
  • the courses of the three curves differ from one another. While they are still identical or at least similar at the beginning, they differ more and more in the course of the illustration in FIG. 12.
  • the amount of randomness in the recorded curves relevant to the extraction of the entropy by sampling can be expressed by the standard deviation of the output voltage as a function of time be measured. That is, if the standard deviation is relatively large, then extracting a bit of true randomness by sampling is relatively easy and reliable. On the other hand, if the standard deviation is relatively small, then the extracted random bit is heavily weighted and this bias will be highly implementation-dependent. Accordingly, the standard deviation and the arithmetic mean of the differential output voltage of the matrix field oscillator 0 were calculated as functions of time (duration 140 ns) for the 1000 curves. The results are shown in Figs.
  • Standard deviation achieve relatively stable values.
  • the relatively stable value for the standard deviation is approximately twice as large as the corresponding values for the Fibonacci and Galois ring oscillators.
  • the structure of the matrix field oscillator M thus enables a more robust and reliable entropy extraction by scanning than comparable oscillators. Because the structure is basically the same, the same or similar results are to be expected for the other matrix field oscillators M.
  • the data output of the random number generator takes place via an SPI interface, as it enables the desired, relatively high data rate of 30 Mbit / s.
  • the FT2232H mini module from FTDI is used for this. It provides this SPI interface.
  • the implementation of the random number generator is adapted to this interface.
  • the SPI interface enables data blocks up to a size of 65536 bytes to be read at one data rate of up to 30 Mbit / s.
  • the data is transferred from the FT2232H mini module to a computer via USB.
  • the random number generator is of course capable of continuous data output, due to the SPI interface used, data can only be output in blocks.
  • the basic statistical properties of the random number generator are checked with common statistical tests (AIS31 statistical test suite, NIST statistical test suite / NIST 800-22 and TestUOL statistical test from the University of Montreal).
  • the statistical tests are applied to data that are recorded with a sequential data acquisition with 200 62,500 byte or.
  • Table 5 Results of the statistical tests of data generated by the random number generator at room temperature with a sequential data acquisition with 200 62,500 byte or 500,000 bit data blocks (data rate 30 Mbit / s)
  • Table 5 shows that the random number generator passed all statistical tests carried out.
  • the second column of Table 5 contains the result of the entropy test over one byte. It should be noted that the AIS31 test suite works with Shannon entropy estimation. The value for the Shannon entropy per byte in the second column of Table 5 is greater than the maximum value of 8 bits. This is due to rounding errors in the calculation through the AIS31 analysis tool. The entropy value in said column is greater than 7.976 bits of Shannon entropy per byte. In other words, the Shannon entropy per bit is greater than 0.997 bits in this case. Thus, the corresponding requirements of AIS20 / 31 are met.
  • AIS20 / 31 requires that the AIS31 statistical test suite is passed under all relevant environmental conditions.
  • the random number generator is therefore subjected to temperature tests in a specific temperature range.
  • the sequential data acquisition is carried out with basically unchanged test conditions (except for temperature).
  • 200 62,500-byte or 500,000-bit data blocks are received at each of the different temperatures (from -25 ° C to +55 ° C in steps of 5 ° C).
  • Each of these total data sets is tested with the AIS31 statistical test suite.
  • Table 6 Results of the tests with the AIS31 statistical test suite of data generated by the random number generator at different temperatures with sequential data recording with 200 62,500 byte or 500,000 bit data blocks (data rate 30 Mbit / s)
  • the analysis is carried out by combining the various data sequences in the form of data blocks to form a total data volume, which is then checked with common statistical tests (AIS31 statistical test suite, NIST statistical test suite / NIST 800-22 and TestUOL statistical test from the University of Montreal).
  • common statistical tests AIS31 statistical test suite, NIST statistical test suite / NIST 800-22 and TestUOL statistical test from the University of Montreal.
  • the basic idea is that the statistical tests must be passed even if the amount of data generated by restarting. This is because if there is a real random generation by the random number generator, the statistical properties of the data volume must be independent of whether they arise from sequential data acquisition or from data blocks with a series of restarts.
  • inadequacies such as bias and statistical dependencies caused by possibly still existing pseudo-randomnesses are recognized by the very demanding and complex statistical tests in this approach.
  • This new approach promises a simple but comprehensive overview of whether the random number generator generates true randomness without a significant influence of pseudo randomness at the given data rate or not.
  • this new method is used twice for the random number generator, the first time without and the second time with a waiting time immediately after the restart, in which the random bits are discarded. Only after the waiting time are the random bits no longer suppressed, but output.
  • the new test method is applied to the random number generator without waiting after each restart. There are 100,000 restarts, each with 125-byte or. 1,000-bit data blocks (original random sequences directly after digitization (raw random sequence)) with a data rate of 30 Mbit / s each at room temperature. The frequency distribution of byte values gives a first impression of the properties of the corresponding total data volume. It is shown in FIG.
  • the pseudo-random influence on the random number generator was obviously significantly reduced by the introduction of the waiting time.
  • the disappearance of a significant pseudo-random influence, i.e. the random number generator only generates pure real randomness, is also shown by the statistical analysis of further restart attempts with different data block sizes and the number of restarts at room temperature, at a data rate of 30 Mbit / s and also the same total amount of data in each case 100,000,000 bits (about 11.9 MB).
  • Table 7 Results of the statistical tests of data generated by the random number generator under various restart conditions at room temperature with a waiting time of 45 ps after each restart. The results of these investigations are shown in Table 7.
  • the second column of Table 7 contains the results of the entropy Tests over a byte.
  • the values for the Shannon entropy per byte are greater than the maximum value of 8 bits due to rounding errors.
  • the entropy values in said column are all greater than 7.976 bits of Shannon entropy per byte. This means that the Shannon entropy per bit is greater than 0.997 bits in all cases.
  • the corresponding requirements of AIS20 / 31 are met.
  • the min-entropy tests and restart tests of the relatively new standards NIST SP800-90B consist of two paths: HD (independent and identically distributed) and non-I ID. Based on the research results so far, the IID path will be followed in the following. This means that it is assumed that the entropy source independently generates identically distributed random numbers.
  • the initial minimum entropy estimate H 0 hginai
  • the restart tests are carried out.
  • the first 10 6 bits of the original random sequences after digitization (raw random sequence) after a waiting time of 45 ps after the start according to the sequential data acquisition already described (see section 1.2.1) serve as the data volume for the minimum entropy test.
  • NIST SP800-90B does not require a specified minimum value for the estimated minimum entropy to pass the test procedure if the restart tests are passed.
  • Table 8 Results of the NIST SP800-90B tests of data generated by the random number generator at room temperature (data rate 30 Mbit / s)
  • the random number generator is also subjected to temperature tests in a certain temperature range as part of the NIST SP800-90B tests.
  • the data acquisition is carried out here again with basically unchanged test conditions (except for temperature). That means, at each of the different temperatures (from -25 ° C to +55 ° C in steps of 5 ° C) the previously described
  • the minimum entropy per bit after the restart tests is always greater than 0.99 bit at all temperatures and is therefore very high. This even applies to the low temperatures. It should be emphasized again that the examined data are original random sequences after digitization (raw random sequences). From all these results it can be concluded that the random number generator according to the invention is confirmed here as a real entropy source of very high quality in the entire temperature range examined.
  • Table 11 Results of the NIST SP800-90B tests of data generated by the random number generator at room temperature (data rate 30 Mbit / s)
  • Appendix B Brief analysis based on a Spartan -6 FPGA from Xilinx
  • Table 13 Results of the NIST SP800-90B tests of data generated by the random number generator at room temperature (data rate 30 Mbit / s
  • Part I - Random number generator 15 Mbit / s, IF (SPI): 15 Mbit / s Table 14: Results of the statistical tests of data generated by the random number generator at room temperature with a sequential data acquisition with 200 62,500 byte or 500,000 bit data blocks
  • Table 15 Results of NIST SP800-90B testing of data generated by the random number generator at room temperature
  • Part ff - random number generator 30 Mbit / s, IF (SRI): 15 Mbit / s
  • Table 16 Results of the statistical tests of data generated by the random number generator at room temperature with a sequential data acquisition with 200 62,500-byte or 500,000-bit data blocks
  • Table 17 Results of NIST SP800-90B testing of data generated by the random number generator at room temperature
  • Appendix D Brief analysis of a "Frequency Injection Attack” based on an IGLOO-FPGA from Microsemi IGLOO nano starter kit board (AGLN-NANO-KIT) with the IGLOO-FPGA AGLN250V2-VQG100 from Microsemi Based on knowledge of the publication T. Markettos and SW Moore, The Frequency Injection Attack on Ring-Oscillator- Based True Random Number Generators, Cryptographic Hardware and Embedded Systems - CHES 2009, Lecture Notes in Computer Science, vol.
  • Table 18 Results of the tests with the AIS31 statistical test suite of data generated by the random number generator at different frequencies of an interfering signal with sequential data recording with 200 62,500 byte or 500,000 bit data blocks (data rate 30 Mbit / s)
  • Table 19 Results of the NIST SP800-90B tests of data generated by the random number generator at different frequencies of an interfering signal (data rate 30 Mbit / s)
  • Table 20 Results of the long-term oscillation test for 4 implementations of the exemplary embodiment of the random number generator

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

Zufallszahlengenerator mit rein digitalen Schaltungselementen, der eine Matrix (M) aus einzelnen Oszillator-Schaltungen (100) umfasst, die eine gerade Anzahl Eingänge (t, b, l, r) aufweisen, die jeweils mit einem Ausgang (o) einer benachbarten Oszillator-Schaltung (100) verbunden sind, wobei jeweils zwei (t, b; l, r) der Eingänge mit einem ersten Exklusiv-Oder-Gatter (102, 104) verbunden sind, und die Ausgänge der ersten Exklusiv-Oder- Gatter (102, 104) mit Eingängen eines weiteren Exklusiv-Oder-Gatters (106) verbunden sind, dessen Ausgangssignal ein Ausgangssignal (o) der einzelnen Oszillator-Schaltung (100) bildet, und mit Eingängen (b, t, r, l) der jeweils benachbarten Oszillator-Schaltungen (100) verbunden ist, wobei die Oszillator-Schaltungen (100) an den Rändern der Matrix (M) entsprechend mit Oszillator-Schaltungen (100) an den gegenüberliegenden Rändern der Matrix (M) verbunden sind, und das Ausgangssignal einer der Oszillator- Schaltungen (Out) den Signal-Ausgang (out) der Matrix (M) bildet.

Description

Zufallszahlengenerator
Beschreibung
Die vorliegende Erfindung betrifft einen selbsttestbaren echten Zufallszahlengenerator basierend auf einer Kombination von individualisierten Matrixfeld-Oszillatoren bestehend aus sich gegenseitig beeinflussenden XOR-Mini-Oszillatoren.
Stand der Technik
In vielen Bereichen werden Zufallszahlen verwendet. Dazu zählen Bereiche wie Kryptographie, Monte-Carlo-Berechnung und Simulation, Glücksspiele usw.. Ein besonders wichtiger Bereich ist die Kryptographie. Hier werden Zufallszahlen u.a. für Schlüssel für symmetrische und asymmetrische Kryptographieverfahren, kryptographische Abfrage-Antwort-Protokolle,
Initialisierungsvektoren oder Zufallsstopfbits benötigt. Ein praktisches Anwendungsgebiet in diesem Bereich sind beispielsweise Chipkarten.
Zufallszahlen können durch Zufallszahlengeneratoren erzeugt werden. Es gibt im Wesentlichen zwei Hauptarten von Zufallszahlengeneratoren (random number generators - RNGs): deterministische (pseudozufällige) RNGs (DRNG oder PRNG) und nichtdeterm inistische Zufallsgeneratoren (echt zufällig, Hardware) basierend auf einem physikalischen Prozess (physical true RNG - TRNG oder PTRNG). Die letzteren können kurz als echte oder physikalische Zufallszahlengeneratoren bezeichnet werden. Die
Hauptanforderung an sie ist, dass sie unvorhersehbare und unkontrollierbare Zufallszahlen generieren. Obwohl sehr viele Konstruktionen von physikalischen Zufallszahlengeneratoren existieren und obwohl auch die Forschung auf diesem Gebiet weiter geht, lässt sich der augenblickliche Stand der Technik gemäß der wissenschaftlichen Veröffentlichung „Mario Stipcevic und etin Kaya Kog, True Random Number Generators, Open Problems in Mathematics and Computational Science, Springer International Publishing, Switzerland, S. 275-316, 2014“, welche den hierzu nächstgelegenen Stand der Technik offenbart, in diesem Bereich grob in die vier folgende Familien unterteilen:
- auf Rauschen basierende Zufallszahlengeneratoren (noise based RNGs)
- Zufallszahlengeneratoren basierend auf einem frei laufenden Oszillator (free running oscillator RNGs)
- Chaos-Zufallszahlengeneratoren (chaos RNGs)
- Quanten-Zufallszahlengeneratoren (quantum RNGs)
Zurzeit gibt es keine Standardisierung in diesem Bereich. Allerdings herrscht in der Industrie aktuell die Verwendung von physikalischen Zufallszahlengeneratoren basierend auf einem frei laufenden Oszillator (free running oscillator - FRO) vor, deren Zufälligkeit bzw. Entropie sich von elektronischem Rauschen in logischen Schaltungen ableiten lässt und die sich nicht als strikt gleichmäßig zufällig erwiesen haben. Diese Art von Zufallszahlengeneratoren bietet allerdings grundsätzlich eine leichtere technische Realisierbarkeit. Eine neuere Entwicklung in diesem Bereich sind Zufallszahlengeneratoren basierend auf einer Kombination eines linearen Rückkopplungsschieberegisters (linear feedback shift register - LFSR) und eines frei laufenden Oszillators (FRO). Sie werden Fibonacci-Ringoszillator (Finbonacci ring oscillator - FIRO) und Galois-Ringoszillator (Galois ring oscillator - GARO) genannt.
Weiterer diesbezüglicher Stand der Technik ergibt sich aus dem folgenden wissenschaftlichen Veröffentlichungen: V. Fischer, Random Number Generators for Cryptography - Design and Evaluation, Summer School on Design and Security of Cryptographic Algorithms and Devices, Sibenik, Croatia, June 2014;
M. Dichtl, Fibonacci Ring Oscillators as True Random Number Generators - A Security Risk, IACR Cryptology ePrint Archive, 270, 2015;
W. Killmann and W. Schindler, AIS20/AIS31 - A Proposal for: Functionality Classes for Random Number Generators, Version 2.0, 2011 ;
A. Rukhin et al. , A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications, NIST Special Publication 800-22, US Department of Commerce, National Institute of Standards and Technology, Gaithersburg, MD, April 2010;
M. Dichtl, J.D. Golic, High-Speed True Random Number Generation with Logic Gates Only, Cryptographic Hardware and Embedded Systems - CHES 2007, Lecture Notes in Computer Science, vol 4727, Springer, Berlin, Heidelberg, pp 45-62, 2007;
J. Baiasch et al., Design and testing methodologies for true random number generators towards industry certification, 2018 IEEE 23rd European Test Symposium (ETS), Bremen, pp. 1-10, 2018;
M. Sönmez Turan et al., Recommendation for the Entropy Sources Used for Random Bit Generation, NIST Special Publication 800-90B, Department of Commerce, National Institute of Standards and Technology, Gaithersburg, MD, January 2018; A Schubert and W. Anheier, On Random Pattern Testability of Cryptographic VLSI Cores, Journal of Electronic Testing: Theory and Applications, Vol. 16, No. 3, Kluwer Academic Publishers, Netherlands, pp. 185-192, 2000;
A. Schubert, Modellierung, Optimierung und Selbsttest von kryptographischen virtuellen Komponenten, Dissertation Universität Bremen, Fortschritt-Berichte VDI Reihe 10, Nr. 690, VDI Verlag GmbH, Düsseldorf, 2002.
Zusammenfassend kann man über FRO-Zufallszahlengeneratoren sagen, dass sie niedrige Kosten und Aufwand versprechen, aber eine Lösung mit niedriger Entropie darstellen. Sie bieten weder eine sehr gute noch eine beweisbare Zufälligkeit. Außerdem besteht die Gefahr der Kopplung von FROs mit dem Systemtakt oder anderen Logikschaltungen auf dem Chip einschließlich in der Nähe liegender FROs. Die Implementierungsdetails von FROs müssen häufig an den spezifischen Typ, die Generation oder die Technologie eines FPGAs oder ASICs angepasst werden. Trotz ihres interessanten und innovativen Prinzips stellen Fibonacci-Ringoszillatoren und Galois-Ringoszillatoren nur eine Teillösung der Probleme von FROs dar. Das Problem der Nicht-Portierbarkeit und der Anforderung eines genügend großen Rauschens für ein vernünftiges zufälliges Verhalten, weit weg von einem pseudozufälligen Verhalten, bleiben bestehen. Ein weiteres beobachtetes Problem dieser neuen Art von Ringoszillatoren ist die Gefahr eines ungewollten Stillstandes oder des Auftretens von periodischen statt chaotischen Oszillationen. Allgemein ist die Verbreitung echter Zufallszahlengeneratoren noch eher begrenzt. Das liegt wohl auch daran, dass der Preis von guten echten kommerziellen Zufallszahlengeneratoren mit hohen Bitraten wie beispielsweise echten Quanten-Zufallszahlengeneratoren recht hoch ist.
Ausgehend von dem beschriebenen Stand der Technik ist es Aufgabe der vorliegenden Erfindung, einen Zufallszahlengenerator zu schaffen, der ein robustes, zuverlässiges, maximal echt zufälliges Verhalten garantiert und ausschließlich unter Verwendung bekannter digitaler Schaltungen aufgebaut ist. Damit lässt sich erfindungsgemäß erstmals eine kryptographische Schaltung zur Ausführung symmetrischer und/oder asymmetrischer Kryptographieverfahren schaffen, die vollständig, einschließlich eines echten Zufallszahlengenerators mit robuster, zuverlässiger, annähernd maximal echter Zufälligkeit (Entropie), auf einer einzigen integrierten digitalen Schaltung aufgebaut ist.
Erfindungsgemäß wird diese Aufgabe dadurch gelöst, dass der Zufallszahlengenerator eine Matrix aus einzelnen Oszillator-Schaltungen umfasst, die eine gerade Anzahl Eingänge aufweisen, die jeweils mit einem Ausgang einer benachbarten Oszillator-Schaltung verbunden sind, wobei jeweils zwei der Eingänge mit einem ersten Exklusiv-Oder-Gatter verbunden sind, und die Ausgänge der ersten Exklusiv-Oder-Gatter mit Eingängen eines weiteren Exklusiv-Oder-Gatters verbunden sind, dessen Ausgangssignal ein Ausgangssignal der einzelnen Oszillator-Schaltung bildet, und mit Eingängen der jeweils benachbarten Oszillator-Schaltungen verbunden ist, wobei die Oszillator-Schaltungen an den Rändern der Matrix entsprechend mit Oszillator-Schaltungen an den gegenüberliegenden Rändern der Matrix verbunden sind, und das Ausgangssignal einer der Oszillator-Schaltungen den Signal-Ausgang der Matrix bildet.
Mit dieser Schaltungsanordnung lässt sich erstmals mittels eines neuartigen Zusammenschlusses bekannter digitaler Einzelschaltungen ein analoges Ausgangssignal mit echt zufälligem Signalverlauf erzeugen, das eine robuste und zuverlässige Extraktion von annähernd maximal echter Zufälligkeit (Entropie) durch Abtastung ermöglicht. Es ist nicht mehr nötig, wie bei bisherigen echten Zufallszahlengeneratoren mit hoher Qualität, dieses echt zufällige analoge Ausgangssignal mittels analoger Schaltungen und/oder anderen physikalischen Hilfsmittel, wie beispielsweise radioaktiven Zerfällen zu bilden. Der Grundgedanke besteht darin, mit sogenannten Matrixfeld-Oszillatoren möglichst nah an der Idee eines auf Oszillatoren basierenden Zufallszahlengenerators zu bleiben, aber a) den echt zufälligen Einfluss (echte Entropie) von unvorhersehbaren, intrinsischen Veränderungen (Instabilitäten) von Verzögerungszeiten von Schaltungselementen durch elektronisches Rauschen auf die Signalausbreitung und damit auf die Zustände in einer komplexen asynchronen Schaltung entscheidend zu erhöhen bzw. zu verstärken und so den pseudozufälligen Einfluss signifikant zu reduzieren und b) die positiven Eigenschaften von XOR-Logikbausteinen in Form von sogenannten Mini-Oszillatoren möglichst optimal zu nutzen und c) die Sicherheit und Robustheit gegen unerwünschte Manipulationen (Attacken) durch die gewählte komplexe Schaltungsstruktur deutlich zu erhöhen. Die Ausgangssignale der XOR-Mini-Oszillatoren an den Rändern der Matrixfeld-Oszillatoren werden nicht direkt als Eingangssignale zurückgeführt, sondern sie dienen als Eingangssignale für die XOR-Mini- Oszillatoren an den gegenüberliegenden Rändern des jeweiligen Matrixfeld- Oszillators. Diese Maßnahme dient dazu, die statistischen Eigenschaften des Zufallszahlengenerators zu verbessern. Dabei sollen die Matrixfeld- Oszillatoren nicht zu groß werden, um eine Kombination von mehreren Matrixfeld-Oszillatoren zu ermöglichen.
Weitere bevorzugte Ausführungsformen der vorliegenden Erfindung ergeben sich aus den Unteransprüchen:
Hierbei ist es bevorzugt, dass das Ausgangssignal der einzelnen Oszillator- Schaltung noch über einen Signaleingang eines Multiplexers geführt ist, dessen Steuereingang mit einem ersten binären Steuersignal und dessen anderer Signaleingang mit einem weiteren binären Steuersignal verbunden ist, und dessen Ausgangssignal das Ausgangssignal der einzelnen Oszillator-Schaltung bildet, wobei das erste binäre Steuersignal zum Aktivieren und Deaktivieren der Matrix aus Oszillator-Schaltungen dient, und das weitere binäre Steuersignal zum sicheren Anlaufen der einzelnen Oszillator-Schaltungen dient.
Auf diese Weise kann der erfindungsgemäße Zufallszahlengenerator gezielt ein- und ausgeschaltet werden und gleichzeitig kann ein sicheres Anschwingen der einzelnen Oszillator-Schaltungen herbeigeführt werden.
Es ist weiter bevorzugt, das Ausgangssignal mindestens einer der einzelnen Oszillator-Schaltungen über einen Inverter zu führen. Dies verbessert sowohl die Zufälligkeit des Ausgangssignals als auch die Sicherheit des Anschwingens der verbundenen Oszillator-Schaltungen.
Weiter ist es bevorzugt, dass die Matrix zweidimensional, vorzugsweise quadratisch ist, und vorzugsweise 6 x 6 einzelne Oszillator-Schaltungen umfasst.
Die vorliegende Erfindung würde zwar auch mit einer eindimensionalen Matrix funktionieren, dann ist ein sicheres Anschwingen der Oszillatoren aber nicht mehr garantiert und das zufällige Verhalten könnte durch Einwirkungen von außen manipuliert werden. Eine mehr als zweidimensionale Ausführung der Matrix führt zu extrem kompliziertem Schaltungsaufbau, ohne dass noch ein erheblicher Gewinn an Manipulationsfestigkeit und Zufälligkeit des Schaltungsverhaltens erzielt werden könnte.
Weiter ist es bevorzugt, dass eine weitere der Oszillator-Schaltungen der Matrix mit einem speziellen weiteren binären Steuersignal an ihrem Multiplexer verbunden ist, welches so eingerichtet ist, dass es für eine kurze Zeitspanne direkt vor der Aktivierung der Matrix über das erste binäre Steuersignal aktiviert wird, und damit zum sicheren Anlaufen der Oszillator- Schaltungen der Matrix dient. Auf diese Weise kann ein sicheres Anschwingen der Oszillatoren der Matrix sichergestellt werden. Weiter ist es bevorzugt, dass lediglich eine weitere Oszillator-Schaltung in der Matrix mit einem Inverter versehen ist.
Es hat sich nämlich gezeigt, dass das Vorsehen eines Inverters in der gesamten Matrix das Anschwingen aller Oszillatoren verbessert. Weitere Inverter vorzusehen bringt keinen größeren Zugewinn mehr, erhöht aber den Schaltungsaufwand.
Weiter ist es erfindungsgemäß bevorzugt, das Ausgangssignal der Matrix mit einem D-Kippglied (erste Metastabiltäts-FF-Stufe) zu verbinden, dessen Ausgangssignal das abgetastete - ggf. metastabile - Ausgangssignal der Matrix darstellt. Zusammen mit der zweiten Metastabiltäts-FF-Stufe kann auf diese Weise am einfachsten das gewünschte digitale Ausgangssignal der Matrix bereitgestellt werden, da die Matrix selbst, wie oben beschrieben, trotz ihrer Zusammensetzung ausschließlich aus Digitalschaltungen ein analoges Ausgangssignal liefert.
Eine Verletzung der Setup- and Hold- Zeiten der ersten D-Kippglied-Stufe durch das analoge Ausgangssignal der Matrix führt zu einen nicht digitalen (metastabilen) "Zwischensignal" nach der ersten D-Kippglied-Stufe, siehe https://de.wikipedia.org/wiki/Metastabilität_(digitale_Schaltung). Erst nach der zweiten D-Kippglied-Stufe erhält man ein rein digitales und synchronisiertes Ausgangssignal.
Weiter ist es bevorzugt, wenn der erfindungsgemäße Zufallszahlengenerator mehrere Matrizen aus einzelnen Oszillator-Schaltungen umfasst, deren abgetastete Ausgangssignale alle jeweils mit einem Eingang eines Exklusiv- Oder-Gatters verbunden sind, dessen Ausgang die Zufallssequenz liefert.
Die XOR-Kombination von mehreren individualisierten Matrixfeld-Oszillatoren gleichzeitig mit der Digitalisierung (und Synchronisierung) hat den Vorteil, dass ggf. auch der Ausfall eines Matrixfeld-Oszillators abgefangen wird. Außerdem wird der Zufallszahlengenerator durch die XOR-Kombination unabhängiger Matrixfeld-Oszillatoren zufälliger und robuster, da die Entropie am Ausgang der XOR-Kombination größer als die einzelnen Entropien an den Ausgängen der Matrixfeld-Oszillatoren (vor der XOR-Kombination) ist.
Weiter ist es bevorzugt, wenn der Ausgang des Exklusiv-Oder-Gatters mit einem Eingang der zweiten D-Kippglied-Stufe (zweite Metastabilitäts-FF- Stufe) verbunden ist, dessen Ausgang die digitalisierte und synchronisierte Zufallssequenz liefert.
Weiter ist es bevorzugt, wenn die einzelnen, durch das Exklusiv-Oder-Gatter verbundenen Matrizen dadurch individualisiert sind, dass in jeder der Matrizen die relativen Positionen der Oszillator-Schaltungen mit dem Inverter, dem Signal-Ausgang und dem speziellen weiteren binären Steuersignal (Ort der Anregung) zueinander anders sind.
Die Individualisierung der Matrixfeld-Oszillatoren durch Wahl des Ortes der Anregung, des Inverters und des Ausgangs machen die Matrixfeld- Oszillatoren unabhängig voneinander. Damit können die statistischen Eigenschaften des Zufallszahlengenerators weiter verbessert werden und die Gefahr der Kopplung von Matrixfeld-Oszillatoren vermieden werden. Der Einsatz eines zusätzlichen Inverters im Matrixfeld dient der Vermeidung der Gefahr eines ungewollten Stillstandes bzw. einer periodischen Oszillation eines Matrixfeld-Oszillators.
Weiter ist es bevorzugt, das Ausgangssignal einer Oszillator-Schaltung einer Matrix mit einem Dateneingang eines ersten D-Kippglieds zu verbinden, dessen Ausgang mit einem Dateneingang eines zweiten D-Kippglieds verbunden ist, dessen Ausgang mit einem Dateneingang eines dritten D- Kippglieds verbunden ist, dessen Ausgang ebenso wie der Ausgang des zweiten D-Kippglieds jeweils mit einem Eingang eines Exklusiv-Oder-Gatters verbunden ist, dessen Ausgang anzeigt, ob die Oszillator-Schaltung schwingt. Auf diese Weise wird erfindungsgemäß ein Kontrollsignal über das korrekte Schwingen der jeweiligen Matrizen aus Oszillator-Schaltungen bereitgestellt.
Dabei ist es weiter bevorzugt, dass die Ausgänge der Exklusiv-Oder-Gatter verschiedener Oszillator-Schaltungen einer Matrix jeweils mit einem Eingang eines Oder-Gatters verbunden sind, dessen Ausgang mit dem Rücksetz- Eingang eines Zählers verbunden ist, der mit einem Systemtakt hochzählt, und dessen Überlauf ein Signal liefert, dass die Matrix nicht ordnungsgemäß oszilliert.
Auf diese Weise wird sichergestellt, dass lediglich echte Stillstände der Oszillatoren der Matrizen ein Störungssignal liefern. Schließlich bedeutet ein analoges zufälliges Ausgangssignal auch, dass das Signal über einen längeren Zeitraum konstant null oder eins sein kann, da diese Signalfolge zwar unwahrscheinlich aber nicht ausgeschlossen ist.
Zur Überwachung des gesamten erfindungsgemäßen Zufallszahlengenerators ist es bevorzugt, die Überlauf-Signale der Zähler der zu dem Zufallszahlengenerator verbundenen Matrizen jeweils mit einem Eingang eines Und-Gatters zu verbinden, dessen Ausgangssignal einen Totalausfall des Zufallszahlengenerators anzeigt. Dieser Totalausfall-Test hat die Aufgabe, einen Totalausfall des Zufallszahlengenerators schnell anzuzeigen, und ist an den speziellen erfindungsgemäßen Aufbau des Zufallszahlengenerators angepasst.
Eine Nachbearbeitung (post-processing) nach der Digitalisierung ist erfindungsgemäß nicht erforderlich, um statistische Tests zu bestehen. Vorzugsweise wird eine Wartezeit (Anlaufzeit) direkt nach dem Start des Zufallszahlengenerators vor Ausgabe der ersten Zufallswerte eingeführt. Während dieser Zeit werden die anfallenden Daten verworfen. Mit dieser Maßnahme wird der noch vorhandene pseudozufällige Einfluss auf den Zufallszahlengenerator entscheidend reduziert. Eingebaute Oszillationsprüfungen (built-in oscillation health tests) ermöglichen eine sichere Aussage über die Zustände der Matrixfeld-Oszillatoren. Die Auswertung aller Oszillationsprüfungen führt zu einem einfachen, effektiven und schnellen Test zur Erkennung eines Totalausfalls der Rauschquelle (total failure test (TOT) of the noise source). Desweiteren kann der Zufallszahlengenerator durch ein entsprechendes Eingangssignal gezielt in einen Ruhezustand gebracht werden.
Die vorliegende Erfindung weist die folgenden Vorteile auf:
- Kombination von individualisierten Matrixfeld-Oszillatoren, die unabhängig voneinander sind, zu einem statistisch starken, robusten, echten Zufallszahlengenerator
- bessere echte Zufallseigenschaften als andere bekannte vergleichbare Ansätze
- keine zusätzliche (komplexe) Nachbearbeitung (post-processing) nach der Digitalisierung notwendig zur Erreichung der geforderten statistischen Eigenschaften
- hervorragende Ergebnisse bei statistischen Tests (AIS-31 -Testsuite, NIST statistische Testsuite/NIST 800-22, TestUOl statistischer Test von der Universität Montreal und Tests gemäß NIST SP800-90B) der Original- Zufallssequenz (raw random sequence) nach der Digitalisierung (alle Tests werden bestanden)
- kostengünstiger und technologieunabhängiger Ansatz ohne analoge Komponenten, da sehr einfache Implementierbarkeit und Portierbarkeit des Zufallszahlengenerators bei alleiniger Verwendung von normaler digitaler Logik (geeignet für alle FPGAs und ASICs) mit begrenzten Ressourcen und keine Notwendigkeit von speziellen manuellen Interventionen (stattdessen automatische Synthese) höhere Sicherheit durch die Implementierung des ganzen Zufallszahlengenerators in einen einzigen Chip und ggf. zusätzliche Integration eines kryptographischen Systems in demselben Chip, da Realisierung des Zufallszahlengenerators unter alleiniger Verwendung von normaler digitaler Logik (geeignet für alle FPGAs und ASICs) bei begrenzten Ressourcen
- sehr hohe konstante Bitrate (mindestens 30 Mbit/s) im Vergleich mit vergleichbaren Zufallszahlengeneratoren (digitale Logik, Aufwand, Kosten) möglich
- Vermeidung der Gefahr eines Stillstandes des Zufallszahlengenerators (stall) bzw. von periodischen Oszillationen durch Einsatz mindestens eines zusätzlichen Inverters in jedem der Matrixfeld-Oszillatoren entscheidende Reduzierung des noch vorhandenen kleinen pseudozufälligen Einflusses auf die Ausgangssequenz nach der Digitalisierung durch eine Wartezeit (Verwerfen der anfallenden Daten während der Wartezeit) direkt nach Start vor Ausgabe des ersten Zufallswerts
- weitgehende Temperaturunabhängigkeit des Zufallsprozesses
- keine Gefahr der Kopplung von Matrixfeld-Oszillatoren im Vergleich zu FROs u.a. aufgrund der Individualisierung und der komplexen Struktur (Gatter-Rückkopplungspfade) der Matrixfeld-Oszillatoren (wesentlich komplexer als FROs) - große Sicherheit und Robustheit des Zufallszahlengenerators (bisher sind keine Attacken und/oder Schwächen bekannt), da deutlich kleinere Gefahr der Manipulation von Matrixfeld-Oszillatoren beispielsweise im Rahmen von aktiven Seitenkanalattacken im Vergleich zu FROs u.a. aufgrund der Individualisierung und der komplexen Struktur (Gatter-Rückkopplungspfade) der Matrixfeld-Oszillatoren (wesentlich komplexer als FROs)
- einfacher, effektiver und schneller Totalausfall-Test basierend auf eingebauten Oszillationsprüfungen der Matrixfeld-Oszillatoren.
Die vorliegende Erfindung kann im Bedarfsfälle folgendermaßen weiterentwickelt werden:
A. Kombination mit kryptographischer Nachbearbeitung (cryptographic post- processing) mit deterministischen RNG (DRNG) gemäß AIS20/31.
B. eingebettete On-Iine-Tests (initiale, regelmäßige und auf Anfrage) beispielsweise gemäß AIS20/31 und/oder NIST zusätzlich zu den schon vorhandenen Tests.
C. Erstellen eines stochastischen Modells gemäß AIS20/31
D. Veränderung der Größe der Matrixfeld-Oszillatoren E. Veränderung der Dimension der Matrixfeld-Oszillatoren
F. veränderter Einsatz von Invertern in den Matrixfeld-Oszillatoren
G. Veränderung der Anzahl der zu kombinierenden Matrixfeld-Oszillatoren H. Veränderung der Wartezeit (Anlaufzeit) nach Start des Zufallszahlengenerators vor Ausgabe des ersten Zufallswertes bei Verwerfen der vorherigen Werte I. Einführung einer Neustart-Betriebsart für Hochsicherheitsanwendungen
J. Puffern von Zufallszahlen vor Ausgabe
K. Eventuelle (Verwendung nur in bestimmten Fällen bei 1 sehr seltenen Anwendungen des Ausführungsbeispiels mit extremen Anforderungen an die statistischen Eigenschaften oder bei 2. für sehr gute statistischen Eigenschaften nicht ausreichender Konfiguration des Zufallszahlengenerators (beispielsweise kleinere Anzahl von Matrixfeld- Oszillatoren oder kleinere Anzahl von XOR-Mini-Oszillatoren in den Matrixfeld-Oszillatoren als beim Ausführungsbeispiel) zusätzliche Nachbearbeitung (postprocessing) wie beispielsweise mit dem Von- Neumann-Verfahren
Diese Weiterentwicklungen können zusätzlich die folgenden Vorteile ermöglichen: zu A.: Gewährleistung der Unvorhersehbarkeit von generierten Zahlen in Vorwärts und/oder Rückwärtsrichtung bei permanenten und temporären Ausfall der Rauschquelle (entropy source) zu B.: umfassende On-Iine-Test-Strategie (u.a. auch On-Iine-Test der statistischen Eigenschaften) zu C.: Entropie-Abschätzung, Erfüllen der Anforderungen von AIS20/31 zu D, E, F, G, H: Anpassung an veränderte technische Gegebenheiten, d.h. z.B. an neue FPGA- oder ASIC-Technologiegenerationen, oder an neue Erkenntnisse hinsichtlich Schwächen bzw. Attacken zu I: Online-Test der echten Zufälligkeitseigenschaften zu J: Ergebnisse von Tests abwarten und ggf. mangelhafte Daten verwerfen. zu K.: Einsatz der Nachverarbeitung zur weiteren Verbesserung der statistischen Eigenschaften der vom Zufallszahlengenerator erzeugten Zufallsdaten (in den allermeisten Anwendungsfällen dieses Zufallszahlengenerators und insbesondere im Fall des Ausführungsbeispiels ist diese Nachbearbeitung nicht notwendig und nicht vorteilhaft bzw. wünschenswert u.a. wegen der Reduzierung der Datenbitrate).
Folgende Abwandlungen der vorliegenden Erfindung sind möglich:
- Veränderung der Größe der zweidimensionalen, quadratischem Matrixfeld- Oszillatoren, d.h. andere Anzahl von XOR-Mini-Oszillatoren
- Veränderung der Formen der Matrixfeld-Oszillatoren (kein Quadrat)
- Veränderung der Verdrahtung der XOR-Mini-Oszillatoren, insbesondere an den Rändern der Matrixfeld-Oszillatoren
- Veränderung der Dimension der Matrixfeld-Oszillatoren (eindimensionale oder mehrdimensionale (dreidimensionale, vierdimensionale, ...) Struktur durch entsprechende Veränderung der Anzahl der Eingänge der XOR-Mini- Oszillatoren und der zweidimensionalen Verdrahtung der XOR-Mini- Oszillatoren) - Veränderung der Logik-Struktur in den XOR-Mini-Oszillatoren (z.B. XOR- Gatter mit 4 Eingängen)
- veränderter Einsatz von Invertern in den Matrixfeld-Oszillatoren
- Veränderung der Anzahl der Matrixfeld-Oszillatoren
- Veränderung der Individualisierung der Matrixfeld-Oszillatoren
Veränderung der Wartezeit (Anlaufzeit) nach Start des Zufallszahlengenerators vor Ausgabe des ersten Zufallswertes bei Verwerfen der vorherigen Werte
- veränderter Totalausfall-Test bzw. andere Oszillationsprüfungen (z.B. andere Anzahl von Takten ohne Flanke der jeweils 6 Testsignale als Schwelle für die Meldung einer Nicht-Oszillation).
Es existiert ein VHDL-Modell eines Ausführungsbeispiels des erfindungsgemäßen Zufallszahlengenerators. Basierend auf diesem VHDL- Modell ist auf einem SmartFusion-Evaluationsboard mit dem SmartFusion - FPGA A2F200M3F-FGG484 von Microsemi (Microchip Technology) ein Prototyp des Ausführungsbeispiels des Zufallszahlengenerators implementiert. Es gibt weitere Implementierungen des Prototyps auf einem IGLOO-Nano-Starter-Kit-Board ebenfalls von Microsemi, auf einem Cmod- S6-Board von Digilent mit dem Xilinx Spartan 6 LX4 FPGA (Spartan 6 XC6SLX4-2CPG1 96 FPGA) und auf einem Cmod-S7-Board von Digilent mit dem Xilinx Spartan 7 FPGA (Spartan 7 XC7S25-1CSGA225C FPGA).
Im Folgenden wird die Erfindung anhand eines in den Zeichnungen dargestellten Ausführungsbeispiels näher beschrieben und erklärt.
Es zeigen: Fig. 1 einen erfindungsgemäßen XOR-Mini-Oszillator ohne Darstellung der Rückkopplung über Nachbar-Mini-Oszillatoren; Fig. 2 die erfindungsgemäße Verbindung zweier benachbarter XOR- Mini-Oszillatoren der Fig. 1 ;
Fig. 3 den Aufbau eines erfindungsgemäßen Matrixfeld-Oszillators aus einer zweidimensionalen Matrix von XOR-Mini-Oszillatoren mit einer beispielhaften Individualisierung ohne Darstellung der Verbindungsleitungen an den Rändern;
Fig. 4 den Matrixfeld-Oszillator der Fig. 3 mit Darstellung der Verbindungsleitungen an den Rändern (zum Zweck der Übersichtlichkeit sind hier die Signalbezeichnungen bei den einzelnen Oszillatoren weggelassen);
Fig. 5 die Nummerierung der Elemente der Matrix eines Matrixfeld- Oszillators;
Fig. 6 die Gesamtschaltung eines erfindungsgemäßen Zufallszahlengenerators aus den einzelnen vorbeschriebenen Elementen mit digitalisierter Rauschquelle (ohne Totalausfall-Test und Oszillationsprüfungen);
Fig. 7 die erfindungsgemäß vorgeschlagene Schaltung für die Flankenerkennung zum Zweck der Oszillationsprüfung;
Fig. 8 die Schaltung für die erfindungsgemäße Oszillationsprüfung; Fig. 9 die erfindungsgemäße Schaltung für den Totalausfall-Test; Fig. 10 das Ausgangssignal eines erfindungsgemäßen Matrixfeld- Oszillators im Zeit- (oberer Teil der Abbildung) und im Frequenzbereich (unterer Teil der Abbildung) falls der Matrixfeld- Oszillator deaktiviert ist;
Fig. 11 das gleiche Ausgangssignal für den Fall der Aktivierung des Matrixfeld-Oszillators;
Fig.12 drei Kurven des Verlaufs der differenziellen Ausgangsspannung eines erfindungsgemäßen Matrixfeld-Oszillators nach drei verschiedenen Neustarts;
Fig.13 die Standardabweichung der differenziellen Ausgangsspannung des Matrixfeld-Oszillators nach 1000 verschiedenen Neustarts;
Fig.14 das arithmetische Mittel der differenziellen Ausgangsspannung des Matrixfeld-Oszillators nach 1000 verschiedenen Neustarts;
Fig.15 die Häufigkeitsverteilung von Byte-Werten bei einer vom Zufallszahlengenerator erzeugten Datenmenge, die bei 100.000 Neustarts mit jeweils 125-Byte- bzw. 1.000-Bit-Datenblöcken entstanden ist, ohne Wartezeit nach jedem Neustart;
Fig.16 die gleiche Häufigkeitsverteilung, wenn die Daten erst nach einer Wartezeit von 45 Mikrosekunden nach jedem Neustart aufgezeichnet werden.
Ein wesentlicher Teil der Erfindung sind sogenannte XOR-Mini-Oszillatoren, die zu sogenannten Matrixfeld-Oszillatoren oder Matrizen M zusammengeschaltet werden. Die Fig. 1 zeigt den Aufbau eines XOR-Mini- Oszillators 100. Der hier dargestellte Oszillator 100 ist zur Verwendung in einer zweidimensionalen Matrix M vorgesehen. Er verfügt daher über vier Eingänge, an die die vier Ausgangssignale der jeweils in der Matrix M benachbarten Oszillatoren angeschlossen sind: t (top): hier ist der Ausgang des in der Matrix oberhalb gelegenen Oszillators angeschlossen b (bottom): hier ist der Ausgang des in der Matrix unterhalb gelegenen Oszillators angeschlossen
I (left): hier ist der Ausgang des in der Matrix links gelegenen Oszillators angeschlossen und r (right): hier ist der Ausgang des in der Matrix rechts von dem Oszillator 100 gelegenen Oszillators angeschlossen.
Jeweils zwei der Eingänge sind auf ein Exklusiv-Oder-Gatter geführt:
Die Eingänge t und b sind mit dem Exklusiv-Oder-Gatter 102 verbunden, die Eingänge I und r sind mit dem Exklusiv-Oder-Gatter 104 verbunden. Die Ausgänge der beiden Gatter 102, 104 sind wiederum mit den beiden Eingängen eines weiteren nachgeschalteten Exklusiv-Oder-Gatters 106 verbunden. Dessen Ausgang ist mit einem Eingang eines Multiplexeres 108 verbunden. Der Multiplexer 108 verfügt über zwei Eingänge, die mittels des Signals s[1] umgeschaltet werden können. Damit kann der Oszillator ein- und ausgeschaltet werden, indem zum Einschalten das Signal s[1] so belegt wird, dass der Multiplexer 108 den Eingang durchschaltet, an dem das Exklusiv- Oder-Gatter 106 angeschlossen ist. Im ausgeschalteten Zustand wird der Eingang durchgeschaltet, an dem das Signal s[0] liegt. Dieses Signal ist üblicherweise auf 0 gesetzt, lediglich bei einem speziellen Oszillator in der Matrix M, dem Oszillator „Start“, der als Ort der Anregung für die Oszillatoren der Matrix M dient, wird dieses Signal zum sicheren Anlaufen des Oszillators während des Einschaltvorgangs kurzfristig auf 1 gesetzt, bevor dann der Multiplexer 108 auf den Eingang umgeschaltet wird, der mit dem Ausgang des Exklusiv-Oder-Gatters 106 verbunden ist.
Im normalen Fall stellt der Ausgang des Multiplexes 108 das Ausgangssignal des Oszillators 100 dar. Lediglich bei einem speziellen Oszillator in der Matrix ist noch ein Inverter 110 zwischen den Ausgang des Multiplexes 108 und den endgültigen Ausgang o (out) geschaltet.
Zur Gewährleistung der statistischen Eigenschaften und der Portierbarkeit des Zufallszahlengenerators soll die Logik-Struktur dieser Schaltung strikt eingehalten werden. Der gestrichelte Inverter 110 ist optional, d.h. er ist als der Teil der Individualisierung eines Matrixfeld-Oszillators M am Ausgang nur eines XOR-Mini-Oszillators 100 eines Matrixfeld-Oszillators M implementiert. Er dient der Vermeidung der Gefahr eines ungewollten Stillstandes oder von periodischen Oszillationen eines Matrixfeld-Oszillators M.
Die Grundüberlegungen für die Wahl dieser Grundstruktur werden im Folgenden erläutert. Das Oszillator-Verhalten bei der Zusammenschaltung von mehreren XOR-Mini-Oszillatoren 100 wird durch folgende Betrachtungen deutlich. Dabei werden zwei XOR-Mini-Oszillatoren 100 miteinander verbunden. Die Fig. 2 zeigt zwei benachbarte XOR-Mini-Oszillatoren 100. Bei s[1:0] = 10 stellt der Pfad, der mit den Buchstaben A bis F gekennzeichnet ist, einen Rückkopplungspfad dar. Dieser Rückkopplungspfad bildet bei bestimmten Werten der Eingänge eine Inverter-Funktionalität, die ähnlich einem rückgekoppelten Inverter zu einem Oszillator-Verhalten führt. Die Tabelle 1 zeigt, für welche Wertekombinationen der Eingänge der Rückkopplungspfad eine Inverter-Funktionalität aufweist. Hierbei ist zu beachten, dass bei der Hälfte aller möglichen Wertekombinationen (32 von 64) eine Inverter-Funktionalität des Rückkopplungspfades und damit ein Oszillator-Verhalten auftritt. Außerdem ist zu beachten, dass bei dem Ausführungsbeispiel nicht nur zwei sondern 36 XOR-Mini-Oszillatoren 100 zu einem sogenannten Matrixfeld-Oszillator M zusammengeschaltet werden. Sie werden so miteinander verbunden, dass jeder XOR-Mini-Oszillator 100 vier Nachbar-XOR-Mini-Oszillatoren 100 hat. D.h. jeder XOR-Mini-Oszillator 100 hat grundsätzlich vier Möglichkeiten einen Rückkopplungspfad zu bilden und Oszillator-Signale zu erzeugen.
Figure imgf000023_0001
Figure imgf000024_0003
Tabelle 1 : Wertekombinationen der Eingänge zweier benachbarter XOR-Mini- Oszillatoren 100 mit einer Inverter-Funktionalität im Rückkopplungspfad
Eine weitere interessante Grundüberlegung sind die grundsätzlichen Eigenschaften der XOR-Operation y = x @z hinsichtlich gewichteter und ungewichteter Zufallssequenzen. Falls beide Eingangsvariablen x und z statistisch unabhängig sind und die Wahrscheinlichkeiten P (x=l), P (z=l) und P (y=l), als Px, Pz und Py bezeichnet werden, dann ist die Ausgangswahrscheinlichkeit Py der XOR-Operation:
Py = (l - Px) Pz + Px (l - Pz) (1)
Die Gleichung (1 ) kann wie folgt umgeformt werden:
Figure imgf000024_0001
Der absolute Betrag der Differenz zwischen der Signalwahrscheinlichkeit und der idealen Wahrscheinlichkeit von 0,5 ist ein Maß für die Ähnlichkeit einer binären Variablen mit einer idealen binären zufälligen Variablen:
Figure imgf000024_0002
1
Da 0 < 2 — a
2 < 1 für 0 < a < 1 und a y 0,5 ist, kann die folgende
Ungleichung hergeleitet werden.
Figure imgf000025_0001
für 0 < Px, Pz < 1 und Px, Pz 0,5. (4)
In diesem Fall hat eine Folge am Ausgang der XOR-Operation eine größere Ähnlichkeit zu einer nicht gewichteten (pseudo-)zufälligen Folge als die beiden Eingangsfolgen. In diesem Kontext hat die XOR-Operation also die Eigenschaft, den Grad von Zufälligkeit zu erhöhen. Eine Schaltung von einer Vielzahl von verknüpften XOR-Gattern verstärkt diese beschriebenen Eigenschaften. Im Sonderfall Px = 0,5 gilt gemäß Gleichung:
Figure imgf000025_0002
Dieser Sonderfall impliziert für die XOR-Operation, dass bei einer (pseudo-) zufälligen Eingangsgröße mit der Signalwahrscheinlichkeit 0,5 die Ausgangsgröße ebenfalls (pseudo-)zufällig mit der Signalwahrscheinlichkeit 0,5 und unabhängig von der zweiten Eingangsgröße ist. Falls beide Eingangsgrößen x und z (pseudo-)zufällig mit Px = Pz = 0,5 und statistisch voneinander unabhängig sind, ist die Ausgangsgröße ebenfalls (pseudo-) zufällig mit Py = 0,5 und sowohl von dem einen als auch den anderen Eingang statistisch unabhängig.
Die in diesen zwei Grundüberlegungen beschriebenen Funktionalitäten und Eigenschaften treten In der Realität nicht in Reinform auf. In der asynchronen Schaltung der Matrixfeld-Oszillatoren M vermischen sie sich, es bilden sich Undefinierte Zwischenzustände (Metastabilität) und es tritt analoges Verhalten, u.a. chaotische Oszillationen an den Ausgängen der Matrixfeld- Oszillatoren M, auf. Dieses analoge Verhalten hat sowohl pseudo- als auch echt zufällige Eigenschaften. Der echt zufällige Anteil am Verhalten wird wesentlich von den unvorhersehbaren Veränderungen von Verzögerungszeiten der Schaltungselemente verursacht und bestimmt, die vom elektronischen Rauschen beeinflusst werden. Um diesen echt zufälligen Einfluss gegenüber dem pseudozufälligen Einfluss nachhaltig zu erhöhen, werden erfindungsgemäß die Anzahl der Verbindungen und damit auch der Rückkopplungen (Oszillator-Verhalten) möglichst effizient vergrößert. Durch die komplexen Rückkopplungsstrukturen breiten sich kleine zufällige Variationen schnell über den ganzen Matrixfeld-Oszillator M aus und das macht die Extraktion von Zufälligkeit durch Abtastung einfacher.
Der Einfluss des echt zufälligen elektronischen Rauschens wird durch die gewählte Schaltungsstruktur erheblich verstärkt. Dies ist die dritte Grundüberlegung. Alle drei Grundüberlegungen führen zu der Schaltung der Matrixfeld-Oszillatoren M bestehend aus einem Feld von sich gegenseitig beeinflussenden XOR-Mini-Oszillatoren 100. Ein Matrixfeld-Oszillator M (asynchrone Schaltung) in dem in Fig. 3 dargestellten Ausführungsbeispiel besteht aus einem zweidimensionalen 6 x 6-Feld von XOR-Mini-Oszillatoren 100, deren Ausgangssignal jeweils den Nachbar-Mini-Oszillatoren 100 in allen vier Richtungen als Eingangssignal dient.
Das Ausgangssignal o eines jeden XOR-Mini-Oszillators 100 wird an die entsprechenden Eingänge der vier Nachbar-Mini-Oszillatoren 100 angelegt. Die Ausgangssignale der XOR-Mini-Oszillatoren 100 an den Rändern der Matrixfeld-Oszillatoren M werden nicht direkt als Eingangssignale zurückgeführt, sondern sie dienen als Eingangssignale für die XOR-Mini- Oszillatoren 100 an den gegenüberliegenden Rändern des jeweiligen Matrixfeld-Oszillators M (siehe Fig. 4). Fig. 5 zeigt die Nummerierung der Elemente in einem Matrixfeld-Oszillator in Form (Zeile, Spalte).
Figure imgf000028_0001
Tabelle 2: beispielhafte Individualisierung der Matrixfeld-Oszillatoren
Zur Gewährleistung der Individualität und der Unabhängigkeit der Matrixfeld- Oszillatoren M muss bei der Wahl des Ortes der Anregung (Start), des zusätzlichen Inverters (Inv) und des Ausgangs (Out) darauf geachtet werden, dass sie sich in einem einzelnen Matrixfeld-Oszillator M und als Ser- Kombination in allen Matrixfeld-Oszillatoren M des Zufallszahlengenerators unterscheiden. Es soll also nie der gleiche Oszillator als Ort der Anregung (Start), als Oszillator mit zusätzlichem Inverter (Inv) oder als Ausgangs- Oszillator (Out) dienen. Vielmehr sollen diese Aufgaben durch jeweils separate Oszillatoren wahrgenommen werden. Die Individualisierung der Matrixfeld-Oszillatoren M in dem Ausführungsbeispiel zeigt Tabelle 2. Der rein asynchrone Matrixfeld-Oszillator M ist deaktiviert, wenn die Steuereingänge der XOR-Mini-Oszillatoren 100 alle s[1 :0] = 00 sind. In diesem Fall sind alle Ausgänge o der XOR-Mini-Oszillatoren 100 andauernd gleich logisch null (0). Die einzige Ausnahme bildet der XOR-Mini-Oszillator Inv mit dem zusätzlichen Inverter 110 am Ausgang. Hier ist der Ausgang konstant logisch eins (1). Der Matrixfeld-Oszillator M wird aktiviert, indem die Steuereingänge der XOR-Mini-Oszillatoren 100 alle s[1:0] = 10 gesetzt werden. Die einzige Ausnahme bildet der XOR-Mini-Oszillator Start. Hier wird der Steuereingang kurzzeitig s[1 :0] = 01 gesetzt, um den Matrixfeld-Oszillator M mit einem Ausgangswert von logisch eins (1) direkt anzuregen. Nach der erfolgten Anregung wird auch dieser Steuereingang auf s[1:0] = 10 gesetzt. Eine indirekte Anregung findet auch durch den XOR-Mini-Oszillator Inv mit dem zusätzlichen Inverter 110 statt. Der Ausgang des XOR-Mini-Oszillators Out stellt gleichzeitig den Ausgang des Matrixfeld-Oszillators M dar.
Die Steuersignale der einzelnen XOR-Mini-Oszillatoren 100 werden durch die beiden Eingangssignale enable und Start bestimmt (siehe Tabelle 3). Diese beiden Eingangssignale nehmen bei der Aktivierung des Matrixfeld- Oszillators M ausgehend von logisch null (0) gleichzeitig den Wert logisch eins (1) an. Während das enable-Eingangssignal diesen Wert für die Dauer der Aktivierung des Matrixfeld-Oszillators M beibehält, geht das start- Eingangssignal relativ kurz danach wieder auf den Ausgangswert logisch null (0) zurück. Durch das Setzen des Eingangssignals enable auf 0 werden die Matrixfeld-Oszillatoren M deaktiviert (Ruhezustand).
Figure imgf000029_0001
Tabelle 3: Steuersignale der XOR-Mini-Oszillatoren 100
In dem Ausführungsbeispiel werden an sechs Stellen im Matrixfeld-Oszillator M die Ausgangssignale als Testsignale ausgegeben. Sie dienen als
Grundlage für die Oszillationsprüfung des jeweiligen Matrixfeld-Oszillators M. Zwei der sechs Testsignale entsprechen den Ausgangssignalen der XOR- Mini-Oszillatoren Out und Start und sind somit abhängig von der Individualisierung des jeweiligen Matrixfeld-Oszillators M. Die vier weiteren Testsignale tasten an festen Orten der Matrixfeld-Oszillatoren M die
Ausgangssignale ab (siehe folgende Tabelle).
Figure imgf000030_0002
Tabelle 4: Testsignale in den Matrixfeld-Oszillatoren M
Der Zufallszahlengenerator in dem Ausführungsbeispiel enthält als Rauschquelle 9 asynchrone Matrixfeld-Oszillatoren M. Die analogen Ausgangssignale der 9 Matrixfeld-Oszillatoren M werden in der in Fig. 6 dargestellten Schaltung digitalisiert und zum Takt der nachfolgenden synchronen Schaltung synchronisiert. Die beiden Eingangssignale
Systemtakt (clk) und asynchrones Active-Low-Reset (res_a_n) werden an die entsprechenden Eingänge der D-Flip-Flops 200 angelegt.
Beim Übergang von der asynchronen zu der synchronen Schaltung sind im Digitalisierer 20 zwei sogenannte Metastabilitäts-Flip-Flop-Stufen
Figure imgf000030_0001
asynchrones Active-Low-Reset; Rs: synchrones Active-High-Reset) für die Digitalisierung erforderlich. Im Rahmen dieser Digitalisierungsschaltung 20 werden die generierten analogen Ausgangssignale (sogenannte raw random Signals) der 9 Matrixfeld-Oszillatoren M bei einem aktivierten Enable-Signal durch die erste Metastabilitäts-Flip-Flop-Stufe (9 D-Flip-Flops 200) abgetastet, mit der XOR-Kombination 210 zusammengeführt und nach der zweiten Metastabilitäts-Flip-Flop-Stufe (1 D-Flip-Flop 220) als ein digitales Signal bzw. als Orginal-Zufallssequenz (sogenannte raw random sequence) ausgegeben. Die XOR-Kombination 210 komprimiert die abgetasteten Ausgangssignale von 9 unabhängigen Matrixfeld-Oszillatoren M zu einem Signal. Dies führt dazu, dass die echte Entropie am Ausgang der XOR- Kombination 210 größer als die einzelnen echten Entropien an den Ausgängen der Matrixfeld-Oszillatoren M (vor der XOR-Kombination) ist. Die komplexen hochfrequenten Ausgangssignale (chaotische Oszillationen) der Matrixfeld-Oszillatoren M können häufige Metastabilitätseffekte in der ersten Metastabilitäts-Flip-Flop-Stufe hervorrufen und zu metastabilen Signalen nach dieser ersten Stufe führen. Erst nach der zweiten Metastabilitäts-Flip- Flop-Stufe wird eine rein digitale Zufallssequenz mit einem sehr geringen Bias kontinuierlich ausgegeben. Hier werden mehrere Kopien derselben physikalischen Rauschquelle (hier Matrixfeld-Oszillatoren), deren Abtastbits XOR-kombiniert werden, als eine einzige Rauschquelle betrachtet.
Eine zusätzliche Nachbearbeitung (post-processing) der Ausgangssequenz nach der Digitalisierung ist aufgrund der ausgezeichneten statistischen Eigenschaften der Sequenz nicht erforderlich. Allerdings soll direkt nach der Aktivierung der 9 Matrixfeld-Oszillatoren M und des Digitalisierers 20 eine bestimmte Zeit (45 ps in diesem Ausführungsbeispiel) vor Ausgabe der ersten Zufallsbits durch den Zufallszahlengenerator gewartet und die während der Wartezeit (Anlaufzeit) anfallenden Zufallsbits verworfen werden, um den noch gering vorhandenen pseudozufälligen Einfluss auf die Ausgangssequenz auf ein unbedeutendes Maß zu minimieren. Dazu ist die erfindungsgemäße Schaltung vorzugsweise noch um ein Modul 230 zur Realisierung der Wartezeit (Anlaufzeit) von 45 ps ergänzt. Das Modul 230 zur Realisierung der Wartezeit (Anlaufzeit) von 45 ps ist oberhalb des Digitalisierers in Fig. 6 angeordnet. Es basiert auf einem entsprechenden Zähler und zeigt nach Ablauf der Wartezeit (45 ps) nach Start des Zufallszahlengenerators (Voraussetzung: enable ist 1 und das asynchrone Active-Low-Reset wird nicht aktiviert) mit dem Ausgangssignal out_valid = 1 an, dass die Anlaufzeit vorüber ist und die Bits der Orginal-Zufallssequenz am Ausgang out gültig sind. Vorher ist out_valid = 0, d.h. die Bits der Ausgangsequenz am Ausgang out sollten verworfen werden.
Neben der bereits beschriebenen Aktivierung der Rauschquelle durch die beiden Eingangssignale enable und Start, lässt sich auch der Digitalisierer 20 durch das Setzen des Eingangssignals enable auf 1 aktivieren (Bedingung: keine Aktivierung des asynchronen Active-Low-Resets) und durch das Setzen des Eingangssignals enable auf 0 deaktivieren (Ruhezustand).
Im Folgenden werden die Schaltungen Oszillationsprüfung 30 und Totalausfall-Test 40 beschrieben. Als Vorbemerkung ist hier festzuhalten, dass ein fehlerhaftes Verhalten der Matrixfeld-Oszillatoren M in Form des Erzeugens einer periodischen Testsequenz wie z.B. 10101 ...01 weder bekannt noch plausibel ist, da periodische Oszillationen u.a. durch den Einsatz des zusätzlichen Inverters 110 in jedem der Matrixfeld-Oszillatoren M verhindert werden. Im Folgenden wird daher dieser Fall nicht weiter berücksichtigt.
Die Teilschaltung Flankenerkennung 300 (clk: Systemtakt; res_a_n, R^: asynchrones Active-Low-Reset; Rs: synchrones Active-High-Reset) in Fig. 7 detektiert Änderungen eines digitalisierten Testsignals.
Zu diesem Zweck wird jedes der 6 Testsignale eines Matrixfeld-Oszillators M (zur Auswahl dieser Testsignale siehe Tabelle 4) jeweils einem ersten D-Flip- Flop 310 zur Abtastung zugeführt. Der Ausgang dieses D-Flip-Flops 310 wird dem Eingang eines weiteren D-Flip-Flops 320 zugeführt. Diese beiden D- Flip-Flops 310 und 320 dienen als Metastabilitäts-Flip-Flops zur Digitalisierung und zur Synchronisierung des jeweiligen Testsignals. Der Ausgang des D-Flip-Flops 320 wird einerseits dem D-Eingang eines weiteren D-Flip-Flops 330 zugeführt, welches der zur Flankenerkennung erforderlichen Zeitverzögerung dient, und zur Erkennung der Flanke wird der Eingang des D-Flip-Flops 330 (dies entspricht dem Ausgang des D-Flip- Flops 320) einerseits und der Ausgang des D-Flip-Flops 330 jeweils dem Eingang eines Exklusiv-Oder-Gatters 340 zugeführt. Dessen Ausgangssignal „edge“ zeigt jeweils das Vorhandensein einer Flanke in dem digitalisierten Ausgangssignaltest an. Diese Ausgangssignale „edge“ dienen sodann als Eingangssignale für die Oszillationsprüfung 30.
Fig. 8 zeigt die Schaltung Oszillationsprüfung 30(clk: Systemtakt; res_a_n: asynchrones Active-Low-Reset; res_s: synchrones Active-High-Reset). Hier werten 6 Instanzen der Schaltung Flankenerkennung 300 die jeweils 6 Testsignale eines Matrixfeld-Oszillators M aus. Wenn 100 Takte lang keines der jeweils 6 digitalisierten Testsignale eine Flanke aufweist, zeigt dies das Ausgangssignal des Zählers bzw. der Schaltung Oszillationsprüfung 30 mit noedge = 1 an. Dies ein sehr deutliches Zeichen, dass der entsprechende Matrixfeld-Oszillator M nicht mehr oszilliert. Mit noedge = 0 wird angezeigt, dass der Matrixfeld-Oszillator M oszilliert (built-in oscillation health test).
Demgemäß umfasst die in Fig. 8 dargestellte Schaltung Oszillationsprüfung 30 6 Flankenerkennungsschaltungen 300 (0 bis 5), deren jeweilige Ausgangssignale „edge“ einem Oder-Gatter 32 zugeführt sind. Der Ausgang dieses Oder-Gatters 32 wird dem Rücksetz-Eingang res_s eines Zählers 34 zugeführt. Der Zähler wird mit dem Systemtakt hochgezählt, d.h. der Systemtakt liegt auf dem Zähleingang des Zählers. Wenn der Zähler überläuft, d.h. während so vieler Systemtakte, wie der Zähler zählen kann, keine Flanke entstanden ist, geht der Zähler Überlauf auf logisch 1 und wird als Signal „noedge“, also Oszillationsstörung des entsprechenden Matrixfeld- Oszillators M angezeigt. Der Zähler kann beispielsweise bei einem Dezimalzähler 100 Takte weit zählen, bis er überläuft, bei einem binären Zähler empfiehlt sich eine Zweierpotenz, beispielsweise 128. Die Überlauf- Signale des Zählers 34 „noedge“ werden dann zur Gesamtüberwachung des erfindungsgemäßen Zufallszahlengenerators einer Schaltung Totalausfall- Test 40 zugeführt.
Die Schaltung Totalausfall-Test 40 in Fig. 9 (clk: Systemtakt; res_a_n: asynchrones Active-Low-Reset) gibt das Signal tot = 1 aus, d.h. ein Totalausfall liegt vor, wenn die Oszillationsprüfungen 30 aller 9 Matrixfeld- Oszillatoren M keine Oszillation (noedge = 1) anzeigen. Die
Oszillationsprüfung 30 und der Totalausfall-Test werden kontinuierlich betrieben (Bedingung: enable = 1 und keine Aktivierung des asynchronen Active-Low-Resets). Sie sind so ausgelegt, dass ein Totallausfall auf der einen Seite relativ schnell angezeigt wird und ein falscher Alarm auf der anderen Seite extrem unwahrscheinlich ist.
Demgemäß werden alle Ausgänge „noedge“ der 9 Oszillationsprüfungsschaltungen 0 bis 8 einem Und-Gatter 42 zugeführt. Dessen Ausgang ergibt das Signal „tot“ für den Totalausfall des erfindungsgemäßen Zufallszahlengenerators.
Es folgt nun die Beschreibung des experimentellen Nachweises, dass der erfindungsgemäße Zufallszahlengenerator nicht nur funktioniert, sondern auch echt zufällige und nicht pseudozufällige Bitfolgen hoher Entropie liefert.
Im Folgenden werden die Eigenschaften eines erfindungsgemäßen echten Zufallszahlengenerators basierend auf einer Kombination von individualisierten Matrixfeld-Oszillatoren M bestehend aus sich gegenseitig beeinflussenden XOR-Mini-Oszillatoren 100 im Rahmen des beschriebenen Ausführungsbeispiels (9 individualisierte Matrixfeld-Oszillatoren M (Rauschquelle) jeweils bestehend aus einem zweidimensionalen 6 x 6-Feld von XOR-Mini-Oszillatoren 100 inkl. einem entsprechenden Digitalisierer 20 und Totalausfall-Test 40) untersucht. Dies geschieht an Hand einer Implementierung des Ausführungsbeispiels des Zufallszahlengenerators auf einem SmartFusion-Evaluationsboard mit dem SmartFusion-FPGA A2F200M3FFGG484 von Microsemi basierend auf einem VHDL-Modell. Hierbei ist zu beachten, dass die SmartFusion-FPGA-Technologie auf der ProASIC3-FPGA-Flash-Architektur beruht. Bei der Untersuchung wird nur das reine FPGA (FPGA fabric) ohne den im SOC FPGA ebenfalls vorhandenen Prozessor benutzt. Das wichtigste Ziel dieser Untersuchung ist es, zu ermitteln, in wie weit die vom Zufallszahlengenerator erzeugte Zufälligkeit echt ist. Dazu wird im Abschnitt 1.1 das Verhalten eines einzelnen Matrixfeld-Oszillators 100 und im Abschnitt 1.2 das Verhalten des gesamten Zufallszahlengenerators untersucht. In den Anhängen A, B und C sind zusätzlich Kurz-Analysen von Implementierungen des oben beschriebenen Ausführungsbeispiels des erfindungsgemäßen Zufallszahlengenerators auf einem IGLOO-FPGA (Microsemi), einem Spartan-6-FPGA (Xilinx) und einem Spartan-7-FPGA (Xilinx) dargestellt. Mit Anhang D folgt eine Kurz-Analyse einer „Frequency Injection Attack“. Im Anhang E sind einige Merkmale (Ressourcen- und Leistungsverbrauch) von Implementierungen des Ausführungsbeispiels des erfindungsgemäßen Zufallszahlengenerators aufgeführt. Schließlich zeigt der Anhang F die Ergebnisse eines Langzeit-Oszillationstests der vier Implementierungen des Ausführungsbeispiels des erfindungsgemäßen Zufallszahlengenerators.
1.1 Untersuchung eines Matrixfeld -Oszillators M
Um einen ersten Eindruck von dem Verhalten der in dem Zufallszahlengenerator enthaltenen Matrixfeld-Oszillatoren M zu bekommen, wird als erstes beispielhaft das Ausgangssignal (Standardausgang) des Matrixfeld-Oszillators 0 des erfindungsgemäßen Zufallszahlengenerators in der Zeit- und Frequenzdomäne (Spektrum) mit einem Oszilloskop aufgezeichnet. Die Fig. 10 bzw. 11 zeigt das Ausgangsignal des Matrixfeld- Oszillators 0 im Zeit- (oberer Teil der Abbildung) und im Frequenzbereich (unterer Teil der Abbildung) falls der Matrixfeld-Oszillator 0 deaktiviert (Fig. 10) bzw. aktiviert (Fig. 11) ist.
Beim Vergleich der beiden spektralen Darstellungen in den Fig. 10 und 11 erkennt man, dass der Abstand zwischen dem Rauschen des deaktivierten und des aktivierten Matrixfeld-Oszillators 0 ca. 20 dB beträgt. Das offensichtliche Vorliegen von Rauschen beim aktivierten Matrixfeld-Oszillator M hilft bei der Frage leider nicht weiter, wie groß der Anteil der echten Zufälligkeit am Rauschen ist. lm Folgenden wird ein Neustart-Ansatz verfolgt, um den Umfang der von einem Oszillator erzeugten echten Zufälligkeit zu evaluieren und analysieren. Auf diesem Weg ist es praktisch möglich, zwischen echter Zufälligkeit und Pseudozufälligkeit zu unterscheiden.
Dieser Ansatz basiert auf der Wiederholung der Experimente ausgehend von identischen Startbedingungen, d.h. man startet den Oszillator ausgehend von den gleichen Anfangszuständen aller logischen Gatter neu. Pseudozufälligkeit ist deterministisch und zeigt so identisches Verhalten bei jeder Wiederholung des Experimentes. Andererseits verhält sich echte Zufälligkeit bei jeder Wiederholung trotz identischer Startbedingungen unterschiedlich. In einem unwesentlichen Ausmaß kann echte Zufälligkeit auch in den Startbedingungen enthalten sein, die ideal nicht identisch sind.
Die Neustart-Messungen wurden mittels der bereits oben genannten FPGA- Technologie vorgenommen. Bei jedem Experiment dient der inaktive Zustand (Ausgang gleich 0) als Anfangszustand des Matrixfeld-Oszillators 0, so dass die Anfangsbedingungen im Wesentlichen identisch sind. Anstatt eines Standardausgangs wurden für den Ausgang des Matrixfeld-Oszillators 0 LVDS-Ausgänge gewählt und entsprechende Ausgangsspannungen differentiell gemessen, um die Genauigkeit der Messung zu erhöhen. In Fig. 12 sind drei von insgesamt 1000 gemessenen Kurven der differentiellen Ausgangsspannung des Matrixfeld-Oszillators 0 nach verschiedenen Neustarts dargestellt.
Man erkennt deutlich, dass sich die Verläufe der drei Kurven voneinander unterscheiden. Während sie am Anfang noch identisch oder zumindest ähnlich sind, unterscheiden sie sich im Verlauf der Darstellung der Fig. 12 immer mehr. Die Menge an Zufälligkeit in den aufgezeichneten Kurven, die relevant für die Extraktion der Entropie durch Abtastung ist, kann durch die Standardabweichung der Ausgangsspannung als eine Funktion der Zeit gemessen werden. D.h. falls die Standardabweichung relativ groß ist, dann ist die Extraktion eines Bits von echter Zufälligkeit durch Abtastung relativ leicht und zuverlässig. Ist die Standardabweichung auf der anderen Seite relativ klein, dann ist das extrahierte zufällige Bit stark gewichtet und dieser Bias wird stark von der Implementierung abhängig sein. So wurden entsprechend die Standardabweichung und das arithmetische Mittel der differentiellen Ausgangsspannung des Matrixfeld-Oszillators 0 als Funktionen der Zeit (Zeitdauer 140 ns) für die 1000 Kurven berechnet. Die Ergebnisse sind in den Fig. 13 und 14 dargestellt.
Die Ergebnisse des experimentellen Neustart-Ansatzes zeigen, dass der Matrixfeld-Oszillator 0 echte Zufälligkeit generiert. Man sieht in Fig. 13 und
14, dass nach ungefähr 25 ns der arithmetische Mittelwert und die
Standardabweichung relativ stabile Werte erreichen. Der relativ stabile Wert für die Standardabweichung ist ungefähr doppelt so groß wie die entsprechenden Werte des Fibonacci- und des Galois-Ring-Oszillators. Die Struktur des Matrixfeld-Oszillators M ermöglicht also eine robustere und zuverlässigere Entropie-Extraktion durch Abtastung als vergleichbare Oszillatoren. Aufgrund der grundsätzlich gleichen Struktur sind gleiche bzw. ähnliche Ergebnisse für die anderen Matrixfeld-Oszillatoren M zu erwarten.
1.2 Untersuchung des gesamten Zufallszahlengenerators
1.2.1 Herkömmliche statistische Tests
Für die weitere Analyse findet die Datenausgabe des Zufallszahlengenerators über eine SPI-Schnittstelle statt, da sie die angestrebte, relativ hohe Datenrate von 30 Mbit/s ermöglicht. Das FT2232H- Mini-Modul von FTDI wird dazu eingesetzt. Es stellt diese SPI-Schnittstelle zur Verfügung. Die Implementierung des Zufallszahlengenerators wird an diese Schnittstelle angepasst. Die SPI-Schnittstelle ermöglicht das Lesen von Datenblöcken bis zu einer Größe von 65536 Bytes bei einer Datenrate von bis zu 30 Mbit/s. Die Daten werden vom FT2232H-Mini-Modul zu einem Rechner über USB übertragen. Obwohl der Zufallszahlengenerator natürlich zur kontinuierlichen Datenausgabe fähig ist, können aufgrund der verwendeten SPI-Schnittstelle Daten nur blockweise ausgegeben werden. Als erster Schritt bei der Untersuchung werden die grundsätzlichen statistischen Eigenschaften des Zufallszahlengenerators mit gängigen statistischen Tests (AIS31 statistische Testsuite, NIST statistische Testsuite/NIST 800-22 und TestUOl statistischer Test von der Universität Montreal) überprüft. Die statistischen Tests werden auf Daten angewendet, die bei einer sequentiellen Datenaufnahme mit 200 62.500-Byte-bzw.
500.000-Bit-Datenblöcken (Datenrate 30 Mbit/s) entstehen. Es handelt sich dabei um Original-Zufallssequenzen nach der Digitalisierung (raw random sequence). Die dabei vom Zufallszahlengenerator bei Raumtemperatur erzeugte Gesamtdatenmenge hat eine Größe von 100.000.000 Bits (ca. 11 ,9 MB). Die Ergebnisse der statistischen Tests sind in der Tabelle 5 dargestellt.
Figure imgf000038_0001
Tabelle 5: Ergebnisse der statistischen Tests von durch den Zufallszahlengenerator bei Raumtemperatur erzeugten Daten bei einer sequentiellen Datenaufnahme mit 200 62.500- Byte- bzw. 500.000-Bit-Datenblöcken (Datenrate 30 Mbit/s)
Die Tabelle 5 zeigt, dass der Zufallszahlengenerator alle durchgeführten statistischen Tests besteht. Die zweite Spalte der Tabelle 5 enthält das Ergebnis des Entropie-Tests über ein Byte. Hierbei ist zu beachten, dass die AIS31 -Testsuite mit Shannon-Entropieschätzung arbeitet. Der Wert für die Shannon-Entropie pro Byte in der zweiten Spalte von Tabelle 5 ist größer als der Maximalwert von 8 Bit. Dies liegt an Rundungsfehlern in der Berechnung durch das AIS31 -Analysewerkzeug. Der Entropie-Wert in der besagten Spalte ist größer als 7,976 Bit Shannon-Entropie pro Byte. D.h. die Shannon- Entropie pro Bit ist in diesem Fall größer als 0,997 Bit. Somit werden die entsprechenden Anforderungen von AIS20/31 erfüllt.
AIS20/31 fordert, dass die AIS31 statistische Testsuite bei allen relevanten Umweltbedingungen bestanden wird. Daher wird der Zufallszahlengenerator Temperaturtests in einem bestimmten Temperaturbereich unterzogen. Es wird hier wieder die sequentielle Datenaufnahme bei grundsätzlich unveränderten Testbedingungen (außer Temperatur) durchgeführt. Das heißt, bei jeder der unterschiedlichen Temperaturen (von -25 °C bis +55 °C in Schritten von 5 °C) werden 200 62.500-Byte- bzw. 500.000-Bit- Datenblöcke empfangen. Dies ergibt wieder jeweils eine Gesamtdatenmenge von jeweils 100.000.000 Bits (ca. 11 ,9 MB). Jede dieser Gesamtdatenmengen wird mit der AIS31 statistischen Testsuite getestet. Die Ergebnisse sind in der Tabelle 6 dargestellt.
Figure imgf000039_0001
Tabelle 6: Ergebnisse der Tests mit der AIS31 statistischen Testsuite von durch den Zufallszahlengenerator bei verschiedenen Temperaturen erzeugten Daten bei sequentieller Datenaufnahme mit 200 62.500- Byte- bzw. 500.000-Bit-Datenblöcken (Datenrate 30 Mbit/s)
Die Ergebnisse der Untersuchungen in Tabelle 6 ergeben wieder, dass die Entropie-Werte stets größer als 7,99 Bit Shannon-Entropie pro Byte bzw. 0,99875 Bit Shannon-Entropie pro Bit sind und somit die Anforderungen von AIS20/31 erfüllen. In mehreren Fällen sind die Werte für die Shannon- Entropie pro Byte in der zweiten Spalte von Tabelle 6 größer als der Maximalwert von 8 Bit. Wie schon vorher erwähnt, liegt dies an Rundungsfehlern in der Berechnung durch das AIS31 -Analysewerkzeug. Die dritte Spalte der Tabelle 6 zeigt, dass alle Tests der AIS31 -Testsuite bei allen Temperaturen im untersuchten Temperaturbereich bestanden werden. Dies gilt sogar für die niedrigen Temperaturen. Hierbei ist zu betonen, dass es sich bei den untersuchten Daten um Original-Zufallssequenzen nach der Digitalisierung (raw random sequences) handelt.
1.2.2 Statistische Tests im Rahmen von experimentellen Neustart- Untersuchungen
Trotz der Ergebnisse von Abschnitt 1.1 kann nicht ausgeschlossen werden, dass noch vorhandene Pseudozufälligkeit die Entropie-Extraktion durch Abtastung negativ beeinflusst. Eine weitere Untersuchungsmethode ist notwendig, um eine Aufklärung darüber zu erhalten, ob die vom gesamten Zufallszahlengenerator erzeugte Zufälligkeit nach der Digitalisierung noch signifikantem pseudozufälligen Einfluss unterliegt. Der Ansatz für diese neue Analysemethode auf der Ebene des Gesamt-Zufallszahlengenerators leitet sich vom experimentellen Neustart-Ansatz auf der Ebene eines Matrixfeld- Oszillators M aus Abschnitt 1.1 ab. Anstatt die analogen Signale vor der Digitalisierung (raw random Signals) werden die Original-Zufallssequenzen nach der Digitalisierung (raw random sequence) bei Neustarts für unterschiedlich lange Zeitabschnitte aufgezeichnet und mit herkömmlichen statistischen Tests analysiert. Die Analyse erfolgt, indem die verschiedenen Datensequenzen in Form von Datenblöcken zu einer Gesamtdatenmenge zusammengesetzt werden, die dann mit gängigen statistischen Tests (AIS31 statistische Testsuite, NIST statistische Testsuite/NIST 800-22 und TestUOl statistischer Test von der Universität Montreal) geprüft werden. Die Grundidee dabei ist, dass auch bei einer durch Neustarts erzeugten Datenmenge die statistischen Tests bestanden werden müssen. Denn bei Vorliegen einer echten Zufallsgenerierung durch den Zufallszahlengenerator müssen die statistischen Eigenschaften der Datenmenge unabhängig davon sein, ob sie durch eine sequentielle Datenaufnahme oder durch Datenblöcke bei einer Reihe von Neustarts entsteht. Andererseits werden die durch eventuell noch vorhandene Pseudozufälligkeiten verursachten Unzulänglichkeiten wie Bias und statistische Abhängigkeiten durch die sehr anspruchsvollen und komplexen statistischen Tests bei diesem Ansatz erkannt. Treten mehrere Fehler in den Tests auf, ist die Wahrscheinlichkeit groß, dass die Pseudozufälligkeit signifikanten Einfluss auf die Original- Zufallssequenzen nach der Digitalisierung hat. Im fehlerfreien Fall ist der Einfluss der Pseudozufälligkeit vernachlässigbar gering. Dieses Verfahren hat den Vorteil, zum einen kleinere Datenblöcke über kürzere Zeitintervalle, aber auch größere Datenblöcke über längere Zeitintervalle untersuchen zu können.
Dieser neue Ansatz verspricht einen einfachen aber umfassenden Überblick, ob der Zufallszahlengenerator echte Zufälligkeit ohne signifikanten Einfluss von Pseudozufälligkeit bei der gegebenen Datenrate erzeugt oder nicht. Zur Demonstration der effektiven Wirkungsweise wird diese neue Methode bei dem Zufallszahlengenerator zweimal angewendet, beim ersten Mal ohne und beim zweiten Mal mit einer Wartezeit direkt nach dem Neustart, in der die Zufallsbits verworfen werden. Erst nach der Wartezeit werden die Zufallsbits nicht mehr unterdrückt, sondern ausgegeben. Zuerst wird die neue Testmethode beim Zufallszahlengenerator ohne Wartezeit nach jedem Neustart angewendet. Es werden hierbei 100.000 Neustarts mit jeweils 125-Byte-bzw. 1.000-Bit-Datenblöcken (Original- Zufallssequenzen direkt nach der Digitalisierung (raw random sequence)) mit einer Datenrate von jeweils 30 Mbit/s bei Raumtemperatur durchgeführt. Einen ersten Eindruck von den Eigenschaften der entsprechenden Gesamtdatenmenge gibt die Häufigkeitsverteilung von Byte-Werten. Sie wird in Fig. 15 dargestellt.
Die ungleichmäßige Häufigkeitsverteilung der Byte-Werte in Fig. 15 ist offensichtlich. Die relativen Häufigkeiten bis einschließlich dem schwarzen Strich L (Byte-Wert 0x3 F) betragen im Wesentlichen jeweils 0,40% und danach jeweils 0,38% bzw. 0,39%. Da sich die Datenmenge aus 100.000 1000-Bit-Datenblöcken nach 100.000 Neustarts zusammensetzt, deutet dies auf einen noch vorhandenen pseudozufälligen Einfluss auf den Zufallszahlengenerator hin. Dieser pseudozufällige Einfluss zeigt sich auch bei der weiteren statistischen Analyse der obigen Datenmenge. Während bei der AIS31 statistischen Testsuite überraschenderweise alle Tests mit dieser Datenmenge noch bestanden werden, trifft das für die beiden anderen angewendeten statistischen Tests nicht zu.
- NIST Statistical test suite/NIST 800-22 (sts-2.1.2): nicht bestanden (nicht bestandene Tests wie folgt)
Frequency
CumulativeSums
Runs
NonOverlappingTemplate
- TestUOl statistischer Test, Unversität Montreal (TestUOl 1.2.3):
Alphabit-Batterie: nicht bestanden (nicht bestandene Tests wie folgt) MultinomialBitsOver (L = 2)
MultinomialBitsOver (L = 4) MultinomialBitsOver (L = 8)
Hamminglndep (L = 16)
Hamminglndep (L = 32)
RandomWalkl H (L = 64) RandomWalkl M (L = 64)
RandomWalkl J (L = 64)
RandomWalkl H (L = 320)
RandomWalkl M (L = 320)
RandomWalkl J (L = 320) RandomWalkl R (L = 320)
Rabbit-Batterie: nicht bestanden (nicht bestandene Tests wie folgt)
Fourier3
PeriodslnStrings HammingWeight
Hamminglndep (L = 16)
Hamminglndep (L = 32)
Hamminglndep (L = 64)
AutoCor Run of bits
Run of bits RandomWalkl H RandomWalkl M RandomWalkl J RandomWalkl H (L = 1024)
RandomWalkl M (L = 1024)
RandomWalkl J (L = 1024)
RandomWalkl H (L = 10016)
RandomWalkl M (L = 10016) RandomWalkl J (L = 10016)
Eine Lösung dieses Problems erhält man, wenn man sich die Erkenntnisse aus Abschnitt 1.1 vergegenwärtigt. Je länger man wartet, desto echt zufälliger ist der Zustand der Matrixfeld-Oszillatoren M. So wird bei der zweiten Durchführung die neue Testmethode (Neustart-Methode mit direkt nach der Digitalisierung gesammelten Daten) unter gleichen Bedingungen wie beim ersten Experiment auf einen Zufallszahlengenerator angewendet, der eine Wartezeit von 45 ps direkt nach jedem Neustart aufweist. Erst nach der Wartezeit werden Zufallsdaten ausgegeben. Nun liegt eine geänderte Häufigkeitsverteilung der Byte-Werte der Gesamtdatenmenge, wie Fig. 16 zeigt, vor. Die Häufigkeitsverteilung der Byte-Werte ist nun wesentlich gleichmäßiger. Es gibt jetzt keine auffällige Stufe mehr bei dem Byte-Wert 0x3 F (schwarzer Strich L). Die relativen Häufigkeiten betragen im Wesentlichen jeweils 0,39%. Der pseudozufällige Einfluss auf den Zufallszahlengenerator wurde durch die Einführung der Wartezeit offensichtlich entscheidend reduziert. Das Verschwinden eines signifikanten pseudozufälligen Einflusses, d.h. der Zufallszahlengenerator erzeugt nur noch reine echte Zufälligkeit, zeigt auch die statistische Analyse weiterer Neustart-Versuche mit unterschiedlicher Datenblockgröße und Anzahl von Neustarts bei Raumtemperatur, bei einer Datenrate von 30 Mbit/s und ebenfalls gleichen Gesamtdatenmenge von jeweils 100.000.000 Bits (ca. 11,9 MB).
Figure imgf000044_0001
Figure imgf000045_0001
Tabelle 7: Ergebnisse der statistischen Tests von durch den Zufallszahlengenerator bei verschiedenen Neustart-Bedingungen bei Raumtemperatur erzeugten Daten bei einer Wartezeit von 45 ps nach jedem Neustart Die Ergebnisse dieser Untersuchungen zeigt die Tabelle 7. Die zweite Spalte der Tabelle 7 enthält die Ergebnisse des Entropie-Tests über ein Byte. Teilweise sind die Werte für die Shannon-Entropie pro Byte größer als der Maximalwert von 8 Bit aufgrund von Rundungsfehlern. Die Entropie-Werte in der besagten Spalte sind alle größer als 7,976 Bit Shannon-Entropie pro Byte. D.h. die Shannon-Entropie pro Bit ist in allen Fällen größer als 0,997 Bit. Somit werden die entsprechenden Anforderungen von AIS20/31 erfüllt. Die Ergebnisse dieser umfangreichen Neustart-Tests zeigen, dass trotz der gleichen Anfangsbedingungen bei den Neustarts dieser Zufallszahlengenerator Daten liefert, die die genannten statistischen Tests erfüllen. Dies gilt sogar für Daten, die aus relativ kleinen Datenblöcken (1000 Bit Sequenzen) zusammengesetzt sind und bei einer sehr großen Anzahl von Neustarts (100.000) generiert wurden. Dies ist ein klarer Nachweis, dass reine echte Zufälligkeit von dem Zufallszahlengenerator generiert wird. Die einzige Bedingung dafür ist, dass eine Wartezeit (Anlaufzeit) von 45 ps direkt nach jedem Neustart vor Ausgabe des ersten Zufallswertes bei Verwerfen der vorherigen Daten eingehalten wird. Diese Anlaufzeit wird bei allen Untersuchungen in diesem Dokument, die den Gesamt- Zufallszahlengenerator betreffen, berücksichtigt. Die einzigen Ausnahmen bilden die Untersuchungen am Anfang dieses Abschnitts 1.2.2, die explizit ohne Wartezeit nach jedem Neustart durchgeführt wurden.
1.2.3 Tests gemäß NIST SP800-90B
Eine abschließende Prüfung der Eigenschaften des Zufallszahlengenerators ermöglichen die Min-Entropie-Tests und Neustart-Tests (restart tests) des relativ neuen Standards NIST SP800-90B. Die Min-Entropie-Tests bestehen aus zwei Pfaden: HD (independent and identically distributed) und Nicht-I ID. Aufgrund der bisherigen Untersuchungsergebnisse wird im Folgenden der IID-Pfad beschritten. D.h. es wird davon ausgegangen, dass die Entropie- Quelle unabhängig identisch verteilte Zufallszahlen generiert. Zuerst wird die initiale Min-Entropie-Schätzung (H0hginai) it dem Min-Entropie-Test ermittelt, dann werden die Neustart-Tests durchgeführt. Die ersten 106 Bits der Original-Zufallssequenzen nach der Digitalisierung (raw random sequence) nach einer Wartezeit von 45 ps nach Start entsprechend der bereits beschriebenen sequentiellen Datenaufnahme (siehe Abschnitt 1.2.1) dienen als Datenmenge für den Min-Entropie-Test. Zur Generierung der Datenmenge für die Neustart-Tests werden 1000 Neustarts bei Raumtemperatur durchgeführt. Es werden jeweils 1000 Bits der Original- Zufallssequenzen nach der Digitalisierung (raw random sequence) nach einer Wartezeit von 45 ps nach jedem Neustart aufgezeichnet. Das ergibt ebenfalls eine Datenmenge von 106 Bits, auf die die Neustart-Tests angewendet werden. Die Ergebnisse der Tests gemäß NIST SP800-90B sind in der Tabelle 8 dargestellt. Sie zeigen, dass sich die anfängliche IID- Annahme durch die Tests bestätigt. So werden auch die Neustart-Tests für diese Annahme bestanden. Der ermittelte Wert für die Min-Entropie pro Bit ist mit 0,993767 Bit sogar nach den Neustart-Tests unverändert sehr hoch. Dieser Wert ist sehr nah an dem maximal möglichen Wert von 1 Bit, der bei Vorliegen einer ideal gleichmäßigen Wahrscheinlichkeitsverteilung auftritt. An dieser Stelle ist zu bemerken, dass NIST SP800-90B für das erfolgreiche Bestehen des Testverfahrens keinen spezifizierten Minimalwert für die geschätzte Min-Entropie fordert, wenn die Neustart-Tests bestanden werden.
Figure imgf000046_0001
Tabelle 8: Ergebnisse der NIST SP800-90B Tests von durch den Zufallszahlengenerator bei Raumtemperatur erzeugten Daten (Daten rate 30 Mbit/s)
Entsprechend den Untersuchungen mit der AIS31 statistische Testsuite im Abschnitt 1.2.1 wird auch hier im Rahmen der NIST SP800-90B Tests der Zufallszahlengenerator Temperaturtests in einem bestimmten Temperaturbereich unterzogen. Es wird hier wieder die Datenaufnahme bei grundsätzlich unveränderten Testbedingungen (außer Temperatur) durchgeführt. Das heißt, bei jeder der unterschiedlichen Temperaturen (von -25 °C bis +55 °C in Schritten von 5 °C) werden die vorher beschriebenen
NIST SP800-90B Tests durchgeführt. Die Ergebnisse sind in der Tabelle 9 dargestellt.
Die Ergebnisse der Untersuchungen in der Tabelle 9 ergeben wieder, dass die IID-Annahme durch alle Tests bestätigt wird. Außerdem werden auch alle Neustart-Tests für diese Annahme bestanden.
Figure imgf000047_0001
Tabelle 9: Ergebnisse der NIST SP800-90B Tests von durch den Zufallszahlengenerator bei verschiedenen Temperaturen erzeugten Daten (Daten rate 30 Mbit/s)
Die Min-Entropie pro Bit nach den Neustart-Tests ist bei allen Temperaturen immer größer als 0,99 Bit und damit sehr hoch. Dies gilt sogar für die niedrigen Temperaturen. Hierbei ist wieder zu betonen, dass es sich bei den untersuchten Daten um Original-Zufallssequenzen nach der Digitalisierung (raw random sequences) handelt. Aus all diesen Ergebnissen lässt sich folgern, dass im gesamten untersuchten Temperaturbereich der erfindungsgemäße Zufallszahlengenerator als echte Entropie-Quelle von sehr hoher Qualität hier seine Bestätigung findet.
1.3. Zusammenfassung
Die Untersuchungsergebnisse sowohl auf der Ebene des Matrixfeld- Oszillators M als auch auf der Ebene des gesamten Zufallszahlengenerators zeigen, dass echte Zufälligkeit erzeugt wird. Es konnte mittels der umfassenden Neustart-Experimente gezeigt werden, dass durch die Einführung der Wartezeit (Anlaufzeit) nach jedem Neustart vor Ausgabe des ersten Zufallswertes bei Verwerfen der vorherigen Daten der pseudozufällige Einfluss auf ein unbedeutendes Maß reduziert werden kann. Weiterhin konnte nachgewiesen werden, dass der Matrixfeld-Oszillator M eine deutlich robustere und zuverlässigere Entropie-Extraktion durch Abtastung als vergleichbare Oszillatoren wie beispielsweise Fibonacci- und Galois-Ring- Oszillatoren ermöglicht. Zu betonen ist, dass alle Neustart-Experimente auf der Ebene des gesamten Zufallszahlengenerators auf Original- Zufallssequenzen direkt nach der Digitalisierung (raw random sequences) beruhen. Das heißt eine komplexe zusätzliche Nachbearbeitung (post- processing) der Daten nach der Digitalisierung ist nicht notwendig. Weiter ist zu beachten, dass diese Neustart-Untersuchungen bei einer relativ hohen Bitrate von 30 Mbit/s durchgeführt wurden. Diese Tests führen dazu, dass die Notwendigkeit von anderen aufwendigeren Wegen zum Beweis der von diesem Zufallszahlengenerator generierten echten Zufälligkeit bedeutend kleiner wird. Das heißt, die Analyse ermöglicht einen klaren Nachweis der echten Zufälligkeit, ohne dass der schwierige, aufwendige, risikobehaftete und ggf. bestreitbare Beweisansatz des stochastischen Modells (siehe AIS20/31) beschritten wird. Zusammenfassend lässt sich feststellen, dass der erfindungsgemäße Zufallszahlengenerator eine echte Entropie-Quelle von sehr hoher Qualität im gesamten untersuchten Temperaturbereich darstellt.
Anhang A. Kurz-Analyse basierend auf einem IGLOO-FPGA von
Microsemi IGLOO nano Starter kit board (AGLN-NANO-KIT) mit dem IGLOO-FPGA AGLN250V2-VQG100 von Microsemi
Figure imgf000050_0001
Tabelle 10: Ergebnisse der statistischen Tests von durch den Zufallszahlengenerator bei
Raumtemperatur erzeugten Daten bei einer sequentiellen Datenaufnahme mit 200 62.500- Byte- bzw. 500.000-Bit-Datenblöcken (Datenrate 30 Mbit/s)
Figure imgf000050_0002
Tabelle 11: Ergebnisse der NIST SP800-90B Tests von durch den Zufallszahlengenerator bei Raumtemperatur erzeugten Daten (Datenrate 30 Mbit/s)
Anhang B. Kurz-Analyse basierend auf einem Spartan -6-FPGA von Xilinx
Cmod S6 board von Digilent mit dem Xifinx Spartan 6 LX4 FPGA (Spartan 6 XC6SLX4-2CPG196 FPGA)
Figure imgf000051_0001
Tabelle 12: Ergebnisse der statistischen Tests von durch den Zufallszahlengenerator bei
Raumtemperatur erzeugten Daten bei einer sequentiellen Datenaufnahme mit 200 62.500- Byte- bzw. 500.000-Bit-Datenblöcken (Datenrate 30 Mbit/s)
Figure imgf000051_0002
Tabelle 13: Ergebnisse der NIST SP800-90B Tests von durch den Zufallszahlengenerator bei Raumtemperatur erzeugten Daten (Datenrate 30 Mbit/s
Anhang C. Kurz-Analyse basierend auf einem Spartan-7-FPGA von Xilinx Cmod S7 Board von Digilent mit dem Xilinx Spartan 7 FPGA (Spartan 7 XC7S25-1 CSGA225C FPGA)
Teil I - Zufallszahlengenerator: 15 Mbit/s, IF (SPI): 15 Mbit/s
Figure imgf000052_0001
Tabelle 14: Ergebnisse der statistischen Tests von durch den Zufallszahlengenerator bei Raumtemperatur erzeugten Daten bei einer sequentiellen Datenaufnahme mit 200 62.500- Byte- bzw. 500.000-Bit-Datenblöcken
Figure imgf000052_0002
Tabelle 15: Ergebnisse der NIST SP800-90B Tests von durch den Zufallszahlengenerator bei Raumtemperatur erzeugten Daten
Teil ff - Zufallszahlengenerator: 30 Mbit/s, IF (SRI): 15 Mbit/s
Figure imgf000053_0001
Tabelle 16: Ergebnisse der statistischen Tests von durch den Zufallszahlengenerator bei Raumtemperatur erzeugten Daten bei einer sequentiellen Datenaufnahme mit 200 62.500- Byte- bzw. 500.000-Bit-Datenblöcken
Figure imgf000053_0002
Tabelle 17: Ergebnisse der NIST SP800-90B Tests von durch den Zufallszahlengenerator bei Raumtemperatur erzeugten Daten
Bemerkung: Die Beschränkung der Datenrate des Interfaces (Serial Peripheral Interface - SRI) auf 15 Mbit/s ist in der Beschaltung des Xilinx Spartan 7 FPGA auf dem Cmod S7 Board begründet (Schaltgeschwindigkeit der digitalen I/Os: maximal 25 MHz).
Anhang D. Kurz-Analyse einer „Frequency Injection Attack“ basierend auf einem IGLOO-FPGA von Microsemi IGLOO nano Starter kit board (AGLN-NANO-KIT) mit dem IGLOO-FPGA AGLN250V2-VQG100 von Microsemi Auf Basis der Kenntnis der Veröffentlichung T. Markettos and S. W. Moore, The Frequency Injection Attack on Ring-Oscillator- Based True Random Number Generators, Cryptographic Hardware and Embedded Systems - CHES 2009, Lecture Notes in Computer Science, vol. 5747, Springer, Berlin, Heidelberg, pp 317-331 , 2009 wurde bei dieser Kurz-Analyse für verschiedene Frequenzen untersucht, ob die Einspeisung einer sinusförmigen Störspannung auf die Betriebsspannung eines IGLOO-FPGAs mit der Implementierung des in Abschnitt 1 beschriebenen Ausführungsbeispiels des Zufallszahlengenerators einen negativen Einfluss auf die (echten) Zufallseigenschaften der vom Generator erzeugten Daten hat. Die in den Tabellen 18 und 19 dargestellten Ergebnisse zeigen, dass das für die untersuchten Frequenzen nicht der Fall ist.
Figure imgf000054_0001
Tabelle 18: Ergebnisse der Tests mit der AIS31 statistischen Testsuite von durch den Zufallszahlengenerator bei verschiedenen Frequenzen eines Störsignals erzeugten Daten bei sequentieller Datenaufnahme mit 200 62.500-Byte- bzw. 500.000-Bit- Datenblöcken (Datenrate 30 Mbit/s)
Figure imgf000055_0001
Tabelle 19: Ergebnisse der NIST SP800-90B Tests von durch den Zufallszahlengenerator bei verschiedenen Frequenzen eines Störsignals erzeugten Daten (Datenrate 30 Mbit/s)
Anhang E. Merkmale der Implementierung des Ausführungsbeispiels (siehe Abschnitt 1) des Zufallszahlengenerators Ressourcenverbrauch
I. Beispielimplementierung SmartFusion-FPGA A2F200M3F-FGG484 auf dem SmartFusion-Evaluationsboard von Microsemi: Anzahl benötigter FPGA-Kernzellen (Core Cells): 2108
II. Beispielimplementierung Xilinx Spartan 7 FPGA (Spartan 7 XC7S25- 1CSGA225C FPGA) auf dem Cmod S7 Board von Digilent Anzahl benötigter FPGA-LUTs: 1218
Anzahl benötigter FPGA-Register (Flip-Flops): 277 Leistunqsverbrauch:
Beispielimplementierung IGLOO-FPGA AGLN250V2-VQG100 auf dem IGLOO nano Starter kit board (AGLN-NANO-KIT) von Microsemi: Leistungsverbrauch des FPGAs (Core) bei einem deaktivierten
Zufallszahlengenerator (1 ,2 V Core-Spannung):
Poff = 3,768 mW Leistungsverbrauch des FPGAs (Core) bei einem aktivierten
Zufallszahlengenerator (1 ,2 V Core-Spannung):
Pon = 64,2 mW
Anhang F. Langzeit-Osziilationstest der Implementierungen des Ausführungsbeispiels (siehe Abschnitt 1) des Zufaliszahlengenerators
Alle 4 Implementierungen des Ausführungsbeispiels (siehe Abschnitt 1) des erfindungsgemäßen Zufallszahlengenerators wurden einem Langzeit- Oszillationstest unterzogen. Dabei wird geprüft, ob während der Dauer eines Monats bei kontinuierlichem Betrieb des Zufallszahlengenerators ein oder mehrere der 9 Matrixfeld-Oszillatoren temporär oder permanent stehenbleiben bzw. nicht mehr oszillieren (100 Takte lang keine Oszillation der jeweils 6 digitalisierten Testsignale). Wenn alle 9 Matrixfeld-Oszillatoren stehenbleiben, liegt ein Totalausfall vor. Die Ergebnisse zeigt die Tabelle 20.
Figure imgf000057_0001
Tabelle 20: Ergebnisse des Langzeit-Oszillationstest für 4 Implementierungen des Ausführungsbeispiels des Zufallszahlengenerators

Claims

Ansprüche
Zufallszahlengenerator in Form einer elektronischen Schaltungsanordnung mit rein digitalen Schaltungselementen, dadurch gekennzeichnet, dass er eine Matrix (M) aus einzelnen Oszillator-Schaltungen (100) umfasst, die eine gerade Anzahl Eingänge (t, b, I, r) aufweisen, die jeweils mit einem Ausgang (o) einer benachbarten Oszillator-Schaltung (100) verbunden sind, wobei jeweils zwei (t, b; I, r) der Eingänge mit einem ersten Exklusiv-Oder- Gatter (102, 104) verbunden sind, und die Ausgänge der ersten Exklusiv-Oder-Gatter (102, 104) mit Eingängen eines weiteren Exklusiv-Oder-Gatters (106) verbunden sind, dessen Ausgangssignal ein Ausgangssignal (o) der einzelnen Oszillator-Schaltung (100) bildet, und mit Eingängen (b, t, r, I) der jeweils benachbarten Oszillator- Schaltungen (100) verbunden ist, wobei die Oszillator-Schaltungen (100) an den Rändern der Matrix (M) entsprechend mit Oszillator- Schaltungen (100) an den gegenüberliegenden Rändern der Matrix (M) verbunden sind, und das Ausgangssignal einer der Oszillator- Schaltungen (Out) den Signal-Ausgang (out) der Matrix (M) bildet.
Zufallszahlengenerator nach Anspruch 1 , dadurch gekennzeichnet, dass das Ausgangssignal der einzelnen Oszillator-Schaltung (100) noch über einen Signaleingang eines Multiplexeres (108) geführt ist, dessen Steuereingang mit einem ersten binären Steuersignal (s[1 ]) beaufschlagt ist, und dessen Ausgangssignal das Ausgangssignal (o) der einzelnen Oszillator-Schaltung (100) bildet, und das erste binäre Steuersignal (s[1 ]) zum Aktivieren und Deaktivieren der Matrix (M) aus Oszillator-Schaltungen dient.
Zufallszahlengenerator nach Anspruch 2, dadurch gekennzeichnet, dass das Ausgangssignal (o) mindestens einer der einzelnen Oszillator-Schaltungen (Inv) über einen Inverter (110) geführt ist. 4. Zufallszahlengenerator nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Matrix (M) zweidimensional, vorzugsweise quadratisch ist, und vorzugsweise 6 x 6 einzelne Oszillator- Schaltungen (100) umfasst.
5. Zufallszahlengenerator nach Anspruch 2, dadurch gekennzeichnet, dass eine weitere der Oszillator-Schaltungen (Start) der Matrix (M) mit einem weiteren binären Steuersignal (s[0]) an ihrem Multiplexer (108) verbunden ist, welches so eingerichtet ist, dass es für eine kurze
Zeitspanne direkt vor der Aktivierung der Matrix (M) über das erste binäre Steuersignal (s[1 ]) aktiviert wird, und zum sicheren Anlaufen der Oszillator-Schaltungen (100) der Matrix (M) dient. 6. Zufallszahlengenerator nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass lediglich eine weitere Oszillator-Schaltung (Inv) in der Matrix (M) mit einem Inverter (110) versehen ist.
7. Zufallszahlengenerator nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass das Ausgangssignal (out) der Matrix (M) mit einem D-Kippglied (200) verbunden ist, dessen Ausgangssignal (Q) das abgetastete Ausgangssignal der Matrix (M) darstellt.
8. Zufallszahlengenerator nach Anspruch 7, dadurch gekennzeichnet, dass er mehrere Matrizen (M) aus einzelnen Oszillator-Schaltungen
(100) umfasst, deren abgetastete Ausgangssignale alle jeweils mit einem Eingang eines Exklusiv-Oder-Gatters (210) verbunden sind, dessen Ausgang die Zufallssequenz liefert. 9. Zufallszahlengenerator nach Anspruch 8, dadurch gekennzeichnet, dass der Ausgang des Exklusiv-Oder-Gatters (210) mit einem Eingang eines weiteren D-Kippglieds (220) verbunden ist, dessen Ausgang die synchrone digitale Zufallssequenz liefert.
10. Zufallszahlengenerator nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass die einzelnen, durch das Exklusiv-Oder-Gatter
(210) verbundenen Matrizen (M) dadurch individualisiert sind, dass in jeder der Matrizen (M) die relativen Positionen der Oszillator- Schaltungen mit dem Inverter (Inv), dem Signal-Ausgang (Out) und dem speziellen weiteren binären Steuersignal (s[0j) zueinander anders sind.
11. Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Modul (230) zur Erzeugung einer Wartezeit vorgesehen ist, welches einen Zähler umfasst und dazu dient, nach Ablauf der Wartezeit nach dem Start des Zufallsgenerators ein Signal auszugeben, welches anzeigt, dass die am Ausgang ausgegebenen Daten gültig und verwendbar sind.
12 Zufallszahlengenerator nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Ausgangssignal (o) einer
Oszillator-Schaltung (100) einer Matrix (M) mit einem Dateneingang (D) eines ersten D-Kippglieds (310) verbunden ist, dessen Ausgang (Q) mit einem Dateneingang (D) eines zweiten D-Kippglieds (320) verbunden ist, dessen Ausgang (Q) mit einem Dateneingang (D) eines dritten D-Kippglieds (330), dessen Ausgang (Q) ebenso wie der
Ausgang der zweiten D-Kippglieds (320) jeweils mit einem Eingang eines Exklusiv-Oder-Gatters (340) verbunden ist, dessen Ausgang (edge) angezeigt, ob die Oszillator-Schaltung (100) schwingt. 13. Zufallszahlengenerator nach Anspruch 12, dadurch gekennzeichnet, dass die Ausgänge (edge) der Exklusiv-Oder-Gatter (340) verschiedener Oszillator-Schaltungen (100) einer Matrix (M) jeweils mit einem Eingang eines Oder-Gatters (32) verbunden sind, dessen Ausgang mit dem Rücksetz-Eingang eines Zählers (34) verbunden ist, der mit einem Systemtakt hochzählt, und dessen Überlauf ein Signal liefert, dass die Matrix (M) nicht ordnungsgemäß oszilliert.
14. Zufallszahlengenerator nach Anspruch 13, dadurch gekennzeichnet, dass die Überlauf-Signale (noedge) der Zähler (34) der zu dem Zufallszahlengenerator verbundenen Matrizen (M) jeweils mit einem Eingang eines Und-Gatters (42) verbunden sind, dessen Ausgangssignal einen Totalausfall des Zufallszahlengenerators anzeigt.
15. Kryptographische Schaltung zur Ausführung von symmetrischen und/oder asymmetrischen Kryptographieverfahren, dadurch gekennzeichnet, dass sie vollständig, einschließlich eines echten
Zufallsgenerators mit robuster, zuverlässiger, annähernd maximal echter Zufälligkeit (Entropie), in einem einzigen digitalen integrierten Schaltkreis aufgebaut ist. 16. Kryptographische Schaltung nach Anspruch 15, dadurch gekennzeichnet, dass sie einen Zufallszahlengenerator nach einem der Ansprüche 1 bis 14 umfasst.
PCT/EP2021/063431 2020-05-28 2021-05-20 Zufallszahlengenerator WO2021239564A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020206723.6 2020-05-28
DE102020206723.6A DE102020206723A1 (de) 2020-05-28 2020-05-28 Zufallszahlengenerator

Publications (1)

Publication Number Publication Date
WO2021239564A1 true WO2021239564A1 (de) 2021-12-02

Family

ID=76138063

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/063431 WO2021239564A1 (de) 2020-05-28 2021-05-20 Zufallszahlengenerator

Country Status (2)

Country Link
DE (1) DE102020206723A1 (de)
WO (1) WO2021239564A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1643643A1 (de) * 2004-09-28 2006-04-05 Micronas GmbH Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001275712A1 (en) 2000-07-27 2002-02-13 Activated Content Corporation, Inc. Stegotext encoder and decoder
DE102008048292B4 (de) 2008-09-22 2012-07-12 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102014200164A1 (de) 2014-01-09 2015-07-09 Robert Bosch Gmbh Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1643643A1 (de) * 2004-09-28 2006-04-05 Micronas GmbH Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen

Non-Patent Citations (13)

* Cited by examiner, † Cited by third party
Title
A. RUKHIN ET AL.: "NIST Special Publication 800-22", April 2010, NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY, article "A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications"
A. SCHUBERT: "Dissertation Universität Bremen, Fortschritt-Berichte VDI Reihe", vol. 10, 2002, VDI VERLAG GMBH, article "Modellierung, Optimierung und Selbsttest von kryptographischen virtuellen Komponenten"
A. SCHUBERTW. ANHEIER: "Journal of Electronic Testing: Theory and Applications", vol. 16, 2000, KLUWER ACADEMIC PUBLISHERS, article "On Random Pattern Testability of Cryptographic VLSI Cores", pages: 185 - 192
J. BALASCH ET AL.: "Design and testing methodologies for true random number generators towards industry certification", IEEE 23RD EUROPEAN TEST SYMPOSIUM (ETS), 2018, pages 1 - 10, XP033368631, DOI: 10.1109/ETS.2018.8400697
M. DICHTL: "Fibonacci Ring Oscillators as True Random Number Generators - A Security Risk", IACR CRYPTOLOGY EPRINT ARCHIVE, vol. 270, 2015
M. DICHTLJ.D. GOLIC: "Cryptographic Hardware and Embedded Systems - CHES 2007", vol. 4727, 2007, SPRINGER, article "High-Speed True Random Number Generation with Logic Gates Only", pages: 45 - 62
M. SÖNMEZ TURAN ET AL.: "NIST Special Publication 800-90B", January 2018, NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY, article "Recommendation for the Entropy Sources Used for Random Bit Generation"
MARIO STIPCEVICQETIN KAYA KOG: "Open Problems in Mathematics and Computational Science", 2014, SPRINGER INTERNATIONAL PUBLISHING, article "True Random Number Generators", pages: 275 - 316
QIAN YI ET AL: "Note: A 10 Gbps real-time post-processing free physical random number generator chip", REVIEW OF SCIENTIFIC INSTRUMENTS, AIP, MELVILLE, NY, US, vol. 88, no. 9, 14 September 2017 (2017-09-14), XP012221377, ISSN: 0034-6748, [retrieved on 20170914], DOI: 10.1063/1.4993494 *
T. MARKETTOSS. W. MOORE: "Cryptographic Hardware and Embedded Systems - CHES 2009", vol. 5747, 2009, SPRINGER, article "The Frequency Injection Attack on Ring-Oscillator- Based True Random Number Generators", pages: 317 - 331
V. FISCHER: "Random Number Generators for Cryptography - Design and Evaluation", SUMMER SCHOOL ON DESIGN AND SECURITY OF CRYPTOGRAPHIC ALGORITHMS AND DEVICES, SIBENIK, CROATIA, June 2014 (2014-06-01)
W. KILLMANNW. SCHINDLER, AIS20/AIS31 - A PROPOSAL FOR: FUNCTIONALITY CLASSES FOR RANDOM NUMBER GENERATORS, VERSION 2.0, 2011
YANG YUNFAN ET AL: "A reliable true random number generator based on novel chaotic ring oscillator", 2017 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS (ISCAS), IEEE, 28 May 2017 (2017-05-28), pages 1 - 4, XP033156467, DOI: 10.1109/ISCAS.2017.8050843 *

Also Published As

Publication number Publication date
DE102020206723A1 (de) 2021-12-02

Similar Documents

Publication Publication Date Title
EP1643643B1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
EP2976707B1 (de) Vorrichtung und verfahren zum erzeugen von zufallsbits
DE102008048292B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
WO2013004489A1 (de) Verfahren zum prüfen eines m aus n codes
DE60319104T2 (de) Abtastschaltkreis zur zufallszahlengenerierung
DE102014102501A1 (de) Zufallszahlgenerator
EP2240848A1 (de) Schaltung und verfahren zur generierung einer echten, schaltungsspezifischen und zeitinvarianten zufallszahl
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE102012210990A1 (de) Verfahren zum Erzeugen von Zufallszahlen
DE60309282T2 (de) Vorrichtung und Verfahren zur Reduzierung von Korrelation zwischen sequentiellen bits in einem Zufallszahlengenerator
DE102018212833A1 (de) Vorrichtung und verfahren zur erzeugung physikalisch unklonbarer funktionen
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
Wang et al. From chaos to pseudorandomness: a case study on the 2-D coupled map lattice
DE102009008224A1 (de) Invertierende Zelle
DE60319002T2 (de) Verfahren und vorrichtung zur generierung von zufallszahlen mittels metastabiler flip-flops
DE112008001707T5 (de) Finite-Feld-Operationen verwendender kryptographischer Zufallszahlengenerator
DE102008008099B4 (de) Verfahren und Vorrichtung zum Verteilen von Zufallselementen
WO2021239564A1 (de) Zufallszahlengenerator
DE102014200309A1 (de) Verfahren zum Überprüfen einer Ausgabe
WO2013004490A1 (de) Verfahren zum erzeugen einer zufälligen ausgangsbitfolge
DE102015102363A1 (de) Anordnung und verfahren zum überprüfen der entropie einer zufallszahlenfolge
DE102014200164A1 (de) Verfahren zum Erzeugen einer Ausgabe einer Zufallsquelle eines Zufallsgenerators
DE102011078645A1 (de) Verfahren zum sicheren Prüfen eines Codes
DE102013107669B4 (de) Verfahren zur erzeugung eines signals und signalerzeugungsschaltung
DE102013208836A1 (de) Verfahren und Vorrichtung zur Erzeugung eines Hash-Werts

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21728029

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21728029

Country of ref document: EP

Kind code of ref document: A1