WO2011117929A1 - 乱数生成器、暗号化装置、及び認証装置 - Google Patents

乱数生成器、暗号化装置、及び認証装置 Download PDF

Info

Publication number
WO2011117929A1
WO2011117929A1 PCT/JP2010/002228 JP2010002228W WO2011117929A1 WO 2011117929 A1 WO2011117929 A1 WO 2011117929A1 JP 2010002228 W JP2010002228 W JP 2010002228W WO 2011117929 A1 WO2011117929 A1 WO 2011117929A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
output
unit
input
circuit
Prior art date
Application number
PCT/JP2010/002228
Other languages
English (en)
French (fr)
Inventor
山本大
伊藤孝一
武仲正彦
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2010/002228 priority Critical patent/WO2011117929A1/ja
Priority to JP2012506670A priority patent/JP5273294B2/ja
Priority to EP10848323.1A priority patent/EP2551837B1/en
Publication of WO2011117929A1 publication Critical patent/WO2011117929A1/ja
Priority to US13/626,221 priority patent/US9015218B2/en

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Definitions

  • Embodiments discussed herein relate to random number generation techniques.
  • Encryption methods are roughly classified into public key encryption methods and common key encryption methods.
  • the public key cryptosystem is a scheme that uses different keys for encryption and decryption of information, and publicly discloses a key (public key) used for encryption, while using a key (secret key) for decryption of ciphertext. Is a method of maintaining security by making secret information only for the receiver.
  • the common key cryptosystem uses a common key (secret key) for information encryption and decryption, and this secret key is secret to third parties excluding the sender and receiver. It is a method that keeps safety by using information.
  • the security of these encryption methods depends on the security of the secret key. In other words, if the secret key is predicted by a third party by some means, the security of the encryption method is destroyed. Therefore, the secret key is generally generated using a random number in order to make third party prediction impossible.
  • Random numbers are roughly classified into two types, pseudo random numbers and true random numbers (physical random numbers), depending on the generation method.
  • a pseudo-random number is a part of a sequence generated by deterministic calculation. It is a pseudo-random number generated by giving a seed called seed as an initial value to a pseudo-random number generation algorithm. is there. Pseudorandom numbers are theoretically predictable once the generation method (pseudorandom number generation algorithm) is known, and if the internal initial value (seed above) is also known, it may be calculated first. I can do it. For this reason, using a pseudo-random number for generating a secret key may cause a problem in encryption security.
  • a dedicated device for generating pseudo-random numbers is not essential, and there is an advantage that it can be generated by a general-purpose arithmetic device or the like.
  • the true random number is a random number generated by using a physical phenomenon having an essentially random property such as thermal noise in an electronic device. Since the random numbers generated in this way are not reproducible and cannot be predicted by anyone, encryption performed using a secret key generated using a genuine random number is highly secure. .
  • a smart card is known as a device on the end user side when using services such as electronic payment and a basic resident register network.
  • a smart card is a card on which an IC (integrated circuit) chip is mounted. In the memory area inside the IC chip, a secret key given to the user is stored.
  • Some smart card IC chips are equipped with an arithmetic processing unit that provides various functions such as an encryption function and a digital signature / authentication function. When these functions are used, the user's private key is used.
  • a small-sized device such as the smart card described above is provided with a dedicated random number generator for generating random numbers.
  • FIG. 1A illustrates a circuit configuration example of an RS latch.
  • the RS latch 10 includes NAND (Negative AND) gates 11 and 12.
  • the input of the RS latch 10 is negative logic.
  • the high level at the two logic levels having different potentials is expressed as a value “1”, and the low level is expressed as a value “0”.
  • a negative logic signal is represented by adding an overbar on the signal name.
  • a negative logic signal is represented by “#”. Therefore, for example, the set input of the RS latch 10 is expressed as “#S”, and the reset input of the RS latch 10 is expressed as “#R”.
  • the set input “#S” and the output of the NAND gate 12 are input to the two inputs of the NAND gate 11, respectively. Further, the reset input “#R” and the output of the NAND gate 11 are input to the two inputs of the NAND gate 12, respectively. Further, the output of the NAND gate 11 becomes the output Q of the RS latch 10. The output “#Q” is output from the output of the NAND gate 12.
  • FIG. 1B is a truth table of the RS latch 10.
  • the set input S and the reset input R are expressed in positive logic.
  • the output logic is stable.
  • both outputs of the RS latch 10 are in an unstable state of the intermediate potential.
  • Such an unstable state that is abnormal as a digital circuit is called a metastable.
  • FIG. 2A is a first example of a circuit configuration of a random number generator using the RS latch 10.
  • the random number generator 20 is configured to input the same value A to both the set input “#S” and the reset input “#R” of the RS latch 10.
  • the output Q and the output “#Q” of the RS latch 10 which are the outputs of the random number generator 20 are assumed to be B and C, respectively.
  • FIG. 2B is an input / output waveform example of the random number generator 20, and shows the waveform of the output B when an alternating signal (clock signal) of 0 and 1 is input as the input A.
  • the RS latch 10 falls into a metastable state, and the value of the output B is not stable. It becomes. This metastable state continues for a certain period of time Td from the rising edge of the clock signal, and then the value of the output B converges to either 0 or 1, but to which of them converges? Is undefined.
  • the random number generator 20 uses the value of the output B that converges after the metastable state as a random number generation result.
  • Such a method for generating a random number using a metastable of a digital circuit is widely known. However, even if the random number generator 20 having such a configuration is mounted, there are many cases where a random number is not actually generated.
  • the input signal A needs to be input to the NAND gate 11 and the NAND gate 12 at the same time. If the input timing of the input signal A is different, the output value is biased. That is, the time lag (skew) when the input signal A arrives at the NAND gate 11 and the NAND gate 12 needs to be small.
  • the random number generator 20 may not generate random numbers due to individual differences of the RS latch 10. However, it is not easy to obtain the RS latch 10 that can satisfy the above-described requirements. For example, when the random number generator 20 is configured by using each of the 64 RS latches 10 implemented in a certain FPGA (Field Programmable Gate Array), only 4 pieces of random numbers are actually generated (probability 1). / 16).
  • FPGA Field Programmable Gate Array
  • FIG. 3 is a second example of the circuit configuration of the random number generator using the RS latch 10.
  • the random number generator 30 shown in FIG. 3 includes n (n is an integer of 2 or more) RS latches 10-1,..., 10-n and an XOR (exclusive OR) gate 31.
  • the same clock signal is input to each set input “#S” and reset input “#R”.
  • the XOR gate 31 receives the output Q of each of the RS latches 10-1,..., 10-n and outputs the exclusive OR as a random number generation result in the random number generator 30.
  • the random number generator 30 uses n RS latches 10-1,..., 10-n to configure n random number generators 20 in FIG.
  • the obtained random numbers are aggregated into 1 bit and used as the random number generation result in the random number generator 30.
  • a method of generating a random number using a metastable of each latch after mounting a large number of latches as in the random number generator 30 of FIG. 3 can obtain a high-integrity random number with a small circuit scale. It can be done and is widely used.
  • the random number generator 30 When the random number generator 30 is mounted on the IC chip, there may be a method in which the RS latches 10-1,..., 10-n are distributed and arranged on the IC chip.
  • the RS latches 10-1,..., 10-n When the RS latches 10-1,..., 10-n are centrally arranged on the IC chip, noise generated from other circuits arranged around the arrangement position causes the RS latches 10-1,. The effect on is similar.
  • the distributed arrangement as described above is performed, the influence of noise generated from various circuits on the IC chip received by each of the RS latches 10-1,. It can be expected to improve the authenticity of random numbers. For this reason, the RS latches 10-1,..., 10-n are distributed on the IC chip.
  • random output generation is performed such that a digital output value that is not uniquely determined with respect to the digital input value is obtained, and that the appearance frequencies of “0” and “1” in the digital output value are equalized.
  • Technology is also known.
  • the noise generated by the metastable is much smaller than that generated by the oscillation circuit. Further, as described above, only a part of the RS latches 10-1,..., 10-n, which are metastable and actually generate random numbers. Under these circumstances, the influence of noise generated by the RS latches 10-1,..., 10-n when the RS latches 10-1,. was not.
  • FIG. 4 is an example of observation of input / output waveforms of the random number generator 30 of FIG.
  • the upper waveform is an observation waveform of the clock signal input to the random number generator 30, and the lower waveform is an observation waveform of the output of the random number generator 30 (that is, the generated random number).
  • the output of the random number generator 30 is in an abnormal state such as oscillation, and the timing of the peaks and valleys of the lower observation waveform is the same as the upper observation waveform. It turns out that it is almost in agreement. In other words, it is estimated from this observed waveform that noise originating from this oscillation-like abnormal state has an effect on the input clock signal. When a lot of noise is included in the clock signal input to the random number generator 30, the noise may arrive through the transmission line of the clock signal, and other circuits may malfunction.
  • FIG. 5A is an example of input / output waveforms for the random number generator 20 of FIG. 2A that actually generates random numbers.
  • the upper waveform is the signal waveform of input A, and the clock signal is input.
  • the middle and lower waveforms are both output B signal waveforms.
  • the random number generator 20 that outputs the middle waveform differs from the random number generator 20 that outputs the lower waveform in the metastable state duration Td of the RS latch 10 being used.
  • FIG. 5B is also an example of input / output waveforms for the random number generator 20 of FIG. 2A, but which actually does not generate random numbers.
  • the input A changes from 0 to 1
  • the used RS latch 10 is in a metastable state, but the output B is always 0 thereafter. Is.
  • the upper waveform is the signal waveform of input A, and the clock signal is input.
  • the middle and lower waveforms are both output B signal waveforms.
  • the state duration time Td is different.
  • FIG. 5C is a signal waveform example of each part of the random number generator 30 of FIG. This waveform example is for the case where the random number generator 30 is configured with four RS latches 10-1 to 10-4.
  • the first waveform at the top is the signal waveform of input A, and the clock signal is input.
  • the second through fifth waveforms are the output B signal waveforms of the RS latches 10-1, 10-2, 10-3, and 10-4, respectively, and the metastable state duration Td is mutually equal. It expresses how they are different.
  • the sixth waveform at the bottom is the waveform of the output signal of the XOR gate 31 representing the random number generated by the random number generator 30.
  • the difference in the duration Td of the metastable states of the RS latches 10-1 As described above, in the random number generator 30 in FIG. 3, the difference in the duration Td of the metastable states of the RS latches 10-1,. As a result, noise is generated. Also, the metastable state of each RS latch 10-1,..., 10-n can naturally be a noise source. Therefore, if the RS latches 10-1,..., 10-n for performing such operations are distributed on the IC chip, malfunctions of other circuits may be induced.
  • the present invention has been made in view of the above-described problems, and the problem to be solved is to reduce the power consumption and the noise generation amount when generating a highly authentic random number.
  • Some random number generators described later in this specification have an exclusive OR circuit, a random number determination unit, and a random number generation instruction prohibition unit.
  • the exclusive OR circuit obtains the exclusive OR of the outputs of the plurality of digital circuits.
  • the random number determination unit determines, for each of the plurality of digital circuits, whether or not the output generated according to the random number generation instruction is a random number.
  • the random number generation instruction prohibiting unit prohibits an instruction to generate a random number for the plurality of digital circuits that are determined by the random number determination unit to determine that the output generated in response to the instruction is not a random number.
  • an encryption apparatus described later in this specification that includes the above-described random number generator and an encryption processing unit.
  • the encryption processing unit performs information encryption processing using the random number sequence generated by the random number generator as an encryption key.
  • an encryption device described later in this specification includes the above-described random number generator, a communication unit, a decryption processing unit, and an authentication processing unit.
  • the communication unit communicates with the authentication target device to exchange various information.
  • the decryption processing unit performs decryption processing on the encrypted information using a predetermined encryption key shared with the legitimate authentication target device.
  • the authentication processing unit performs an authentication process on the authentication target device based on the information obtained by the decryption process by the decryption process unit.
  • the communication unit receives the random number sequence generated by the random number generator from the authentication target device that has received the random number sequence when the random number sequence is transmitted to the authentication target device.
  • Encrypted information obtained by the encryption process performed by the authentication target device is received. Further, the decryption processing unit performs the decryption processing on the encrypted information received by the communication unit. Then, in the authentication process, the authentication processing unit transmits the decryption information obtained by performing the decryption process on the encrypted information received by the communication unit to the authentication target apparatus. It is determined whether or not it matches the random number sequence. Here, when it is determined that the decryption information and the column number sequence match, the authentication processing unit obtains an authentication result indicating that the authentication target device is authentic.
  • the random number generator described later in this specification can generate a high-integrity random number with less power consumption and less noise generation.
  • RS latch It is a circuit structural example of RS latch. It is a truth table of RS latch of FIG. 1A. It is a 1st example of the circuit structure of the conventional random number generator using RS latch of FIG. 1A. It is an input-output waveform example of the random number generator of FIG. 2A. It is a 2nd example of the circuit structure of the conventional random number generator using RS latch of FIG. 1A. It is an example of observation of the input / output waveform of the random number generator of FIG. It is explanatory drawing (the 1) of the cause by which the output of the random number generator of FIG. 3 becomes an abnormal state.
  • FIG. 4 is an explanatory diagram (part 2) of the cause of the abnormal output of the random number generator of FIG. FIG.
  • FIG. 6 is an explanatory diagram (part 3) of the cause of the abnormal output of the random number generator of FIG. It is a circuit structural example of the random number generator which concerns on this embodiment. It is an example of observation of the input / output waveform of the random number generator of FIG. It is a structural example of the electronic device provided with the random number generator of FIG.
  • FIG. 6 illustrates a circuit configuration example of a random number generator according to the present embodiment.
  • This random number generator 100 includes n (n is an integer of 2 or more) random number generation circuits 110-1,..., 110-n, an XOR gate 120, a multiplexer 130, a random number determination unit 140, and a determination result holding unit 150. It is prepared for.
  • the random number generation circuits 110-1,..., 110-n respectively include two-input NAND gates 111-1a, 111-1b,..., 111-na, 111-nb and two-input AND (logical product) gates 112. -1,..., 112-n.
  • the random number generation circuits 110-1,..., 110-n have the same configuration. Therefore, only the configuration of the random number generation circuit 110-1 will be described here.
  • the two inputs of the NAND gate 111-1a are connected to the output of the AND gate 112-1 and the output of the NAND gate 111-1b, respectively.
  • the two inputs of the NAND gate 111-1b are connected to the output of the AND gate 112-1 and the output of the NAND gate 111-1a, respectively.
  • the NAND gate 111-1a and the NAND gate 111-1b constitute an RS latch circuit, and the output signal of the AND gate 112-1 is input to both the set input and the reset input of the RS latch circuit. It is configured as follows.
  • the output of the NAND gate 111-1a is the output of the random number generation circuit 110-1.
  • the random number generation circuit 110-1 is configured as described above. That is, the random number generation circuit 110-1 has the same circuit configuration as the random number generator 20 of FIG. 2A.
  • the AND gate 112-1 is for gating the input of the clock signal to the set input and reset input of the RS latch circuit described above in the random number generation circuit 110-1. The operation of the AND gate 112-1 will be described more specifically.
  • the AND gate 112-1 receives a clock signal (for example, an alternating signal of 0 and 1 such as the input signal A in FIG. 2B) sent from the other circuit at one input of the AND gate 112-1.
  • a clock signal for example, an alternating signal of 0 and 1 such as the input signal A in FIG. 2B
  • One of n outputs of a determination result holding unit 150 to be described later is input as an input.
  • the AND gate 112-1 calculates and outputs the logical product of these two inputs. Therefore, the AND gate 112-1 outputs a clock signal sent from another circuit during the period when the input from the determination result holding unit 150 is 1, and the set input and reset input of the RS latch circuit described above. Enter both. That is, the AND gate 112-1 inputs a clock signal sent from another circuit to the above-described RS latch circuit during a period when the input from the determination result holding unit 150 is 1.
  • the AND gate 112-1 outputs 0 irrespective of the logic of the clock signal during the period when the input from the determination result holding unit 150 is 0, and the set input and reset input of the RS latch circuit described above. Enter in both.
  • the AND gate 112-1 inputs 0 to the above-described RS latch circuit in this way so that the random number generation circuit 110-1 receives random numbers. Prohibit generation instructions.
  • the XOR gate 120 is an exclusive OR circuit that calculates and outputs an exclusive OR of the outputs of the random number generation circuits 110-1,..., 110-n each having the above-described configuration.
  • the multiplexer 130 selects one of the output signals of each of the random number generation circuits 110-1,..., 110-n one by one according to the selection instruction by the selection instruction signal I_SEL sent from the random number determination circuit 140, A selection unit that outputs a selected signal.
  • the output signal selected by the multiplexer 130 is sent to the random number determination unit 140.
  • the random number determination unit 140 controls the determination result holding unit 150 to give a random number generation instruction to each of the random number generation circuits 110-1,..., 110-n. More specifically, the random number determination unit 140 determines that the output of each of the above-described RS latch circuits of the random number generation circuits 110-1,. An input such as (random number) (such input is referred to as “indefinite state input”) is input as an instruction for generating a random number. Then, whether the output of the random number generation circuit 110-1,..., 110-n that is instructed to generate a random number, that is, the output of the RS latch circuit that receives the indefinite state input described above, is a random number. Is determined, and the determination result is output to the determination result holding unit 150.
  • the determination result holding unit 150 includes n D flip-flops (hereinafter referred to as “D-FF”) 150-1 associated with the random number generation circuits 110-1,..., 110-n one by one. ,..., 150-n.
  • D-FFs 150-1,..., 150-n receives n outputs from the random number determination unit 140 one at each input, that is, the determination result by the random number determination unit 140. Hold.
  • the outputs of the D-FFs 150-1,..., 150-n are output from the determination result holding unit 150 as AND gates 112-1 of the random number generation circuits 110-1,. ,..., 112-n.
  • the determination result holding unit 150 can be configured by replacing D-FFs 150-1,..., 150-n with n D latches.
  • the circuit scale of the random number generator 100 is reduced by configuring the determination result holding unit 150 with the D latch.
  • the operation of the random number generator 100 of FIG. 6 configured as described above will be described.
  • the D-FFs 150-1,..., 150-n of the determination result holding unit 150 are reset and 0 is stored as an initial value.
  • the outputs of the AND gates 112-1,..., 11-n are all 0, and the outputs of the random number generation circuits 110-1,.
  • the outputs of the random number generation circuits 110-1, ..., 110-n are held unchanged (value 1).
  • the random number determination unit 140 is then generated in response to a random number generation instruction for each of the random number generation circuits 110-1,. It is determined whether the output to be output is a random number.
  • the random number determination unit 140 holds the determination result in the determination result holding unit 150. Note that the operation performed by the random number determination unit 140 for this purpose is the same for each of the random number generation circuits 110-1,..., 110-n. Only the operation performed by the unit 140 will be described in detail.
  • the random number determination unit 140 controls the multiplexer 130 to select the output of the random number generation circuit 110-1 and stores 1 in the D-FF 150-1. Then, at this time, the AND gate 112-1 outputs a clock signal sent from another circuit, and this clock signal is input to the RS latch circuit included in the random number generation circuit 110-1. And reset input.
  • the output of the AND gate 112-1 also changes from 0 to 1, and the undefined state input is changed to the random number generation circuit 110-1.
  • Input to the RS latch circuit That is, at this time, the AND gate 112-1 gives a random number generation instruction to the random number generation circuit 110-1, and the RS latch circuit included in the random number generation circuit 110-1 falls into a metastable state. The output value becomes unstable.
  • the output of the random number generation circuit 110-1 (that is, the output of the RS latch circuit) is either 0 or 1. Converge. This output is input to the random number determination unit 140 via the multiplexer 130.
  • the random number determination unit 140 observes the output after the metastable state of the RS latch circuit when an undefined state input is input to the RS latch circuit of the random number generation circuit 110-1. This observation is repeated for a predetermined number of clocks of the clock signal input from AND gate 112-1.
  • the random number determination unit 140 determines whether or not a state has occurred in which the output logic does not continuously change a predetermined number of times in the output observed repeatedly over the predetermined number of clock signals.
  • the random number determination unit 140 determines that the output of the RS latch circuit of the random number generation circuit 110-1 is a random number when a state in which the output logic does not continuously change the predetermined number of times is included in the observation result. (That is, the RS latch circuit does not generate a random number).
  • the random number determination unit 140 determines that the output of the RS latch circuit of the random number generation circuit 110-1 is a random number when the output logic has changed until the predetermined number of consecutive times in the result of the observation ( That is, the RS latch circuit generates a random number).
  • the random number determination unit 140 stores 0 in the D-FF 150-1 of the determination result holding unit 150.
  • the AND gate 112-1 outputs this determination result as it is. That is, when the value held in the D-FF 150-1 is 0, the AND gate 112-1 gives this value to the random number generation circuit 110-1 as it is. Accordingly, the output of the random number generation circuit 110-1 at this time is 1.
  • the state where the input value from the AND gate 112-1 to the random number generation circuit 110-1 is 0 continues.
  • the output remains unchanged (value 1). That is, when 0 is stored in the D-FF 150-1 of the determination result holding unit 150, the AND gate 112-1 performs an operation of prohibiting the random number generation circuit 110-1 from instructing random number generation.
  • the random number determination unit 140 maintains the value 1 stored in the D-FF 150-1 as it is. Therefore, in this case, random number generation by the RS latch circuit of the random number generation circuit 110-1 is continued.
  • the random number determination unit 140 controls the multiplexer 130 and the determination result holding unit 150 as described above, and the output generated by the RS latch circuit of the random number generation circuit 110-1 in accordance with the random number generation instruction is a random number. An operation for determining whether or not there is an operation and an operation for holding the determination result are performed. The random number determination unit 140 controls the multiplexer 130 to switch the output selection of each of the random number generation circuits 110-1,... Perform sequentially for each of 110-n.
  • the random number determination unit 140 stops its own operation and also stops the operation of the multiplexer 130. Reduce power consumption. After that, among the random number generation circuits 110-1,..., 110-n, only the random number generation unit 140 determines that the output generated in response to the random number generation instruction is a random number. The operation is performed, and the output is input to the XOR 120. On the other hand, among the random number generation circuits 110-1,..., 110-n, the RS latch circuit determines that the output generated in response to the random number generation instruction is determined not to be a random number by the random number determination unit 140.
  • FIG. 7 is an example of observation of input / output waveforms of the random number generator 100 of FIG.
  • the upper waveform is an observation waveform of the clock signal input to the random number generator 100
  • the lower waveform is an observation waveform of the output of the random number generator 100 (that is, the generated random number).
  • the random number generator 100 of FIG. 6 is expected to generate about 1/16 of the amount of noise compared to the conventional one (for example, the random number generator 30 of FIG. 3).
  • the power consumption of the RS latch circuit is assumed to be ⁇ , and the power consumption of the D-type flip-flop circuit is assumed to be 2 ⁇ , which is twice that of the RS latch.
  • the power consumption of the conventional one is 128 ⁇ in consideration of the power consumption of the 128 RS latch circuits.
  • the power consumption by the random number generator 100 of FIG. 6 is that of the eight RS latch circuits that generate random numbers and the eight D-type flip-flop circuits connected to the inputs of the eight RS latch circuits.
  • D-FFs 150-1,..., 150-n output a high level potential (ie, value 1) when a low level potential (ie, value 0) is output at binary logic levels having different potentials. Less power consumption than you do.
  • the AND gates 112-1,..., 112-n are configured to output a low level potential at binary logic levels having different potentials, rather than outputting a high level potential. Less is.
  • the number that actually does not generate a random number is much larger than the number that generates a random number.
  • the value 0 instead of the value 1 is assigned to the output of the D-FFs 150-1,..., 150-n, and the output of the AND gates 112-1,.
  • the power consumption of the random number generator 100 of FIG. 6 is reduced.
  • a typical function requiring generation of a random number is a cryptographic function
  • the random number generator 100 can be used for an electronic device that uses the cryptographic function.
  • a specific example of an electronic device that uses the encryption function is the smart card described above, and the random number generator 100 can be used with this smart card.
  • a mobile phone device and a terminal device connected to a wireless Internet are also required to have an encryption function, and the random number generator 100 can be used even in such an electronic device.
  • imitations for electronic devices such as ink cartridges used in printing apparatuses, dedicated batteries for battery-powered electronic devices, and program cartridges that store game machine programs have become available.
  • an authentication function for legitimate products may be used. Random number generation may be used to realize this authentication function, and the random number generator 100 can also be used in an electronic device that uses such an authentication function.
  • FIG. 8 illustrates a configuration example of the electronic device 200 including the random number generator 100 of FIG.
  • the electronic device 200 can function as an encryption device and can also function as an authentication device.
  • the electronic device 200 includes a random number generator 100 illustrated in FIG. 6, a CPU 300, a cryptographic operation unit 400, a ROM 500, a RAM 600, and a communication unit 700. These components are all connected to the bus line 800, and are configured to be able to exchange various data with each other under the control of the CPU 300.
  • a CPU (Central Processing Unit) 300 is a central processing unit that manages the operation of each component of the electronic device 200.
  • the cryptographic operation unit 400 performs encryption processing of various types of information and decryption processing of encrypted data.
  • the cryptographic operation unit 400 includes a public key coprocessor 410 and a common key coprocessor 420.
  • the public key coprocessor 410 performs encryption and decryption processing using RSA encryption, elliptic curve encryption, or the like, which is a typical public key encryption method.
  • the common key coprocessor 420 performs encryption and decryption processing using an AES cipher that is a typical common key cryptosystem.
  • the CPU 300 may be configured to perform encryption and decryption processing performed by the cryptographic calculator 400.
  • a ROM (Read Only Memory) 500 is a nonvolatile semiconductor memory in which a control program executed by the CPU 300 and unique parameters used by the cryptographic operation unit 400 in encryption and decryption processing are stored in advance.
  • the CPU 300 reads out this control program from the ROM 500 and starts its execution, whereby the operation management of each component of the electronic device 200 can be performed.
  • a RAM (Random Access Memory) 600 is a volatile semiconductor memory that is used as a working storage area as necessary when the CPU 300 or the cryptographic operation unit 400 performs various processes.
  • the communication unit 700 transmits and receives various types of data, and exchanges various types of data with other electronic devices 200 having the same configuration.
  • the random number generator 100 is used to generate an encryption key when the cryptographic operation unit 400 performs information encryption processing.
  • the encryption key used for the encryption process is stored and held in, for example, the RAM 600, and then used for the decryption process performed by the cryptographic operation unit 400 on the encrypted information.
  • post processing may be performed in order to further improve the authenticity of the generated random number sequence as a random number.
  • An example of post-processing performed for this purpose is the use of a linear feedback shift register (LFSR).
  • the LFSR is a counter constituted by a shift register fed back by an exclusive OR circuit.
  • a random number sequence is input, the random number sequence is compressed, and a random number sequence with improved authenticity as a random number is obtained. It is known. Therefore, by generating the encryption key using the random number sequence obtained from the output of the LFSR, it becomes possible to use a more authentic random number sequence as the encryption key.
  • the LFSR may be configured and used as dedicated hardware, or may be realized by software using the CPU 300. Further, the electronic device 200 can be used to provide the authentication function described above.
  • the authentication procedure performed between devices will be described.
  • the authentication procedure will be described by taking as an example the case where the device C is an authentication target device, the device P is an authentication device, and the device P verifies whether or not the device C is authentic.
  • Each of the device P that is the authentication device and the device C that is the authentication target device is provided with the same components as those of the electronic device 200 of FIG. Further, a common encryption key (secret key) K is shared in advance between the device P and the regular device C. For example, the encryption key K is stored in the ROM 500 of each of the devices P and C. Store in advance.
  • secret key secret key
  • the device P When performing authentication, first, the device P generates a random number r using the random number generator 100, and transmits the generated random number r to the device C using the communication unit 700.
  • the device C receives the random number r using the communication unit 700, the device C performs an encryption process on the cryptographic unit 400 using the encryption key K shared with the device P, and obtains the random number r.
  • the encrypted information is returned to the device P using the communication unit 700.
  • the device P receives the return of the encrypted information using the communication unit 700, the device P decrypts the received encrypted information using the encryption key 400 using the encryption key K shared with the device C. Apply processing.
  • the CPU 300 of the device P determines whether or not the information obtained by this decryption processing matches the random number r transmitted to the device C.
  • the CPU 300 of the device P obtains an authentication result that the device C is authentic.
  • the CPU 300 of the device P obtains an authentication result that the device C is not authentic.
  • the device P By performing the above process between the device P and the device C, the device P can be authenticated by the device P. In addition, you may make it equip the apparatus P and the apparatus C with the hardware for exclusive use for performing the above process.
  • a random number used for this authentication function It is preferable to use r having a high degree of authenticity as a random number.
  • An exclusive OR circuit for obtaining an exclusive OR of outputs of each of the plurality of digital circuits; For each of the plurality of digital circuits, a random number determination unit that determines whether an output generated in response to an instruction to generate a random number is a random number; A random number generation instruction prohibiting unit that prohibits an instruction to generate a random number for the digital circuit determined by the random number determination unit if the output generated in response to the instruction is not a random number among the plurality of digital circuits. A random number generator.
  • the plurality of digital circuits are a plurality of RS latch circuits
  • the random number generation unit determines whether the output of the RS latch circuit is a random number when an input that sets the RS latch circuit in a metastable state is input to the RS latch circuit as an instruction to generate a random number.
  • the random number generation circuit For each of the plurality of RS latch circuits; The random number generation circuit according to Supplementary Note 1, wherein: (Appendix 3) The random number determination unit repeats observation of an output after passing through the metastable state of the RS latch circuit when an input for setting the RS latch circuit in a metastable state is input, and the logic of the observed output is The random number generator according to appendix 2, wherein the output of the RS latch circuit is determined not to be a random number when it does not change continuously a predetermined number of times. (Appendix 4) The random number generation instruction prohibiting unit continues the input of a value that holds the output logic of the digital circuit unchanged with respect to the digital circuit determined by the random number determination unit that the output is not a random number.
  • the random number generator according to appendix 1, wherein an instruction to generate is prohibited.
  • Appendix 5 A determination result holding unit that holds the determination result of the random number determination unit;
  • the random number generation instruction prohibiting unit receives the determination result of the random number determination unit held by the determination result holding unit from the determination result holding unit, and outputs to the digital circuit determined by the random number determination unit that the output is not a random number. On the other hand, continuing the input of the value that keeps the logic of the output of the digital circuit unchanged so as to give the received determination result.
  • the random number generator according to appendix 4, wherein (Appendix 6) A selection unit for selecting and outputting each output of the plurality of digital circuits one by one;
  • the determination result holding unit is associated with each of the plurality of digital circuits one by one, and includes a plurality of D-type flip-flop circuits that hold the determination result of the random number determination unit,
  • the random number determination unit performs the determination on the digital circuit whose output is selected by the selection unit, and the determination result is associated with the digital circuit in the determination result holding unit.
  • the random number generator according to appendix 5, characterized in that: (Appendix 7) In the determination result holding unit, the D-type flip-flop circuit associated with the digital circuit determined by the random number determination unit that the output is not a random number has a low-level potential at binary logic levels having different potentials.
  • the random number generation instruction prohibiting unit includes a logical product circuit that obtains a logical product of the clock signal and the output of the D-type flip-flop circuit, and associates the output of the logical product circuit with the D-type flip-flop circuit.
  • the random number generator according to appendix 7, which is characterized. (Appendix 9) A selection unit for selecting and outputting each output of the plurality of digital circuits one by one;
  • the determination result holding unit is associated with each of the plurality of digital circuits one by one, and includes a plurality of D-type latch circuits that hold the determination result of the random number determination unit,
  • the random number determination unit performs the determination on the digital circuit whose output is selected by the selection unit, and sends the determination result to the D-type latch circuit associated with the digital circuit in the determination result holding unit.
  • the random number generator according to appendix 5 characterized in that: (Appendix 10) The random number generator according to any one of appendices 1 to 9, An encryption processing unit that performs encryption processing of information using a random number sequence generated by the random number generator as an encryption key; An encryption device comprising: (Appendix 11) The random number generator according to any one of appendices 1 to 9, A communication unit that communicates with an authentication target device to exchange various types of information; A decryption processing unit that performs decryption processing on the encrypted information using a predetermined encryption key shared with a regular authentication target device; An authentication processing unit that performs an authentication process on the authentication target device based on information obtained by the decryption processing by the decryption processing unit; Have The communication unit transmits the random number sequence generated by the random number generator to the authentication target device, and is sent from the authentication target device that has received the random number sequence to the authentication target device.
  • the decryption processing unit performs the decryption processing on the encrypted information received by the communication unit,
  • the authentication processing unit is a random number sequence in which decryption information obtained by performing the decryption process on the encrypted information received by the communication unit is transmitted to the authentication target device. And when it is determined that the decryption information matches the column number sequence, an authentication result that the authentication target device is authentic is obtained.
  • An authentication device characterized by that.
  • Random number determination unit 150 Determination result holding unit 150-1, 150 -N D flip-flop 200 electronic device 300 CPU 400 Cryptographic operator 410 Public key coprocessor 420 Common key coprocessor 500 ROM 600 RAM 700 Communication unit 800 Bus line

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

 真性度の高い乱数を生成するときの電力消費量とノイズ生成量とを低減する。このために、乱数生成器に、排他的論理和回路と、乱数判定部と、乱数生成指示禁止部と備える。排他的論理和回路は、複数のデジタル回路の各々の出力の排他的論理和を得る。また、乱数判定部は、該複数のデジタル回路の各々に対し、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う。そして、乱数生成指示禁止部は、該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したものに対する乱数の生成の指示を禁止する。

Description

乱数生成器、暗号化装置、及び認証装置
 本明細書で議論される実施態様は、乱数の生成技術に関する。
 情報化社会の発展に伴い、電子決済や住民基本台帳ネットワークなどの、情報ネットワークを利用したサービスが今後普及すると予想される。これらのサービスを安全に運用するためには情報セキュリティ技術が必須である。
 情報セキュリティの基盤技術として、様々な暗号方式が利用されている。暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、情報の暗号化と復号とで異なる鍵を用いる方式であり、暗号化に用いる鍵(公開鍵)を一般に公開する一方で、暗号文の復号に用いる鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式とは、情報の暗号化と復号とで共通の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者及び受信者を除く第三者には秘密の情報とすることで安全性を保つ方式である。
 これらの暗号方式の安全性は、秘密鍵の安全性に依存している。つまり、秘密鍵が何らかの手段で第三者に予測されてしまうと、暗号方式の安全性は崩壊する。そこで、秘密鍵は、第三者の予測を不可能にするために、乱数を用いて生成されることが一般的である。
 乱数は、その生成法によって、擬似乱数と真性乱数(物理乱数)との2つに大別される。
 擬似乱数とは、確定的な計算によって作り出された数列の一部分のことであり、擬似乱数生成アルゴリズムに、シード(seed)と呼ばれる種を初期値として与えることによって生成される、擬似的な乱数である。擬似乱数は、その生成手法(擬似乱数生成アルゴリズム)が分かってしまうと理論的には予測可能であり、内部の初期値(前述したシード)も分かってしまうと、先に計算しておくこともできてしまう。このため、秘密鍵の生成に擬似乱数を用いることは、暗号の安全性に問題が生じることがある。しかしながら、擬似乱数は計算により生成されるので、擬似乱数の生成に専用の装置は必須ではなく、汎用の演算装置等でも生成が可能という利点がある。
 一方、真性乱数(物理乱数)とは、例えば電子デバイス中の熱雑音のように、本質的にランダムな性質を有する物理現象を利用することによって生成される乱数である。このようにして生成される乱数には、再現性がなく、誰にも予測することが不可能であるので、真性乱数を用いて生成した秘密鍵を用いて行う暗号化は、安全性が高い。
 ところで、電子決済や住民基本台帳ネットワークなどのサービスを利用する際におけるエンドユーザ側のデバイスとして、スマートカードが知られている。
 スマートカードは、IC(集積回路)チップを搭載したカードである。このICチップ内部のメモリ領域には、ユーザに与えられた秘密鍵が格納されている。スマートカードのICチップには、暗号化機能やデジタル署名/認証機能などの各種機能を提供する演算処理装置が搭載されているものもある。これらの機能が使用される際には、ユーザの秘密鍵が用いられる。
 前述したように、これらの秘密鍵は真性乱数を用いて生成することが、安全上望ましい。そこで、上述したスマートカードのような小型機器に、乱数を生成するための専用の乱数生成器を備えることが行われている。
 このような乱数生成器のひとつに、ラッチ回路やフリップフロップ回路等のデジタル回路におけるメタステーブルを利用するものが提案されている。
 まず、メタステーブルについて、図1A及び図1Bを用いて説明する。
 図1Aには、RSラッチの回路構成例が図解されている。このRSラッチ10は、NAND(否定論理積)ゲート11及び12を用いて構成されている。
 このRSラッチ10の入力は負論理である。
 なお、本明細書では、電位の異なる2値の論理レベルにおけるハイ・レベルを値「1」と表現し、ロー・レベルを値「0」と表現することとする。また、図面においては、負論理の信号を信号名の上にオーバーバーを付すことで表現しているが、本明細書においては、負論理の信号を“#”で表記するものとする。従って、例えば、RSラッチ10のセット入力は“#S”と表記し、RSラッチ10のリセット入力は“#R”と表記する。
 NANDゲート11の2つの入力には、それぞれ、セット入力“#S”と、NANDゲート12の出力とが入力される。また、NANDゲート12の2つの入力には、それぞれ、リセット入力“#R”と、NANDゲート11の出力とが入力される。また、NANDゲート11の出力がRSラッチ10の出力Qとなる。なお、NANDゲート12の出力からは、出力“#Q”が出力される。
 図1Bは、このRSラッチ10の真理値表である。なお、この真理値表においては、セット入力S及びリセット入力Rを正論理で表記している。
 真理値表からも分かるように、RSラッチ10は、入力S=0且つ入力R=0のときには、出力値はそのまま保持されるので、Q=Qとなり、“#Q”=“#Q”となる。また、RSラッチ10は、入力S=0且つ入力R=1のときには出力値はリセットされて、Q=0となり、“#Q”=1となる。更に、RSラッチ10は、入力S=1且つ入力R=0のときには出力値はセットされて、Q=1、“#Q”=0となる。
 RSラッチ10は、以上の入力の組み合わせのいずれかであれば、出力の論理は安定している。ところが、RSラッチ10は、入力S=1且つ入力R=1のときには、Q=“#Q”=1となってしまう。つまり、この場合には、本来は反対の論理を示すはずであるQの論理値と“#Q”の論理値とが、揃って「1」となってしまう。このとき、RSラッチ10の出力は、どちらも、中間電位の不安定な状態となっている。このような、デジタル回路としては異常である不安定な状態が、メタステーブル(metastable)と呼ばれている。一般的には、このようなメタステーブルの状態を回避するために、RSラッチ10に対するS=1且つR=1の入力は禁止される。
 次に、このようなRSラッチ10のメタステーブルを用いた乱数生成器について、図2A及び図2Bを用いて説明する。
 まず、図2Aについて説明する。図2Aは、RSラッチ10を用いた乱数生成器の回路構成の第一の例である。
 この乱数生成器20は、RSラッチ10のセット入力“#S”及びリセット入力“#R”の両方に同一の値Aを入力するように構成したものである。ここで、この乱数生成器20の出力である、RSラッチ10の出力Q及び出力“#Q”を、それぞれ、B及びCとする。
 この乱数生成器20は、入力A=0のときは、出力B及び出力Cはどちらも1となり、この状態で出力の値は安定している。ところが、ここで、値Aを0から1に変化させると、出力Bが1であって出力Cが0である状態と、出力Bが0であって出力Cが1である状態とが生じて、出力が不定となる。これは、RSラッチ10がメタステーブルの状態に置かれており、その出力が不確定の状態になっているためである。乱数生成器20は、この不確定性を乱数生成に利用する。
 次に図2Bについて説明する。図2Bは、この乱数生成器20の入出力波形例であり、入力Aとして、0と1との交番信号(クロック信号)を入力した場合の出力Bの波形を描いたものである。
 この出力Bの波形に注目すると、入力Aが0から1へと変化するとき(すなわち、クロック信号の立ち上がり時)において、RSラッチ10がメタステーブルの状態に陥り、出力Bの値は安定しない状態となる。このメタステーブルの状態は、クロック信号の立ち上がり時からある一定の時間Tdの期間継続し、その後、出力Bの値は、0及び1のうちのどちらかに収束するが、そのどちらに収束するかは不定である。乱数生成器20は、このメタステーブルの状態の後に収束する出力Bの値を、乱数の生成結果とする。
 このような、デジタル回路のメタステーブルを利用して乱数を生成する手法は広く知られている。しかしながら、このような構成を有する乱数生成器20を実装しても、実際には乱数を発生しない場合も少なくない。
 まず、RSラッチ10を構成するNANDゲート11とNANDゲート12とのドライブ能力に差があると、出力値が2値のうちの一方に偏ってしまう。このため、乱数を生成するには、この両者のドライブ能力ほぼ同一である必要がある。
 更に、入力信号Aは、NANDゲート11とNANDゲート12とに同時に入力される必要があり、この入力信号Aの入力タイミングが異なれば、出力値に偏りが生じてしまう。つまり、NANDゲート11とNANDゲート12とに入力信号Aが到着する時刻のずれ(スキュー)が小さい必要がある。
 このように、RSラッチ10の個体差に起因して乱数生成器20が乱数を発生しない場合がある。しかしながら、上述した要件を満たすことのできるRSラッチ10を得ることは容易ではない。例えば、あるFPGA(Field Programmable Gate Array )に実装されていた64個のRSラッチ10の各々を用いて乱数生成器20を構成したところ、実際に乱数を発生させたものはわずか4個(確率1/16)であった。
 次に図3について説明する。図3は、RSラッチ10を用いた乱数生成器の回路構成の第二の例である。
 図3の乱数生成器30は、n個(nは2以上の整数)のRSラッチ10-1、…、10-nとXOR(排他的論理和)ゲート31とを備えて構成されている。
 RSラッチ10-1、…、10-nは、各々のセット入力“#S”及びリセット入力“#R”に同一のクロック信号が入力される。XORゲート31は、RSラッチ10-1、…、10-nの各々の出力Qが入力されて、その排他的論理和を、乱数生成器30での乱数の生成結果として出力する。
 このように、乱数生成器30では、n個のRSラッチ10-1、…、10-nを使用して図2Aの乱数生成器20をn個構成し、これらの出力の排他的論理和を求めて1ビットに集約して、乱数生成器30での乱数の生成結果としている。このようにすることで、前述したような原因によって乱数を生成しない乱数生成器20が含まれていても、真性度の高い乱数を得ることができる。
 この図3の乱数生成器30のように多数のラッチを実装した上で、各ラッチのメタステーブルを利用して乱数の生成を行う手法は、少ない回路規模で真性度の高い乱数を得ることができることもあり、広く利用されている。
 なお、乱数生成器30をICチップ上に実装する場合に、RSラッチ10-1、…、10-nをICチップ上で分散して配置する手法が採られることがある。RSラッチ10-1、…、10-nをICチップ上で集中配置すると、その配置位置の周辺に配置された他の回路から発せられるノイズがRSラッチ10-1、…、10-nの各々に対し与える影響は同様のものになる。これに対し、上述のような分散配置を行うと、RSラッチ10-1、…、10-nの各々が受けるICチップ上の様々な回路から発せられるノイズの影響が異なるものとなるので、得られる乱数の真性度の向上が期待できる。RSラッチ10-1、…、10-nのICチップ上での分散配置は、このような理由により行われている。
 なお、この他の背景技術として、デジタル入力値に対して一義的に決定されないデジタル出力値を得ると共に、このデジタル出力値における「0」と「1」の出現頻度を均等にするという乱数生成の技術も知られている。
特許第3604674号公報
 前述したように、これらの秘密鍵は、真性乱数を用いて生成することが安全上望ましい。しかしながら、上述したスマートカードのような小型機器に真性乱数を生成するための専用の乱数生成器を備えるには、幾つかの問題点がある。すなわち、このような小型機器では、使用できるハードウェアリソースが限られている。また、このような小型機器では、電源電圧も低いことが多いため、消費電力の低い乱数生成器が求められる。更には、このような小型機器に搭載されるICチップはそのサイズが小さいため、チップ上に構成される他の回路に影響を及ぼさないように、発生するノイズが少ない乱数生成器であることが望ましい。つまり、スマートカードなどの小型機器では、低ノイズ・低消費電力で高品質な乱数(予測が困難である乱数)を生成する乱数生成器が求められる。
 図3に構成を図解した乱数生成器30を、前述したようにRSラッチ10-1、…、10-nのICチップ上で分散配置して実装すると、今度は、RSラッチ10-1、…、10-nがメタステーブルの状態で発生させるノイズの他の回路への影響が問題となる。
 メタステーブルによって発生するノイズは、発振回路が発生させるものに比べれば格段に小さい。また、前述したように、RSラッチ10-1、…、10-nのうちメタステーブルとなって実際に乱数を発生するものはそのうちの一部のみである。このような事情から、RSラッチ10-1、…、10-nをICチップ上で分散配置したときにRSラッチ10-1、…、10-nが発するノイズの影響は、大きな問題としては把握されていなかった。
 ここで図4について説明する。図4は、図3の乱数生成器30の入出力波形の観測例である。
 図4において、上側の波形は乱数生成器30に入力されるクロック信号の観測波形であり、下側の波形は、乱数生成器30の出力(すなわち、生成された乱数)の観測波形である。
 この図4における下側の観測波形に注目すると、乱数生成器30の出力が発振のような異常状態となっており、また、この下側の観測波形の山谷のタイミングが、上側の観測波形とほぼ一致していることが分かる。つまり、この発振様の異常状態を発信源とするノイズが、入力のクロック信号にまで影響を及ぼしていることが、この観測波形から推定される。乱数生成器30に入力されるクロック信号にノイズが多く含まれると、そのノイズがクロック信号の伝送線を経る等して届くことで、他の回路が誤動作する可能性がある。
 乱数生成器30の出力がこのような発振様の異常状態を呈する原因について、図5A、図5B、及び図5Cを用いて説明する。
 図5Aは、図2Aの乱数生成器20であって、実際に乱数を発生するものについての入出力波形の例である。
 図5Aにおいて、上段の波形は、入力Aの信号波形であり、クロック信号が入力されている。また、中段及び下段の波形は、どちらも出力Bの信号波形である。但し、中段の波形を出力する乱数生成器20は、下段の波形を出力する乱数生成器20とは、使用されているRSラッチ10についてのメタステーブルの状態の継続時間Tdが異なっている。
 このように、図3の乱数生成器30を構成するn個の乱数生成器20のうち実際に乱数を生成するものの間では、メタステーブルの状態の継続時間Tdが異なっている。
 次に図5Bについて説明する。図5Bも、図2Aの乱数生成器20ではあるが、実際には乱数を発生しないものについての入出力波形の例である。なお、この例は、入力Aが0から1へと変化すると、使用されているRSラッチ10がメタステーブルの状態となるが、その後に出力Bが常に0となってしまう乱数生成器20についてのものである。
 図5Bにおいて、上段の波形は、入力Aの信号波形であり、クロック信号が入力されている。また、中段及び下段の波形は、どちらも出力Bの信号波形である。但し、図5Bの波形例と同様に、中段の波形を出力する乱数生成器20と、下段の波形を出力する乱数生成器20との間で、使用されているRSラッチ10についてのメタステーブルの状態の継続時間Tdが異なっている。
 このように、図3の乱数生成器30を構成するn個の乱数生成器20のうち実際に乱数を生成しないものの間でも、メタステーブルの状態の継続時間Tdが異なっている。
 次に図5Cについて説明する。図5Cは、図3の乱数生成器30の各部の信号波形例である。なお、この波形例は、4個のRSラッチ10-1~10-4を備えて乱数生成器30が構成されている場合のものである。
 図5Cにおいて、最上段である一番目の波形は、入力Aの信号波形であり、クロック信号が入力されている。また、二番目から五番目の波形は、それぞれ、RSラッチ10-1、10-2、10-3、及び10-4の出力Bの信号波形であり、メタステーブルの状態の継続時間Tdが互いに異なっている様子を表現している。そして、最下段である六番目の波形は、乱数生成器30により生成された乱数を表している、XORゲート31の出力信号の波形である。
 このように、RSラッチ10-1、10-2、10-3、及び10-4のメタステーブルの状態の継続時間Tdが互いに異なっていると、XORゲート31の出力信号が発振様の異常状態を呈することが分かる。
 以上のように、図3の乱数生成器30では、乱数を生成する・生成しないに関わらず、各RSラッチ10-1、…、10-nのメタステーブルの状態の継続時間Tdの違いが前述の異常状態を生じさせ、その結果としてノイズを発生させることになる。また、この各RSラッチ10-1、…、10-nのメタステーブルの状態自体も当然ノイズ源となり得る。従って、このような動作を行わせるRSラッチ10-1、…、10-nをICチップ上で分散配置すれば、他の回路の誤動作を誘引しかねない。
 また、前述したように、図3の乱数生成器30では、RSラッチ10-1、…、10-nのうちで実際には乱数を発生しないものでもメタステーブルの状態を生じさせているが、このための電力消費は乱数の生成には全く寄与しておらず、無駄である。このような電力消費の無駄は、スマートカードのような前述した小型機器では深刻な問題である。
 本発明は上述した問題に鑑みてなされたものであり、その解決しようとする課題は、真性度の高い乱数を生成するときの電力消費量とノイズ生成量とを低減することである。
 本明細書で後述する乱数生成器に、排他的論理和回路と、乱数判定部と、乱数生成指示禁止部とを有するというものがある。ここで、排他的論理和回路は、複数のデジタル回路の各々の出力の排他的論理和を得る。また、乱数判定部は、該複数のデジタル回路の各々に対し、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う。そして、乱数生成指示禁止部は、該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したものに対する乱数の生成の指示を禁止する。
 また、本明細書で後述する暗号化装置に、上述した乱数生成器と、暗号化処理部とを有するというものがある。ここで、暗号化処理部は、該乱数生成器が生成した乱数列を暗号鍵として用いて、情報の暗号化処理を行う。
 また、本明細書で後述する復号装置に、本明細書で後述する暗号化装置に、上述した乱数生成器と、通信部と、復号処理部と、認証処理部とを有するというものがある。ここで、通信部は、認証対象装置との間で通信を行って各種の情報の授受を行う。また、復号処理部は、暗号化されている情報に対し、正規の認証対象装置との間で共有されている所定の暗号鍵を用いて復号処理を施す。そして、認証処理部は、該復号処理部による復号処理によって得られた情報に基づいて該認証対象装置に対する認証処理を行う。この構成において、該通信部は、該乱数生成器が生成した乱数列を該認証対象装置へ送信したときに該乱数列を受信した該認証対象装置から送られてくる、該乱数列に対して該認証対象装置で施された暗号化処理により得られた暗号化情報を受信する。また、該復号処理部は、該通信部が受信した暗号化情報に対して該復号処理を施す。そして、該認証処理部は、該認証処理において、該通信部が受信した暗号化情報に対して該復号処理部が該復号処理を施して得られた復号情報が、該認証対象装置へ送信した乱数列と一致するか否かの判定を行う。ここで、該復号情報と該欄数列とが一致すると判定したときには、該認証処理部は、該認証対象装置が正規のものであるとの認証結果を得る。
 本明細書で後述する乱数生成器は、少ない電力消費量及び少ないノイズ生成量で、真性度の高い乱数を生成することができる。
RSラッチの回路構成例である。 図1AのRSラッチの真理値表である。 図1AのRSラッチを用いた従来の乱数生成器の回路構成の第一の例である。 図2Aの乱数生成器の入出力波形例である。 図1AのRSラッチを用いた従来の乱数生成器の回路構成の第二の例である。 図3の乱数生成器の入出力波形の観測例である。 図3の乱数生成器の出力が異常状態となる原因の説明図(その1)である。 図3の乱数生成器の出力が異常状態となる原因の説明図(その2)である。 図3の乱数生成器の出力が異常状態となる原因の説明図(その3)である。 本実施形態に係る乱数生成器の回路構成例である。 図6の乱数生成器の入出力波形の観測例である。 図6の乱数生成器を備えた電子機器の構成例である。
 まず図6について説明する。図6は、本実施形態に係る乱数生成器の回路構成例が図解されている。
 この乱数生成器100は、n個(nは2以上の整数)の乱数生成回路110-1、…、110-n、XORゲート120、マルチプレクサ130、乱数判定部140、及び判定結果保持部150を備えて構成されている。
 乱数生成回路110-1、…、110-nは、それぞれ、2入力のNANDゲート111-1a、111-1b、…、111-na、111-nbと、2入力のAND(論理積)ゲート112-1、…、112-nと、を備えて構成されているデジタル回路である。なお、乱数生成回路110-1、…、110-nは構成が同一である。そこで、ここでは、乱数生成回路110-1の構成についてのみ説明する。
 乱数生成回路110-1において、NANDゲート111-1aの2つの入力には、それぞれ、ANDゲート112-1の出力と、NANDゲート111-1bの出力とが接続されている。また、NANDゲート111-1bの2つの入力には、それぞれ、ANDゲート112-1の出力と、NANDゲート111-1aの出力とが接続されている。
 つまり、NANDゲート111-1aとNANDゲート111-1bとでRSラッチ回路が構成されており、このRSラッチ回路のセット入力及びリセット入力の両方に、ANDゲート112-1の出力信号が入力されるように構成されている。そして、NANDゲート111-1aの出力が、この乱数生成回路110-1の出力となっている。
 乱数生成回路110-1は以上のように構成されている。つまり、乱数生成回路110-1は、図2Aの乱数生成器20と同一の回路構成を備えているのである。
 ANDゲート112-1は、乱数生成回路110-1内の上述したRSラッチ回路のセット入力及びリセット入力へのクロック信号の入力のゲーティングを行うためのものである。このANDゲート112-1の動作をより具体的に説明する。
 ANDゲート112-1は、その一方の入力に、他の回路から送られてくるクロック信号(例えば図2Bにおける入力信号Aのような、0と1との交番信号)が入力され、その他方の入力に、後述する判定結果保持部150のn個の出力のうちの1つが入力される。ANDゲート112-1は、この2つの入力の論理積を求めて出力する。従って、ANDゲート112-1は、判定結果保持部150からの入力が1である期間は、他の回路から送られてくるクロック信号を出力して、上述したRSラッチ回路のセット入力及びリセット入力の両方に入力する。すなわち、ANDゲート112-1は、判定結果保持部150からの入力が1である期間は、他の回路から送られてくるクロック信号を、上述したRSラッチ回路に入力する。
 一方、ANDゲート112-1は、判定結果保持部150からの入力が0である期間は、クロック信号の論理とは無関係に0を出力して、上述したRSラッチ回路のセット入力及びリセット入力の両方に入力する。ANDゲート112-1は、判定結果保持部150からの入力が0である期間は、このようにして、上述したRSラッチ回路に0を入力することで、乱数生成回路110-1に対する、乱数の生成の指示を禁止する。
 XORゲート120は、上述した構成を各自備えている乱数生成回路110-1、…、110-nの出力の排他的論理和を求めて出力する排他的論理和回路である。
 マルチプレクサ130は、乱数生成回路110-1、…、110-nの各々の出力信号のうちのいずれかを、乱数判定回路140から送られてくる選択指示信号I_SELによる選択指示に従ってひとつずつ選択し、選択された信号を出力する選択部である。マルチプレクサ130により選択された出力信号は乱数判定部140に送られる。
 乱数判定部140は、判定結果保持部150を制御して、乱数生成回路110-1、…、110-nの各々に対し、乱数の生成の指示を与える。より具体的には、乱数判定部140は、乱数生成回路110-1、…、110-nの上述したRSラッチ回路の各々に対し、当該RSラッチ回路がメタステーブル状態となって出力を不定状態(乱数)とするような入力(このような入力を「不定状態入力」と称することとする)を、乱数の生成の指示として入力する。そして、乱数生成回路110-1、…、110-nのうち乱数の生成の指示を与えたものの出力、すなわち、前述した不定状態入力を入力したRSラッチ回路の出力が、乱数であるか否かを、乱数判定部140は判定し、その判定結果を判定結果保持部150に出力する。
 判定結果保持部150は、乱数生成回路110-1、…、110-nにひとつずつ対応付けられているn個のDフリップフロップ(以下、「D-FF」と称することとする)150-1、…、150-nを備えて構成されている。D-FF150-1、…、150-nは、その各々の入力に、乱数判定部140からのn個の出力が1つずつ入力されており、その出力、すなわち、乱数判定部140による判定結果の保持を行う。また、D-FF150-1、…、150-nの各々の出力は、判定結果保持部150の出力として、それぞれ、乱数生成回路110-1、…、110-nの各々のANDゲート112-1、…、112-nに入力される。
 なお、D-FF150-1、…、150-nを、n個のDラッチで置き換えて判定結果保持部150を構成することもできる。一般に、DラッチはDフリップフロップよりも回路規模が小さいので、Dラッチで判定結果保持部150を構成することにより、乱数生成器100の回路規模が小さくなる。
 以上のように構成されている図6の乱数生成器100の動作について説明する。
 まず、この乱数生成器100に対して電力の供給が開始されると、判定結果保持部150のD-FF150-1、…、150-nは、リセットされ、初期値として0が格納されるものとする。すると、このとき、ANDゲート112-1、…、11-nの出力はいずれも0となって、乱数生成回路110-1、…、110-nの出力は1となる。その後、D-FF150-1、…、150-nの格納値が0である限り、乱数生成回路110-1、…、110-nの出力は不変(値1)のまま保持される。
 電力供給開始時における以上の初期化動作が完了すると、次に、乱数判定部140は、乱数生成回路110-1、…、110-nの各々に対し、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う。そして、乱数判定部140は、この判定結果を判定結果保持部150に保持させる。なお、このために乱数判定部140が行う動作は、乱数生成回路110-1、…、110-nの各々に対して同一であるので、ここでは、乱数生成回路110-1に対して乱数判定部140が行う動作のみを詳細に説明する。
 まず、乱数判定部140は、マルチプレクサ130を制御して乱数生成回路110-1の出力を選択させると共に、D-FF150-1に1を格納する。すると、このとき、ANDゲート112-1は、他の回路から送られてくるクロック信号を出力するようになり、このクロック信号が、乱数生成回路110-1が備えているRSラッチ回路におけるセット入力とリセット入力とに入力される。
 ここで、ANDゲート112-1から入力されるクロック信号が0から1へと変化すると、ANDゲート112-1の出力も0から1へと変化し、不定状態入力を乱数生成回路110-1のRSラッチ回路に入力するようになる。つまり、ANDゲート112-1は、このとき、乱数の生成の指示を乱数生成回路110-1に与えることになって、乱数生成回路110-1が有するRSラッチ回路はメタステーブルの状態に陥り、出力の値が安定しない状態となる。
 その後、ANDゲート112-1から入力されるクロック信号の立ち上がりから一定の時間Tdの期間継続すると、乱数生成回路110-1の出力(すなわちRSラッチ回路の出力)が、0及び1のうちのどちらかに収束する。この出力は、マルチプレクサ130を経て乱数判定部140に入力される。
 乱数判定部140は、乱数生成回路110-1のRSラッチ回路に不定状態入力を入力しているときにおける、そのRSラッチ回路の該メタステーブル状態を経た後の出力の観測を行う。なお、この観測は、ANDゲート112-1から入力されるクロック信号の所定クロック数分繰り返される。
 このとき、乱数判定部140は、クロック信号の当該所定クロック数分に亘り繰り返して観測された当該出力において、出力の論理が所定回数連続して変化しない状態が生じているか否かを判定する。ここで、乱数判定部140は、出力の論理が当該所定回数連続して変化しない状態が当該観測の結果に含まれている場合には、乱数生成回路110-1のRSラッチ回路の出力は乱数ではない(すなわち、このRSラッチ回路は乱数を生成しない)との判定を下す。一方、乱数判定部140は、当該観測の結果において、出力の論理が当該所定回数連続するまでに変化していた場合には、乱数生成回路110-1のRSラッチ回路の出力は乱数である(すなわち、このRSラッチ回路は乱数を生成する)との判定を下す。
 次に、乱数判定部140は、乱数生成回路110-1のRSラッチ回路の出力が乱数ではないと判定した場合には、判定結果保持部150のD-FF150-1に0を格納する。ANDゲート112-1は、D-FF150-1で保持されているこの判定結果を受け取ると、この判定結果をそのまま出力する。つまり、ANDゲート112-1は、D-FF150-1で保持されている値が0である場合には、この値をそのまま乱数生成回路110-1に与える。従って、このときの乱数生成回路110-1の出力は1となる。その後、D-FF150-1の格納値が0である限り、ANDゲート112-1から乱数生成回路110-1への入力値が0である状態が継続されるので、乱数生成回路110-1の出力は不変(値1)のまま保持される。つまり、判定結果保持部150のD-FF150-1に0が格納された場合には、ANDゲート112-1は、乱数生成回路110-1に対する乱数の生成の指示を禁止する動作を行う。
 その一方で、乱数判定部140は、乱数生成回路110-1のRSラッチ回路の出力は乱数であると判定した場合には、D-FF150-1に格納されている値1をそのまま維持する。従って、この場合には、乱数生成回路110-1のRSラッチ回路による乱数の生成が継続される。
 乱数判定部140は、マルチプレクサ130と判定結果保持部150とを以上のように制御して、乱数の生成の指示に応じて乱数生成回路110-1のRSラッチ回路で生成される出力が乱数であるか否かの判定動作と、その判定結果の保持動作とを行う。乱数判定部140は、マルチプレクサ130を制御して乱数生成回路110-1、…、110-nの各々の出力の選択をひとつずつ切り換えながら、上述した動作を、乱数生成回路110-1、…、110-nの各々に対して順次行う。
 その後、乱数生成回路110-1、…、110-nの各々に対しての上述した動作が完了すると、乱数判定部140は、自身動作を停止させると共にマルチプレクサ130の動作も停止させてそれ以上の電力消費を抑制する。すると、その後は、乱数生成回路110-1、…、110-nのうち、乱数の生成の指示に応じて生成される出力が乱数であると乱数判定部140が判定したもののみが乱数の生成動作を行い、その出力がXOR120に入力されるようになる。その一方、乱数生成回路110-1、…、110-nのうち、乱数の生成指示に応じて生成される出力が乱数ではないと乱数判定部140が判定したものに対しては、RSラッチ回路をメタステーブル状態とする不定状態入力が禁止され、値1を常に出力させる。この結果、乱数生成回路110-1、…、110-nのうち乱数の生成指示に応じて生成される出力が乱数でないと乱数判定部140が判定したもののRSラッチ回路をメタステーブル状態とすることで発生するノイズが抑えられ、また、電力消費も抑制される。
 ここで図7について説明する。図7は、図6の乱数生成器100の入出力波形の観測例である。
 図7において、上側の波形は乱数生成器100に入力されるクロック信号の観測波形であり、下側の波形は、乱数生成器100の出力(すなわち、生成された乱数)の観測波形である。
 この図7の波形を図4の波形と対比すると、図6の乱数生成器100では、図3の乱数生成器30に対して、発振様の異常状態が格段に減少していることが分かり、また、これに伴い、クロック信号に影響を与えるノイズも顕著に減少していることが分かる。
 ここで、図6の乱数生成器100によるノイズ及び消費電力の削減効果の定量的な見積もりを試みる。
 あるFPGAでは、実装したRSラッチ回路のうち、乱数を発生させることのできたものは、全体の1/16であった。つまり、図6の乱数生成器100では、実装したRSラッチ回路のうちの15/16について、乱数の生成動作を停止させることになる。従って単純に考えると、図6の乱数生成器100は、従来のもの(例えば図3の乱数生成器30)に比べ、ノイズの発生量は約1/16になることが期待される。
 次に、消費電力について検討する。RSラッチ回路の消費電力をαと仮定し、D型フリップフロップ回路の消費電力をRSラッチの2倍である2αと仮定する。RSラッチを128個実装することを想定すると、従来のもの(例えば図3の乱数生成器30)の消費電力は、128個のRSラッチ回路の消費電力を考慮して、128αとなる。これに対し、図6の乱数生成器100による消費電力は、乱数を生成する8個のRSラッチ回路と、8個のRSラッチ回路の入力に接続されている8個のD型フリップフロップ回路の消費電力を考慮して、8α+8×2α=24αとなる。従って、24α/128α=3/16より、図6の乱数生成器100は、従来のものに比べて、消費電力が約3/16になることが期待される。
 また、図6の乱数生成器100は、乱数生成回路110-1、…、110-nに対する乱数の生成の指示を禁止する場合には、判定結果保持部150のD-FF150-1、…、150-nには値0が格納されるように構成されている。また、D-FF150-1、…、150-nは、この値0を、乱数生成回路110-1、…、110-nのANDゲート112-1、…、112-nに出力している。更に、このとき、ANDゲート112-1、…、112-nは、D-FF150-1、…、150-nからの入力値が0である場合には、値0を、乱数生成回路110-1、…、110-nのRSラッチ回路に出力している。
 D-FF150-1、…、150-nは、電位の異なる2値の論理レベルにおけるロー・レベルの電位(すなわち値0)を出力する方が、ハイ・レベルの電位(すなわち値1)を出力するよりも消費電力が少ない。また、ANDゲート112-1、…、112-nも同様であり、電位の異なる2値の論理レベルにおけるロー・レベルの電位を出力する方が、ハイ・レベルの電位を出力するよりも消費電力が少ない。ここで、メタステーブル状態を利用してRSラッチ回路に乱数を生成させても、実際には乱数を発生させないものの方が、乱数を発生させるものよりも格段に多いことは先に説明した。従って、乱数の生成指示の禁止に、D-FF150-1、…、150-nの出力に値1ではなく値0を割り当て、また、ANDゲート112-1、…、112-nの出力にも値1ではなく値0を割り当てたことで、図6の乱数生成器100の電力消費が削減される。
 次に、図6の乱数生成器100の用途について説明する。
 乱数の生成を必要とする機能として代表的なものに暗号機能があり、この乱数生成器100は、この暗号機能を利用する電子機器に用いることができる。暗号機能を利用する電子機器の具体例としては、前述したスマートカードがあり、乱数生成器100は、このスマートカードで利用することができる。また、無線通信の秘匿を保証するために、携帯電話装置や無線インターネット接続の端末装置などにも暗号機能が求められており、このような電子機器でも乱数生成器100を利用することができる。更に、近年では、印刷装置に使用するインクカートリッジ、電池駆動の電子機器用の専用電池、ゲーム機のプログラムが収められているプログラムカートリッジなどといった電子機器についての模造品が出回っている。これらの模造品の広範な流通を阻止するために、正規の製品に対する認証機能が利用されることがある。この認証機能の実現に乱数の生成が用いられることがあり、乱数生成器100は、このような認証機能を利用する電子機器に用いることもできる。
 ここで図8について説明する。図8は、図6の乱数生成器100を備えた電子機器200の構成例を図解したものである。この電子機器200は、暗号化装置として機能させることができ、また、認証装置としても機能させることができる。
 この電子機器200は、図6に図解した乱数生成器100と、CPU300、暗号演算器400、ROM500、RAM600、及び通信部700とを備えて構成されている。なお、これらの各構成要素はバスライン800にいずれも接続されており、CPU300による管理の下で各種のデータを相互に授受することができるように構成されている。
 CPU(Central Processing Unit )300は、この電子機器200の各構成要素の動作を管理する中央演算部である。
 暗号演算器400は、各種の情報の暗号化処理や、暗号化されているデータの復号処理を行う。なお、本実施形態では、暗号演算器400は、公開鍵コプロセッサ410と共通鍵コプロセッサ420とを備えている。ここで、公開鍵コプロセッサ410は、代表的な公開鍵暗号方式であるRSA暗号や楕円曲線暗号等を用いて暗号化及び復号の処理を行う。また、共通鍵コプロセッサ420は、代表的な共通鍵暗号方式であるAES暗号等を用いて暗号化及び復号の処理を行う。なお、暗号演算器400を電子機器200に備える代わりに、暗号演算器400により行われる暗号化及び復号の処理を、CPU300に行わせることに構成してもよい。
 ROM(Read Only Memory)500には、CPU300により実行される制御プログラムや、暗号演算器400が暗号化や復号の処理において使用する固有のパラメータが予め格納されている不揮発性半導体メモリである。CPU300は、電子機器200への電力供給が開始されたときに、この制御プログラムをROM500から読み出してその実行を開始することで、電子機器200の各構成要素の動作管理を行えるようになる。
 RAM(Random Access Memory)600は、CPU300や暗号演算器400が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
 通信部700は、各種のデータの送受信を行って、同一の構成を有する他の電子機器200との間で、各種のデータの授受を行う。
 この電子機器200を暗号化装置として機能させる場合、乱数生成器100は、暗号演算器400が情報の暗号化処理を行うときにおける暗号鍵の生成に用いられる。なお、暗号化処理に用いた暗号鍵は例えばRAM600に格納して保持しておくようにし、その後に暗号演算器400が暗号化情報に対して行う復号処理に使用する。
 なお、乱数生成器100で生成される乱数列を暗号鍵の生成に用いる際に、生成された乱数列の乱数としての真性度を更に向上させるために、後処理(Post Processing )を行ってもよい。このために行われる後処理の一例として、線形フィードバックシフトレジスタ(LFSR)の使用を挙げることができる。LFSRは、排他的論理和回路で帰還をかけたシフトレジスタによって構成されるカウンタであり、乱数列を入力すると、乱数列が圧縮されて、乱数としての真性度を向上させた乱数列が得られることが知られている。従って、LFSRの出力から得られる乱数列を用いて暗号鍵の生成を行うようにすることで、より真性度の高い乱数列を暗号鍵とすることが可能になる。なお、LFSRは、専用のハードウェアを構成して用いるようにしてもよく、また、CPU300を用いてソフトウェアにより実現するようにしてもよい。
 また、この電子機器200を用いて、前述した認証機能を提供することができる。
 装置間で行われる認証の手順について説明する。なお、ここでは、装置Cを認証対象装置として装置Pを認証装置とし、装置Cが正規のものであるか否かを装置Pが検証する場合を例にして認証の手順を説明する。
 認証装置である装置Pと認証対象装置である装置Cとの各々には、図8の電子機器200と同一の構成要素を備えておくようにする。また、装置Pと正規の装置Cとの間では、共通の暗号鍵(秘密鍵)Kを事前に共有しておくようにし、例えば、この暗号鍵Kを装置P及び装置Cの各々のROM500に予め格納しておく。
 認証を行う場合には、まず、装置Pが乱数生成器100を用いて乱数rを生成し、生成した乱数rを、通信部700を用いて装置Cへ送信する。装置Cは、通信部700を用いて乱数rを受信すると、この乱数rに対し、装置Pとの間で共有している暗号鍵Kを用いて暗号演算器400で暗号化処理を行い、得られた暗号化情報を、通信部700を用いて装置Pに返信する。装置Pは、この暗号化情報の返信を、通信部700を用いて受信すると、装置Cとの間で共有している暗号鍵Kを用いて、受信した暗号化情報を暗号演算器400で復号処理を施す。そして、この復号処理により得られた情報が、装置Cへ送信した乱数rと一致するか否かを、装置PのCPU300が判定する。ここで、復号処理により得られた情報が乱数rと一致した場合には、装置Cが正規のものであるとの認証結果を装置PのCPU300が得る。一方、復号処理により得られた情報が乱数rと一致しなかった場合には、装置Cが正規のものではないとの認証結果を装置PのCPU300が得る。
 以上のプロセスを、装置Pと装置Cとで行うことで、装置Cの認証を装置Pで行うことができる。なお、以上のプロセスを行うための専用のハードウェアを装置P及び装置Cに備えるようにしてもよい。
 なお、上記の手順において装置Cから装置Pへ返信される暗号化情報の収集結果を利用して装置Cに成りすます攻撃(「リプレイアタック」等)を考慮すると、この認証機能に使用する乱数rは、乱数としての真性度が高いものを使用することが好ましい。
 なお、以上までに説明した実施形態に関し、更に以下の付記を開示する。
(付記1)
 複数のデジタル回路の各々の出力の排他的論理和を得る排他的論理和回路と、
 該複数のデジタル回路の各々に関して、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う乱数判定部と、
 該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したデジタル回路に対する乱数の生成の指示を禁止する乱数生成指示禁止部と、を有することを特徴とする乱数生成器。
(付記2)
 該複数のデジタル回路は複数のRSラッチ回路であり、
 該乱数生成部は、該RSラッチ回路をメタステーブル状態とする入力を乱数の生成の指示として該RSラッチ回路に入力したときの該RSラッチ回路の出力が乱数であるか否かの判定を、該複数のRSラッチ回路の各々に対して行う、
ことを特徴とする付記1に記載の乱数生成回路。
(付記3)
 該乱数判定部は、該RSラッチ回路をメタステーブル状態とする入力を入力しているときにおける該RSラッチ回路の該メタステーブル状態を経た後の出力の観測を繰り返し、観測された出力の論理が所定回数連続して変化しないときには、該RSラッチ回路の出力は乱数ではないとの判定を下すことを特徴とする付記2に記載の乱数生成器。
(付記4)
 該乱数生成指示禁止部は、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続するようにして、乱数の生成の指示を禁止することを特徴とする付記1に記載の乱数生成器。
(付記5)
 該乱数判定部の判定結果を保持する判定結果保持部を更に有しており、
 該乱数生成指示禁止部は、該判定結果保持部が保持している該乱数判定部の判定結果を該判定結果保持部から受け取り、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し該受け取った判定結果を与えるようにして、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続する、
ことを特徴とする付記4に記載の乱数生成器。
(付記6)
 該複数のデジタル回路の各々の出力をひとつずつ選択して出力する選択部を更に有しており、
 該判定結果保持部は、該複数のデジタル回路にひとつずつ対応付けられており、該乱数判定部の判定結果を保持する複数のD型フリップフロップ回路を備えており、
 該乱数判定部は、該選択部により出力が選択されたデジタル回路に対して該判定を行い、該判定結果を、該判定結果保持部における該デジタル回路に対応付けられているD型フリップフロップ回路に保持させる、
ことを特徴とする付記5に記載の乱数生成器。
(付記7)
 該判定結果保持部における、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対応付けられているD型フリップフロップ回路は、電位の異なる2値の論理レベルにおけるロー・レベルの電位を、該乱数生成指示禁止部に出力することを特徴とする付記6に記載の乱数生成器。
(付記8)
 該乱数生成指示禁止部は、クロック信号と該D型フリップフロップ回路の出力との論理積を得る論理積回路を備えており、該論理積回路の出力を、該D型フリップフロップ回路に対応付けられているデジタル回路に入力するようにして、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対する、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続することを特徴とする付記7に記載の乱数生成器。
(付記9)
 該複数のデジタル回路の各々の出力をひとつずつ選択して出力する選択部を更に有しており、
 該判定結果保持部は、該複数のデジタル回路にひとつずつ対応付けられており、該乱数判定部の判定結果を保持する複数のD型ラッチ回路を備えており、
 該乱数判定部は、該選択部により出力が選択されたデジタル回路に対して該判定を行い、該判定結果を、該判定結果保持部における該デジタル回路に対応付けられているD型ラッチ回路に保持させる、
ことを特徴とする付記5に記載の乱数生成器。
(付記10)
 付記1から9のうちのいずれか一項に記載の乱数生成器と、
 該乱数生成器が生成した乱数列を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部と、
を有することを特徴とする暗号化装置。
(付記11)
 付記1から9のうちのいずれか一項に記載の乱数生成器と、
 認証対象装置との間で通信を行って各種の情報の授受を行う通信部と、
 暗号化されている情報に対し、正規の認証対象装置との間で共有されている所定の暗号鍵を用いて復号処理を施す復号処理部と、
 該復号処理部による復号処理によって得られた情報に基づいて該認証対象装置に対する認証処理を行う認証処理部と、
を有し、
 該通信部は、該乱数生成器が生成した乱数列を該認証対象装置へ送信したときに該乱数列を受信した該認証対象装置から送られてくる、該乱数列に対して該認証対象装置で施された暗号化処理により得られた暗号化情報を受信し、
 該復号処理部は、該通信部が受信した暗号化情報に対して該復号処理を施し、
 該認証処理部は、該認証処理において、該通信部が受信した暗号化情報に対して該復号処理部が該復号処理を施して得られた復号情報が、該認証対象装置へ送信した乱数列と一致するか否かの判定を行い、該復号情報と該欄数列とが一致すると判定したときに、該認証対象装置が正規のものであるとの認証結果を得る、
ことを特徴とする認証装置。
   10、10-1、10-n RSラッチ
   11、12、111-1a、111-1b、111-na、111-nb
                                NANDゲート
   20、30、100 乱数生成器
   31、120 XORゲート
  110-1、110-n 乱数生成回路
  112-1、112-n ANDゲート
  130 マルチプレクサ
  140 乱数判定部
  150 判定結果保持部
  150-1、150-n Dフリップフロップ
  200 電子機器
  300 CPU
  400 暗号演算器
  410 公開鍵コプロセッサ
  420 共通鍵コプロセッサ
  500 ROM
  600 RAM
  700 通信部
  800 バスライン

Claims (7)

  1.  複数のデジタル回路の各々の出力の排他的論理和を得る排他的論理和回路と、
     該複数のデジタル回路の各々に関して、乱数の生成の指示に応じて生成される出力が乱数であるか否かの判定を行う乱数判定部と、
     該複数のデジタル回路のうち該指示に応じて生成される出力が乱数でないと該乱数判定部が判定したデジタル回路に対する乱数の生成の指示を禁止する乱数生成指示禁止部と、
    を有することを特徴とする乱数生成器。
  2.  該複数のデジタル回路は複数のRSラッチ回路であり、
     該乱数生成部は、該RSラッチ回路をメタステーブル状態とする入力を乱数の生成の指示として該RSラッチ回路に入力したときの該RSラッチ回路の出力が乱数であるか否かの判定を、該複数のRSラッチ回路の各々に対して行う、
    ことを特徴とする請求項1に記載の乱数生成回路。
  3.  該乱数判定部は、該RSラッチ回路をメタステーブル状態とする入力を入力しているときにおける該RSラッチ回路の該メタステーブル状態を経た後の出力の観測を繰り返し、観測された出力の論理が所定回数連続して変化しないときには、該RSラッチ回路の出力は乱数ではないとの判定を下すことを特徴とする請求項2に記載の乱数生成器。
  4.  該乱数生成指示禁止部は、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続するようにして、乱数の生成の指示を禁止することを特徴とする請求項1に記載の乱数生成器。
  5.  該乱数判定部の判定結果を保持する判定結果保持部を更に有しており、
     該乱数生成指示禁止部は、該判定結果保持部が保持している該乱数判定部の判定結果を該判定結果保持部から受け取り、出力が乱数ではないと該乱数判定部が判定したデジタル回路に対し該受け取った判定結果を与えるようにして、該デジタル回路の出力の論理を不変のまま保持する値の入力を継続する、
    ことを特徴とする請求項4に記載の乱数生成器。
  6.  請求項1から5のうちのいずれか一項に記載の乱数生成器と、
     該乱数生成器が生成した乱数列を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部と、
    を有することを特徴とする暗号化装置。
  7.  請求項1から5のうちのいずれか一項に記載の乱数生成器と、
     認証対象装置との間で通信を行って各種の情報の授受を行う通信部と、
     暗号化されている情報に対し、正規の認証対象装置との間で共有されている所定の暗号鍵を用いて復号処理を施す復号処理部と、
     該復号処理部による復号処理によって得られた情報に基づいて該認証対象装置に対する認証処理を行う認証処理部と、
    を有し、
     該通信部は、該乱数生成器が生成した乱数列を該認証対象装置へ送信したときに該乱数列を受信した該認証対象装置から送られてくる、該乱数列に対して該認証対象装置で施された暗号化処理により得られた暗号化情報を受信し、
     該復号処理部は、該通信部が受信した暗号化情報に対して該復号処理を施し、
     該認証処理部は、該認証処理において、該通信部が受信した暗号化情報に対して該復号処理部が該復号処理を施して得られた復号情報が、該認証対象装置へ送信した乱数列と一致するか否かの判定を行い、該復号情報と該欄数列とが一致すると判定したときに、該認証対象装置が正規のものであるとの認証結果を得る、
    ことを特徴とする認証装置。
PCT/JP2010/002228 2010-03-26 2010-03-26 乱数生成器、暗号化装置、及び認証装置 WO2011117929A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2010/002228 WO2011117929A1 (ja) 2010-03-26 2010-03-26 乱数生成器、暗号化装置、及び認証装置
JP2012506670A JP5273294B2 (ja) 2010-03-26 2010-03-26 乱数生成器、暗号化装置、及び認証装置
EP10848323.1A EP2551837B1 (en) 2010-03-26 2010-03-26 Random number generator, encryption device and recognition device
US13/626,221 US9015218B2 (en) 2010-03-26 2012-09-25 Random number generator, encryption device, and authentication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/002228 WO2011117929A1 (ja) 2010-03-26 2010-03-26 乱数生成器、暗号化装置、及び認証装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/626,221 Continuation US9015218B2 (en) 2010-03-26 2012-09-25 Random number generator, encryption device, and authentication device

Publications (1)

Publication Number Publication Date
WO2011117929A1 true WO2011117929A1 (ja) 2011-09-29

Family

ID=44672528

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/002228 WO2011117929A1 (ja) 2010-03-26 2010-03-26 乱数生成器、暗号化装置、及び認証装置

Country Status (4)

Country Link
US (1) US9015218B2 (ja)
EP (1) EP2551837B1 (ja)
JP (1) JP5273294B2 (ja)
WO (1) WO2011117929A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013130434A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
JP2015106172A (ja) * 2013-11-28 2015-06-08 富士通株式会社 電子回路、電子機器及び認証システム
WO2016194382A1 (ja) * 2015-06-04 2016-12-08 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
JP2017005697A (ja) * 2015-06-04 2017-01-05 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
JP2020119562A (ja) * 2019-01-28 2020-08-06 新唐科技股▲ふん▼有限公司 乱数生成回路及び乱数生成方法
JP2023530779A (ja) * 2020-07-17 2023-07-19 フィステク テクノロジーズ トゥルー ランダム アーゲー 真正乱数生成器

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459835B2 (en) 2014-01-15 2016-10-04 HGST Netherlands B.V. Random number generator by superparamagnetism
FR3019361B1 (fr) 2014-03-28 2017-05-19 Airbus Helicopters Procede de detection et de visualisation des obstacles artificiels d'un aeronef a voilure tournante
FR3026490B1 (fr) * 2014-09-30 2016-12-23 Sagem Defense Securite Procede d'identification de l'existence d'une panne, procede d'identification d'un equipement relais en panne, procede d'identification du type de panne et systeme d'alimentation associe
NL2014743B1 (en) * 2015-04-30 2017-01-18 Ubiqu B V A first entity, a second entity, an intermediate node, methods for setting up a secure session between a first and second entity, and computer program products.
WO2018236854A1 (en) * 2017-06-21 2018-12-27 Massachusetts Institute Of Technology ACOUSTIC DIAGNOSTIC SYSTEM AND METHOD FOR SUPERCONDUCTING DEVICES OPERATING IN GAS OR LIQUID
CN109558111B (zh) * 2018-10-16 2023-09-29 北京理工雷科空天信息技术有限公司 基于d触发器亚稳态特性的真随机数生成装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131867A (ja) * 2001-08-15 2003-05-09 Syst Kogaku Kk 乱数生成装置
JP2003173254A (ja) * 2001-09-26 2003-06-20 Toshiba Corp 乱数生成回路
JP2003526151A (ja) * 2000-03-06 2003-09-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ フリップフロップ準安定性を使用する乱数生成方法および装置
JP2004537119A (ja) * 2001-07-25 2004-12-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 疑似ランダムシーケンスを用いて乱数発生器を非相関とするための方法および装置
JP2005530270A (ja) * 2002-06-20 2005-10-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 準安定ラッチを使用して乱数を発生する方法及び装置
JP2010039838A (ja) * 2008-08-06 2010-02-18 Mega Chips Corp 乱数生成回路及びコンピュータシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249108B1 (en) * 1997-07-15 2007-07-24 Silverbrook Research Pty Ltd Validation protocol and system
US7219112B2 (en) * 2001-11-20 2007-05-15 Ip-First, Llc Microprocessor with instruction translator for translating an instruction for storing random data bytes
US7302458B2 (en) * 2003-03-14 2007-11-27 Nxp B.V. Method and apparatus for choosing a combination of logic for generating random numbers using a difference signal
US7356552B2 (en) * 2003-03-14 2008-04-08 Nxp B.V. VLSI implementation of a random number generator using a plurality of simple flip-flops
US7827223B2 (en) * 2004-04-22 2010-11-02 Fortress Gb Ltd. Accelerated throughput synchronized word stream cipher, message authenticator and zero-knowledge output random number generator

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526151A (ja) * 2000-03-06 2003-09-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ フリップフロップ準安定性を使用する乱数生成方法および装置
JP2004537119A (ja) * 2001-07-25 2004-12-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 疑似ランダムシーケンスを用いて乱数発生器を非相関とするための方法および装置
JP2003131867A (ja) * 2001-08-15 2003-05-09 Syst Kogaku Kk 乱数生成装置
JP2003173254A (ja) * 2001-09-26 2003-06-20 Toshiba Corp 乱数生成回路
JP3604674B2 (ja) 2001-09-26 2004-12-22 株式会社東芝 乱数生成回路
JP2005530270A (ja) * 2002-06-20 2005-10-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 準安定ラッチを使用して乱数を発生する方法及び装置
JP2010039838A (ja) * 2008-08-06 2010-02-18 Mega Chips Corp 乱数生成回路及びコンピュータシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2551837A4 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013130434A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
JP2015106172A (ja) * 2013-11-28 2015-06-08 富士通株式会社 電子回路、電子機器及び認証システム
US9384682B2 (en) 2013-11-28 2016-07-05 Fujitsu Limited Electronic circuit, electronic apparatus, and authentication system
WO2016194382A1 (ja) * 2015-06-04 2016-12-08 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
JP2017005697A (ja) * 2015-06-04 2017-01-05 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
US10708044B2 (en) 2015-06-04 2020-07-07 Quantaglion Co., Ltd. Pulse generation device using a radioisotope and authentication system
JP2020119562A (ja) * 2019-01-28 2020-08-06 新唐科技股▲ふん▼有限公司 乱数生成回路及び乱数生成方法
JP7059310B2 (ja) 2019-01-28 2022-04-25 新唐科技股▲ふん▼有限公司 乱数生成回路及び乱数生成方法
JP2023530779A (ja) * 2020-07-17 2023-07-19 フィステク テクノロジーズ トゥルー ランダム アーゲー 真正乱数生成器
JP7377393B2 (ja) 2020-07-17 2023-11-09 フィステク テクノロジーズ トゥルー ランダム アーゲー 真正乱数生成器

Also Published As

Publication number Publication date
US20130022197A1 (en) 2013-01-24
JP5273294B2 (ja) 2013-08-28
EP2551837A4 (en) 2014-12-24
US9015218B2 (en) 2015-04-21
JPWO2011117929A1 (ja) 2013-07-04
EP2551837B1 (en) 2015-12-16
EP2551837A1 (en) 2013-01-30

Similar Documents

Publication Publication Date Title
JP5273294B2 (ja) 乱数生成器、暗号化装置、及び認証装置
KR101727130B1 (ko) 암호화 키를 획득하기 위한 디바이스 및 방법
JP5333669B2 (ja) 個体別情報生成装置及び個体別情報生成方法
US7827223B2 (en) Accelerated throughput synchronized word stream cipher, message authenticator and zero-knowledge output random number generator
US7659837B2 (en) Operation processing apparatus, operation processing control method, and computer program
KR101987141B1 (ko) 난수 발생기
US20160267266A1 (en) Electronic circuit, authentication system, and authentication method
US20140037089A1 (en) Encryption processing device and method
EP3503463B1 (en) Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources
JP6533553B2 (ja) 暗号化/復号装置及びその電力解析保護方法
JP6167876B2 (ja) 電子回路、電子機器及び認証システム
JP2013131868A (ja) 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
KR20120038104A (ko) 랜덤 데이터 생성 장치 및 그 방법
Zhang et al. FPGA IP protection by binding finite state machine to physical unclonable function
CN109842488A (zh) 用于物理芯片内的密钥生成组件
Hazari et al. FPGA IP obfuscation using ring oscillator physical unclonable function
Rahman et al. Design and security-mitigation of custom and configurable hardware cryptosystems
KR102197744B1 (ko) 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치
Upadhyay et al. Cryptanalysis of hardware based stream ciphers and implementation of GSM stream cipher to propose a novel approach for designing n-bit LFSR stream cipher
US20190243960A1 (en) Electronic apparatus with clock authentication function and authentication method of clock signal
Hernandez-Becerrjl et al. A parallel authenticated encryption sharing scheme based on cellular automata
Likhithashree et al. Design of Power-Efficient Ring Oscillator based Physically Unclonable Functions for FPGA
Nagamalli et al. Design and Implementation of Linear Feedback shift Register based physical unclonable function
CN117278212A (zh) 密钥生成方法、装置、系统、电子设备及可读存储介质
WO2024035387A1 (en) Hashing circuitry for hardware root of trust

Legal Events

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

Ref document number: 10848323

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012506670

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2010848323

Country of ref document: EP