Abstract:
A method for generating a random number sequence whose randomness properties are determined a priori, includes defining a parametric map, calculating, in function of parameters of the map, the entropy and the Lyapunov exponent of random number sequences obtainable using the parametric map, and identifying at least a set of values of parameters for which the entropy and the Lyapunov exponent are positive numbers the map has no attracting point. The method further includes assigning a pre-established value as a first feedback value and cyclically carrying out the following steps for generating a random number sequence: determining the parameters inside the set as the numerical values of respective physical quantities, outputting a random number, according to the map with the parameters and the assigned feedback value, and assigning as new feedback value the output random number.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention relates to random numbers generation, and in particular, to a method and system for generating a random number sequence.  
         BACKGROUND OF THE INVENTION  
         [0002]    Random number generators (RNG) are extremely important in cryptography for generating cryptographic keys and for initializing certain variables in cryptographic protocols in a random manner. When ultimate security is required, one must turn to a cipher that is theoretically unbreakable, i.e. a one-time pad. Such a cipher implies a truly random sequence, and pseudo-random number generators (PRNG) are inappropriate for this purpose.  
           [0003]    It is also an absolute necessity that cryptographic keys and initialization variables in cryptographic protocols be generated by RNGs. Otherwise, if a PRNG is employed, the security of the cryptographic algorithm and protocol can be no higher than the security of the PRNG. So, in all these cases where PRNGs are not suitable and unpredictability is a more important requirement than repeatability, one must turn to generators of truly random numbers.  
           [0004]    Hereinbelow, the expression “random numbers generator” indicates a generator of truly random numbers. It is widely accepted that the core of any RNG must be an intrinsically random physical process. So, it is not surprising that the proposals and implementations of RNGs range from tossing a coin, throwing dice, drawing from an urn, drawing from a deck of cards and spinning a roulette to measuring thermal noise from a resistor and shot noise from a Zener diode or from a vacuum tube, measuring radioactive decay from a radioactive source, integrating dark current from a metal insulator semiconductor capacitor, detecting locations of photoevents, and sampling a stable high-frequency oscillator with an unstable low-frequency clock.  
           [0005]    There are methods that use physical processes for generating a sequence of discrete random variables (desirably independent and with identical distribution), most usually binary ones, and later on to derive the desired distribution from them. The drawback of these methods is the random and uncontrollable appearance of the random physical process, that may bias the binary sequence. To reduce any biases of the distribution of the generated sequence, a post-processing of the produced sequence is usually carried out on a digital computer. Finally, the proper design and correct work (no silent breakdowns) of the RNG, and the assumed randomness of the physical process are checked via extensive statistical tests. However, no finite number of statistical tests can prove that a sequence is random: tests can only show that a sequence is not random.  
           [0006]    Theory and tools of nonlinear systems and their chaotic behavior provide an alternative and qualitatively different type of RNGs. Several authors have already proposed to use chaotic systems as sources of physical randomness. When using chaotic systems there is no need to assume their randomness, because when observed in a coarse-grained state space they do behave randomly. However, the existing designs of chaotic RNGs still are affected by the same drawbacks as the classical RNGs based on the assumed randomness of a physical process.  
         DISCUSSION OF THE PRIOR ART  
         [0007]    For a better comprehension of the innovative aspects of the present invention, a brief review of the state of the art is presented. A general RNG architecture is depicted in FIG. 1. A physical process, assumed to be random, is converted into a sequence of numbers via a converting device. The redundancy and non-randomness of the sequence is reduced by a post-processing step. Statistical tests are applied to check if the generated sequence is truly random, and implicitly to check the assumption about the randomness of the physical process.  
           [0008]    Random Physical Processes  
           [0009]    The basis of the randomness assumption, in most cases such as tossing a coin, throwing dice, drawing from a urn, drawing from a deck of cards, spinning a roulette, thermal noise, shot noise, avalanche noise and unstable oscillation, is another plausible assumption: a physical process is produced by a huge number of events which give rise to a complex and unpredictable behavior that can be analyzed only via probabilistic terms. For example, thermal noise is the resulting process of the Brownian motion of electrons; and randomness of radioactive decay stems from the Heisenberg uncertainty principle of quantum physics.  
           [0010]    Another interesting physical process is laser speckle patterns, which are produced when rough surfaces of multimode lasers are illuminated by lasers. Random space appearance of speckles is exploited to produce large 2D arrays of random numbers, that are essential in parallel architecture implementations of Boltzman machines and simulated annealing. However, generating time-independent successive speckle patterns is the major short-coming since one must rely on other physical sources of randomness to randomly modulate in time the speckle.  
           [0011]    Converter  
           [0012]    The task of the converting device is to convert the assumed randomness of a physical process into a sequence of equiprobable independent digits, most usually binary ones. Later on, a postprocessing is necessary to convert the binary sequence into a sequence of i.i.d. random variables with the desired probability distribution. Therefore, it is not surprising that the previous workers in the field, with almost no exception, have examined the generation of random binary sequences, an approach followed also by the inventors.  
           [0013]    Impulse Counting  
           [0014]    One of the most reliable and most accurate methods for generating random numbers, due to Vincent and his co-workers (C. H. Vincent, “The Generation of Truly Random Binary Numbers”,  Journal of Physics E, vol.  3, pp. 594-598, 1970; and R. S. Maddocks, S. Matthews, E. W. Walker, and C. H. Vincent, “A compact and accurate generator for truly random binary digits”,  Journal of Physics E, vol.  5, pp. 542-544, 1972), is illustrated in the functional diagram of FIG. 2. A physical process is used to generate a sequence of randomly timed impulses. If necessary, a detector is used to convert them into electrical impulses as in the case of radioactive decay. Then the impulses are amplified enough to assure that the discriminator correctly detects them. A binary counter modulo 2 counts the randomly timed impulses for fixed time intervals. States of the counter at the end of the fixed time intervals constitute the random number sequence.  
           [0015]    A very interesting proposal for a Poisson random process is due to Agnew (G. B. Agnew, “Random sources from cryptographic systems”,  Advances in Cryptology—CRYPTO &#39; 85, pp. 77-81, Springer-Verlag 1986). Agnew compares the number of electrons generated for a fixed time interval in two neighboring metal insulator semiconductor capacitors, and generates one bit on basis of the comparison. Dark current is the generating mechanism, and the electron generating process is a Poisson process. The two capacitors are very close to each other, and exhibit a very high common mode rejection. So, they are very resistant to attempts at trying to control their behavior. Exactly matching two capacitors is an impossible task, and two mismatched cells will produce a biased sequence of 0s and 1s. Using outputs of several pairs of capacitors can reduce the bias.  
           [0016]    Binary Quantization  
           [0017]    Conversion of random physical processes into sequences of random numbers frequently is done via quantization of the random signal, in the way described in the functional diagram of FIG. 3. For this purpose, a binary quantizer (comparator with one threshold level) is most frequently used, and its threshold level is set to the mean value of the input random process, so that both output levels are equally probable. The output of the comparator is equidistantly sampled to produce a random binary sequence. Murry (H. F. Murry, “A general approach for generating natural random variables”  IEEE Trans. Computers,  vol. 19, pp. 1210-1213, 1970) gives a qualitative approach towards the relation between the sampling frequency and the noise bandwidth, and concludes that the maximum sampling frequency should be 1.155× the noise bandwidth to allow for the correlation between the adjacent bits to die out.  
           [0018]    Sokal (N. O. Sokal, “Optimum choice of noise frequency band and sampling rate for generating random binary digits from clipped white noise”,  IEEE Trans. Computers,  vol. 21, pp. 614-615, 1972.) improved Murry&#39;s results and showed how to choose the minimum passband frequencies of the noise for a predefined sampling frequency and bit-to-bit correlation. A hysteresis around the threshold level may worsen the performances of the RNG. If the hysteresis is comparable to the input noise level, then the input signal might frequently wander inside the hysteresis for a long time without causing an output change. This phenomenon introduces correlation between adjacent bits.  
           [0019]    Two Unstable Oscillators  
           [0020]    [0020]FIG. 4 illustrates another well-known architecture of RNGs. A stable high-frequency oscillator is sampled with an unstable low-frequency RX clock, and then quantized. Short-term (one period) frequency fluctuations of the unstable low-frequency oscillator are the source of randomness. Fairfield et al. (R. C. Fairfield, R. L. Mortenson, and K. B. Coulthart, “An LSI Random Number Generator (RNG)”,  Advances in Cryptology—Crypto &#39; 84, pp. 203-230, Springer-Verlag 1984) suggest that the standard deviation of the low frequency oscillator period variation has to be larger than the high frequency oscillator period in order to produce satisfactorily decorrelated samples. Such variations basically are caused by thermal and shot noise in electronic components of the oscillator circuit.  
           [0021]    In “A 128K EPROM using encryption of pseudorandom numbers to enable random access” (L. Letham, D. Hoff, and A. Folmsbee, IEEE  Journal of Solid - State Circuits,  vol. SC-21, pp. 881-887, October 1986), two unstable fast oscillators with close frequencies are used. Trying to increase the period of fluctuations, besides the thermal noise of resistors and transistors, the authors make one of the fast oscillators very susceptible to the fluctuations in the power supply while a heater circuit is provided near the other fast oscillator thus affecting the temperature of the silicon.  
           [0022]    Despite all these designer attempts, there is a large amount of redundancy in the output sequence. In Fairfield et al. a scrambling circuit is used to reshape the redundancy, not to reduce it, and make more difficult for simple statistical tests to detect the redundancy and nonrandomness in the sequence. In Letham et al. the authors do not even attempt to reduce the redundancy.  
           [0023]    Processor  
           [0024]    Circuit asymmetry, parameter variations, noise bandwidth etc. can lead to a biased nonideal physical source, limited RNG. Redundancy in the output sequence, either in the form of nonequiprobable or correlated bits, can be reduced to a desired extent via processing it. A useful summary on debiasing methods can be found in “Randomness recommendations for security” (D. Eastlake, S. Cracker, J. Schiller, Request for Comments 1750, December 1994). It is possible to use stream parity, transition mappings, fast Fourier transform, compression, or hash functions to debias a bit stream. When using compression methods, one should keep in mind that the existing compression methods are invertible. On one side, they reduce the redundancy from the biased bit sequence (for example, through searching for repeating sequences as in the case of Lempel-Ziv algorithm, but on the other side they insert another redundancy in the compressed sequence. On basis of this redundancy one can carry out the decompression back to the original sequence. Therefore, compression algorithms should be modified so that the control patterns intended to enable the decompression, which are an actual redundancy, are removed.  
           [0025]    Statistical Tests  
           [0026]    Statistical tests are intended to detect possible regularities in the output sequence of the RNG, or to derive an information source model of the RNG. Statistical tests implicitly also check the designers assumption about the randomness of the physical process. Usually one runs a certain number of statistical tests, and if a sequence passes them, then one wishfully deduces that the sequence will pass any other test of randomness. Though a finite number of statistical tests cannot prove that a sequence is random. Statistical tests can only show that a sequence is not random in case when the sequence fails at least one test. In other words, it is not possible to prove that a sequence is not compressible by all possible compression algorithms, unless their number is infinite.  
           [0027]    Parameter fluctuations in any of the blocks of FIG. 1 may cause the RNG to leave the desired random working regime and start generating regular sequences. Therefore, statistical tests must be run from time to time to check for a possible silent breakdown of the RNG.  
           [0028]    RNGs Available on the Market  
           [0029]    RNGs currently available on the market easily fit in the discussion provided in this section. As a source of randomness, they use thermal noise from a resistor and shot noise from Zener diode. As a converter, they use binary quantizers, as depicted in FIG. 3, in all cases. Very simple tests such as counting the frequency of appearance of is, intended to detect a breakdown of the RNG, are implemented in hardware, while more complicated statistical tests are implemented in software routines.  
           [0030]    As proof of quality, manufacturers cite different statistical tests passed by their RNGs, which we have shown to be inconclusive. Some manufacturers use extensive software postprocessing to reduce the redundancy present in the raw bit stream. Bit generation rates are 7600 bits/sec, 10000 bits/sec, 20000 bits/sec, 76000 bits/sec. These are the maximum bit rates suggested by the manufacturers. A thorough examination of performances of these RNGs can be found on Robert Davies webpage, “Random number generators”, http://nz.com/webnz/robert/recent/lottery.html.  
           [0031]    Existing Chaos Based RNGs  
           [0032]    Proposals for analog noise generation using chaotic circuits preceded the works on chaotic RNGs. White noise generation using the logistic map was analyzed in “Generation of Noise by Electronic Iteration of the Logistic Map” (G. C. McGonigal and M. I. Elmasry,  IEEE Trans. Circ. Syst.,  vol. CAS-34, pp. 981-983, 1987), while for the same purpose a 1D piecewise linear map was used in “Switched-capacitor broadband noise generator for CMOS VLSI” (Rodriguez-Vasquez, M. Delgado, S. Espejo, and J. L. Huertas,  Electronics letters,  vol. 27, no. 21, pp. 1913-1915, October 1991. In “A chaotic switched-capacitor circuit for 1/f noise generation” (M. Delgado-Restituto, A. Rodriguez-Vasquez, S. Espejo, and J. L. Huertas,  IEEE Trans. Circ. and Syst. - I,  vol. 9, no. 4, pp. 325-328, April 1992) hopping transitions of a 1D piecewise linear chaotic map are used for 1/f noise generation. Some of these papers also mention RNG as possible application of their circuits.  
           [0033]    Still the era of chaotic RNGs begins with the works of Bernstein and Lieberman (G. M. Bernstein and M. A. Lieberman, “Secure random number generation using chaotic circuits”,  IEEE Trans. Circ. Syst., vol.  37, pp. 1157-1164, 1990), and Espejo-Meana et al. (S. Espejo-Meana, A. Rodriguez-Vazquez, J. L. Huertas, and J. M. Quintana, “Application of chaotic switched-capacitor circuits for random-number generation”,  European conference on circuit theory and design  1989, pp. 440-444, 1989). In these two papers and in those following them, chaotic circuits serve as physical sources of randomness. Tent map implemented via switched-capacitor circuits and a first-order nonuniformly sampling digital phase-locked loop are used to produce a binary random sequence through a binary quantization of a chaotic signal.  
           [0034]    Failures or drops in performances may silently occur in classical RNGs, and periodic check-ups (via the black magic of complicated statistical tests) and tune-ups are necessary to maintain the performances. This problem is highly relieved when chaotic circuits are used. The nominal parameter values should lie in the middle of the region of parameter values that provide a chaotic behavior. Thus, temperature changes, components aging, power supply fluctuations, clock feed-through and other influences are less probable to cause the nonlinear circuit to leave the parameter region of chaotic behavior.  
           [0035]    A unique approach to the problem of silent failures is given in the paper by Davis et al. (D. Davis, R. Ihaka, and P. Fenstermacher, ‘Cryptographic randomness from air turbulence in disk drives”,  Advances in Cryptology—CRYPTO &#39; 94, pp. 114-120, Springer-Verlag 1994). They numerically simulated air-flow in a spinning hard-disk, and observed an air turbulence. Chaotic nature of the air turbulence causes random disk access times. Davis et al. evaluate that at least 100 bits of information per minute can be generated via timing the disk accesses. The operating system detects and reports disk faults, such as no spinning, and also detects failures in the hard-disk based RNG. The advantage of this RNG of not requiring any additional hardware is opposed to the fact that an access to low-level software routines is needed, a hard disk may stop spinning when the computer is in power saving mode, and a RAM cache may make inaccessible the variations in the disk accesses times.  
         SUMMARY OF THE INVENTION  
         [0036]    It is an object of the present invention to provide a method for generating a random number sequence that overcomes the above discussed limitations and drawbacks of the known methods. Different from prior art methods, the method of the invention makes it possible to determine a priori properties of the generated sequence and to find optimal parameter values for the generator. For example, it is possible to calculate a priori whether the entropy and Lyapunov exponent of the output sequence are positive numbers or not.  
           [0037]    The invention includes generating random numbers using parametric maps whose parameters are numerical values of physical quantities. At first glance, the approach of generating random sequences using a parametric map could seem impossible because they are normally used to generate deterministic sequences. Surprisingly, according to the method of the invention as will be discussed, they are used to produce true random sequences because the values of parameters are numerical values of physical quantities and thus are true random numbers. Furthermore, different from prior art techniques, it is not necessary that the generated sequence be subjected to randomness tests, because using parametric maps makes it possible to determine a priori at least a set of values of the parameters for which the generated sequence is chaotic.  
           [0038]    More precisely, a method for generating a random number sequence includes: defining a parametric map; calculating, in function of parameters of the map, the entropy and the Lyapunov exponent of random number sequences obtainable using the parametric map; identifying at least a set of values of parameters for which the entropy and the Lyapunov exponent are positive numbers the map has no attracting point; assigning a pre-established value as a first feedback value and cyclically carrying out the following steps for generating a random number sequence:  
           [0039]    a) determining said parameters inside the set as the numerical values of respective physical quantities;  
           [0040]    b) outputting a random number, according to said map with the parameters and the assigned feedback value;  
           [0041]    c) assigning said output random number as a new feedback value.  
           [0042]    The parametric map to be chosen may be any parametric map, even a nonlinear map, provided that it is possible to analyze a priori the mechanism of generation of information, and that is it is possible to know for which values of parameters the generated sequence is chaotic. For instance, it is possible to use a piecewise linear one-dimensional parametric map or even a multi-dimensional parametric map.  
           [0043]    The random number sequence so produced may be used in a method for generating a random bit sequence. The latter may simply include defining a pair of first and second sets of values by a Markov partition of the set of real numbers; producing random numbers using the previously described method; outputting a high or a low random bit for each random number, whether the random number is comprised in the first set or in the second set, respectively. Optionally, the generated sequence may be subjected to tests for determining its Markov character and its redundancy. It is also possible to calculate the functional dependence of the redundancy on parameter values and to modify the values of parameters accordingly, to obtain a random sequence with a desired redundancy and Markov character.  
           [0044]    A further aspect of the invention is a circuit, that is preferably realized using a switched current technique, implementing the method of the invention for generating a random bit sequence. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0045]    The advantages of the invention will appear even more evident through a detailed description of the invention referring to the attached drawings, wherein:  
         [0046]    [0046]FIG. 1 is a general architecture of a RNG;  
         [0047]    [0047]FIG. 2 is a functional diagram illustrating a known circuit for generating a random sequence;  
         [0048]    [0048]FIG. 3 is a second functional diagram illustrating another known circuit for generating a random sequence;  
         [0049]    [0049]FIG. 4 is a third functional diagram illustrating a RNG with unstable oscillators;  
         [0050]    [0050]FIG. 5 depicts a possible graphic of the PL1D map (3);  
         [0051]    [0051]FIG. 6 shows a possible periodic orbit obtained using the PL1D map of FIG. 5;  
         [0052]    [0052]FIG. 7 depicts an embodiment of the random bit generator of the invention;  
         [0053]    [0053]FIG. 8 is a diagram resulting from a SPICE simulation of the circuit of FIG. 7.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0054]    In the existing chaos based RNGs, chaos is used to substitute classical sources of physical randomness. The assumed randomness of thermal noise or shot noise is substituted by the intrinsic randomness of chaos when observed in a partitioned space. None would challenge the very plausible assumption of randomness of thermal noise or roulette. However, deriving the information source model of a thermal noise based RNG strongly depends on the assumptions made, and the only way to check the assumptions is via statistical tests. When a circuit with proven chaotic behavior is used, then a posteriori inconclusive indications of randomness in form of statistical tests, are substituted with a priori proofs of chaotic behavior, which is a very significant benefit. For such a RNG, statistical tests are nothing else but a sanity check.  
         [0055]    Davis et al. recognized this benefit, but analyzing the air turbulence in a spinning hard disk, they did not consider the design of an application oriented chaotic circuit. As the bits produced by a spinning hard disk are highly biased, they rather concentrate on a novel usage of FFT as a debiasing algorithm. The other authors in the area did not recognize the benefit of avoiding the need for statistical tests. Espejo-Meana et al. and Kuusela still resort to statistical tests to prove the unprovable randomness of generated sequences, and then to conclude that the RNG behaves as an information source.  
         [0056]    If for whatever reasons periodic checkups of RNG performances need to be done, it is possible to carry out several more reliable and simpler measures than statistical tests. Proper behavior of a RNG can be checked by measuring the parameter values and checking if they belong to the chaotic region, or to the intended part of the chaotic region.  
         [0057]    If measuring the parameter values is not desirable because it may interrupt the work of a RNG, then still one can easily and in short time check whether the intended chaotic circuit oscillates in the chaotic regime via the Lyapunov exponents, dimensions, KS entropy and other quantitative measures of chaos. Given that for this purpose it is not necessary to exactly measure the chaos, but rather to detect a possible drop in the performance caused by leaving the chaotic regime or moving towards a parameter region with smaller KS entropy, then one can resort to computing coarse-grained entropy rates (CER). CERs are relative measures of unpredictability and randomness of time series. When a time-series is generated by a dynamical system, then CERs are related to the KS entropy. CERs can be computed fast and easily, are robust to the presence of noise in the time-series, and reliably measure the randomness of even quite short time-series. Testing procedure can be summarized as: positive KS entropy, positive Lyapunov exponent, positive CER         chaotic behavior         RNG.  
         [0058]    As stated before, the method of the invention may be implemented using any parametric map. The method of the invention will now be described in detail by making reference to a particularly important example of choice of parametric map. The following description will refer to a piecewise linear one-dimensional parametric map, though the method of the invention may use any other parametric map, even non linear and multidimensional. Moreover, even a hardware implementation of the method of the invention by an integrated electronic circuit, will be illustrated in detail.  
         [0059]    Piecewise Linear One-Dimensional Parametric Map  
         [0060]    Piecewise linear one-dimensional maps (PL1D) are maps fully described by the following equations:  
               x     n   -   1     ′     =     {             q   1   ′     +       k   2   ′     ·     (       x   n   ′     -     T   L       )                 for                   x   n   ′       &lt;     T   L                   q   2   ′     +       k   2   ′     ·     (       x   n   ′     -     T   L       )                   for                   x   n   ′       ≥     T   L                                    (   1   )                               
 
         [0061]    where k′ 1 ,k′ 2 &gt;1, q′ 1 &gt;T L &gt;q′ 2 . As map (1) is everywhere expanding, there are no micro Feigenbaum diagrams (there are no stable periodic windows) in the chaotic region. It is worth noticing that  
         [0062]    (i) a 2-regions PL1D map can be with h KS =1[bit], which is sufficient for a binary RNG;  
         [0063]    (ii) T L εB(β)         β is a generating partition;  
         [0064]    (iii) the number of parameters is very small and analysis of sensitivity of map&#39;s properties on parameters&#39; variations can be analytically calculated;  
         [0065]    (iv) PL1D maps can be simply implemented by virtue of switched capacitor and switched current circuits, which can operate at high frequencies.  
         [0066]    It must be stressed that the following analysis can be generalized to any arbitrary multidimensional map for which it is possible to define a generating partition for any value of its parameters. Therefore, Eq. (1) is only an example of a large set of possible maps that can be used to generate random numbers.  
         [0067]    Linear Conjugacy  
         [0068]    For every set of parameters of map (1), following transformation  
             x   =     {             (       x   ′     -     T   L       )     /     (       T   L     -     q   2   ′       )               for                   k   1   ′       ≤     k   2   ′                   (       x   ′     -     T   L       )     /     (       T   L     -     q   1   ′       )                 for                   k   1   ′       &gt;     k   2   ′                                    (   2   )                               
 
         [0069]    yields a linearly conjugate map  
               x     n   +   1       =       f        (     x   n     )       =     {             q   1     +       k   1          x   n                 for                   x   n       &lt;   0                 -   1     +       k   2          x   n                 for                   x   n       ≥   0                       (   3   )                               
 
         [0070]    where parameters of (1) and (3) are related via  
             {               k   1     =     k   1   ′       ,       k   2     =     k   2   ′       ,       q   1     =         q   1   ′     -     T   L           T   L     -     q   2   ′                     for                   k   1   ′       ≤     k   2   ′                     k   1     =     k   2   ′       ,       k   2     =     k   1   ′       ,       q   1     =         T   L     -     q   2   ′           q   1   ′     -     T   L                     for                   k   1   ′       &gt;     k   2   ′                     (   4   )                               
 
         [0071]    Due to the linear conjugacy between (1) and (3), map (3) has entropies, Lyapunov exponent, Markov character of partitions (to be described later on), and almost all other features of (1). A reduction in the number of parameters from 5 to 3, results in a simpler analysis and better understanding of (3) than that of map (1).  
         [0072]    Parasitic Attractors  
         [0073]    In practical implementations of map (3) the maximum and minimum values of map&#39;s states are limited by saturation. This introduces regions of constant output values in map (3), as illustrated on FIG. 5, for k 1 &lt;k 2 &lt;2, being I +  and I −  a positive and a negative saturation value, respectively. The chaotic attractor is bounded to (−1, q 1 ). If the map does not intersect with the line x n+1 =x n , then there are no attracting points.  
         [0074]    When an attracting point exists, for example point p in FIG. 5, then the basin of attraction of the chaotic attractor is (−∞, U 2 ) and does not include value I +  corresponding to the positive saturation value. U 2  is the intersection point of the lines y=−1+k 2 x and y=x, and is equal to U 2 =1/(k 2 −1). Attracting point P is with basin of attraction (U 2 , +∞). As a result, power-on transient may lead to a parasitic stable point instead to the desired chaotic motion. Even when the power-on transient leads to the chaotic attractor, if f(q 1 ) is very close to U 2 , then a noise larger than U 2 −f(q 1 ) will force the map to leave the chaotic attractor and settle on the point attractor p. A parasitic point attractor will appear unless I + &lt;U 2 . On the other hand it is a mandatory requirement that I + &gt;f(q 1 ), otherwise a periodic attractor appears instead of the intended chaotic attractor as illustrated on FIG. 6.  
         [0075]    The periodic orbit of period 8 of FIG. 6 has been drawn as explained hereinbelow using map (3) with a small positive saturation value I + &lt;f(q 1 ) and with the following parameters:  
         [0076]    q 1 =1.105; k 1 =1.93; k 2 =1.8; I − =−1.054; I + =0.698;  
         [0077]    Assuming q 1  as starting value x 0 =q 1  the next value x 1  is calculated using map (3). x 1  is fixed at value I +  because I + &lt;f(q 1 ), thus the starting point of the periodic orbit of FIG. 6 is (x 0 ,I + ). The second point is (I + ,I + ) and it is obtained drawing an horizontal line from the starting point as far as the line of equation f(x)=x is crossed. The third point is (x 1 ,x 2 ) and is obtained calculating x 2  applying Eq. (3) to x 1 . The fourth point is obtained drawing an horizontal line from the third point (x 1 ,x 2 ) as far as the line of equation f(x)=x is crossed, and so forth.  
         [0078]    In the following description the term “parasitic periodic attractors” will denote both point and periodic attractors. To ensure a reliable operation of a chaos based RNG, the chaotic attractor must have a global basin of attraction. From Eq. (2) it is possible to say that, to avoid parasitic attractors, the behavior of Eq. (3) should be analyzed only in the region P={(k 1 ,k 2 ,q 1 )|1&lt;k 1 &lt;2, k 1 ≦k 2 &lt;2, k 1 −1&lt;q 1 &lt;1/(k 2 −1)} of the 3D parameter space k 1 ×k 2 ×q 1 .  
         [0079]    Generating and Markov Partitions  
         [0080]    Let us consider a binary generating partition β={C 1 ,C 2 } only, where C 1 =(q 2 ,0) and C 2 =[0,q 1 ). Therefore, it is implicitly assumed that there is no mismatch between the boundary point 0 of β and the discontinuity point 0 of the PL1D map. This assumption is justified by the practical implementation of the PL1D map and the RNG, where a single threshold circuit is used to both iterate the map, that is, to implement the discontinuity point 0 and to generate output bits, that is, to implement boundary point 0 of β. Using a single threshold circuit also implies simpler hardware.  
         [0081]    The main motivation to search for Markov partitions is presented next. There is no general way to analytically find the natural invariant density using Perron-Frobenius operator, and then to compute KS entropy or entropy for a given partition. This problem is highly relieved and analytically tractable when the chaotic information source is a Markov source.  
         [0082]    Piecewise linear maps, which are linear inside each region of the Markov partition, give rise to a Markov source. Their natural invariant density is piecewise constant, and Perron-Frobenius operator can be substituted by the transition stochastic matrix of the Markov source whose transition probabilities are:  
               P   ij     =       L        (       C   j     ⋂       f     -   1            (     C   i     )         )         L        (     C   j     )                 (   5   )                               
 
         [0083]    where L(.) denotes Lebesgue measure. It is possible to calculate analytically transition probabilities P ij  using Eq. (5), state probabilities by inverting or iterating the transition matrix, natural invariant density by dividing probabilities of each region by Lebesgue measure of the region, and structure and amount of information redundancy.  
         [0084]    In the knowledge of the inventors there is not any work showing Markov character of symbolic dynamics for other families of Markov maps other than piecewise linear maps. For other types of parametric maps, the Markov character can be easily determined by testing the generated sequence.  
         [0085]    Dependence on Parameters  
         [0086]    Smaller values for k 1  and k 2  give a larger margin against complete failure in sense of abandoning the chaotic motion. On the other hand, values for k 1  and k 2  closer to 2 give higher entropy h KS . Therefore, when designing a RNG one must reach a compromise on the slopes k 1  and k 2 . Making a proper compromise on these slopes and a proper choice of parameters for RNG purposes is possible only if the consequences on the information generation mechanism of changes in k 1 , k 2  and q 1  may be derived.  
         [0087]    In this subsection values of parameters for which β is a Markov partition for map (3) are searched. Searching and analyzing the 3D parameter region P is difficult to accomplish, so only certain 1D regions are analyzed. For these regions it is possible to derive mathematical equations for the parameters for which β is a Markov partition, and to understand the consequences on the random number generation process of the choice of values of parameters.  
         [0088]    From observed phenomena in these regions it is possible to deduce the behavior of a map in the 3D region P, thus enabling us to choose parameters in an optimal manner.  
         Region  P={ ( k   1   ,k   2   ,q   1 )|1 &lt;k   2   =k   1 &lt;2,  q   1 &lt;1} 
         [0089]    First we consider the 1D region P 1 , where the slopes are equal k 1 =k 2 =k, offsets are symmetric q 1 =1 and −1, and k denotes the common value of slopes in the two regions. Thus, Eq. (3) transforms into  
               x     n   +   1       =       f        (     x   n     )       =     {           1   +     k                   x   n                 for                   x   n       &lt;   0                 -   1     +     k                   x   n                 for                   x   n       ≥   0                       (   6   )                               
 
         [0090]    Topological and metric entropy are equal to logk, and the Lyapunov exponent is positive λ=lnk. Map (6) behaves as an information source with source entropy logk, and redundancy 1−logk in β-partitioned space.  
         [0091]    Theorem 1: β is a Markov partition of order r if and only if r is the smallest integer such that f 1   r (q 1 )=0.  
         [0092]    Theorem 2: β is a Markov partition of order r if and only if r is the smallest integer for which there is a vector of positive integers J=[J 1 ,J 2 , . . . ,J m ], J i ≦J m , i=1, . . . ,m satisfying  
           -   1     +       ∑     i   =   1       i   =   m                       J   i         =   r                         
 
         [0093]    such that k is a root of the polynomial  
                     (     -   1     )     m          k       S   m     +   1         -     2          ∑     i   =   1       i   =   m                           (     -   1     )     i          k     S   i             -   1     =   0           (   7   )                               
 
         [0094]    where S 0 =0, S i =S i−1 +J i  for i=1, . . . ,m.  
         [0095]    The set of k values that produce Markov partitions is a countably infinite set, and therefore its Lebesgue measure is 0. Even if it is practically improbable, these k values are dense in P 1 , and information generation mechanism can be analytically analyzed arbitrarily close to any point from P 1 .  
         Region  P={(k   1   ,k   2   , q   1 )|1 &lt;k   2   =k   1 &lt;2,  q   1   =k   1 −1} 
         [0096]    Next we consider map (3) in region P 2  where slopes k 1 =k 2 =k are equal in both regions, and q 1 =k−1, which implies f(−1)=−1. Then Eq. (3) transforms into  
               x     n   +   1       =       f        (     x   n     )       =     {           k   -   1   +     k                   x   n                 for                   x   n       &lt;   0                 -   1     +     k                   x   n                 for                   x   n       ≥   0                       (   8   )                               
 
         [0097]    Theorem 1 applies also for region P 2 . The following theorem defines slopes k for which β is a Markov partition.  
         [0098]    Theorem 3: β is a Markov partition of order r if and only if r is the smallest number for which there is a vector of positive integers J=[J 1 ,J 2 , . . . ,J m ], J i ≦J m , i=1, . . . ,m satisfying  
           -   1     +       ∑     i   =   1       i   =   m                       J   i         =   r                         
 
         [0099]    such that k is a root of the polynomial  
                 k     r   +   1       -       ∑     i   =   1     r                       b   i          k   i         -   1     =   0           (   9   )                               
 
         [0100]    where vector [b r , . . . ,b 1 ] consists in a sequence of J m  values −1 followed by a sequence of J m−1  values 0 followed by a sequence of J m−2  values −1 etc. and ends with a sequence of J 1 −1 values 0 if m is even or values −1 if m is odd.  
         [0101]    Redundancy Reduction Techniques  
         [0102]    As shown in previous subsection, larger k 1  and k 2  mean smaller redundancy and a better RNG, but they also mean a higher risk of appearance of periodic attractors and of breakdown of the RNG. Therefore, k 1  and k 2  must be small enough to assure chaotic behavior of (1) across all temperature and power supply fluctuations.  
         [0103]    Increased redundancy for smaller k 1  and k 2  must be lowered via processing the output bits. Redundancy in an information source can be due to two sources: difference in the probabilities of the two binary symbols; and memory of an information source.  
         [0104]    A good redundancy reduction technique must affect both sources of randomness. The two simplest redundancy reduction techniques, which can be implemented on-chip with a very simple circuitry, are bit skipping and bit counting. Hash functions might be more effective than bit skipping or counting in the sense that they provide larger reduction of redundancy for a given p. However, analysis of hash functions is incomparably more difficult than for the case of bit skipping and bit counting because an output bit of a hash function depends on many input bits. Implementing a hash function may require a complicated hardware.  
         [0105]    Using a bit skipping technique, only every p-th bit from the original binary sequence is used. For example, if the original sequence is X 0 ,X 1 ,X 2 , . . . then using a bit skipping technique in which only one bit over p bit is used will produce the sequence X 0 ,X p ,X 2p , . . . . Skipping bits reduces only the redundancy due to the memory of an information source, but it does not reduce the difference in the probabilities of the two binary symbols. When p→∞, the redundancy tends to 1−H B (P{X=0}) where P{X=0} is probability of binary symbol 0.  
         [0106]    In bit counting, bits from the original binary sequence are grouped in blocks of p bits and summed up modulo 2 to produce an output bit. For example, if the original sequence is X 0 ,X 1 ,X 2 , . . . , then bit counting with blocks of p bits will produce the sequence Y 0 ,Y p ,Y 2p , . . . , where Y ip =X ip ⊕X ip+1 ⊕. . . ⊕X ip+p−1  and ⊕ denotes summation modulo 2. For a given p, a lower limit of redundancy is 1−H B (P{X=0}), where P{X=0} is probability of binary symbol 0 in the new sequence Y 0 ,Y 1 ,Y 2 , . . . , and  
           lim     p   →   ∞                       P        {     Y   =   0     }         =     0.5   .                           
 
         [0107]    Bit counting is equivalent to the following redundancy reduction technique: from the original sequence X 0 ,X 1 ,X 2 , . . . producing a new sequence Z 0 ,Z 1 ,Z 2 , . . . via Z 0 =X 0 , Z i =Z i−1 ⊕X i  for i&gt;0, and then applying bit skipping thus yielding the sequence Z p ,Z 2p ,Z 3p , . . . . Bits from sequences Y 0 ,Y p ,Y 2p , . . . and Z p ,Z 2p ,Z 3p , . . . are related via the deterministic transformation Z p =Y 0  and Z (i+1)p =Z ip ⊕Y ip  for i&gt;0, and therefore their entropies and redundancies are identical. Which redundancy reduction technique is the best one, depends on the ease of practical implementation: they can be both implemented with a one-stage binary counter, the only difference being that the binary counter is set to 0 at the start of every block of p bits.  
         [0108]    Different from bit skipping, bit counting affects both sources of redundancy. This is the reason why bit counting is superior to bit skipping, in the sense that it is more robust to the inevitable fluctuations of the parameter values from the nominal ones, and provides lower redundancy.  
         [0109]    Both bit counting and bit skipping reduce output bit generation rate by p times, and it is necessary to find a compromise between reduction in the redundancy and reduction in the bit generation rate. Therefore, results only for moderate values of p≦6 are given. Even for p≦6 redundancies are very small, and further reduction in the bit generation rate by choosing larger p cannot be justified.  
         [0110]    Preferably, the generated sequence is tested to verify that its redundancy really assumes a desired value. It is also possible to calculate the functional dependence of the redundancy from values of parameters and choose them accordingly to generate a random sequence with a desired redundancy.  
         [0111]    Optimum Choice of Parameters  
         [0112]    When the map (3) is used as a RNG, it is desirable to be secure against appearance of parasitic attractors. When designing a RNG, from the circuit implementation one can compute the fluctuations in I +  and I −  due to temperature, power supply, and fabrication fluctuations, and then one can specify a minimum required margin L min  against appearance of parasitic attractors. A further requirement is that the bit generation rate is higher than a certain value ν b , which for a given clock frequency ν c  transforms into a requirement that p≦p max =[ν c /ν b ], where [x] denotes the largest integer smaller than or equal to x. For given L min  and p max , we define the optimum parameters as the set of parameters (k 1 ,k 2 ,q 1 ,p) opt  that minimizes redundancy ρ amongst all sets of parameters (k 1 ,k 2 ,q 1 ,p) that satisfy (k 1 ,k 2 ,q 1 )εP, p≦p max , L≧L min , that is,  
                 (       k   1     ,     k   2     ,     q   1     ,   p     )     opt     =       min         (       k   1     ,     k   2     ,     q   1       )     ∈   P     ,     p   ≤     p   max       ,     L   ≥     L   min                         ρ             (   10   )                               
 
         [0113]    Brute-force searching of optimum parameters in P is a formidable task, because optimization in the 1D region P 1  provides results that are almost as good as those obtained by optimization in the 3D region P. Instead of searching P, let us restrict our attention to 3D region P 3 ={(k 1 ,k 2 ,q 1 )k 1 ε(1.6,1.9), k 2 ε(k 1 1.9), q 1 ε(0.9,1.1)}. Very small slopes give small h β  entropy, while very large ones provide small margin L. For larger |q 1 −1|, the map becomes increasingly asymmetrical and the difference in probabilities of 0s and 1s increases.  
         [0114]    It is possible that a local minimum of a redundancy curve in P 1  is not a local minimum in P. Then a set of parameters lying very close to P 1  is a local minimum in P. This was the motivation to examine 1% and 2% neighborhoods of P 1 ,  
           P={ ( k   1   ,k   2   ,q   1 )| k   1   ≦k   2 ≦1.01 k   1 ,0.99 ≦q   1 ≦1.01} 
         [0115]    and P 1.2%  defined in a similar way to P 1.1% .  
         [0116]    The region P 3  has been divided into 115351=61×61×31 equal cubes. For a point (k 1 ,k 1 ,1) lying in P 1 , 1% neighborhood is defined as  
         {( k   1   ,k   2   ,q   1 )| k   1   ≦k   2 ≦1.01 k   1 , 0.99 ≦q   1 ≦1.01}.  
         [0117]    The 1% neighborhoods of 80 points k 1 =1.6,1.605,1.61, . . . ,1.995 have been divided into 288 equal cubes thus producing a total of 23040 cubes in P 1.1% . An analog procedure was repeated for P 2.1% . For each of the 115351+23040+23040 cubes an inner point for which β is a Markov partition of order r≦12 (12 is chosen because the execution time and the memory requirements of the computer program that computes redundancies grow exponentially with r) has been found. Then for each of these inner points redundancies of bit skipping and bit counting for 2≦p≦6 are computed.  
         [0118]    Circuit Design  
         [0119]    Parameter variations due to implementation imprecision and external influences (temperature, power supply etc.) need to be estimated. Given that such variations are slower than the iteration speed of the map, their temporal changes can be neglected and it is possible to state approximately that the parameters are constant in time, though mismatched from the nominal ones.  
         [0120]    The chaotic map (1) may be implemented in VLSI technology. FIG. 7 shows a VLSI implementation of map (1), in a standard 0.8 μm CMOS process. The implementation is a switched-current circuit based on Delgado-Restituto et al. The upper half of the circuit performs the slope multiplication and storage operation, and the lower half performs the non-linear discrimination function. The upper half is substantially constituted by an amplifier with saturation values. The amplification ratio may be set to a certain desired value by properly designing the dimensions of the first (T 11 , T 13 , T 12 ) and of the second (T 14 , T 30 , T 15 ) switched current mirror. For example, if an amplification ratio equal to 2 is desired, i.e. the slope of the piecewise linear one dimensional map is k=2, it is possible to make transistors T 11 , T 13  and T 14  equal, and transistor T 30  with an aspect ratio W/L double than the aspect ratio of T 14 . In this way the first switched current mirror T 11 , T 13 , T 12  acts as a not amplifying input stage, while the second switched current mirror T 14 , T 30 , T 15  amplifies the input current I on  of the desired factor.  
         [0121]    The discriminator operates in one of two modes: for I 1 &gt;0 T 18 , T 19  are on and T 20 , T 29  conduct so that through T 17  flows a current I out =I 1 −I a . For I 1 21 0 T 8 , T 9  are on and T 10 , T 2  conduct so that through T 4  flows a current I out =I 1 +I a . The discriminator may be conveniently realized using inverting stages (T 8 , T 18 ; T 9  T 19 ; T 28 , T 29 ; T 10 , T 20 ) as depicted in the mentioned figure. Substantially, it is a circuit that compares the current I 1  with the threshold value, which in this particular case is T L =0, and produces a current I out  by adding to or subtracting from a constant current I a  the current I 1 , depending on the result of this comparison.  
         [0122]    The voltage on node Q output by the inverting stage T 9 , T 19  may assume only two possible logic values, depending on the result of the comparison. Such logic values constitute the desired random bit sequence.  
         [0123]    The figure shows the setup for open-loop simulation where the output current is terminated in a load stage (in the dotted rectangle) T 25 , T 21 , biased by T 5 , equivalent to the input stage T 22  and T 11 . During closed-loop operation, the current I out  does not circulate anymore in the load stage T 25  and T 21  but it circulates through the input stage T 22  and T 11  instead of current I in , and two non-overlapping clock signals Φ 1  and Φ 2  drive the switches T 12  and T 15 , respectively. As compared to Delgado-Restituto et al., several improvements have been introduced. The transistors T 22  . . . T 25  have been added to enable an operating voltage at I 1 , close to V dd /2. This will ensure the transistors which transmit signal current are in their linear regions, as well as enable a symmetric switching characteristic of the inverters T 8 -T 18 , T 9 -T 19 . The capacitors C 1 , C 2  (preferably realized by transistor gates), and the transistors T 26  and T 27  have been added to reduce the effects of clock feed-through.  
         [0124]    Clock feed-through is the undesirable effect of the clock signal being injected into the signal path through the gate-source capacitance of the switches T 12 , T 15 , and it will manifest itself as a nonlinear offset in the map function. If not compensated, clock feed-through destroys the linearity of the two regions of Eq. (1), and renders our analysis invalid, e.g. the chosen parameters are not optimal anymore.  
         [0125]    Capacitors C 1  and C 2  will cause the voltage drop on the gates of T 13  and T 15  to decrease as charge is injected into a larger capacitance. Obviously, the price paid is a reduction of the speed of the circuit since settling time is increased. Effectively, we have traded reduced clock speed for reduced clock feed-through.  
         [0126]    Transistors T 26  and T 27  further decrease clock feed-through by means of charge cancellation, that is, by using the inverted clock signals, injecting a charge of opposite sign into the gates of T 13  and T 15 . The clock feed-through is, however, non-linear so that the cancellation cannot be perfect. As a third measure to decrease clock feed-through, the clock signal swing is reduced to 3V (being the supply voltage V dd =5V).  
         [0127]    Resistor R 1  determines current I a  which corresponds to q′ 1  and q′ 2  from (1), and resistor R 2  determines current I q , which in turn determines I out  in saturation. R 1  and R 2  may be external components. The circuit was designed for a nominal threshold value of T L =0, and a nominal slope of 1.82. This corresponds to one of the minimums of the redundancy curve for p=5. The slope is small enough to provide a good margin L=19.6%.  
         [0128]    Circuit Analysis  
         [0129]    With the circuit extracted from layout, the design was simulated open-loop in SPICE across 4.5 . . . 5.5V power supply range and temperatures −25° C. . . . +75° C., at typical mean process conditions. The proprietary charge based transistor model from Austria Mikro Systems (AMS) (Level 15) was used. I q  was selected to 16 μA and I a  to 12 μA. For each pair of temperature and power supply, redundancies for bit counting and bit skipping with p=2, . . . ,6 were computed.  
         [0130]    Maximum redundancy over all temperatures and power supplies is minimum for p=5 with a value of 0.4%. No parasitic attractors were detected. This was found to be true also far different process corners except for worst case speed process parameters. A different setting of I q  and I a , yielding no parasitic attractors could, however, be found also for this process corner. The map, obtained from circuit simulation after layout is shown in FIG. 8 (27° C.+5V). The slope is 1.82 at 5V and 27° C. Simulations also indicated a maximum clock feed-through in I out  of 0.3 μA across its entire range. On a step input from −9 μA to +9 μA in I in , I out  settles to within 0.1 μA in 140 nsec. Maximum operating clock frequency is estimated to 5 MHz, which together with bit counting with p=5 yields a total RNG bit rate of 1 Mbit/sec. This is substantially higher than the output bit rate of the RNGs available on the market: from 7600 bits/sec to 76000 bits/sec. Furthermore, our RNG requires no software postprocessing as several prior art RNGs.  
         [0131]    The following table summarizes the implementation results for VLSI realization of PL1D map in switched current technique, as obtained by post-layout SPICE simulations.  
                                                       Technology   0.8 μm CMOS           Silicon area   51 × 46 μm           Nominal slope   1.82           Max. Hysteresis   0.09 μA           Current   200 pA           discrimination           Max. clock feed-   0.3 μA           through           Max. clock   5 MHz           frequency                      
 
         [0132]    To construct a RNG based on chaos, we have exploited the double nature of chaos: deterministic in microscopic space and by its defining equations, and random in macroscopic space. We can analytically find probability of generation of any binary sequence and the probabilities of passing or failing statistical tests for given significance levels. Therefore, statistical tests are useless for our chaotic RNG, and for any other chaotic RNG whose information generation mechanism is completely understood and analyzed. Our chaos based RNG is mathematically proven to act as an information source, its entropy and redundancy can be analytically computed, it is not prone to silent breakdowns, its optimum parameters can be found, and it can be efficiently implemented on-chip.