WO2004031941A1 - 物理乱数の一様化手法と物理乱数発生装置 - Google Patents

物理乱数の一様化手法と物理乱数発生装置 Download PDF

Info

Publication number
WO2004031941A1
WO2004031941A1 PCT/JP2003/012213 JP0312213W WO2004031941A1 WO 2004031941 A1 WO2004031941 A1 WO 2004031941A1 JP 0312213 W JP0312213 W JP 0312213W WO 2004031941 A1 WO2004031941 A1 WO 2004031941A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
physical random
output
physical
circuit
Prior art date
Application number
PCT/JP2003/012213
Other languages
English (en)
French (fr)
Inventor
Hiroyasu Yamamoto
Ananda Vithanage
Takakuni Shimizu
Kaoru Fujita
Hatsumi Nakano
Takaaki Shiga
Ryuji Soga
Masayoshi Katono
Toshiyuki Watanabe
Misako Koibuchi
Original Assignee
Fdk Corporation
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
Priority claimed from JP2002285168A external-priority patent/JP2004118799A/ja
Priority claimed from JP2003101085A external-priority patent/JP2004310314A/ja
Priority claimed from JP2003294101A external-priority patent/JP4107196B2/ja
Application filed by Fdk Corporation filed Critical Fdk Corporation
Priority to US10/528,910 priority Critical patent/US7461111B2/en
Publication of WO2004031941A1 publication Critical patent/WO2004031941A1/ja

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
    • 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 physical random number uniforming method capable of easily equalizing a biased physical random number.
  • the present invention relates to a physical random number generator suitable for use in various applications.
  • Specific applications include security, encryption, authentication, locking, encrypted communication, smart cards (eg, electronic money management, credit cards, consultation tickets), home security, force security, and keyless entry.
  • smart cards eg, electronic money management, credit cards, consultation tickets
  • home security force security
  • keyless entry e.g.
  • Probability, lottery, game, amusement eg, pachinko, pachislot
  • simulation eg, weather, scientific calculation, stock price Monte Carlo
  • graphics eg, CG, automatic composition
  • control measurement, FA And mouth pot control (artificial intelligence).
  • random numbers include pseudo-random numbers generated deterministically by calculation and physical random numbers generated using physical phenomena in the natural world. Since the latter (physical random number) is generated based on a truly random phenomenon, it has the qualities of becoming an ideal random number, but when actually generating a physical random number, various error factors are involved in the process. Therefore, ideal random numbers are not always output, and there is a possibility that biased random numbers may be output. Factors of this error include the clock width used as a reference for digitization, and the use of extra noise when using noise.
  • the Neumann collector requires a 2-bit random number to output a 1-bit random number, and may not output a random number depending on the combination of the two bits. There was a drawback that would be.
  • the underlying physical random number can be extracted from the output, so that the bias of the random number is known to others, and there is a disadvantage that security is lacking.
  • the quality of physical random numbers may vary depending on the usage environment, and it is useful for users to confirm whether the random numbers generated by these physical random number generators can be used as true random numbers. That is what.
  • a dedicated measuring device must be constructed to perform random number verification, and ordinary users of physical random number generators cannot accept such extra costly and time-consuming work.
  • the random number test deals with a large amount of data, a large-capacity storage device is required to store the data, and the calculation process for the test also takes time.
  • a phase adjusting unit including two delay selectors and the like is provided as disclosed in Japanese Patent Application Laid-Open No. 2003-29964.
  • a device having a physical random number generator composed of a flip * flop and a feed pack circuit is known.
  • the size of the phase adjustment unit and, consequently, the size of the physical random number generator increases. Not only did the occupied area increase, but also the power consumption increased.
  • the physical random number generator is mixed with many functions such as CPU (Central Processing Unit), ROM (Read Only Memory), RAM (Read / Write Memory) and IC (Integrated Circuit) It is strongly desired to reduce the occupied area of the physical random number generator as much as possible. Disclosure of the invention
  • an object of the present invention is to provide a method for uniformizing physical random numbers that can maintain the speed of generating random numbers and also ensure security.
  • Another object of the present invention is that the physical random number generator alone has a high random number utilization efficiency, and it is easy to assemble a plurality of physical random number ICs to generate random numbers at high speed, and to further improve the quality of random numbers.
  • An object of the present invention is to provide a physical random number generator that can be easily confirmed and used.
  • Still another object of the present invention is to provide a physical random number generator which occupies a small area and consumes less power, and a physical random number generator incorporating the physical random number generator.
  • the invention according to claim 1 is that a plurality of physical random numbers are input to and held in a random number holding device (200), and a part of the physical random numbers held in the random number holding device is selected by a selector.
  • This is a method for equalizing physical random numbers, wherein random numbers are randomly selected from the rest based on the address and output.
  • an AND circuit is provided instead of the selector. This is a method for uniformizing physical random numbers, which randomly selects random numbers held in a random number holding device and outputs an exclusive OR of them.
  • the invention according to claim 3 of the present invention is the invention according to claim 1, wherein an exclusive OR circuit that receives the output of one selector and a physical random number is provided, and the output is used as an input of a random number holding device (200). This is a method for uniformizing physical random numbers.
  • the invention according to claim 4 of the present invention is characterized in that the operation of any one of claims 1 to 3 is repeated for two or more cycles to uniform the physical random numbers in multiple stages. It is a generalization technique.
  • the invention according to claim 5 of the present invention is characterized in that a shift register (200) is used as a random number holding device, and the physical random number according to any one of claims 1 to 4 is characterized in that It is a modalization technique.
  • an invention according to claim 6 of the present invention is a physical random number generator having a physical random number generator, wherein the physical random number generator generates a serial random number in accordance with a reference clock signal.
  • a serial Z-parallel converter for converting a serial random number into a parallel random number; a plurality of registers capable of holding the parallel random number; each time a parallel random number is generated by the serial-parallel converter.
  • the parallel random number is sequentially stored in the register 1, and the parallel random number is read from the register in accordance with the read clock signal and output, and the parallel random number is shifted from the other register 1 to the register whose reading has been completed.
  • a control circuit for sequentially updating the contents.
  • the read clock is input separately from the reference clock.
  • the physical random number generator determines an register to hold a parallel random number among a plurality of registers, and outputs a write address to the up / down counter.
  • a parallel random number in the serial / parallel conversion unit is sequentially held from a register at a later stage to a register at a preceding stage based on a signal, and a parallel random number is stored from a last stage of the register in response to a read clock signal.
  • a control circuit that sequentially shifts the parallel random number in each of the registers preceding the register to the subsequent stage.
  • the physical random number generator includes a total number counter that counts a total number of serial random numbers generated by the serial physical random number generator, and the total number counter counts.
  • the total number of serial random numbers reaches a predetermined number of bits, it is provided with a random number verification circuit that verifies the uniformity based on these serial random numbers.
  • the random number verifying method of the random number verifying circuit the number of occurrences of a random number value “0” or “1” is counted and compared with a specified value. It is configured by employing a random number verification method for verifying the uniformity of random numbers. Further, the invention according to claim 10 of the present invention is the random number verification method of the random number verification circuit, wherein one random number value is formed by four bits and calculated based on the frequency of occurrence of each random number value. It is configured using a random number verification method that verifies the uniformity of random numbers by comparing the square value with a specified value.
  • the invention according to claim 11 of the present invention is the random number verification method of the random number verification circuit, wherein the number of occurrences' is counted for each run length, and these are compared with a specified value to obtain a random number. It is configured using a random number verification method for verifying uniformity.
  • the invention according to claim 12 of the present invention is characterized in that, as a random number verification method of the random number verification circuit, the length of the longest run appearing in a random number having a predetermined number of bits is compared with a specified value. It is configured by employing a random number verification method for verifying the uniformity of random numbers.
  • the invention according to claim 13 of the present invention includes a chip select function, an output enable function, and terminals corresponding to the chip enable function and the output enable function, and the buffer function of the output unit is configured to have three states.
  • the invention according to claim 14 of the present invention a plurality of the physical random number generators are prepared, and one of the physical random number generators is selected based on a select signal of a selector to select a random number or a random number. It is configured to output random number verification data.
  • the invention according to claim 15 includes an integrating circuit for integrating a clock signal with a resistor and a capacitor to output an integrated waveform, a noise source, and amplifying noise of the noise source.
  • An amplifier that outputs a noise signal, a mixer that mixes the integrated waveform and the noise signal, and two edge detection circuits that detect the first edge of jitter generated based on the output waveform of the mixer.
  • a phase adjuster consisting of a selector and an up / down counter is provided, so that "0" or "1" output from the flip-flop converges to 50% each.
  • a second selector and a third selector are provided in front of the integration circuits, respectively.
  • a physical random number provided with a polarity switching circuit for switching the polarity of the input between the first selector, the second selector, and the third selector by a top pit of a step-up / down counter. It is a dispatcher.
  • the invention according to claim 16 of the present invention includes one integration circuit that integrates a clock signal with a resistor and a capacitor and outputs an integration waveform, and includes a noise source and a noise of the noise source.
  • An amplifier that amplifies and outputs a noise signal; a mixer that mixes the integrated waveform and the noise signal; and an edge detection circuit that detects a first edge of jitter generated based on an output waveform of the mixer.
  • a physical random number generator having two flip-flops each of which outputs “0” or “1” based on a phase difference between output signals of the edge detection circuits, wherein an input input to the flip-flop is A variable delay consisting of a delay for adjusting the signal phase and a selector is provided before or after each of the edge detection circuits, and is output from the flip-flop.
  • a physical random number generator characterized in that a feed-pack circuit for feeding back the output of the flip-flop to the variable delay is provided so that "0" or "1” converge to 50% each. .
  • a FET field effect transistor
  • FIG. 1A and 1B are circuit diagrams showing two examples of a random number equalizing circuit to which the physical random number equalizing method according to the present invention is applied.
  • FIGS. 2A and 2B are circuit diagrams showing another two examples of the random number equalization circuit to which the physical random number equalization method according to the present invention is applied.
  • 3A and 3B are circuit diagrams showing still another two examples of the random number equalization circuit to which the physical random number equalization method according to the present invention is applied.
  • FIG. 4 is a circuit diagram showing a first embodiment of a physical random number generator according to the present invention.
  • FIG. 5 is a circuit diagram showing details of a physical random number generator of the physical random number generator shown in FIG.
  • FIG. 6 is a waveform chart showing output waveforms of various parts of the physical random number generator shown in FIG.
  • FIG. 7 is a waveform chart showing output waveforms of various parts of the physical random number generator shown in FIG.
  • FIG. 8 is a circuit diagram of a part related to MonobitTest of the random number verification circuit of the physical random number generator shown in FIG.
  • Fig. 9 is a circuit diagram of the part related to PokerTest of the random number verification circuit of the physical random number generator shown in Fig. 4.
  • FIG. 10 is a circuit diagram of a part related to RunsTest of the random number verification circuit of the physical random number generator shown in FIG.
  • FIG. 11 is a circuit diagram of a part related to RmisTes U of the random number verification circuit of the physical random number generator shown in FIG.
  • FIG. 12 is a circuit diagram of a portion related to LongRunsTest of the random number verification circuit of the physical random number generator shown in FIG.
  • FIG. 13 is a circuit diagram showing a second embodiment of the physical random number generator according to the present invention.
  • FIG. 14 is a circuit diagram showing a third embodiment of the physical random number generator according to the present invention.
  • FIG. 15 is a waveform chart showing output waveforms of respective units of the physical random number generator shown in FIG.
  • FIG. 16 is a circuit diagram showing another embodiment of the physical random number generator according to the present invention.
  • FIG. 17 is a diagram showing details of an edge detection circuit of the physical random number generator shown in FIG.
  • FIG. 18 is a diagram showing operation waveforms of the physical random number generator shown in FIG.
  • FIG. 19 is a circuit diagram showing still another embodiment of the physical random number generator according to the present invention.
  • FIG. 20 is a circuit diagram showing another example of the integration circuit.
  • FIG. 21 is a diagram showing operation waveforms of a physical random number generator using the integration circuit shown in FIG.
  • FIG. 22 is a diagram showing still another example of the integration circuit.
  • FIG. 23 is a diagram showing an operation waveform of a physical random number generator using the integration circuit shown in FIG. BEST MODE FOR CARRYING OUT THE INVENTION
  • the random number equalization circuit 100 shown in FIG. 1A includes a shift register 200 and a selector 300, and a binary terminal is provided at a data terminal D of the shift register 200.
  • Random numbers (“0” or “1”) are sequentially input, and each time the reference pulse signal input to the clock terminal CLK of the shift register 200 rises, these binary random numbers are output in order Q 00 I am being shifted to Q134.
  • the 128-bit random numbers of the outputs Q 0 0 to Q 127 of the shift register 200 are input to the data terminals DO 0 to D 127 of the selector 3, respectively, and the shift register 200
  • the random numbers of 7 pits Q128 to Q1334 are input to the addresses AD0 to AD6 of the selector 300, respectively.
  • the selector 300 sets one bit from the random number of 128 pits input to the data terminals D0 0 to D127 according to the 7-bit address value input to the addresses AD0 to AD6. Is selected and output from the output terminal OUT. For example, when “1”, “0”, “0”, “0”, “0”, “0”, and “0” are input to addresses AD0 to AD6, the random number input to data terminal DO0 is output. Output from terminal OUT. Also, “1”, “0”, “1” and “0” are assigned to addresses AD 0 to AD 6, respectively.
  • the random number input to data terminal D04 is output from output terminal OUT.
  • the binary random number sequentially input to the data terminal D of the shift register 200 is selected as a part of itself as an address and randomly selected, so that even if the binary random number has a bias, However, the randomized signal is equalized by the randomizing circuit 1 and output.
  • it does not require a multiple-bit random number to output a 1-bit random number, and there is no case where a random number is not output, thus maintaining the random number generation speed.
  • the bias of the random numbers is known to others, thus ensuring security.
  • the random number equalization circuit 100 shown in FIG. 1B reduces the number of bits for selecting a random number output from the shift register 200 to 6 bits and an exclusive OR (XOR) circuit.
  • XOR exclusive OR
  • the random number equalizing circuit 1 shown in FIG. 1B includes a shift register 200 and a selector 300, and the output of the selector 300 and the binary random number (“0” or The output of the exclusive-OR circuit having “1”) as the input is sequentially input to the data terminal D of the shift register 200, and the reference pulse signal input to the clock terminal CLK of the shift register 200 is Each time it rises, it is sequentially shifted to outputs Q 00 to Q 69.
  • the 64 bits random number of the output Q 0 0 to Q 63 of the shift register 200 are input to the data terminals DO 0 to D 63 of the selector 300, respectively, and the output Q 64 of the shift register 2 is output.
  • the 6-bit random numbers of Q69 are input to the addresses AD0 to AD5 of the selector 300, respectively.
  • the selector 300 selects one pit from the random number of 64 bits input to the data terminals D0 0 to D63 according to the address value of the 6 pits input to the addresses ADO to AD5. And output from the output terminal OUT.
  • the binary random number sequentially input to the data terminal D of the shift register 200 selects a part of itself as an address and randomly selects itself, so that even if this binary random number has a bias, This means that the random number is equalized by the random number equalizing circuit 100 and is output, so that it is possible to maintain the random number generation speed and at the same time ensure security.
  • the random number equalizing circuit 1 shown in FIG. 2A has the logic that the number of pits for selecting the random number output from the shift register 200 is increased to 15 bits, and that the same operation as the selector 300 is performed. This is the same as the random number equalization circuit 1 shown in FIG. 1A, except that a combination of a product (AND) circuit and an exclusive OR (XOR) circuit is used instead. That is, the random number equalizing circuit 1 shown in FIG. 2A includes a shift register 200, and a binary random number (“0” or “1 J) is sequentially input to a data terminal D of the shift register 200.
  • the binary random number sequentially input to the data terminal D of the shift register 200 is divided into two sets of the same number of pits (15 bits) in the shift register 200, and then exclusive-coupled with the AND circuit. Since the arithmetic operation is performed randomly by the OR circuit, even if the binary random number has a bias, the binary random number is equalized and output by the random number equalizing circuit 1. Moreover, unlike the conventional Neumann collector, it is not necessary to output random numbers of multiple pits to output random numbers of one pit, and there is no case to output random numbers, so that the speed of generating random numbers can be maintained. . Also, unlike the conventional random number synthesis method, there is no possibility that the bias of the random number is known to others, so that security can be ensured.
  • the random number equalization circuit 100 shown in FIG. 2B has reduced the number of bits for selecting a random number output from the shift register 200 to 7 bits and added an exclusive OR (XOR) 0 path. Except for this, it is the same as the random number equalizing circuit 1 shown in FIG. 2A. That is, the random number equalization circuit 1 shown in FIG. 2B includes a shift register 200. A binary random number (“0" or "1") is sequentially input to the data terminal D of the shift register 200, and each time the reference pulse signal input to the clock terminal CLK of the shift register 200 rises. These binary random numbers are sequentially shifted to outputs Q 00 to Q 14.
  • the binary random number sequentially input to the data terminal D of the shift register 200 is divided into two sets of the same number of pits (7 bits) in the shift register 200, and then the logical product circuit Since the binary OR is calculated randomly by the exclusive OR circuit, even if this binary random number has a bias, it is output uniformly by the random number equalizing circuit 100, and the random number is output. While maintaining the generation speed, security can be ensured.
  • the shift register 200 is used as a random number holding device that holds a plurality of physical random numbers has been described.
  • a random number holding device other than the shift register 200 for example, a flip-flop
  • the connection method of the random number equalizing circuit 100 may be a serial connection as shown in FIG. 3A or a parallel connection as shown in FIG. 3B.
  • the physical random number input to the random number holding device is output evenly even if it has a bias, and the random number is not output. Since the random number bias does not become known to others, it is possible to provide a method for uniformizing physical random numbers that can maintain the speed of random number generation and ensure security.
  • the physical random number generator 91 includes a physical random number generator 1, a random number verification circuit 21, a control circuit 94, a counter 95, a first selector 96, and a second selector.
  • the physical random number generator 1 has a serial physical random number generator 2, a counter 3, a shift register 14, and a plurality (m in Fig. 5) of registers. 5, Control circuit 6, Up-Z down counter 7, Selector 8, Two delay circuits 9 on the reference clock side, and two delay circuits on the read clock side
  • the random number verification circuit 21 has four types of test methods (Monobi tTest, PokerTest, RunsTest and LongRunsTest). That is, as shown in FIG. 8, the portion related to the MonetbitTest is composed of a first counter 23, a second counter is 24, a register 25, a control circuit 26, and a comparator 27. As shown in Fig. 9, the part related to PokerTest is the first counter 33, shift register 34, one decoder 35, multiple (16 in Fig. 9) counters 36, control circuit. 37, selector one 38, multiplier 39, adder 40, register 41 and comparator 42.
  • the part related to RunsTest is further divided into a case where the random number o output is "1" and a case where the random number output is "0".
  • the former is the first counter 15 3 It consists of a unit 54, a data retainer 55, a second counter 56, a control circuit 57, a decoder 58, six counters 59, and six comparators 60.
  • the configuration is the same as that of the physical random number generator 1, except that the output is inverted by providing an impeller 5 on the output line from the serial physical random number generator 2 to the decoder 58. Have.
  • the parts related to LongRunTest are as shown in Fig. 12, the first counter 73, the comparator 74, the data holder 75, the control circuit 76, the second counter 77, the first comparator 78, a register 79 and a second comparator 80.
  • the physical random number generator 91 Since the physical random number generator 91 has the above configuration, the physical random number generator When the device 91 is operated, first, the physical random number generator 1 outputs a serial random number and holds a parallel random number, so that it can be output as needed.
  • serial random number (SRND) generated by the serial physical random number generator 2 at the reference clock (CLK-0) is converted from serial to parallel by the shift register 4 in synchronization with the carry-out (CO) of the counter 13 n
  • the bit random number (CRND) is loaded into the register 5 selected by the selector 18 to hold the parallel random number.
  • the selector 18 selects the register 5 specified by the write address (ADDRESS) of the output of the up / down counter 7 and registers the parallel random number (CRND) in synchronization with the carry rate (CO) of the counter 3. 5 and count up each time the Z-down counter 17 is counted up.
  • the write address (ADDRESS) of the output of the up / down counter 7 reaches m, the up-down count 1-7 is counted. Stop loading the parallel random number and keep it up.
  • the output of the parallel random number (PRND) is the output of the lowest register 5, input the read clock (CLK_R) after reading, and use the read clock to count down the up / down counter 17 and count up the data in all registers 5
  • the parallel random number (PRND) is updated each time.
  • the write address (ADDRESS) of the output of the up-Z down counter 7 becomes zero, the up-Z down counter 17 stops counting down and data shifting, and thereafter maintains that state.
  • the write address (ADDRESS) of the output of the up-Z down counter 17 is output to the outside, and the number of parallel random numbers held in all the registers 5 can be sequentially monitored.
  • the delay circuits 9, 10 take out the edges (eg, rising edges) of each clock, generate very short pulse waveforms (eg, 10 ns), clock up Z down counts 1 and 7 and clock all registers 5 Generates signal (CLOCK), ENABLE signal of up Z down counter 7, SHIFT signal of all registers 5 and LOAD (0) to LOAD (ml).
  • CLK-0 reference clock
  • CLK_R read clock
  • Edge eg, rising edge
  • CLK_0 reference clock
  • CLK_R read clock
  • td-Ra + td-Oa + 2Xtd-mg the forbidden area
  • CLKJb and CLK_Rb generate a clock signal (CLOCK)
  • CLK-Oa and CLK-Ra generate an ENABLE signal, SHIFT signal, and LOAD (0) to L0AD (m-1).
  • the control circuit 6 generates the UP / DOWN signal of the up / down counter 7 from the carry-out (CO) synchronization signal (SYNC) of the counter 3, CLK_0a, CLK—Ra, the OVER signal of the up / down counter 1 and the ZERO signal. And ENABLE signal, SHIFT signal of all register 1 and LOAD signal for LOAD (0) to L0AD (m-1).
  • CO carry-out
  • SYNC carry-out synchronization signal
  • serial random number generated by the serial physical random number generator 2 is obtained by four kinds of test methods (Monobi tTest, PokerTest, RimsTest, and LongRunsTest) conforming to the random number test standard FIPS 14 0-2. Its uniformity is verified.
  • the first counter 23 starts counting with a signal START-1C generated from the start signal (START) and the reference clock (CLK-0) through the control circuit 26, and Outputs signal OUT-C at, 000 count.
  • the second counter 24 initializes when the start signal (START) is input by the output signal CLR_C2 of the control circuit 26, and counts "1" or "0" of the serial random number (SRND).
  • the register 25 loads and holds the count value of the second counter 24 at 20,000 clocks from the time when the start signal (START) is input by the output signal L0AD_R of the control circuit 26, and stores the value in Monobit Data (MOND ) Is output.
  • Comparator 2 7 compares the output of register 25, MonobitData (MOND) with the upper limit comparison data (for example, 10,275 bits) and the lower limit comparison data (for example, 9,725Mt), and outputs the Monobit Judge (M0NJ) signal . This allows you to verify MonobitData and MonobitJudge after 20,000 clicks from the start signal for serial random numbers generated in synchronization with the reference clock.
  • CMS MonobitData
  • M0NJ Monobit Judge
  • the first counter 33 starts counting with the signal START-C generated through the control circuit 37 from the start signal (START) and the reference clock (CLK-0). Outputs signal 0 UT_C at the time of, 000 count.
  • the shift register 34 sequentially converts the serial random number (SRND) into a 4-bit parallel random number (PRND-4B) using the reference clock (CLK-0).
  • the decoder 35 receives a parallel random number (P RND- Output to the output units (SEJ) to SE_15) specified in 4B).
  • the counter 36 initializes when the start signal (START) is input by the output signal CLR-CR of the control circuit 37, and generates a parallel random number (PRN) when the ENABLE signal is active (once every four clocks).
  • the counter 36 specified by the decoder 35 is incremented by the data of D-4B).
  • the total of all counters 36 is 5,000 counts, and the data of parallel random number (PRND_4B) for every 4 pits after 20,000 clocks from the start signal for serial disturbance generated in synchronization with the reference clock Acquire frequency distribution data (PokerData0 to PokerDatal5) of 0 to 15).
  • the comparator 42 compares the output PokerData (POKD) of the register 41 with the upper limit comparison data (for example, 1, 576, 928) and the lower limit comparison data (for example, 1, 563, 175), and outputs the Poker Judge (P0KJ ) Output the signal.
  • Comparator 54 compares the serial random number (SRND) with the random number held by the data storage 55, and compares the random number one clock before and the current random number. Outputs the signal CHANGE when it changes.
  • the second counter 56 counts clocks from when the signal CHANGE is output until the next output, and outputs the signal RUNS J).
  • the relationship between the signal 1 ⁇ -0 and the length of the same signal is 101 ⁇ -0 + 1.
  • Each comparator 60 outputs the output of each counter 59 (RunsDatalH to RunsData6 + H in FIG. 10; RimsDatalL to RunsData6 + L in FIG. 11) and upper limit comparison data (for example, 2, 685 , 1, 386, 723, 384, 209, 209) and lower limit comparison data (eg, 2,315, 1, 114, 527,
  • the first counter 73 starts counting with the start signal (START) and the signal START-C generated via the control circuit 57 from the reference clock (CLK-0). When the count reaches 20,000, the signal OUT- Output C
  • the data holder 75 holds the serial random number (SRND) by one pit sequentially using the reference clock (CLK_0), and the comparator 74 compares the serial random number (SRND) with the random number held by the data holder 75. Outputs the signal CHANGE when the random number one clock before and the current random number change.
  • the second counter 7 counts clocks from the time when the signal CHANGE is output to the time when the next output is performed, and outputs the signal LRUNS-D.
  • the output signal of the register 79 LongRunsData (LRND) And the output signal (ttRUNS_D) of the second counter (77) is compared by the first comparator (78).
  • the first comparator (78) When LRND is L RUNS-D, the first comparator (78) outputs the output signal C0MPJJ, and the control circuit (76) Outputs the LOAD-R signal to register 79 via, and sequentially holds the maximum value of LRUNS_D in register 79.
  • the second comparator 80 compares it with the upper limit comparison data (for example, 26) and outputs a judgment signal LongRuns Judge aRNJ).
  • the uniformity random number verification data verified by the four types of test methods is held in the second selector 197 as shown in FIG. 4 and output according to the user's request.
  • Table 3 shows the selection signals (A0, A1) and the operation table.
  • the physical random number generator 1 determines the state of the selection signal (A1) ("0" or "1").
  • the read clock (parallel random number update on CLKJO (countdown of apno down count 7) or non-update) is set according to 3.
  • the output parallel random number (RND) is connected to the DATAJ of the second selector (197).
  • the output (C0ND_R) outputs various data flags generated during physical random number generation such as write address (A DDRESS) and parallel random number conversion, and is connected to DATA-1 of the second selector 197. You.
  • the random number verification circuit 21 starts verification with the read clock (CLK_R) signal via the control circuit 94, and the MonobitTest, PokerTest , RunsTest and LongRunTest are completed in 20,000 + 16 cycles with the reference clock (CLK-0), and the judgment result, judgment data, and raw PokerTest data are output and connected to the first selector 196.
  • Table 4 shows the details.
  • the comprehensive judgment is output when all judgment results are passed.
  • the output (C0ND_T) outputs various data and flags generated during random number verification, and is connected to DATA-2 of the second selector 197 together with the monitor address (SEL-ADD) of the counter one output.
  • the counter 13 for generating the parallel random number, the shift register 4, the up-down counter 7 and all the registers 15 are initialized by the verification start signal, and the verified physical random numbers are retained after the verification. Can be used.
  • the counter 95 generates the monitor address (SEL_ADD) of the first selector 96.
  • the selection signal (A0, A1) is 2 (ADDRE-S) with the output signal (CLR-C) of the control circuit 94
  • the counter 95 starts verification with the read clock (CLKJ signal).
  • the selection signal (A0, A1) is 3 (ADDRE-S) with the output signal (CLK-C) of the control circuit 94
  • the counter 95 counts up with the read clock (CLK_R) signal. New).
  • the chip select (CS) and output enable (0E) inputs are added to the physical random number generator 1, and the parallel random numbers [PRND (O) to PRND (n-1)] are added.
  • the output form can be set to three states ("0", "1", off).
  • multiple (p in Fig. 14) physical random number generators 1 and selectors 1 and 2 generate high-speed (p times in Fig. 14) random number generation. It is also possible to gain speed.
  • the prohibited area (id_Ra + t dJ) a + 2 X td—mg of the read clock (CLKJ0 edge (rising edge)) with respect to the reference clock (CLK-0) edge (rising edge, for example) is defined as It is possible to easily realize asynchronous or synchronous high-speed random number generation only by considering it very narrowly.
  • the reference clock (CLK-0) is read with respect to the edge of the reference clock (CLK-0).
  • CLK_0 the clock
  • CLKJ0 the read clock
  • the delay circuits 9 and 10 may be provided only on one of the read clock sides, and the number of the delay circuits 9 and 10 may be any number as long as it is 1 or more.
  • the same effect can be obtained by adding a waveform shaping circuit (for example, a monostable multivibrator) instead of 10.
  • the generated physical random numbers can be used efficiently, and the random numbers can be used efficiently.
  • the characteristics can be easily verified and used, and these can be realized with a simple circuit configuration.
  • an integrating circuit 105 for integrating a clock signal with a resistor R and a capacitor C to output an integrated waveform
  • a noise source 106 an amplifier 107 that amplifies the noise of the noise source 106 and outputs a noise signal
  • a mixer 110 that mixes the integrated waveform and the noise signal
  • Two edge detection circuits 109 are provided for detecting the first edge of jitter generated based on the output waveform of 08.
  • Each of the edge detection circuits 109 has a circuit configuration as shown in FIG. 17, and at the subsequent stage of the edge detection circuits 109, as shown in FIG.
  • a flip-flop 110 of D-type is provided which outputs “0” or “1” based on the phase difference of the output signal of the output circuit 109. Further, a D-type flip-flop 111 that synchronizes a random number with a clock signal is provided downstream of the flip-flop 110.
  • phase adjustment unit 102 for adjusting the phase of the input signal input to each integration circuit 105.
  • the phase adjustment unit 102 includes a delay 121, It consists of one selector 122 and an up Z down counter 123.
  • a feed pack circuit 103 is provided between the output of the flip-flop 111 and the up / down counter 123, and the "0" or “1" output from the flip-flop 11 1 to 50 is respectively 50.
  • the output of the flip-flop 111 is fed back to the phase adjustment unit 102 so as to converge to%. That is, the feed pack circuit 103 includes a first counter 131, a comparator 132, a second counter 133, a register 134, a comparator 135, a shift register / a register 136, and an adder 137.
  • the counter 131 and the comparator 13.2 generate the period of the feed pack with a random number (2 xm).
  • the second counter 133, the register 134 and the comparator 135 count (n) the number of “0” or “1” in the feed pack cycle (2 ⁇ m), and send the comparison data to the up / down counter 123. Output and output a feed pack signal that corrects the uniformity of random numbers. Further, the shift register / register 136 and the adder 137 obtain a random number (m) for determining the period of the feed pack from the output (OUT). This can prevent the quality (randomness) of the random number from deteriorating due to the feed pack cycle.
  • a second selector-115 and a third selector-116 are provided between the phase adjuster 102 and each of the integration circuits 105, respectively, and between the first selector-122 and the up / down counter 123.
  • a polarity switching circuit 113 is provided. As shown in Table 5, the most significant bit MSB of the up-down counter 123 controls the input between the first selector 122, the second selector 115 and the third selector 116. Polarity switching is performed. [Table 5]
  • the delay 121 and the first selector 122 are halved and gated. Since the number can be reduced, it is possible to reduce the scale of the physical random number generator 101 to reduce the occupied area and reduce the power consumption.
  • FIG. 19 is a circuit diagram of a physical random number generator according to still another embodiment of the present invention.
  • one integrating circuit 104 is provided for integrating a clock signal with a resistor R and a capacitor C and outputting an integrated waveform.
  • a noise source 106 an amplifier 107 that amplifies the noise of the noise source 106 and outputs a noise signal, a mixer 108 that mixes the integrated waveform and the noise signal,
  • Two edge detection circuits 109 detecting the first edge of the jitter generated based on the output waveform of the mixer 108 are provided.
  • each edge detection circuit 9 the output signals of each edge detection circuit 9 are A D-type flip-flop 110 that outputs “0” or “1” based on the phase difference is provided, and a random number is synchronized with the mouth signal after the flip-flop 110.
  • a D-type flip-flop 110 is provided. Between the flip-flop 110 and each edge detection circuit 109 (after each edge detection circuit 109), a variable delay 119 consisting of a delay and a selector is provided. The phase of the input signal input to the flip-flop 110 can be adjusted.
  • a feed-pack circuit 103 is provided between the output of the flip-flop 1 1 1 and the up-Z down counter 1 2 3, and outputs “0” or “0” output from the flip-flop 1 1 1
  • the output of the flip-flop 1 11 is fed back to the variable delay 1 19 so that each 1 "converges to 50%. Therefore, in addition to requiring only one integrator circuit 105 for two signal lines, the phase adjustment range due to errors in the resistor R and the capacitance C of the integrator circuit 105 can be narrowed, Since the variable delay consisting of delay and selector can be reduced, and the number of gates can be reduced, the physical random number generator can be reduced in scale to reduce the occupied area and power consumption. It becomes possible.
  • an FET (field transistor) 117 is added in parallel with the capacitor C after the resistor R of the integration circuit 105. May be.
  • the base point of the integrated waveform is always stabilized.
  • the jitter distribution is stabilized.
  • the stable distribution of jitter leads to the generation of high-quality random numbers.
  • random number generation must wait until the potential returns to the base point.However, the charge charged in the capacitor C of the integration circuit 105 is rapidly discharged, and the potential also returns to the base point of the integrated waveform at high speed. Waiting time can be reduced. In addition, the potential can be forcibly lowered to the base point without waiting for the potential of the waveform to rise completely after the random number generation, thereby further reducing the time. (Once the random number is generated, the potential can be returned to the base point immediately.) ). This greatly increases the random number generation speed. Can be Similarly, in the embodiments shown in FIGS. 16 to 18 described above, the FET 117 can be added in parallel with the capacitor C at the subsequent stage of the resistor R of each integration circuit 105.
  • a constant current circuit 118 may be provided in place of the resistor R of the integrating circuit 105 as shown in FIG. In this case, as shown in FIG. 23, the integral waveform when the capacitor C is charged becomes a straight line, and the distortion of jitter modulated with respect to noise is eliminated, thereby improving the quality of random numbers.
  • a constant current circuit 118 instead of the resistor R of each integration circuit 105.
  • the above-described physical random number generators 101 are connected in parallel (k is a numerical value of 2 or more), and the physical random number generators 101 are input to each physical random number generator 101.
  • k is a numerical value of 2 or more
  • the physical random number generators 101 are input to each physical random number generator 101.
  • XOR exclusive OR
  • variable delay 119 composed of the delay and the selector 1 is provided after the edge detection circuit 109 has been described. May be provided before the edge detection circuit 109.

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)
  • Manipulation Of Pulses (AREA)

Description

物理乱数の一様化手法と物理乱数発生装置
技 術 分 野
本発明は、 偏りのある物理乱数を簡単に一様化することが可能な物理乱数の一 様化手法に関するものである。
更に、 本発明は、 各種の用途に用いるに好適な物理乱数発生装置に関するもの 田
であり、 その具体的な用途としては、 セキュリティ一、 暗号、 認証、 施錠、 暗号 化通信、 スマートカード (例えば、 電子マネ一、 クレジットカード、 診察券) 、 ホームセキュリティ一、 力一セキュリティー、 キーレスエントリ一、 確率、 抽選 、 ゲーム、 アミューズメント (例えば、 パチンコ、 パチスロ) 、 シミュレ一ショ ン (例えば、 気象 ·学術計算 ·株価におけるモンテカルロ) 、 グラフィックス ( 例えば、 C G、 自動作曲) 、 制御、 計測、 F A、 口ポット制御 (人工知能) など が挙げられる。 背 景 技 術
一般に乱数には、 計算によって決定論的に生成される擬似乱数と、 自然界の物 理現象を利用して生成される物理乱数とがある。 後者 (物理乱数) は真の意味で ランダムな現象を基に生成されるので、 理想的な乱数となる資質があるものの、 実際に物理乱数を生成する場合、 途中過程で様々な誤差要因が介在するため、 必 ずしも理想的な乱数が出力されるとは限らず、 偏りのある乱数が出てきてしまう 恐れもある。 この誤差要因としては、 デジタル化の際に基準となるクロックの幅 や、 ノィズを利用する場合に余計なノィズが混入することなどが挙げられる。 従来、 こうした物理乱数の偏りを改善する手法、 すなわち物理乱数の一様化手 法としては、 2つの 2進乱数を用いて乱数の偏りを改善するノイマンコレクター (例えば、 非特許文献 1参照) や、 ノイズに基づいて発生させた物理乱数を擬似 乱数と合成することで物理乱数の偏りを改善する手法 (以下、 乱数合成法と称す る。 ) が提案されていた (例えば、 特開 2 0 0 1— 3 4 4 0 9 4号公報 (段落
〔0 0 1 4〕 および 〔0 0 1 8〕 の檷および図 1参照、 また、 非特許文献である Benj amin Jun and Paul Kocher著、 " The Intel Random Number Generator 、 CRY PTOGRAPHY RESEARCH^ 1 9 9 9年 4月 2 2日発表 (第 4頁、 4. 3. Digi tal Pos t - P roces s ing) 参照。 )
しかし、 ノイマンコレクタ一では、 1ビットの乱数を出力するのに 2ピットの 乱数を必要とする上に、 その 2ビットの組合せによっては乱数を出力しない場合 もあるので、 乱数の発生速度が落ちてしまう欠点があつた。
また、 乱数合成法では、 擬似乱数がわかれば、 基になる物理乱数を出力から取 り出せるようになるため、 乱数の偏りが他人に知られてしまい、 保安性に欠ける という不都合があった。
また、 前記したような従来の物理乱数発生装置としては、 半導体内で発生する ノイズを用いたものが多く、 パソコンに外部から接続して使用するよう構成され る規模の大きなものや、 I Cチップ単体で乱数を発生させるものがあった。 また 、 アミューズメント用には、 時間的にランダムであると見なせる信号が発生した 時に、 備えられた高速カウン夕一の値を参照し、 それを乱数として用いるものが あった。
一般に物理乱数発生器は高速に乱数を発生することは難しく、 時としてその乱 数発生速度以上の大量の乱数が必要となる事が起こる。 そのため、 記憶媒体を設 けて乱数を貯めておいたり、 複数の物理乱数発生装置を用いで乱数の発生量を増 やしたりすることが考えられるが、 これを実現するためには複雑な回路を利用者 側で組む必要が生じる。
また、 一般に物理乱数は使用環境によって乱数の質が変化する可能性があり、 利用者がこれら物理乱数発生装置の発生した乱数が真正乱数として使用すること ができるか否かを確認することは有益なことである。 しかしながら、 乱数の検定 を行うには専用の測定装置を構築しなければならず、 一般の物理乱数発生装置利 用者にとっては、 このような余計なコストと手間がかかるような作業は受け入れ 難い。 また、 乱数検定は大量のデータを扱うので、 それを貯めておく記憶装置は 大容量のものが必要となるとともに、 検定のための計算処理にも時間がかかる。 更に、 従来の物理乱数発生装置としては、 例えば特開 2 0 0 3— 2 9 9 6 4号 公報に開示されているように、 2個のディレーおょぴセレクタ一等からなる位相 調整部と、 フリップ *フロップと、 フィードパック回路とから構成される物理乱 数発生器を備えたものが知られている。
しかし、 これでは、 フリップ。 フロップのクロック端子とデ一タ端子に入力さ れる 2系統の信号ラインに応じた 2個のディレーおよびセレクタが必要となるの で、 位相調整部、 ひいては物理乱数発生器の規模が大きくなり、 その占有面積が 拡大するばかりか、 その消費電力が増大するという不都合があった。 特に、 物理 乱数発生器が C P U (中央演算処理装置) 、 R O M (読取り専用記憶装置) 、 R AM (読取り書き込み記憶装置) などの多くの機能と I C (集積回路) 内に混載 される場合には、 この物理乱数発生器の専有面積をできる限り縮小することが強 く望まれる。 発 明 の 開 示
本発明は、 このような事情に鑑み、 乱数の発生速度を維持すると同時に保安性 をも確保することが可能な物理乱数の一様化手法を提供することを目的とする。 本発明の他の目的は、 物理乱数発生装置単体での乱数利用効率が高く、 かつ複 数の物理乱数 I Cを組み上げて乱数を高速に発生させることが容易であり、 さら に、 乱数の質を容易に確認して使用することが可能な物理乱数発生装置を提供せ んとするものである。
更に、 本発明の別の目的は、 占有面積が小さくて消費電力が少ない物理乱数発 生器と、 この物理乱数発生器が組み込まれた物理乱数発生装置を提供せんとする ものである。
先ず、 本発明のうち、 請求項 1に係る発明は、 複数の物理乱数を乱数保持装置 ( 2 0 0 ) に入力して保持し、 この乱数保持装置に保持された物理乱数の一部を セレクタ一のァドレスとして使用し、 そのァドレスに基づいて残りの部分から乱 数をランダムに選択して出力することを特徴とする物理乱数の一様化手法である また、 本発明の請求項 2に係る発明は、 前記セレクタ一に代え、 論理積回路を 用い乱数保持装置に保持された乱数をランダムに選択して、 それらの排他的論理 和を出力することを特徴とする物理乱数の一様化手法である。
更に、 本発明の請求項 3に係る発明は、 セレクタ一の出力と物理乱数を入力と する排他的論理和回路を設けその出力を乱数保持装置 (2 0 0 ) 入力とする請求 項 1に記載の物理乱数の一様化手法である。
また、 本発明の請求項 4に係る発明は、 請求項 1から請求項 3の何れかの操作 を 2サイクル以上繰り返して物理乱数を多段に一様化することを特徵とする物理 乱数の一様化手法である。
また、 本発明の請求項 5に係る発明は、 乱数保持装置としてシフトレジス夕 ( 2 0 0 ) を用いたことを特徵とする請求項 1から請求項 4までのいずれかに記載 の物理乱数の一様化手法である。
なお、 括弧内の符号は図面において,対応する要素を表す便宜的なものであり、 したがって、 本発明は図面上の記載に限定拘束されるものではない。 このことは 「特許請求の範囲」 の櫚についても同様である。
次に、 本発明のうち請求項 6に係る発明は、 物理乱数発生器を有する物理乱数 発生装置であって、 前記物理乱数発生器が、 基準クロック信号に応じてシリアル 乱数を生成するシリアル物理乱数発生器を備え、 シリアル乱数をパラレル乱数に 変換するシリアル Zパラレル変換部を備え、 パラレル乱数を保持しうる複数個の レジスターを備え、 前記シリアルノパラレル変換部によつてパラレル乱数が生成 される度に前記レジスタ一に順次パラレル乱数を保持し、 かつ、 読出しクロック 信号に応じて前記レジスターからパラレル乱数を読み出して出力するとともに、 読み出しの終了したレジスタ一に他のレジスタ一からパラレル乱数をシフ卜させ て内容を逐次更新する制御回路を備えて構成される。 ここで、 読出しクロックは 基準クロックとは別に入力されるものである。
また、 本発明のうち請求項 7に係る発明は、 前記物理乱数発生器が、 複数個の レジスターのうちパラレル乱数を保持すべきレジスタ一を決めて書き込みァドレ スを出力するアップ/ダウンカウン夕一を備え、 前記アップ/ダウンカウンター が出力した書き込みァドレスに基づき、 パラレル乱数を保持すべきレジスターを 選択してロード信号を出力するセレクタ一を備え、 前記セレクタ一からのロード 信号に基づいて前記シリアル/パラレル変換部内のパラレル乱数を前記レジス夕 一のうち後段のレジスターから前段のレジスターへ順次保持し、 かつ、 読出しク ロック信号に応じて前記レジスターのうち最後段からパラレル乱数を読み出して 出力するとともに、 このレジスタ一より前段にある各レジスタ一内のパラレル乱 数を後段へ順次シフトする制御回路を備えて構成される。
また、 本発明のうち請求項 8に係る発明は、 前記物理乱数発生器が、 前記シリ アル物理乱数発生器が生成したシリアル乱数の総数をカウントする総数カウンタ 一を備え、 前記総数カウンターがカウントしたシリアル乱数の総数が所定のピッ ト数に達したとき、 これらの'シリアル乱数に基づいてその一様性を検証する乱数 検証回路を備えて構成される。
また、 本発明のうち請求項 9に係る発明は、 前記乱数検証回路の乱数検証方法 として、 乱数値 " 0 " 又は " 1 " の出現度数をカウン卜し、 これを規定値と比較 することによって乱数の一様性を検証する乱数検証方法を採用して構成される。 また、 本発明のうち請求項 1 0に係る発明は、 前記乱数検証回路の乱数検証方 法として、 4ビットで一つの乱数値とし、 各々の乱数値の出現度数に基づいて算 出された χ二乗値を規定値と比較することによって乱数の一様性を検証する乱数 検証方法を採用して構成される。
また、 本発明のうち請求項 1 1に係る発明は、 前記乱数検証回路の乱数検証方 法として、 連の長さ別にその出現度数'をカウントし、 これらを規定値と比較する ことによって乱数の一様性を検証する乱数検証方法を採用して構成される。 また、 本発明のうち請求項 1 2に係る発明は、 前記乱数検証回路の乱数検証方 法として、 所定ビット数の乱数中に出現した最長の連の長さを規定値と比較す ¾ ことによって乱数の一様性を検証する乱数検証方法を採用して構成される。 また、 本発明のうち請求項 1 3に係る発明は、 チップセレクトと出力イネ一ブ ル機能とそれに対応した端子を備え、 出力部のバッファ一機能を 3ステートとし て構成される。
さらに、 本発明のうち請求項 1 4に係る発明は、 前記物理乱数発生器を複数個 用意し、 セレクタ一のセレクト信号に基づき、 前記物理乱数発生器の中から一つ を選択して乱数または乱数検証データを出力するようにして構成される。 さらに、 本発明のうち請求項 1 5に係る発明は、 抵抗およびキャパシ夕でクロ ック信号を積分して積分波形を出力する積分回路と、 ノイズ源と、 このノイズ源 のノイズを増幅してノィズ信号を出力する増幅器と、 前記積分波形と前記ノィズ 信号とをミキシングするミキサーと、 このミキサーの出力波形に基づいて生成さ れるジッターの最初のエッジを検出するエッジ検出回路とを 2個ずつ備え、 前記 各エッジ検出回路の出力信号の位相差に基づいて" 0 " または" 1 " を出力する フリップ ·フロップを備え、 前記各積分回路に入力される入力信号の位相を調整 するディレー、 第 1セレクタ一およびアップ/ダウンカウン夕一からなる位相調 整部を備え、 前記フリップ'フロップから出力される" 0 " または" 1 " がそれ ぞれ 5 0 %に収束するように当該フリップ ·フロップの出力を前記位相調整部に フィードバックするフィードパック回路を備えた物理乱数発生器において、 前記 各積分回路の前段にそれぞれ第 2セレクタ一及び第 3セレクタ一を設け、 前記ァ ップ /ダウンカウンタ一の最上位ピットによつて前記第 1セレクタ一と前記第 2 セレクタ一および前記第 3セレクタ一との入力の極性切換を行う極性切換回路を 設けたことを特徴とする物理乱数発送器である。
さらに、 本発明のうち請求項 1 6に係る発明は、 抵抗およびキャパシ夕でクロ ック信号を積分して積分波形を出力する積分回路を 1個備え、 ノイズ源と、 この ノイズ源のノイズを増幅してノイズ信号を出力するアンプと、 前記積分波形と前 記ノイズ信号とをミキシングするミキサーと、 このミキサーの出力波形に基づい て生成されるジッターの最初のエッジを検出するエッジ検出回路とを 2個ずつ備 え、 前記各エッジ検出回路の出力信号の位相差に基づいて" 0 " または" 1 " を 出力するフリップ · フロップを備えた物理乱数発生器において、 前記フリップ フロップに入力される入力信号の位相を調整するディレーとセレクタ一からなる 可変ディレーを前記各エッジ検出回路の前段または後段に設け、 前記フリップ · フロップから出力される" 0 " または" 1 " がそれぞれ 5 0 %に収束するように 当該フリップ ·フロップの出力を前記可変ディレーにフィードパックするフィ一 ドパック回路を設けたことを特徴とする物理乱数発生器である。
さらに、 上記構成において、 前記積分回路の抵抗の後段に F E T (電界効果ト ランジス夕) を当該積分回路のキャパシ夕と並列に付加した構成とすることもで きる。
また、 上記構成の前記積分回路の抵抗に代えて、 定電流回路を設けた構成とす ること可能である。 図 面 の 簡 単 な 説 明
図 1 Aおよび図 1 Bは、 本発明に係る物理乱数の一様化手法が適用される乱数 一様化回路の二例を示す回路図である。
図 2 A及び図 2 Bは、 本発明に係る物理乱数の一様化手法が適用される乱数一 様化回路の別の二例を示す回路図である。
図 3 A及び図 3 Bは、 本発明に係る物理乱数の一様化手法が適用される乱数一 様化回路のさらに別の二例を示す回路図である。
図 4は本発明に係る物理乱数発生装置の第 1の実施形態を示す回路図。
図 5は図 4に示す物理乱数発生装置の物理乱数発生器の詳細を示す回路図。 図 6は図 5に示す物理乱数発生器の各部の出力波形を示す波形図。
図 7は図 5に示す物理乱数発生器の各部の出力波形を示す波形図。
図 8は図 4に示す物理乱数発生装置の乱数検証回路の Monobi tTes tに関する部 分の回路図。
図 9は図 4に示す物理乱数発生装置の乱数検証回路の PokerTes tに関する部分 の回路図。
図 1 0は図 4に示す物理乱数発生装置の乱数検証回路の RunsTes tに関する部分 の回路図。
図 1 1は図 4に示す物理乱数発生装置の乱数検証回路の RmisTes Uこ関する部分 の回路図。
図 1 2は図 4に示す物理乱数発生装置の乱数検証回路の LongRunsTes tに関する 部分の回路図である。
図 1 3は本発明に係る物理乱数発生装置の第 2の実施形態を示す回路図。 図 1 4は本発明に係る物理乱数発生装置の第 3の実施形態を示す回路図。 図 1 5は図 1 4に示す物理乱数発生装置の各部の出力波形を示す波形図。 図 1 6は本発明の係る物理乱数発生器の別の実施形態を示す回路図。 図 1 7は図 1 6に示す物理乱数発生器のエッジ検出回路の詳細を示す図。 図 1 8は図 1 6に示す物理乱数発生器の動作波形を示す図。
図 1 9は本発明に係る物理乱数発生器の更に別の実施形態を示す回路図。 図 2 0は積分回路の別の例を示す回路図。
図 2 1は図 2 0に示す積分回路を用いた物理乱数発生器の動作波形を示す図。 図 2 2は積分回路の更に別の例を示す図であり、 更に
図 2 3は、 図 2 2に示す積分回路を用いた物理乱数発生器の動作波形を示す図 である。 発明を実施するための最良の形態
ぐ発明の第 1の態様 >
以下、 本発明の実施形態を図面に基づいて説明する。
まず、 図 1 Aに示す乱数一様化回路 1 0 0では、 シフトレジスタ 2 0 0とセレ クタ 3 00とを具備しており、 シフトレジスタ 2 0 0のデ一夕端子 Dには 2進乱 数 ( 「0」 または 「1」 ) が順次入力され、 シフトレジスタ 2 0 0のクロック端 子 C L Kに入力される基準パルス信号が立ち上がるごとに、 これらの 2進乱数が 順に出力 Q 0 0〜Q 1 34にシフ卜されていく。 そして、 シフトレジスタ 2 0 0 の出力 Q 0 0〜Q 1 2 7の 1 2 8ビットの乱数はそれぞれセレクタ 3のデ一夕端 子 D O 0~D 1 2 7に入力され、 シフトレジスタ 2 0 0の出力 Q 1 28〜Q 1 3 4の 7ピットの乱数はそれぞれセレクタ 3 0 0のアドレス AD 0 -AD 6に入力 される。
その後、 セレクタ 3 0 0では、 アドレス AD 0 ~AD 6に入力された 7ビット のァドレス値に応じて、 データ端子 D 0 0〜D 1 2 7に入力された 1 2 8ピット の乱数から 1ビットが選択され、 出力端子 OUTから出力される。 例えば、 アド レス AD 0〜AD 6にそれぞれ 「1」 「0」 「0」 「0」 「0」 「0」 「0」 が 入力されたときは、 データ端子 D O 0に入力された乱数が出力端子 OUTから出 力される。 また、 アドレス AD 0〜AD 6にそれぞれ 「1」 「0」 「1」 「0」
「0」 「0」 「0」 が入力されたときは、 データ端子 D 04に入力された乱数が 出力端子 OUTから出力される。 このように、 シフトレジスタ 2 0 0のデータ端子 Dに順次入力される 2進乱数 は、 その一部がアドレスとなって自分自身をランダムに選び出すので、 この 2進 乱数が偏りを持っていても、 この乱数一様化回路 1で一様化されて出力されるこ とになる。 しかも、 従来のノイマンコレクタ一と異なり、 1ビットの乱数を出力 するのに複数ビットの乱数を必要とすることもなく、 乱数を出力しない場合もな いため、 乱数の発生速度を維持することができる。 また、 従来の乱数合成法と違 つて、 乱数の偏りが他人に知られてしまう事態が生じないので、 保安性を確保す ることができる。
また、 図 1 Bに示す乱数一様化回路 1 0 0は、 シフトレジスタ 2 0 0からの乱 数出力を選択するビット数を 6ビットに減らしたことと、 排他的論理和 (X O R ) 回路を追加したことを除き、 図 1 Aに示す乱数一様化回路.1と同様である。 す なわち、 図 1 Bに示す乱数一様化回路 1では、 シフトレジスタ 2 0 0とセレクタ 3 0 0とを具備しており、 セレクタ 3 0 0の出力と 2進乱数 ( 「0」 または 「1 」 ) とを入力とする排他的論理和回路の出力が順次シフトレジスタ 2 0◦のデ一 夕端子 Dに入力され、 シフトレジスタ 2 0 0のクロック端子 C L Kに入力される 基準パルス信号が立ち上がるごとに、 出力 Q 0 0 ~ Q 6 9に順にシフトされてい く。 そして、 シフトレジスタ 2 0 0の出力 Q 0 0〜Q 6 3の 6 4ビットの乱数は それぞれセレクタ 3 0 0のデータ端子 D O 0 ~ D 6 3に入力され、 シフトレジス 夕 2の出力 Q 6 4 ~ Q 6 9の 6ビッ卜の乱数はそれぞれセレクタ 3 0 0のァドレ ス A D 0〜A D 5に入力される。 その後、 セレクタ 3 0 0では、 アドレス A D O 〜A D 5に入力された 6ピットのァドレス値に応じて、 データ端子 D 0 0〜D 6 3に入力された 6 4ビットの乱数から 1ピットが選択され、 出力端子 O U Tから 出力される。
この場合も、 シフトレジスタ 2 0 0のデータ端子 Dに順次入力される 2進乱数 は、 その一部がアドレスとなって自分自身をランダムに選び出すので、 この 2進 乱数が偏りを持っていても、 この乱数一様化回路 1 0 0で一様化されて出力され ることになり、 乱数の発生速度を維持すると同時に、 保安性を確保することがで さる。
このことを確認するため、 この乱数一様化回路 1 0 0から出力された乱数の一 P 漏謹 12213 様性を乱数検定規格 F I P S 140 - 2に準拠して評価した。 その結果を表 1お よび表 2に示す。 なお、 表 1中の数値は元データを表し、 表 2中の数値は検定結 果データを表す。 ここで、 表 1、 2中の 「Mon o」 、 「 P o k e r」 、 「Ru n s」 および 「L on gRun」 は乱数検定の種類を表しており、 それぞれ乱数 検定規格 F I PS 140— 2の 「Monobit TestJ 、 「Porker TestJ 、 「Runs Te stj および 「Long Run TestJ に対応している。 また、 結果は 50回を 1セットと して表示しており、 数値は 50回の検定中で不合格になった回数を表している。
【表 1】 、、 "ΝΓη υ· λΛ" π P o k e R u n s 丁 ) Π π
1 ο 1 ο
? ο η ο o ο 1 ο
Ak ο 1
c π u πJ
D u A u o
7 u Π u π o o π υ u π u π u
Q y υ U 上 υ u υ u υ υ
1丄 1丄 υ u U π υ 丄 υ U υ π υ 丄 3 υ u υ υ λ υ yj 丄 υ 丄 £) υ yj π π υ
1丄 a Ο π υ n 上
丄 ί π U u 丄 π u
1丄 β ο r υi u π υ η 丄 y υ U π υ ώ υ υ π u U π υ 丄 π υ n υ 1 1
π n 1
9 q υ υ υ υ n u π υ υ 0 η u υ π υ D π U U 丄 υ
Δ 1 υ υ υ
Δ υ υ U
y υ υ 丄 υ ϋ 1 U U υ
6 1 U U υ 丄 ο
Ο ώ υ υ 丄 U
υ υ υ
υ υ υ π V υ υ υ ι a
Ό π υ η υ 1 π 7 υ υ 丄 π υ ο Ο υ υ υ
π υ η υ V V π υ π U
4 1 ο ο ο ο
4 2 0 0 0 0
4 3 0 0 1 0
4 4 0 0 0 0
4 5 0 0 0 0
4 6 0 0 2 0
4 7 0 0 0 0
4 8 0 0 1 0
4 9 0 0 0 0
5 0 0 0 0 0 【表 2】 セット No. Mono Poke r Runs L o n gRu n
1 - 0 0 0 0
2 0 0 0 0
3 0 0 0 0
4 0 0 0 0
5 0 0 0 0
6 0 0 0 0
7 0 0 0 0
8 0 0 0 0
9 0 0 0 0
10 0 0 0 0
11 0 0 0 0
12 0 0 0 0
13 0 0 0 0
1 0 0 0 0
15 0 0 0 0
16 0 0 0 0
1 0 0 0 0
18 0 0 0 0
19 0 0 0 0
20 0 0 0 0
21 0 0 0 0
22 0 0 0 0
23 0 0 1 0
24 0 0 0 0
25 0 0 0 0
26 0 0 0 0
27 0 0 0 0
28 0 0 0 0
29 0 0 0 0
30 0 0 0 0
31 0 0 0 0
32 0 0 0 0
33 0 0 0 0
34 0 0 0 0
35 0 0 0 0
36 0 0 0 0
37 0 0 0 0
38 0 0 0 0
39 0 0 0 0
40 0 0 0 0
41 0 0 1 0
42 0 0 0 0
43 0 0 0 0
44 0 0 0 0
45 0 0 0 0
46 0 0 0 0
47 0 0 0 0
48 1 0 0 0
49 0 0 0 0
50 0 0 0 0 上に示した表 1及び表 2から明瞭に理解させるように、 4種類すベての乱数検 定 ( 「Mo no」 、 「 Po k e r」 、 「Run s」 および 「: LongRunj ) において、 セット No.:!〜 50のほとんど全部が合格値となり、 上述した効果が確 認された。
一方、 図 2 Aに示す乱数一様化回路 1は、 シフトレジスタ 200からの乱数出 力を選択するピット数を 1 5ビットに増やしたことと、 セレクタ 300と同様な 働きをするものとして論理積 (AND) 回路と排他的論理和 (XOR) 回路との 組み合わせを代用したことを除き、 図 1 Aに示す乱数一様化回路 1と同様である 。 すなわち、 図 2 Aに示す乱数一様化回路 1ではシフトレジスタ 200を具備し ており、 シフトレジスタ 200のデ一夕端子 Dには 2進乱数 ( 「0」 または 「1 J ) が順次入力され、 シフトレジスタ 200のクロック端子 CLKに入力される 基準パルス信号が立ち上がるごとに、 これらの 2進乱数が順に出力 Q 00〜Q3 0にシフトされていく。 そして、 シフトレジスタ 200の出力 Q00〜Q 14の 1 5ビットの乱数とシフトレジスタ 200の出力 Q 1 6 ~Q 30の 1 5ピットの 乱数とを入力とする 1 5個の論理積回路の出力が、 シフトレジスタ 200の出力 Q 1 5とともに排他的論理和回路で順次合成されて出力される。
このように、 シフトレジスタ 200のデ一夕端子 Dに順次入力される 2進乱数 は、 シフトレジスタ 200内で同じピット数 (15ビット) の 2組に分けられた 後、 論理積回路と排他的論理和回路でランダムに演算されるので、 この 2進乱数 が偏りを持っていても、 この乱数一様化回路 1で一様化されて出力されることに なる。 しかも、 従来のノイマンコレクターと異なり、 1ピットの乱数を出力する のに複数ピットの乱数を必要とすることもなく、 乱数を出力しない場合もないた め、 乱数の発生速度を維持することができる。 また、 従来の乱数合成法と違って 、 乱数の偏りが他人に知られてしまう事態が生じないので、 保安性を確保するこ とができる。
また、 図 2 Bに示す乱数一様化回路 100は、 シフトレジスタ 200からの乱 数出力を選択するビット数を 7ビットに減らしたことと、 排他的論理和 (XOR ) 0路を追加したことを除き、 図 2 Aに示す乱数一様化回路 1と同様である。 す なわち、 図 2 Bに示す乱数一様化回路 1ではシフトレジスタ 200を具備してお り、 シフトレジスタ 2 0 0のデータ端子 Dには 2進乱数 ( 「0」 または 「1」 ) が順次入力され、 シフトレジスタ 2 0 0のクロック端子 C L Kに入力される基準 パルス信号が立ち上がるごとに、 これらの 2進乱数が順に出力 Q 0 0〜Q 1 4に シフトされていく。 そして、 シフトレジスタ 2の出力 Q 0 0 ~ Q 0 6の 7ビット の乱数とシフトレジスタ 2の出力 Q 0 8 ~ Q 1 4の 7ビットの乱数とを入力とす る 7個の論理積回路の出力が、 シフトレジスタ 2 0 0の出力 Q 0 7とともに排他 的論理和回路で順次合成され、 最後に元の 2進乱数 (生データ) と排他的論理和 回路で合成されて出力される。
この場合も、 シフトレジスタ 2 0 0のデータ端子 Dに順次入力される 2進乱数 は、 シフトレジスタ 2 0 0内で同じピット数 (7ビット) の 2組に分けられた後 、 論理積回路と排他的論理和回路でランダムに演算されるので、 この 2進乱数が 偏りを持っていても、 この乱数一様化回路 1 0 0で一様化されて出力されること になり、 乱数の発生速度を維持すると同時に、 保安性を確保することができる。 なお、 上述の実施形態においては、 複数の物理乱数を保持する乱数保持装置と してシフトレジス夕 2 0 0を用いた場合について説明したが、 シフトレジスタ 2 0 0以外の乱数保持装置 (例えば、 フリップフロップ) を代用することも可能で ある。
また、 上述の実施形態においては、 1個の乱数一様化回路 1を用いて物理乱数 を一様化する場合について説明したが、 図 3 A及び図 3 Bに示すように、 図 1 A 、 図 1 Bや図 2 A、 図 2 Bに示す乱数一様化回路 1 0 0 ( C K T 1 , C K R 2 , · · - C K T x ) を 2個以上接続して物理乱数を多段に一様化することもでき る。 この場合、 乱数一様化回路 1 0 0の接続方法は、 図 3 Aに示すような直列接 続であっても、 図 3 Bに示すような並列接続であっても構わない。
以上説明したように、 本発明によれば、 乱数保持装置 (シフトレジスタ) に入 力された物理乱数は、 たとえそれが偏りを持っていても一様化されて出力され、 乱数を出力しない場合や乱数の偏りが他人に知られてしまう事態が起きないこと から、 乱数の発生速度を維持すると同時に保安性をも確保することが可能な物理 乱数の一様化手法を提供することができる。 <発明の第 2の態様 >
次に、 本発明の物理乱数発生器の好適な実施例について図面の図 4〜図 1 5を 参照して説明する。
この物理乱数発生装置 9 1は、 図 4に示すように、 物理乱数発生器 1、 乱数検 5 証回路 2 1、 制御回路 9 4、 カウンタ一 9 5、 第 1セレクタ一 9 6、 第 2セレク ター 9 7から構成されており、 物理乱数発生器 1は、 図 5に示すように、 シリア ル物理乱数発生器 2、 カウンター 3、 シフトレジスタ一 4、 複数個 (図 5では m 個) のレジスター 5、 制御回路 6、 アップ Zダウンカウンター 7、 セレクタ一 8 、 基準クロック側の 2個の遅延回路 9および読出しクロック側の 2個の遅延回路
10 1 0から構成されている。
他方、 乱数検証回路 2 1は、 図 8から図 1 2までに示すように、 乱数検定規格 F I P S 1 4 0— 2に準拠した 4種類の検定方法 (Monobi tTes t、 PokerTes t, Ru nsTes tおよび LongRunsTes t) に対応する部分から構成されている。 すなわち、 Mo nobi tTes tに関する部分は、 図 8に示すように、 第 1カウンタ一 2 3、 第 2カウン is 夕一 2 4、 レジスター 2 5、 制御回路 2 6および比較器 2 7から構成されており 、 PokerTes tに関する部分は、 図 9に示すように、 第 1カウンター 3 3、 シフト レジスター 3 4、 デコーダ一 3 5、 複数個 (図 9では 1 6個) のカウン夕一 3 6 、 制御回路 3 7、 セレクタ一 3 8、 掛算器 3 9、 加算器 4 0、 レジスター 4 1お ょぴ比較器 4 2から構成されている。 また、 RunsTes tに関する部分はさらに乱数o 出力が " 1 " の場合と乱数出力が " 0 " の場合とに二分され、 前者は、 図 1 0に 示すように、 第 1カウンタ一 5 3、 比較器 5 4、 データ保持器 5 5、 第 2カウン 夕一 5 6、 制御回路 5 7、 デコーダー 5 8、 6個のカウンター 5 9および 6個の 比較器 6 0から構成されており、 後者は、 図 1 1に示すように、 物理乱数発生器 1のシリアル物理乱数発生器 2からデコーダー 5 8への出力線上にィンパ一夕が5 設けられて出力が反転する点を除き、 前者と同じ構成を有している。 さらに、 Lo ngRunsTes tに関する部分は、 図 1 2に示すように、 第 1カウンター 7 3、 比較器 7 4、 データ保持器 7 5、 制御回路 7 6、 第 2カウンタ一 7 7、 第 1比較器 7 8 、 レジスター 7 9およぴ第 2比較器 8 0から構成されている。
物理乱数発生装置 9 1は以上のような構成を有するので、 この物理乱数発生装 置 9 1を作動させると、 まず物理乱数発生器 1で、 シリアル乱数が出力されると ともに、 パラレル乱数が保持されて必要に応じて出力できる状態となる。
すなわち、 基準クロック(CLK—0)でシリアル物理乱数発生器 2より生成された シリアル乱数(SRND)をカウンタ一 3のキヤリーアゥト(CO)に同期して、 シフトレ ジスター 4でシリアルからパラレルに変換した nビットの乱数(CRND)をセレクタ 一 8で選択されたレジスター 5にロードしてパラレル乱数を保持する。
このとき、 セレクタ一 8はアツプノダウンカウンター 7の出力の書込みァドレ ス(ADDRESS)で指定されたレジスター 5を選択し、 カウンター 3のキャリーァゥ ト(CO)に同期してパラレル乱数(CRND)をレジスター 5にロードし、 口一ドごとに アップ Zダウンカウンタ一 7をカウントアップし、 アップ/ダウンカウンター 7 の出力の書込みァドレス(ADDRESS)が mになつた時点で、 アップ ダウンカウン 夕一 7はカウントアップとパラレル乱数のロードを中止し、 以降その状態を維持 する。
パラレル乱数の出力(PRND)は最下位のレジスター 5の出力とし、 読み出し後に 読出しクロック(CLK_R)を入力し、 読出しクロックにてアップ/ダウンカウンタ 一 7のカウントダウンとすべてのレジスター 5内のデータを上位から下位へシフ 卜し、 パラレル乱数(PRND)はその都度更新される。 アップ Zダウンカウンター 7 の出力の書込みァドレス(ADDRESS)がゼロになった時点で、 アップ Zダウンカウ ンタ一 7はカウントダウンとデータシフトを中止し、 以降その状態を維持する。 アップ Zダウンカウンタ一 7の出力の書込みァドレス(ADDRESS)は外部に出力 され、 すべてのレジスター 5に保持されているパラレル乱数の数を逐次モニタ一 可能とする。
遅延回路 9、 1 0は各クロックのエッジ (例えば、 立上りエッジ) を取り出し 、 非常に短いパルス波形 (例えば、 1 0 n s ) を生成し、 アップ Zダウンカウン 夕一 7とすべてのレジスター 5のクロック信号(CLOCK)、 アップ Zダウンカウン ター 7の ENABLE信号、 すべてのレジス夕一 5の SHIFT信号と LOAD (0)〜LOAD (m-l) を生成する。 これにより、 基準クロック(CLK— 0)と読出しクロック(CLK_R)が非同 期または同期式で動作するときに、 基準クロック(CLK—0)のエッジ (例えば、 立 上りエッジ) に対する読出しクロック(CLK_R)のエッジ (例えば、 立上りエッジ ) の禁止域(t d— Ra+ t d— Oa+ 2 X t d— mg)を非常に小さくして基準クロック(CLK_0)と 読出しクロック(CLK_R)との干渉を最小限とすることができる。 なお、 CLKJbと C LK_Rbがク口ック信号(CLOCK)を生成し、 CLK—Oaと CLK— Raが ENABLE信号、 SHIFT信号 と LOAD (0)〜L0AD (m-1)を生成する。
制御回路 6はカウンター 3のキャリーアウト(CO)の同期信号(SYNC)、 CLK_0a、 CLK— Ra、 アップ/ダウンカウンタ一 7の OVER信号と ZERO信号より、 アップ/ダウ ンカウンター 7の UP/DOWN信号と ENABLE信号、 すべてのレジスタ一 5の SHIFT信号 と LOAD (0)〜L0AD (m- 1)用の LOAD信号を生成する。
こうすることにより、 基準クロックに同期してシリアル物理乱数発生器 2で生 成されたシリアル乱数より n倍の周期で最大 m個の nピッ卜のパラレル乱数を保 持することができる。 それ以降のシリアル乱数は読み出し操作 (CULRの入力) を :るまでは保持されない。 こうして保持された最大 m個のパラレル乱数は読出 しクロックで必要なときに必要な量 (最大 m個) を短時間に集中して読み出すこ とができ、 読み出された量のパラレル乱数は逐次補充される。 基準クロック(CLK —0)のエッジに対する読出しクロックのエッジの禁止域が非常に狭く、 非同期ま たは同期式でタイミングよく、 かつ効率的に読み出すことができる。 書込みアド レスを読み出すことで、 その時点で保持されたパラレル乱数の量を確認すること が可能となり、 乱数を効率的に活用することができる。
ところで、 こうしてシリアル物理乱数発生器 2で生成されたシリアル乱数は、 乱数検定規格 F I P S 1 4 0— 2に準拠した 4種類の検定方法 (Monobi tTes t、 P okerTes t , RimsTes tおよび LongRunsTes t) でその一様性が検証される。
まず、 Monob i tTes tによる検証が行われる。 すなわち、 図 8に示すように、 第 1カウンター 2 3はスタート信号(START)と基準クロック(CLK—0)より制御回路 2 6を介して生成された信号 START一 Cでカウントを開始し、 20, 000カウント時に信 号 OUT— Cを出力する。 第 2カウンタ一 2 4は制御回路 2 6の出力信号 CLR_C2でス タート信号(START)が入った時点に初期化を行い、 シリアル乱数(SRND)の " 1 " または " 0 " をカウントする。 レジスター 2 5は制御回路 2 6の出力信号 L0AD_R でスタート信号(START)が入った時点より 20, 000クロック時の第 2カウンター 2 4のカウント値をロードして保持し、 Monob i tDat a (MOND)を出力する。 比較器 2 7はレジスター 2 5の出力 MonobitData(MOND)と上限比較データ (例えば、 10,27 5bit) および下限比較データ (例えば、 9, 725Mt) とを比較し、 Monobi t Judge (M 0NJ)信号を出力する。 これにより、 基準クロックに同期して生成されたシリアル 乱数について、 スタート信号から 20, 000ク口ック後に MonobitDataと MonobitJudg eを検証することができる。
次に、 PokerTestによる検証が行われる。 すなわち、 図 9に示すように、 第 1 カウンター 3 3はスタート信号(START)と基準クロック(CLK— 0)より制御回路 3 7 を介して生成された信号 START— Cでカウントを開始し、 20, 000カウント時に信号 0 UT_Cを出力する。 シフトレジスタ一 34はシリアル乱数(SRND)を基準クロック(C LK— 0)にて逐次 4ピットのパラレル乱数(PRND— 4B)に変換する。 デコーダー 3 5は 、 スタート信号(START)と基準クロック(CLKJ))より制御回路 3 7を介して生成さ れた ENABLE信号がアクティブのとき (4クロックごとに 1回) にパラレル乱数(P RND— 4B)で指定された出力部(SEJ)〜SE_15)に出力される。 カウンタ一 3 6は制御 回路 3 7の出力信号 CLR—CRでスタート信号(START)が入った時点に初期化を行い 、 ENABLE信号がアクティブのとき (4クロックごとに 1回) にパラレル乱数(PRN D—4B)のデータにてデコーダー 3 5で指定されたカウンター 3 6をカウントアツ プする。 すべてのカウンタ一 3 6の総計は 5, 000カウントとなり、 基準クロック に同期して生成されたシリアル乱 について、 スタート信号から 20, 000クロック 後にその間の 4ピットごとのパラレル乱数(PRND_4B)のデータ (0〜1 5) の度 数分布データ(PokerData0〜PokerDatal5)を取得する。 レジスタ一 4 1は、 制御 回路 3 7の出力信号 CLR_CRでスタート信号(START)が入った時点に初期化(P0KD=0 )を行い、 度数分布データ(PokerData0〜PokerDatal5)を取得した後、 セレクタ一 38、 掛算器 39、 加算器 40を介して度数分布データ(PokerDataO〜PokerData 15)の 1 6個の二乗和を求めることで PokerData(I>OKD)を取得する。 比較器 42は レジスター 4 1の出力 PokerData(POKD)と上限比較データ (例えば、 1, 576, 928) および下限比較デ一夕 (例えば、 1, 563, 175) とを比較し、 Poker Judge (P0KJ)信 号を出力する。 これにより、 基準クロックに同期して生成されたシリアル乱数に ついて、 スタート信号から 20, 000+16クロック後に: PokerDataと Poker Judgeを検証 することができる。 次いで、 RunsTes tによる検証が行われる。 すなわち、 図 1 0および図 1 1に示 すように、 第 1カウンター 5 3はスタート信号(START)と基準クロック(CLK_0)よ り制御回路 5 7を介して生成された信号 START— Cでカウントを開始し、 20, 000カウ ント時に信号 OUT一 Cを出力する。 データ保持器 5 5はシリアル乱数(SRND)を基準ク
5 ロック(CLK_0)にて逐次 1ピット保持し、 比較器 5 4はシリアル乱数(SRND)とデ 一夕保持器 5 5で保持された乱数を比較し、 1クロック前の乱数と今回の乱数が 変化したときに信号 CHANGEを出力する。 第 2カウンタ一 5 6は、 信号 CHANGEが出 力されてから次の出力がされるまでのクロックをカウントし、 信号 RUNS J)を出力 する。 信号1^^ー0と同ー信号の長さ( の関係は 101^ー0+1となる。 第 2カウン
10 夕一 5 6は、 制御回路 5 7の出力信号 CLR—CCでスタート信号(START)が入ったと きと信号 CHANGEが出力されたときに初期化(RUNSJ)=0)を行う。 デコーダ一 5 8は 、 スタート信号(START)、 基準クロック(CLKJ))、 第 1カウンター 5 3の出力(OUT _C)と比較器 5 4の出力(CHANGE)より制御回路 5 7を介して生成された ENABLE信 号がアクティブ (CHANGEがアクティブ) のときで、 図 1 0ではシリアル乱数(SRN is D)が " 1 " のとき、 図 1 1ではシリアル乱数(SRND)が " 0 " のとき、 第 2カウン 夕一 5 6の出力(RUNS— D)で選択された出力(SE— 1〜SE_6+)をアクティブにする。 な お、 L=1→SE_1、— L=2→SE— 2、 ···、 L=6+→SE_6+となる。 すべてのカウンタ一 5 9は 、 制御回路 5 7の出力信号 CLR—Cでスタート信号(START)が入った時点に初期化を 行い、 デコーダ一 5 8の出力(SEJ〜SE— 6+)で指定されたカウンタ一 5 9をカウ
20 ントアップし、 1〜6 +の同一信号の長さ(L)の出現回数 (図 1 0では RunsDat al !!〜 RunsDa t a6+H、 図 1 1では RunsDa lL〜Run Da t a6+L) を取得する。 各比較器 6 0は各カウンタ一 5 9の出力 (図 1 0では RunsDat alH〜RunsDat a6+H、 図 1 1では RimsDat alL〜RunsDat a6+L) とそれぞれの上限比較データ (例えば、 2, 685、 1 , 38 6、 723、 384、 209、 209) および下限比較データ (例えば、 2, 315、 1 , 114, 527、
25 240、 103、 103) とを比較し、 判定信号 (図 1 0では Runs JudgelH~Runs Judge6+H 、 図 1 1では Rims JudgelL〜Riins Jiidge6+L) を出力する。 これにより、 基準クロッ クに同期して生成されたシリアル乱数について、 スタート信号から 20, 000クロッ ク後に RunsTes tのデータと判定を検証することができる。
最後に、 LongRunsTes tによる検証が行われる。 すなわち、 図 1 2に示すように 、 第 1カウンター 7 3はスタート信号(START)と基準クロック(CLK—0)より制御回 路 5 7を介して生成された信号 START— Cでカウントを開始し、 20, 000カウント時に 信号 OUT— Cを出力する。 データ保持器 7 5はシリアル乱数(SRND)を基準クロック( CLK_0)にて逐次 1ピット保持し、 比較器 7 4はシリアル乱数(SRND)とデー夕保持 器 7 5で保持された乱数を比較し、 1クロック前の乱数と今回の乱数が変化した ときに信号 CHANGEを出力する。 第 2カウンター 7 7は、 信号 CHANGEが出力されて から次の出力がされるまでのクロックをカウントし、 信号 LRUNS— Dを出力する。 第 2カウンター 7 7は、 制御回路 7 6の出力信号 CLR—CCでスタート信号(START) が入つたときと信号 CHANGEが出力されたときに初期化(LRUNS_D=0)を行う。 レジ スター 7 9は、 制御回路 7 6の出力信号 (; LR_Rでスタート信号(START)が入ったと きに初期化(LRUNS— D=0)を行う。 レジスター 7 9の出力信号 LongRunsDa t a (LRND) と第 2カウンタ一 7 7の出力信号 ttRUNS_D)を第 1比較器 7 8で比較し、 LRNDく L RUNS— Dのときに第 1比較器 7 8は出力信号 C0MPJJを出力し、 制御回路 7 6を介し てレジスター 7 9に LOAD— R信号を出力して、 レジス夕一 7 9に逐次 LRUNS_Dの最 大値を保持する。 第 2比較器 8 0は上限比較データ (例えば、 26) と比較し、 判 定信号 LongRuns J udge aRNJ)を出力する。 信号 LRUNS_D、 LRNDと同一信号の長さ(L )の関係は L=LRUNS_D+ 1、 L (max) =LRND+l=LRUNS— D (max) +1となる。 これにより、 基 準クロックに同期して生成されたシリアル乱数について、 スタート信号から 20, 0 00クロック後に LongRunsTes tのデータと判定を検証することができる。
そして、 こうして 4種類の検定方法で検証された一様性乱数の検証データは、 図 4に示すように、 第 2セレクタ一 9 7に保持され、 使用者の要望に応じて出力 される。 選択信号(A0、 A1 )と動作テーブルを表 3に示す。
【表 3】
Figure imgf000022_0001
すなわち、 物理乱数発生器 1は、 選択信号 (A1)の状態 ( " 0 " または " 1 " ) 3 により、 読出しクロック(CLKJOでのパラレル乱数の更新 (アツプノダウンカウ ン夕一 7のカウントダウン) または非更新とする。 出力のパラレル乱数 RND)は 第 2セレクタ一 9 7の DATAJ)に接続される。 出力(C0ND_R)には書込みアドレス(A DDRESS)などの物理乱数生成時おょぴパラレル乱数変換時に生成される各種デー タゃフラグを出力し、 第 2セレクタ一 9 7の DATA— 1に接続される。
乱数検証回路 2 1は、 選択信号(A0、 A1)が 2 (ADDRE一 S)のときに制御回路 9 4 を介して読出しクロック(CLK_R)信号で検証を開始し、 Monob i tTes t、 PokerTes t 、 RunsTes tおよび LongRunsTes tを基準クロック(CLK—0)で 20, 000+16サイクルで完 了し、 判定結果、 判定データ、 PokerTes tの生データを出力して第 1セレクタ一 9 6に接続される。 その詳細を表 4に示す。
[表 4】
Figure imgf000024_0001
なお、 総合判定はすべての判定結果が合格のときに出力される。 出力(C0ND_T) には、 乱数検証時に生成される各種データやフラグを出力し、 第 2セレクタ一 9 7の DATA— 2にカウンタ一出力のモニターァドレス(SEL— ADD)とともに接続される 。 また、 検証のスタート信号にてパラレル乱数生成用のカウンタ一 3、 シフトレ ジス夕一 4、 アツプノダウンカウンター 7とすべてのレジスタ一 5は初期化され 、 検証された物理乱数を保持して検証後の物理乱数を使用することができる。 カウンター 9 5は第 1セレクタ一 9 6のモニターァドレス(SEL_ADD)を生成す る。 カウンタ一 9 5は、 制御回路 9 4の出力信号(CLR一 C)で選択信号(A0、 A1)が 2 (ADDRE— S)のときに読出しクロック(CLKJ 信号で検証を開始し、 この開始時に 初期化を行い、 制御回路 9 4の出力信号(CLK—C)で選択信号 (A0、 A1)が 3 (ADDRE— S)のときに読出しクロック(CLK_R)信号でカウンター 9 5のカウントアップ (更 新) を行う。
これにより、 基準クロックに同期して生成されたシリアル乱数(SRND)と逐次補 充されるパラレル乱数(PRND)の生成及ぴ一様性の検証を逐次行うことができる。 こうすることにより、 物理乱数発生器 1の検証およびデータの確認が容易とな り、 検証後の乱数を活用することができる。 選択信号(A0、 A1)と第 2セレクタ一 9 7を用いることで入出力端子を大幅に減らすことができる。 選択信号(A0、 A1) 、 読出しクロック(CLKJ 、 カウンター 9 5と第 2セレクタ一 9 7で、 参照でき る有効な検証データを拡大することができる。
なお、 図 1 3に示すように、 物理乱数発生器 1にチップセレクト(CS)と出カイ ネーブル(0E)の入力を付加し、 パラレル乱数 [PRND (O)〜PRND (n- 1) ]の出力形態を 3ステート ( " 0 "、 " 1 "、 of f ) にすることもできる。
また、 図 1 4および図 1 5に示すように、 複数個 (図 1 4では p個) の物理乱 数発生器 1とセレクタ一 1 2とで高速 (図 1 4では p倍) の乱数生成スピードを 獲得することも可能である。 ここで、 基準クロック(CLK— 0)のエッジ (例えば、 立上りエッジ) に対する読出しクロック(CLKJ0のエッジ (例えば、 立上りエツ ジ) の禁止域(i d_Ra+t dJ)a+ 2 X t d—mg)を非常に狭く考慮することのみで非同期 または同期式の高速乱数発生を容易に実現することができる。
このように、 チップセレクト(CS)と出力イネ一ブル(0E)を有することで、 物理 乱数発生器 1を複数個接続することが容易となり、 乱数生成の高速化が可能とな る。 また、 チップセレクト(CS)と出力イネ一ブル(0E)を有することで、 C P Uを 使用したシステムに物理乱数発生器 1を容易に接続することができる。
なお、 上述の実施形態では、 基準クロック(CLK—0)のエッジに対する読出しク ロック(CLKJ0のエッジの禁止域(td—Ra+t(L0a+ 2 X td— mg)を非常に小さくして基 準クロック(CLK_0)と読出しクロック(CLKJ0との干渉を最小限とするため、 基準 クロック側および読出しクロック側にそれぞれ 2個の遅延回路 9、 1 0を設けた 場合について説明したが、 基準クロック側と読出しクロック側のいずれか一方に だけ遅延回路 9、 1 0を設けてもよく、 遅延回路 9、 1 0の個数も 1個以上であ れば何個でも構わない。 或いはまた、 遅延回路 9、 1 0に代えて波形成形回路 ( 例えば、 単安定マルチバイブレータ) を付加しても、 同じ効果を得ることができ る。
以上説明したように、 本発明の上記第 2の態様のうち請求項 4〜 1 0に係る発 明によれば、 生成された物理乱数を効率よく利用することができるとともに、 そ の乱数の一様性を容易に検定して使用することができ、 かつ、 簡単な回路構成に よりこれらを実現することが可能となる。
また、 本発明の第 2の態様のうち請求項 1 1および 1 2に係る発明によれば、 複数個の物理乱数発生 I Cを用いて高速に乱数を発生させることが容易となり、 かつ、 Dat a Busに直接接続できるようになるため、 物理乱数発生装置の使い易さ が格段に向上する。
<発明の第 3の態様 >
本発明の更に別の実施態様において、 図 1 6および図 1 8に示すように、 抵抗 Rおよびキャパシ夕 (コンデンサ) Cでクロック信号を積分して積分波形を出力 する積分回路 1 0 5と、 ノイズ源 1 0 6と、 このノイズ源 1 0 6のノイズを増幅 してノイズ信号を出力する増幅器 1 0 7と、 積分波形とノイズ信号とをミキシン グするミキサ一 1 0 8と、 このミキサー 1 0 8の出力波形に基づいて生成される ジッターの最初のエッジを検出するエッジ検出回路 1 0 9とが 2個ずつ設けられ ている。 各エッジ検出回路 1 0 9は、 図 1 7に示すような回路構成となっており 、 これらのエッジ検出回路 1 0 9の後段には、 図 1 6に示すように、 各エッジ検 出回路 109の出力信号の位相差に基づいて" 0" または" 1" を出力する D夕 イブのフリップ ·フロップ 110が設けられている。 更に、 フリップ 'フロップ 110の後段には、 乱数をクロック信号に同期させる Dタイプのフリップ ·フロ ップ 111が設けられている。
また、 物理乱数発生器 101の最前段には、 各積分回路 105に入力される入 力信号の位相を調整する位相調整部 102が設けられており、 この位相調整部 1 02はディレー 121、 第 1セレクタ一 122及びアップ Zダウンカウンタ一 1 23から構成されている。
また、 フリップ ·フロップ 1 11の出力とアップ/ダウンカウンタ一 123と の間にはフィードパック回路 103が設けられており、 フリップ ' フロップ 11 1〜出力される" 0" または" 1 " がそれぞれ 50 %に収束するようにフリップ •フロップ 111の出力が位相調整部 102にフィードパックされる。 すなわち 、 フィードパック回路 103は第 1カウンター 131、 比較器 132, 第 2カウ ンター 133, レジスター 134, 比較器 135, シフトレジス夕一/レジス夕 —136、 加算機' 137から構成されており、 第 1カウンタ一 131および比較 器 13.2はフィードパックの周期を乱数 (2 xm) で生成する。 また、 第 2カウ ンター 133、 レジスター 134および比較器 135はフィードパックの周期 ( 2 xm) 中の" 0" または" 1" の数をカウント (n) し、 比較データをアップ /ダウンカウンター 123に出力して乱数の一様性を補正するフィードパック信 号を出力する。 さらに、 シフトレジス夕/レジスター 136および加算機 137 は、 フィードパックの周期を決める乱数 (m) を出力 (OUT) より取得する。 これにより、 フィードパック周期による乱数の質の低下 (癖) を 防ぐことがで さる。
さらに、 位相調整部 102各積分回路 105との間にはそれぞれ第 2セレクタ - 115および第 3セレクタ一 116が設けられていると共に、 第 1セレクタ一 122とアップ/ダウンカウンター 123との間には極性切換回路 113が設け られており、 表 5に示すように、 アツプ ダウンカウンター 123の最上位ビッ ト MSBによって第 1セレクタ一 122と第 2セレクタ一 115および第 3セレ クタ一 116との入力の極性切換が行われる。 【表 5】
Figure imgf000028_0001
したがって、 2系統の信号ラインに応じた 2個のディレーおょぴセレクタ一を 必要とする従来の物理乱数発生器と比べて、 ディレー 1 2 1及び第 1セレクタ一 1 2 2を半分にしてゲート数を削減することができるので、 物理乱数発生器 1 0 1の規模を小さくして占有面積を縮小し、 その消費電力を低減することが可能と なる。
図 1 9は本発明の更に別の実施例による物理乱数発生器の回路図である。 この 物理乱数発生器 1 0 1においては、 図 1 9に示すように、 抵抗 Rおよびキャパシ 夕 Cでクロック信号を積分して積分波形を出力する積分回路 1 0 4が 1つ設けら れていると共に、 ノイズ源 1 0 6と、 このノイズ源 1 0 6のノイズを増幅してノ ィズ信号を出力する増幅器 1 0 7と、 積分波形とノイズ信号とをミキシングする ミキサー 1 0 8と、 このミキサ一 1 0 8の出力波形に基づいて生成されるジッタ —の最初のエッジを検出するエッジ検出回路 1 0 9とが 2個ずつ設けられている 。 これらのエッジ検出回路 1 0 9の後段には、 各エッジ検出回路 9の出力信号の 位相差に基づいて" 0 " または" 1 " を出力する Dタイプのフリップ ·フロップ 1 1 0が設けられており、 フリップ ·フロップ 1 1 0の後段には、 乱数をク口ッ ク信号に同期させる Dタイプのフリップ · フロップ 1 1 0が設けられている。 また、 フリップ ·フロップ 1 1 0と各エッジ検出回路 1 0 9との間 (各エツジ 検出回路 1 0 9の後段) にはそれぞれ、 ディレーとセレクタ一からなる可変ディ レー 1 1 9が設けられており、 フリップ · フロップ 1 1 0に入力される入力信号 の位相を調整することができる。
さらに、 フリップ ·フロップ 1 1 1の出力とアップ Zダウンカウンター 1 2 3 との間にはフィードパック回路 1 0 3が設けられており、 フリップ ·フロップ 1 1 1から出力される" 0 " または" 1 " がそれぞれ 5 0 %に収束するようにフリ ップ · フロップ 1 1 1の出力が可変ディレ一 1 1 9にフィードバックされる。 したがって、 2系統の信号ラインについて積分回路 1 0 5が 1つで済むことに 加えて、 積分回路 1 0 5を構成する抵抗 R、 キャパシ夕 Cの誤差による位相調整 範囲を狭めることができるため、 ディレーとセレクタ一からなる可変ディレー 1 1 9を縮小し、 ゲート数を削減することができることから、 物理乱数発生器 1 0 1の規模を小さくして占有面積を縮小し、 その消費電力を低減することが可能と なる。
尚、 上記の第 1 9図に示した実施形態において、 図 2 0に示すように、 積分回 路 1 0 5の抵抗 Rの後段に F E T (電界トランジスタ) 1 1 7をキャパシタ Cと 並列に付加してもよい。 この場合は、 図 2 1に示すように、 積分回路 1 0 5のキ ャパシタ Cに充電された電荷を放電して電位を積分波形の基点に戻すことにより 、 積分波形の基点が常に安定し、 その結果としてジッターの分布も安定する。 さ らに、 ジッターの分布が安定することは良質な乱数を生成することにつながる。 また、 乱数生成は電位が基点に戻るまで待たなければならないが、 積分回路 1 0 5のキャパシタ Cに充電された電荷が高速に放電され、 電位も高速に積分波形の 基点に戻るため、 乱数生成までの待ち時間を短縮することができる。 それに加え 、 乱数生成後に波形の電位が上がりきるのを待たずして強制的に基点まで電位を 下げることができるので、 さらなる時間短縮が可能となる (乱数生成したら、 す ぐに電位を基点まで戻せる) 。 これにより、 乱数生成スピードを大幅に高速化す ることができる。 同様に、 上述した図 1 6〜図 1 8に示した実施形態において、 各積分回路 1 0 5の抵抗 Rの後段に F E T 1 1 7をキャパシタ Cと並列に付加す ることもできる。
また、 上記図 1 9に示した実施形態において、 図 2 2に示すように、 積分回路 1 0 5の抵抗 Rに代えて、 定電流回路 1 1 8も設けても構わない。 この場合は、 図 2 3に示すように、 キャパシタ Cの充電時の積分波形が直線となり、 ノイズに 対して変調したジッターの歪みがなくなるため、 乱数の質が向上する。 同様に、 上述した図 1 6〜図 1 8の実施形態において、 各積分回路 1 0 5の抵抗 Rに代え て定電流回路 1 1 8を設けることも可能である。
また、 図 3 Bの実施例について説明したと同様に、 上述した物理乱数発生器 1 0 1を 個 (kは 2以上の数値) 並列に接続し、 各物理乱数発生器 1 0 1に入力 されたパラレル物理乱数を k個のシリアル物理乱数に並べ替え、 排他的論理和 ( X O R) 素子を介して出力することにより、 複数個の物理乱数発生器 1 0 1から なる物理乱数発生装置の乱数の質を向上させることができる。
また、 図 1 6〜図 1 8の実施形態及ぴ図 1 9の実施形態においては、 乱数発生 用のフリップ ·フロップとして Dタイプのフリップ · フロップを用いた場合につ いて説明したが、 本発明ではこれに限定されるわけではなく、 これと同等の機能 を有するフリップ ·フロップであれば代用できる。
また、 図 1 9の実施形態においては、 図示の如く、 ディレーとセレクタ一から なる可変ディレー 1 1 9をエッジ検出回路 1 0 9の後段に設けた場合について説 明したが、 可変ディレー 1 1 9をエッジ検出回路 1 0 9の前段に設けてもよい。

Claims

請 求 の 範 囲
1 . 複数の物理乱数を乱数保持装置 (2 0 0 ) に入力して保持し、 この乱数保持 装置に保持された物理乱数の一部をセレクタ一のァドレスとして使用し、 そのァ ドレスに基づいて残りの部分から乱数をランダムに選択して出力することを特徴 とする物理乱数の一様化手法。
2 . 前記セレクタ一に代え、 論理積回路を用い乱数保持装置に保持された乱数を ランダムに選択して、 それらの排他的論理和を出力することを特徴とする物理乱 数の一様化手法。
3 . セレクタ一の出力と物理乱数を入力とする排他的論理和回路を設けその出力 を乱数保持装置 (2 0 0 ) 入力とする請求項 1に記載の物理乱数の一様化手法。
4 . 請求項 1から請求項 3の何れかの操作を 2サイクル以上繰り返して物理乱数 を多段に一様化することを特徴とする物理乱数の一様化手法。
5 . 乱数保持装置としてシフトレジスタ (2 0 0 ) を用いたことを特徴とする請 求項 1から請求項 4までのいずれかに記載の物理乱数の一様化手法。
6 . 物理乱数発生器を有する物理乱数発生装置であって、 該物理乱数発生器が、 基準クロック信号に応じてシリァル乱数を生成するシリアル物理乱数発生器を 備え、
シリァル乱数をパラレル乱数に変換するシリァル Zパラレル変換部を備え、 パラレル乱数を保持しうる複数個のレジスタ一を備え、
前記シリアル パラレル変換部によってパラレル乱数が生成される度に前記レ ジスターに順次パラレル乱数を保持し、 かつ、 読出しクロック信号に応じて前記 レジスタ一からパラレル乱数を読み出して出力するとともに、 読み出しの終了し たレジスターに他のレジスタ一からパラレル乱数をシフトさせて内容を逐次更新 する制御回路を備えたことを特徴とする物理乱数発生装置。
7 . 前記物理乱数発生器が、
複数個のレジスタ一のうちパラレル乱数を保持すべきレジスタ—を決めて書き 込みァドレスを出力するアップ/ダウンカウンターを備え、
前記アップ/ダウンカウンターが出力した書き込みアドレスに基づき、 パラレ ル乱数を保持すべきレジスターを選択してロード信号を出力するセレクタ—を備 え、
前記セレクタ一からの口一ド信号に基づいて前記シリアル/パラレル変換部内 のパラレル乱数を前記レジスターのうち後段のレジスターから前段のレジスター へ順次保持し、 かつ、 読出しクロック信号に応じて前記レジスターのうち最後段 からパラレル乱数を読み出して出力するとともに、 このレジスターより前段にあ る各レジスタ一内のパラレル乱数を後段へ順次シフトする制御回路を備えたこと を特徵とする請求項 4に記載の物理乱数発生装置。
8 . 前記物理乱数発生器が、
前記シリアル物理乱数発生器が生成したシリアル乱数の総数をカウントする総 数カウンタ一を備え、
前記総数力ゥンタ一がカウントしたシリアル乱数の総数が所定のビット数に達 したとき、 これらのシリアル乱数に基づいてその一様性を検証する乱数検証回路 を備えたことを特徴とする請求項 6または請求項 7に記載の物理乱数発生装置。
9 . 前記乱数検証回路の乱数検証方法として、
乱数値 " 0 " または " 1 " の出現度数をカウントし、 これを規定値と比較する ことによって乱数の一様性を検証する乱数検証方法を採用したことを特徴とする 請求項 8に記載の物理乱数発生装置。
1 0 . 前記乱数検証回路の乱数検証方法として、
4ビットで一つの乱数値とし、 各々の乱数値の出現度数に基づいて算出された χ二乗値を規定値と比較することによって乱数の一様性を検証する乱数検証方法 を採用したことを特徴とする請求 8に記載の物理乱数発生装置。
1 1 . 前記乱数検証回路の乱数検証方法として、
連の長さ別にその出現度数をカウントし、 これらを規定値と比較することによ つて乱数の一様性を検証する乱数検証方法を採用したことを特徴とする請求項 8 に記載の物理乱数発生装置。
1 2 . 前記乱数検証回路の乱数検証方法として、
所定ピット数の乱数中に出現した最長の連の長さを規定値と比較することによ つて乱数の一様性を検証する乱数検証方法を採用したことを特徴とする請求項 8 に記載の物理乱数発生装置。
1 3 . チップセレクトと出力イネ一ブル機能とそれに対応した端子を備え、 出力 部のバッファー機能を 3ステートとしたことを特徴とする請求項 6から請求項 1 2までのいずれかに記載の物理乱数発生装置。
1 4 . 前記物理乱数発生器を複数個用意し、 セレクタ一のセレクト信号に基づき 、 前記物理乱数発生器の中から一つを選択して乱数または乱数検証デ一タを出力 するようにしたことを特徴とする請求項 6から請求項 1 3までのいずれかに記載 の物理乱数発生装置。
1 5 . 抵抗およびキャパシ夕でクロック信号を積分して積分波形を出力する積分 回路と、 ノイズ源と、 このノイズ源のノイズを増幅してノイズ信号を出力する増 幅器と、 前記積分波形と前記ノイズ信号とをミキシングするミキサーと、 このミ キサ一の出力波形に基づいて生成されるジッターの最初のエッジを検出するエツ ジ検出回路とを 2個ずつ備え、
前記各エッジ検出回路の出力信号の位相差に基づいて" 0 " または" 1 " を出 力するフリップ · フロップを備え、
前記各積分回路に入力される入力信号の位相を調整するディレー、 第 1セレク ターおよびアップノダウンカウンタ一からなる位相調整部を備え、 前記フリップ ·フロップから出力される" 0 " または" 1 " がそれぞれ 5 0 % に収束するように当該フリップ ·フロップの出力を前記位相調整部にフィードパ ックするフィードパック回路を備えた物理乱数発生器において、
前記各積分回路の前段にそれぞれ第 2セレクタ一及び第 3セレクタ一を設け、 前記アツプ Zダウンカウン夕一の最上位ビットによつて前記第 1セレクタ一と 前記第 2セレクタ一およぴ前記第 3セレクタ一との入力の極性切換を行う極性切 換回路を設けたことを特徴とする物理乱数発送器。
1 6 . 抵抗おょぴキャパシタでクロック信号を積分して積分波形を出力する積分 回路を 1個備え、
ノイズ源と、 このノイズ源のノイズを増幅してノイズ信号を出力するアンプと 、 前記積分波形と前記ノイズ信号とをミキシングするミキサーと、 このミキサー の出力波形に基づいて生成されるジッターの最初のエッジを検出するエッジ検出
15 回路とを 2個ずつ備え、
前記各エッジ検出回路の出力信号の位相差に基づいて" 0 " または" 1 " を出 力するフリップ · フロップを備えた物理乱数発生器において、
前記フリップ · フロップに入力される入力信号の位相を調整するディレーとセ レクターからなる可変ディレーを前記各エッジ検出回路の前段または後段に設け
20
前記フリップ ' フロップから出力される" 0 " または" 1 " がそれぞれ 5 0 % に収束するように当該フリップ · フロップの出力を前記可変ディレーにフィード パックするフィードパック回路を設けたことを特徴とする物理乱数発生器。
25 1 7 . 前記積分回路の抵抗の後段に F E T (電界効果トランジスタ) を当該積分 回路のキャパシタと並列に付加したことを特徵とする請求項 1 5又は請求項 1 6 の物理乱数発生器。
1 8 . 前記積分回路の抵抗に代えて、 定電流回路を設けたことを特徴とする請求 項 1 5から請求項 1 7までのいずれかに記載の物理乱数発生器。
1 9 . 請求項 1 5から請求項 1 8までのいずれかに記載の物理乱数発生器を 2個 以上並列接続し、 前記各物理乱数発生器に入力されたパラレル物理乱数をシリア ル物理乱数に並べ替えて出力するようにした物理乱数発生装置。
PCT/JP2003/012213 2002-09-30 2003-09-25 物理乱数の一様化手法と物理乱数発生装置 WO2004031941A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/528,910 US7461111B2 (en) 2002-09-30 2003-09-25 Method of uniforming physical random number and physical number generation device

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2002285168A JP2004118799A (ja) 2002-09-30 2002-09-30 物理乱数の一様化手法
JP2002-285168 2002-09-30
JP2003-101085 2003-04-04
JP2003101085A JP2004310314A (ja) 2003-04-04 2003-04-04 物理乱数発生装置
JP2003294101A JP4107196B2 (ja) 2003-08-18 2003-08-18 物理乱数発生器および物理乱数発生装置
JP2003-294101 2003-08-18

Publications (1)

Publication Number Publication Date
WO2004031941A1 true WO2004031941A1 (ja) 2004-04-15

Family

ID=32074140

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/012213 WO2004031941A1 (ja) 2002-09-30 2003-09-25 物理乱数の一様化手法と物理乱数発生装置

Country Status (2)

Country Link
US (1) US7461111B2 (ja)
WO (1) WO2004031941A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4094570B2 (ja) * 2004-03-02 2008-06-04 株式会社東芝 乱数検査回路、乱数生成回路、半導体集積装置、icカードおよび情報端末機器
EP1763136A1 (fr) * 2005-09-07 2007-03-14 Stmicroelectronics Sa Procédé de génération de nombres variables
US20080076525A1 (en) * 2006-08-25 2008-03-27 Igt Quantum gaming system
US8583712B2 (en) * 2007-09-18 2013-11-12 Seagate Technology Llc Multi-bit sampling of oscillator jitter for random number generation
CN103391181B (zh) * 2012-05-11 2017-05-10 株式会社日立制作所 基站向终端传输数据的方法、基站装置及中心控制服务器
US10235261B2 (en) 2013-07-26 2019-03-19 Ictk Holdings Co., Ltd. Apparatus and method for testing randomness
US9031210B2 (en) * 2013-07-31 2015-05-12 C21 Patents, Llc Device for non-intrusive screening of telephone calls and method thereof
JP5875717B1 (ja) * 2015-01-14 2016-03-02 日本電信電話株式会社 乱数生成装置、乱数生成方法、およびプログラム
KR101920190B1 (ko) * 2016-11-22 2019-02-08 한국인터넷진흥원 임의의 ip 생성 방법 및 그 장치
US10965456B2 (en) 2017-09-25 2021-03-30 The Boeing Company Systems and methods for facilitating data encryption and decryption and erasing of associated information
US10860403B2 (en) * 2017-09-25 2020-12-08 The Boeing Company Systems and methods for facilitating truly random bit generation
US10924263B2 (en) 2017-09-25 2021-02-16 The Boeing Company Systems and methods for facilitating iterative key generation and data encryption and decryption

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6197746A (ja) * 1984-10-15 1986-05-16 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 乱数発生装置
JPS62109082A (ja) * 1985-11-08 1987-05-20 日本電気株式会社 乱数発生器
JPH01258130A (ja) * 1988-04-08 1989-10-16 Matsushita Electric Ind Co Ltd 擬似乱数発生装置
JPH0818550A (ja) * 1994-04-27 1996-01-19 N T T Ido Tsushinmo Kk 符号系列発生器
JPH0997170A (ja) * 1995-10-02 1997-04-08 Niko Denshi Kk 8ビット乱数作成装置
JP2003029963A (ja) * 2001-07-17 2003-01-31 Fdk Corp 1ビット乱数発生装置および多数ビット乱数発生装置ならびに確率発生装置
JP2003093620A (ja) * 2001-09-27 2003-04-02 Iwaki Electronics Corp 確率発生装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066592A (ja) * 1998-08-19 2000-03-03 Syst Kogaku Kk 乱数生成装置
US6070178A (en) * 1999-02-17 2000-05-30 Starium Ltd Generating random numbers from random signals without being affected by any interfering signals
GB2357610B (en) * 1999-12-20 2004-04-28 Mitsubishi Electric Inf Tech Method and apparatus for generating numbers
FR2802661B1 (fr) * 1999-12-21 2003-10-31 Bull Sa Generateur de nombres aleatoires haut debit
JP2001344094A (ja) 2000-05-31 2001-12-14 Ntt Electornics Corp 乱数発生回路
CN1278221C (zh) * 2000-10-24 2006-10-04 日本电脑警备有限公司 随机数发生装置
US7028059B2 (en) * 2002-06-24 2006-04-11 Sun Microsystems, Inc. Apparatus and method for random number generation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6197746A (ja) * 1984-10-15 1986-05-16 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 乱数発生装置
JPS62109082A (ja) * 1985-11-08 1987-05-20 日本電気株式会社 乱数発生器
JPH01258130A (ja) * 1988-04-08 1989-10-16 Matsushita Electric Ind Co Ltd 擬似乱数発生装置
JPH0818550A (ja) * 1994-04-27 1996-01-19 N T T Ido Tsushinmo Kk 符号系列発生器
JPH0997170A (ja) * 1995-10-02 1997-04-08 Niko Denshi Kk 8ビット乱数作成装置
JP2003029963A (ja) * 2001-07-17 2003-01-31 Fdk Corp 1ビット乱数発生装置および多数ビット乱数発生装置ならびに確率発生装置
JP2003093620A (ja) * 2001-09-27 2003-04-02 Iwaki Electronics Corp 確率発生装置

Also Published As

Publication number Publication date
US7461111B2 (en) 2008-12-02
US20060040731A1 (en) 2006-02-23

Similar Documents

Publication Publication Date Title
WO2004031941A1 (ja) 物理乱数の一様化手法と物理乱数発生装置
US7376687B2 (en) Pseudo-random number generator
CN107038015B (zh) 一种高速真随机数发生器
CN101821952B (zh) 用于基于锁存器的模数转换的系统和方法
EP3709157B1 (en) Random number generator
WO2008074126A1 (en) Id generation apparatus and method for serially interconnected devices
TW200907363A (en) Test apparatus and testing method.
TW200406779A (en) Semiconductor integrated circuit and memory test method
CN100407109C (zh) 数据转换电路和半导体装置
US20020181639A1 (en) Adaptive de-skew clock generation
US7342430B1 (en) Write strategy with multi-stage delay cell for providing stable delays on EFM clock
JP3292584B2 (ja) タイミング発生装置
US7436725B2 (en) Data generator having stable duration from trigger arrival to data output start
JP2006318475A (ja) 処理及び記憶能力に制限のある装置における乱数分布発生システム及び方法
JP2004310314A (ja) 物理乱数発生装置
US8270501B2 (en) Clocking architectures in high-speed signaling systems
US7890679B2 (en) Data generator for generating data of arbitrary length
US7428184B2 (en) Circuit arrangement for generating an n-bit output pointer, semiconductor memory and method for adjusting a read latency
US20090167401A1 (en) Timing Signal Generator Providing Synchronized Timing Signals At Non-Integer Clock Multiples Adjustable By More Than One Period
WO2021142830A1 (zh) 随机数生成电路、随机数生成方法和电子设备
JP2006318002A (ja) クロック分周回路
JP5056262B2 (ja) データ送信装置、データ受信装置、データ転送装置、及び電子機器
JP3471275B2 (ja) 同期化回路
JP4107196B2 (ja) 物理乱数発生器および物理乱数発生装置
JPS604327A (ja) デジタル・パタ−ン発生器

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2006040731

Country of ref document: US

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 10528910

Country of ref document: US

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10528910

Country of ref document: US