1). Field of the Invention
The present invention relates to a random number derivation method for deriving physical random numbers from a random number source element, and a random number generator utilizing the method.
2). Discussion of Related Art
As one technique for deriving physical random numbers based on a natural phenomenon, there has been known a technique using a resistor, a semiconductor such as a diode, or a conductor, as a thermal noise source element. Thermal noises occurring in the thermal noise source element are random in both occurrence frequency and amplitude, and therefore physical random numbers can be derived based on the thermal noises. Various random number generators utilizing such a thermal noise source element are disclosed in a great number of publications. The random number generators are required to improve uniformity of the occurrence frequency of each value to be obtained (quality level as random numbers) and produce random number at a higher speed.
The most typical technique for generating physical random numbers using a thermal noise source element is designed to amplify and sample a thermal noise output from a thermal-noise source element at a certain moment, and compare the sampled value with a given threshold to derive a random number. Specifically, thermal noises output from a thermal noise source element and amplified are sampled in certain cycles. Then, according to a predetermined rule that “1” will be assigned to the sampled value if it is greater than a given threshold, and “0” will be assigned to the sampled value if it is not greater than the threshold, physical random numbers can be derived in a digital manner.
As another technique for generating physical random numbers using a thermal noise source element, there has been known a technique designed to measure a time interval between a time point when a randomly-occurring thermal noise exceeds a given threshold and a subsequent time point when another randomly-occurring thermal noise exceeds the threshold, and derive a random number value directly from the measured temporal value. One example of a random number generator based on this technique is described in Japanese Patent Laid-Open Publication No. 2001-134422.
This random number generator is provided with a first circuit for amplifying a thermal noise output from a thermal noise source element and generating a rectangular pulse which rises at the moment when a waveform of the pulse exceeds a given threshold, a second circuit for generating clocks having a frequency far greater than that of the pulse, and a counter for counting the clocks, and designed to count the clocks generated during the period from the occurrence of one pulse until the occurrence of a subsequent pulse, and derive a random number from the counted value. In this technique, due to a limited number of bits in a counter (given that the number of bits is “n”), the counter is reset to restart counting from 1, every time it counts 2n times, and consequently an actually derivable number of random number values is restricted to 2n. Even so, in the above technique, n bits of random numbers are generated per one pulse from a thermal noise, and therefore random numbers can be generated at a higher speed as compared with the technique designed to momentarily sample a thermal noise.
In the above technique designed to measure a time interval between pulses, if the number of pulses to be derived per unit time is increased to produce random numbers at a higher speed, the pulses are more likely to occur in temporally adjacent relation to each other. In this case, due to frequency characteristics of the amplifying circuit and other factor, the temporally adjacent pulses are liable to become indistinguishable from each other. Thus, the occurrence frequency of a relatively small value before completion of one cycle of a counting operation in the counter is slightly lowered to affect uniformity of the occurrence frequency of a random number.
In view of the above technical background, it is an object of the present invention to derive random numbers at a higher speed than ever before without spoiling the uniformity of the occurrence frequency of each random number.
The present invention provides a random number derivation method which comprises generating at least two or more mutually-independent random pulse sequences, measuring a time interval between two pulses each belonging, respectively, to a different one of the random pulse sequences, and outputting the measured value as a random number. In this method, the measurement of the time interval may include allowing one of the two pulses which is temporally precedingly generated and the other pulse which is subsequently generated, to be used, respectively, as a start pulse and a stop pulse for a counter, and allowing the counter to count the number of count pulses having a frequency greater than that of the random pulse sequences.
The present invention also provides a random number generator using the above method. For example, the random number generator may comprise at least two random pulse generating means each adapted to generate an independent random pulse sequence, and time measuring means for measuring a time interval between respective pulses from one of the random pulse generating means and from one of the remaining random pulse generating means. The measured value in the time measuring means is outputted as a random number.
More specifically, the random number generator may comprise a number N of 1st to N-th random pulse generating means each adapted to generate an independent random pulse sequence (wherein N is an integer number of two or more), and time measuring means adapted to measure a number (N−1) of time intervals between respective pulses from the 1st random pulse generating means and from the remaining random pulse generating means, and a number (N−1) of time intervals between respective pulses from the 2nd random pulse generating means and from the remaining random pulse generating means, and perform remaining measurements in the same manner until a number (N−1) of time intervals between respective pulses from the N-th random pulse generating means and from the remaining random pulse generating means are measured. Each of the measured values in the time measuring means is outputted as a random number.
In the above random number generator, the time measuring means may include count-pulse generating means for generating count pulses having a frequency greater than that of the random pulse sequences, and a counter. The time measuring means may be adapted to receive, from the counter, a temporally preceding pulse and a temporally subsequent pulse as, respectively, a start pulse and a stop pulse, respectively, for the time interval to be measured, and count the number of the count pulses generated between the start pulse and the stop pulse.
In the present invention, a time interval between respective pulses from one of the plurality of random pulse generating means, i.e., in one of the mutually-independent random pulse sequences, and from one of the remaining random pulse generating means, is measured. Thus, even if the pulses occur in temporally adjacent relation to each other, they can be clearly distinguished from each other. This makes it possible to prevent the occurrence frequency of a relatively small value from being lowered so as to maintain uniformity of the occurrence frequency of a random number.
Further, in the present invention, the N mutually-independent random pulse sequences are provided to allow mutually-independent random numbers to be obtained in a number of N (N−1), i.e., a number approximately proportional to a square value of N. Thus, even if a frequency in each of the random pulse sequences is not so high, a high-speed random number generator can be established by increasing the number of random pulse sequences.
With reference to the drawings, an embodiment of the present invention will now be described.
The present invention is based on a fundamental conception of: using one pulse included in a first pulse sequence of random pulses and one pulse included in a second pulse sequence of random pulses independent of the first pulse sequence, respectively, as a start pulse and a stop pulse; measuring a time interval between the start pulse and the stop pulse; and outputting the measured value. The pulses temporally occur in a random manner, and therefore the obtained sequence of numerical values becomes random numbers. Specifically, in
Instead of the above technique in
When random numbers are generated based on the technique illustrated in
The following description will describe at what rate the “dead pulse” unusable for the random number generation occurs in a pulse sequence. On the premise of two mutually-independent pulse sequences being provided, the pulse sequences are adjusted such that pulses in each of the pulse sequences occur in a Poisson arrival pattern, and respective average time intervals between successively-occurring pulses in the pulse sequences are equal to each other. Given that the average time interval is to, an interval width to be determined by two adjacent pulses on each of the pulse sequences conforms to an exponential distribution, and a probability distribution function thereof is expressed by the following formula:
The number of pulses occurring on the other pulse sequence during a time interval t conforms to a Poisson distribution. The probability that a number n of pluses occur within the time interval t is expressed by the following formula:
Thus, given that the probability that a number n of pulses on one of the pulse sequences occur between one pulse pair on the other pulse sequence is D (n), the following formula is satisfied:
In this technique, when a pulse on one of the pulse sequences does not occur between any of the pulse pairs on the other pulse sequence, it does not contribute to the random number generation. In this case, n=0, and thus D (0)=0.5. In other words, the “dead pulse” occurs at a frequency of ½, and the number of pulses contributing to the random number generation is one-half of that of all the pulses.
When in this technique based on the present invention the random pulse generating device and a peripheral circuit are adjusted such that a number M of pulses occur per second on average in each of the pulse sequences R1 to RN, the number of random numbers obtainable per second will be MN (N−1)/2. By comparison, in the old-type technique provided with a number N of pulse sequences in the same way, the number of simultaneously-derivable random numbers is MN.
When N=2, the number of simultaneously-derivable random numbers in the old-type technique is 2M, which is greater than M in the technique based on the present invention. When N=3, both of the techniques provides a number 3M of random numbers. However, when N=4 or more, the present technique provides a larger number of random numbers than that in the old-type technique. Then, as the value of N becomes larger, the number of derivable random numbers in the present technique will sharply increase as compared with the old-type technique. For example, given that N=10, while the number of derivable random numbers in the old-type technique is 10M, the number of derivable random numbers in the present technique is 45M. Given that N=100, while the number in the old-type technique is 100M, the number in the present technique drastically increases to 4950M.
Heretofore, a strategy for generating random numbers at a higher speed has been determined by primarily focusing on increasing the number of random numbers derivable from a random number source element per unit time, and certain positive results have been achieved. This approach of increasing a speed in the random number source element itself will reach a limit at some future time due to technical and cost barriers. In contrast, according to the present technique, the number of random number source elements is increased even if each of the random number source elements has a not-so-high speed, to allow a speed of deriving random numbers to be drastically increased as a whole.
A first embodiment of the present invention will be described below.
In the circuit illustrated in
A block indicated by the reference code 12 is an amplifier for amplifying a thermal noise occurring in the thermal noise source element 10, and a block indicated by the reference code 14 is an comparator for comparing an amplified thermal noise signal with a predetermined threshold and outputting the comparison result in the form of a pulse P. Thus, the output pulse P from the comparator serves as a random pulse based on the randomly-occurring thermal noise.
A random number generator in
An output signal Pa from the random pulse generating device 5A is a pulse sequence of random pulses, and is supplied to a counter Ca as a reset signal (start signal) and to each of three registers Rba, Rca, Rda as a load signal (stop signal). In the same manner, each of the random pulse generating devices 5B, 5C, 5D is operable to supply a corresponding one of their random pulse sequences Pb, Pc, Pd to a corresponding one of three sets of one counter and three registers. The random pulse sequences Pb, Pc, Pd output, respectively, from the random pulse generating devices 5A, 5B, 5C, 5D are independent from each other as well as the random pulse generating devices 5A, 5B, 5C, 5D.
The counter Ca is operable to generate a count pulse (which is required to have a frequency greater than that of at least the random pulses) at a high speed and supply the count pulse to each of the registers Rab, Rac, Rad connected, respectively, to the random pulse generating devices 5B, 5C, 5D. The register Rba is operable to receive a count pulse from a counter Cb connected to the random pulse generating device 5B. The register Rca is operable to receive a count pulse from a counter Cc connected to the random pulse generating device 5C. The register Rda is operable to receive a count pulse from a counter Cd connected to the random pulse generating device 5D.
Each of the counters Ca, Cb, Cc, Cd is operable, in response to receiving the reset signal from a corresponding one of the random pulse generating devices, to start supplying the count pulse. Each of the registers is operable, in response to receiving the load signal from a corresponding one of the random pulse generating devices, to store a count value of the count pulses supplied thereto. This count value stored in each of the counter serves as a random number value.
The random number generator in
Number | Date | Country | Kind |
---|---|---|---|
2004-153233 | May 2004 | JP | national |
This is a continuation of prior International Patent Application No. PCT/JP2005/009426, filed on May 24, 2005, which claims priority from Japanese Patent Application No. 2004-153233, filed on May 24, 2004, each of which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
3124753 | Gieseler | Mar 1964 | A |
3612845 | Lawlor | Oct 1971 | A |
6542014 | Saito | Apr 2003 | B1 |
6763363 | Driscoll | Jul 2004 | B1 |
7080106 | Ikeda et al. | Jul 2006 | B2 |
7266575 | Ikeda | Sep 2007 | B2 |
20030018674 | Figotin et al. | Jan 2003 | A1 |
20030101205 | Weimerskirch | May 2003 | A1 |
20050198091 | Saito | Sep 2005 | A1 |
20070156798 | Saito | Jul 2007 | A1 |
Number | Date | Country |
---|---|---|
1 241 565 | Sep 2002 | EP |
1 544 726 | Jun 2005 | EP |
1 755 033 | Feb 2007 | EP |
841 287 | Jul 1960 | GB |
51-78159 | Jul 1976 | JP |
51-128239 | Nov 1976 | JP |
57-45645 | Mar 1982 | JP |
HEI 11-296348 | Oct 1999 | JP |
2000-276329 | Oct 2000 | JP |
2000-305753 | Nov 2000 | JP |
2001-134422 | May 2001 | JP |
2002-323971 | Nov 2002 | JP |
2003-084970 | Mar 2003 | JP |
2004-088320 | Mar 2004 | JP |
WO 2004017191 | Feb 2004 | WO |
WO2005114386 | Dec 2005 | WO |
Number | Date | Country | |
---|---|---|---|
20070156798 A1 | Jul 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2005/009426 | May 2005 | US |
Child | 11604125 | US |