WO2011086688A1 - ビット列生成装置及びビット列生成方法 - Google Patents

ビット列生成装置及びビット列生成方法 Download PDF

Info

Publication number
WO2011086688A1
WO2011086688A1 PCT/JP2010/050422 JP2010050422W WO2011086688A1 WO 2011086688 A1 WO2011086688 A1 WO 2011086688A1 JP 2010050422 W JP2010050422 W JP 2010050422W WO 2011086688 A1 WO2011086688 A1 WO 2011086688A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
glitch
signal
data
input
Prior art date
Application number
PCT/JP2010/050422
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 EP10843047.1A priority Critical patent/EP2525489B1/en
Priority to JP2011549823A priority patent/JP5377667B2/ja
Priority to US13/522,439 priority patent/US9031232B2/en
Priority to PCT/JP2010/050422 priority patent/WO2011086688A1/ja
Priority to KR1020127018346A priority patent/KR101370231B1/ko
Priority to CN201080061364.0A priority patent/CN102783028B/zh
Publication of WO2011086688A1 publication Critical patent/WO2011086688A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/84Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse 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
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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

  • the present invention relates to a security device that executes authentication processing, encryption processing, and the like.
  • the present invention relates to a device that generates secret information used in cryptographic processing and a device-specific identifier necessary for authenticating the device based on a physical quantity unique to the device.
  • each embedded device has unique information that is unique and a device-specific identifier (hereinafter, this information is referred to as “key information”) “safely”. It is holding.
  • key information a device-specific identifier
  • Various sensors are installed as means to keep key information safely, and unauthorized access from the outside is prevented by a physical protective film (metal case or resin mold).
  • a protection method using a tamper resistant mechanism such as a housing or a security chip.
  • PUF Physical Unclonable Function
  • FIG. 19 shows an embodiment of the PUF in Patent Document 1.
  • the bit generator 100 includes a ring oscillator group 101 including N ring oscillators 102 (R0 to RN), a selection circuit 104, and a frequency comparator 107.
  • the bit generator 100 uses the frequency characteristics of each ring oscillator 102 as an information source of key information.
  • the output signal 103 of the ring oscillator oscillates at a frequency determined by the delay characteristic of the feedback circuit constituting each ring oscillator.
  • the selection circuit 104 outputs two signals 106 (Si, Sj) as a pair according to the value of the selection signal 105 (I, J) from the output signals 103 of the N ring oscillators.
  • the oscillation frequencies of Si and Sj are compared by the frequency comparator 107, and the frequency comparator 107 outputs a comparison result 108.
  • the bit generator 100 outputs a comparison result 108 and a response bit value 109 indicating the sign of the comparison result 108.
  • Patent Document 1 since the oscillation frequency of the ring oscillator varies depending on variations in delay characteristics of devices, even if the bit generator 100 is manufactured based on the same design information, the response bit varies depending on the individual. Output the value. Therefore, the response bit value can be used as an identifier of each device, and the identifier is not stored as non-volatile digital data and is generated every time the bit generator is operated. Patent Document 1 claims that it has higher tamper resistance.
  • Patent Document 1 describes that all ring oscillators are configured with the same design (a loop circuit using five inverters).
  • the frequency may vary greatly depending on the placement and routing even for ring oscillators of the same design.
  • a difference that differs depending on the placement and routing becomes more dominant than a difference that occurs due to individual differences between devices.
  • the same response bit value is always output regardless of the device.
  • Non-Patent Document 1 points out that depending on the design, the input / output of the inverter constituting the ring oscillator may be in an intermediate potential state and may not oscillate. In general, in the intermediate potential state, a through current may flow constantly, and there is a risk of impairing device reliability. Similarly, Non-Patent Document 2 describes that a combinational loop circuit is not recommended.
  • the present invention has been made in view of the technical problems as described above, and the object of the present invention is to generate secret information with high randomness even in a device with a low degree of freedom of placement and routing. Another object is to provide a PUF circuit that does not cause a design rule violation.
  • the bit string generation device of the present invention is A glitch generating portion for generating a glitch, A glitch waveform acquisition unit that acquires the waveform of the glitch generated by the glitch generation unit; A bit data generation unit that generates 1-bit data indicating either 1 or 0 based on the waveform of the glitch acquired by the glitch waveform acquisition unit; And a bit string generation unit that generates a bit string composed of the plurality of 1-bit data generated by the bit data generation unit.
  • FIG. 4 shows an example of mounting the bit string generation device 200 in the system LSI according to the first embodiment.
  • 4 is an example of circuit behavior that may occur when the same logic circuit has different delay information in the first embodiment.
  • FIG. The figure which shows the expected value of the sampling result in Embodiment 1, and the sampling result which can generate
  • FIG. 5 shows a capture result when the jitter correction processing is not performed in the first embodiment.
  • FIG. 4 is an example of a supplemented glitch pattern in the first embodiment.
  • 2 is a circuit configuration of a bit string generation device 200 according to the first embodiment.
  • FIG. 3 shows a configuration example of a glitch generation circuit 205 in the first embodiment.
  • 4 is a configuration example of a delay circuit in which a carry path delay circuit and a LUT delay circuit are combined in the first embodiment.
  • FIG. 6 shows an internal configuration example of a delay circuit used as the messenger signal delay circuit 206 and the sampling delay circuit 209 in the first embodiment.
  • 3 shows an internal configuration example of a variable delay circuit 207 in the first embodiment.
  • 5 is a flowchart showing the operation of the bit string generation device 200 in the first embodiment. 6 is a flowchart showing an operation of jitter correction processing by the bit string generation device 200 in the first embodiment.
  • Embodiment 1 FIG. A bit string generation device 200 according to the first embodiment will be described with reference to FIGS.
  • the bit string generation device 200 according to Embodiment 1 is a method for configuring a PUF using a glitch shape.
  • FIG. 1 is a diagram illustrating an example in which a bit string generation device 200 is mounted on a system LSI (Large Scale Integration) 1000.
  • a system LSI having a general configuration including a CPU (Central Processing Unit) 500, an internal memory 600, an external interface 700, and the like includes a bit string generation device 200, an error correction circuit 300 (error correction unit), and an encryption processing circuit 400. It is an example.
  • the bit string generation device 200 generates key information that is a bit string from the generated glitch. This key information is a glitch PUF.
  • the data (bit string) generated by the bit string generation device 200 is used as key information necessary for information security processing such as encryption processing by the encryption processing circuit 400, for example. Control over the bit string generation device 200 may be controllable from the CPU 500.
  • bit string generation device 200 (glitch PUF described later) is first described in “1.1 Basic idea” to “3.1 Implementation evaluation result”, and then the configuration and operation of the bit string generation device 200 are described in more detail. explain in detail.
  • FIG. 2 shows an example of circuit behavior that can occur when the same logic circuit has different delay information.
  • a circuit that performs logical operations such as AND and XOR on a plurality of inputs, as shown in FIG.
  • a transient transition of a signal called “glitch” occurs due to a delay difference of each signal.
  • the output of the XOR gate when all of the input signals x1, x2, and x3 change from 0 to 1, the output of the XOR gate generates a convex glitch due to a difference in signal change between the input signals x1 and x2. To do.
  • FIG. 2 shows an example of circuit behavior that can occur when the same logic circuit has different delay information.
  • the glitch propagates to the output of the AND gate.
  • the glitch will not propagate to the AND gate output, and the output will not change.
  • the shape of the glitch waveform is determined not by the absolute amount of delay of each gate but by the relative relationship of delay values between signals. That is, the glitch shape can be expected to be preserved even if the operating environment changes.
  • the inventor has devised a method to be applied to the configuration of the PUF, paying attention to the glitch that can take various shapes depending on the delay relationship between the input signals of each gate constituting the logic circuit.
  • this configuration method may be referred to as “glitch PUF”.
  • Phase shift method As a general solution to this problem, it is conceivable to sample the glitch waveform by the phase shift method. A plurality of clock signals whose phases are shifted are used, and a minute pulse is sampled using these clock signals. Furthermore, in order to increase the sampling accuracy, it is necessary to prepare as many clocks with different phases as possible. In this case, since the number of clock lines becomes too large, this method is not practical. In particular, in FPGA, the number of global clock lines with little jitter is limited to several to several tens. Although a method of reducing the number of clock lines by regenerating a glitch waveform and performing time division processing of sampling processing can be considered, the extraction speed is reduced according to the number of divisions.
  • FIG. 3 shows the configuration of the sampling circuit 220 using this method.
  • this sampling processing is referred to as “glitch capturing processing” (also referred to as glitch shape acquisition processing).
  • glitch capturing processing also referred to as glitch shape acquisition processing.
  • this sampling method it is necessary to shorten the sampling interval for accurate shape capture. Therefore, by reducing the number of buffer stages (B1 to Bn) inserted between the signals fetched into the flip-flops (registers R1 to Rn) in FIG. 3, or by using an element having a smaller delay value, It is necessary to reduce the delay difference between signals to be taken into a flop (hereinafter referred to as FF) as much as possible.
  • FF delay difference between signals to be taken into a flop
  • FIG. 4 is a diagram showing “actual glitch waveform and expected value of sampling result” (FIG. 4A) and “sampling result generated due to error in order correction” (FIG. 4B). That is, as shown in FIG. 4B, the time order relation of the sampled data is changed, and it is expected that the glitch shape cannot be accurately restored.
  • jitter correction processing Therefore, the inventor performs the following “preprocessing” before performing the glitch capturing process.
  • the time order relation of the sampling results is determined by performing “preprocessing”.
  • this “pre-processing” is referred to as “jitter correction processing” (S701 described later).
  • the outline of “jitter correction processing” will be described below.
  • each FF (R1 to Rn) of the sampling circuit 220 latches 1 when the messenger signal arrives earlier than the rising edge of the clock, and 0 when it is late.
  • This process is performed a plurality of times while changing the delay value in a state where a delay circuit (a variable delay circuit 207 described later) that makes the delay value variable is inserted in the clock line, and the number of times that 1 is latched for each FF is counted.
  • the order relationship of the times sampled by each FF is calculated based on the number of times. Using this order relationship, the glitch shape is restored by rearranging the sampling results of the glitch waveform.
  • FIG. 5 shows a capture result when the glitch capture process is performed using the jitter correction process.
  • FIG. 6 shows a capture result when the jitter correction processing is not performed.
  • FIG. 7 shows three examples of supplemented glitch patterns.
  • determination processing is performed M times for each of N state changes, and an N-bit response is generated, but an N-bit mask value is simultaneously generated.
  • a bit having a mask value of 1 represents a bit used for key generation, and a bit of 0 represents not used for key generation.
  • the mask value is output to the outside as part of Helper Data. This “improving the error rate” will be described in detail later in the description below as “i, j in FIG. 15”.
  • the glitch PUF is characterized by the fact that the bit position with a high error rate is determined depending on the individual and the bit amount is small. Therefore, the implementation rate of key generation is improved by reducing the correction capability of the error correction code. To do.
  • FIG. 8 shows a circuit configuration of the bit string generation device 200 that executes the glitch PUF.
  • the bit string generation device 200 mainly includes a control register group 203, a data register group 204, a glitch generation circuit 205, a sampling circuit 220, and two types of delay circuits (a messenger signal delay circuit 206 and a variable delay circuit 207).
  • the control register group 203 stores the following control parameters.
  • Control signal Sel (1) selection signal (logu bit) of the glitch generation circuit
  • Control signal sel (2) sampling circuit input selection signal (1 bit)
  • the data register group 204 stores data X (u bits) input to the glitch generation circuit 205.
  • FIG. 9 shows the configuration of the glitch generation circuit 205. As shown in FIG.
  • the v-1 selector 2052 is configured to select a bit by a selection signal Sel (1) and output one bit.
  • messenger signal delay circuit 206 includes, for example, a buffer chain, and outputs the DLY (h) is a delayed signal h d messenger signal (h). The number of stages of the buffer chain is determined by evaluating the generation timing of the glitch signal generated by the glitch generation circuit 205 at the time of design by simulation. Details of this will be described later.
  • the sampling circuit 220 includes a buffer chain (sampling delay circuit 209) and an FF (sampling register group 210) as shown in FIG.
  • a glitch PUF is mounted on the FPGA
  • Sampling resolution can be increased.
  • the variable delay circuit 207 uses a carry path in order to make fine increments of delay values that can be changed.
  • the circuit scale increases if all of them are mounted by a carry path. Therefore, as shown in FIG.
  • FIG. 10 shows a configuration of a delay circuit in which a delay circuit using a carry path and a delay circuit using an LUT are combined.
  • the glitch PUF handled in the first embodiment performs sampling up to sampling (sampling circuit 220) in order to observe the behavior of the generated glitch, and the subsequent processing is implemented by firmware.
  • FIG. 11 is a diagram illustrating a relationship between parameters.
  • N and “delay s ” are parameters related to the sampling range and its resolution, and the sampling range “range s ” is approximately “n ⁇ delay s ”. In other words, a range s ⁇ n ⁇ delay s.
  • range g ⁇ range s ⁇ range CLK It is necessary to become. The design procedure for establishing this relationship is described below. (1) First, at the stage of determining the logic of the glitch generation circuit 205 performs a logic simulation with the delay information, estimate the time a glitch occurs in the input range range g between generation timing t g of the sampling circuit 220. (2) Next, range g ⁇ range s “N” and “delay s ” satisfying the above are determined.
  • the sampling resolution can be increased by using, as a buffer, a cell whose delay s is as small as possible in the platform to be mounted. Therefore, n is actually determined.
  • the range s is set so that the design margin is at least twice the range g .
  • the number of buffer stages of the variable delay circuit is set based on the double of range s .
  • the delay value of the delay circuit is designed so that t g ⁇ t h using the above-described estimation result t g .
  • the reason for adjusting the timing for the messenger signal is that it is used for calculating the time order relationship of the sampling results, and at the same time, the value Dg of the delay value designation signal of the variable delay circuit used when capturing the glitch shape is used. This is to decide. The method will be described below.
  • D is sampled while changing D from the minimum value to the maximum value for the message signal.
  • the value of D at which the FF near the center of the sampling result first latches 1 is Dg. Since the glitch generation range is adjusted to be about the same as the delay of the messenger signal, the glitch waveform can be sampled near the center of the sampling range.
  • range s and range CLK it is necessary to set a margin such as a fold-half as described above.
  • FIG. 12 shows a mounting evaluation result.
  • the trial production was performed using a Spartan-3A evaluation board manufactured by AVNET.
  • the target device is XC3S400A-4FT256.
  • the processing performed after the shape acquisition processing described above is executed by firmware processing using MicroBlaze mounted on the same FPGA.
  • the glitch generation circuit 205 an AES SubBytes circuit is used because of the complexity of logic and the circuit structure widely known to cryptographic hardware designers.
  • the sampling circuit 220 is implemented with 256 FFs, the variable delay circuit 207 is a 256-bit adder, and a buffer chain with a different number of LUT stages of 4, 8, 12, and 16 is selected by a 4-1 selector. It was set as the structure to do.
  • bit string generation device 200 The outline of the bit string generation device 200 has been described above. Next, a detailed configuration and operation of the bit string generation device 200 will be described below.
  • bit string generation device 200 that generates a bit string used as key information will be described.
  • the bit string generation device 200 is connected to the data bus 202.
  • the bit string generation device 200 includes a control register group 203, a data register group 204, a glitch generation circuit 205 (glitch generation unit), a message signal circuit 206 (message signal delay unit), a variable delay circuit 207 (variable delay unit), and a selector 208.
  • a sampling delay circuit 209 (glitch delay unit), a sampling register group 210 (sampling unit), a glitch shape determination circuit 211 (bit data generation unit, bit string generation unit), and a bit string output bus 212.
  • the sampling delay circuit 209 and the sampling register group 210 constitute a sampling circuit 220 (glitch waveform acquisition unit).
  • each component will be described.
  • Control register group 203 The control register group 203 is responsive to data input from the data bus 202.
  • a control signal (p) for clock input to the sampling register group 210; are provided with a plurality of registers.
  • the data register group 204 includes a plurality of registers that hold an input signal X to the glitch generation circuit 205 in response to data input from the data bus 202.
  • the glitch generation circuit 205 is a circuit that receives the data signal X from the data register group 204 and the control signal sel (1) from the control register group 203 and outputs a signal g.
  • the internal configuration of the glitch generation circuit 205 will be described with reference to FIG.
  • the random logic unit 2051 (combination circuit) processes u-bit inputs of ⁇ x1,..., Xu ⁇ expressing X for each bit by a combinational circuit combining arbitrary functions, and generates v-bit data ⁇ y1,..., yv ⁇ are output.
  • the selector 2052 selects a 1-bit signal line from v signal lines (sometimes referred to as bit signal lines) of ⁇ y1,..., Yv ⁇ in accordance with the control signal sel (1). Select one and set it as output g.
  • FIG. 13 shows the internal configuration of a delay circuit used as the messenger signal delay circuit 206 or the sampling delay circuit 209.
  • the delay circuit 401 and the delay circuit 402 shown in FIG. 13 are used as the messenger signal delay circuit 206 or the sampling delay circuit 209.
  • a delay circuit 401 shown in FIG. 13A is an example of a configuration in which a general buffer circuit (an example of a delay element) is connected in series, and is generally used in an ASIC (Application Specific Integrated Circuit).
  • 13B is an example in which a delay circuit is configured using the carry propagation delay of an adder (an example of a delay element).
  • the adder circuit is configured by a dedicated hard macro, the carry propagation delay is faster than the LUT that configures the normal logic. Therefore, by using the carry propagation delay as a delay circuit, it becomes possible to make the delay granularity fine.
  • the number of logic stages of the messenger signal delay circuit 206 is designed to be approximately the same as the number of logic stages of the glitch generation circuit 205.
  • variable delay circuit 207 is a delay circuit that can change the delay from input to output by the control signal (D).
  • FIG. 14 shows the internal configuration of the variable delay circuit 207.
  • the variable delay circuit 501 and the variable delay circuit 502 illustrated in FIG. 14 are used as the variable delay circuit 207.
  • the variable delay circuit 501 in FIG. 14A has a configuration in which a path is switched by a selector according to a control signal (D) for each stage of buffer circuits connected in series.
  • the variable delay circuit 502 of FIG. 14B has a configuration using a carry propagation delay generated by adding the data encoded with the control signal (D) and the data of all “1”.
  • variable delay circuit 502 when a large delay value is required in the variable delay circuit 502, the carry is propagated from the lower order by adding “00... 01” and all “1”, and is generated at the top. Output a signal.
  • the variable delay circuit 502 requires a small delay value, “100... 0” and all “1” are added to output the carry generated in the higher order.
  • the reason why the adder circuit such as the variable delay circuit 502 is used as the delay circuit is to make the delay granularity fine in an LSI such as an FPGA as described above.
  • the variable range of the variable delay circuit 207 is designed to be changeable within a range including the minimum path delay (delay of s1) and the maximum path delay (sn) of the sampling delay circuit 209.
  • the selector 208 is a circuit that selects the output g of the glitch generation circuit 205 and the output DLY (h) of the messenger signal delay circuit 206 by the control signal sel (2).
  • the output s0 of the selector 208 is the sampling delay circuit. 209.
  • sampling register group 210 The configuration of the sampling register group 210 will be described with reference to FIG.
  • the sampling register group 210 is a register group that latches the output of the sampling delay circuit 209 and the output CLK (v) of the variable delay circuit 207 as a clock signal.
  • the sampling delay circuit 209 outputs signals s1,..., Signal sn having different numbers of stages of delay elements.
  • the sampling delay circuit 209 is connected to each register R constituting the sampling register group 210.
  • the register Ri receives the signal si from the input signal line, receives the clock signal CLK (v) from the clock signal line, and outputs the signal ri from the output signal line.
  • the glitch shape determination circuit 211 receives an n-bit signal that is an output “r1, r2,..., Rn” of the sampling register group 210, performs a jitter correction process described later, and after the jitter correction process, N-bit data “rc1, rc2,..., Rcn” obtained on the basis of the above-mentioned logic is converted into 1-bit data b.
  • FIG. 15 is a flowchart showing the operation of the bit string generation device 200.
  • the operation of the bit string generation device 200 will be described with reference to FIG. Regarding the operations of FIG. 15 described below and FIG. 16 described later, the CPU 500 controls the bit string generation device 200.
  • FIG. 16 is a flowchart showing an operation of jitter correction processing by the bit string generation device 200.
  • the jitter correction processing will be described with reference to FIG.
  • FIG. 17 is a diagram illustrating a sampling state of the messenger signal (h) by the sampling circuit 220.
  • the sampling register group 210 latches all 1s. That is, each of the registers R in the sampling register group 210 latches “1” with respect to the signals s1 to sn.
  • the control signal (D) is changed from the minimum value to the maximum value, and the same processing (the signal line of the messenger signal (h) and the control signal l (p) is changed from 0 to 1 at the same timing, and sampling is performed.
  • the signal line s1 to sn changes to 1 in order from the signal line with the fast propagation of the messenger signal (h).
  • the CPU 500 changes the control signal (D) from the minimum value Dmin to the maximum value Dmax in order to correctly measure the order relationship of the signal delay from the signal line s1 to the signal line sn.
  • the glitch shape determination circuit 211 stores the number of times each register R of the sampling register group 210 latches “1” (S805), and compares the total number of times of each register R (S806) (S807). Then, the order relation of the registers R in the sampling register group 210 is sorted and stored as the sort result RegO (S808).
  • the sort result RegO is used when the glitch shape is correctly restored (S708 to be described later).
  • the glitch shape determination circuit 211 stores the value Dg of the control signal (D) in which the output rn ′ of the register Rn ′ arranged at the representative value position of the sampling register group 210 first becomes “1” (S809). ).
  • An example of the value of “n ′” is n / 2.
  • the CPU 500 performs initial setting processing for glitch shape acquisition processing (S702).
  • the CPU 500 initializes all the registers, and then sets the control signal sel (2) to a signal value for selecting the signal g.
  • the CPU 500 sets the control signal (D) for determining the delay value of the variable delay circuit 207 to the value Dg stored in the jitter correction process. This is because the signal g of the glitch generation circuit 205 is supplemented at the rising timing of CLK (v) supplemented with the signal DLY (h) of the messenger signal delay circuit 206 having the same number of logic stages as the glitch generation circuit 205. is there.
  • the glitch generation circuit 205 a signal change occurs due to the input change of X, that is, the signal g is output by the glitch generation circuit 205, and the signal g is transmitted to the sampling delay circuit 209 via the selector 208. Is done.
  • the transmitted signal g is latched by each register of the sampling register group 210.
  • FIG. 18 is a diagram showing data “r1,..., Rn” (hereinafter also referred to as latch data) latched by the sampling register group 210.
  • FIG. 18 the value of the data “r1,... Rn” to be latched is determined according to the shape of the signal g output from the glitch generation circuit 205.
  • the glitch shape determination circuit 211 sorts the data “r1,... Rn” latched by the registers R1 to Rn of the sampling register group 210 on the basis of the sort result RegO stored in the jitter correction process.
  • the shape is corrected (S708).
  • the glitch shape determination circuit 211 converts the corrected data, that is, sorted “r1,... Rn” into 1-bit data b by the shape determination process (S709).
  • the shape determination process includes a process of ignoring a minute time signal change (threshold value w or less) with low data reliability, thereby improving data reproducibility. is there.
  • the bit string generation device 200 repeatedly performs the above-described processing while changing the input data X (variable j) and the control signal sel (1) (variable i).
  • the variables i, j, and k in FIG. 15 have the following meanings.
  • Variable i A signal line selected by sel (1) among “1 to v” signal lines.
  • Variable k Indicates the number of repetitions for the same “X, sel (1)”. Further, in order to improve the reliability of data, the same input data X and control signal sel (1) are repeatedly processed. That is, as shown in FIG.
  • the glitch shape determination circuit 211 has the same “i, j” and different K, b (i, j, 1), b (i, j, 2), b (i, j, N ), And the result is b (i, j).
  • the bit string b (i, j) which is a bit string composed of a plurality of 1-bit data b (i, j) having different “i, j” obtained by the above processing, is used as key information.
  • FIG. 15 shows the reliability of 1-bit data generated from the output of a specific signal line i for the same input data Xj by repeatedly inputting the same input data Xj N times focusing on the specific signal line i. It is a flow to evaluate.
  • each signal line i (j: 0 to 2 u ⁇ 1) for each input data Xj (j: 0 to 2 u ⁇ 1) is changed for each signal line i (i: 1 to v).
  • i The reliability of 1-bit data generated from outputs 1 to v) is evaluated.
  • the flow in FIG. 15 can be applied to both “initial key generation” and “after initial key generation” described above as “1.4 Improvement of error rate”, for example. This will be described below.
  • the random logic circuit 2051 (combination circuit) repeatedly inputs the same input data Xj. Each time the same input data Xj is repeatedly input to the random logic circuit 2051, the selector 2052 of the glitch generation circuit 205 outputs a signal g (bit corresponding signal) from one of the bit signal lines. The signal g is also output N times (predetermined number of times) from the bit signal line. Note that the output of the selector 2052 is based on control by the control signal sel (1).
  • the glitch shape determination circuit 211 (bit data generation unit) generates 1-bit data (N) corresponding to each of the signals g output N times for each of the v bit signal lines.
  • the glitch shape determination circuit 211 determines whether or not the output of each bit signal line can be used for the same input data X according to the ratio of 1 and 0 to the total number of 1-bit data generated for each bit signal line. To do. That is, since the signal g is output N times from each bit signal line, the glitch shape determination circuit 211 generates N 1-bit data that is either 1 or 0 for each bit signal line.
  • the glitch shape determination circuit 211 determines whether or not the output of each bit signal line can be used for the same input data X according to the ratio of 1 and 0 occupying N for each bit signal line.
  • This determination is made when, for example, all the N pieces of 1-bit data based on the signal g output from the bit signal line i for the input data X (0) are all “1”, or all the N pieces are “0”. Only in some cases, it is determined that the bit signal line i can be used. As to whether or not the output of each bit signal line can be used, a mask value can be used as described in “1.4 Improvement of error rate”.
  • the reliability of the output of the bit signal line determined to be usable for the same input data X is determined.
  • the random logic circuit 2051 repeatedly inputs the same input data X again after the glitch shape determination circuit 211 determines that the output of the bit signal line for the same input data X can be used.
  • the selector 2052 receives a predetermined number of times (from a specific determination signal line, which is a bit signal line determined to be usable by the glitch shape determination circuit 211). For example, N ′ times), a signal g (bit correspondence signal) is output.
  • the glitch shape determination circuit 211 generates N ′ 1-bit data corresponding to the signal g for each signal g output N ′ times from a specific determination signal line, and the total number of generated 1-bit data (N ′
  • the representative bit representing this bit group is determined as either 1 or 0 based on the ratio of 1 and 0 included in the bit group.
  • the majority bit processing can be used for the determination of the representative bit as described above.
  • the random logic circuit 2051, the selector 2052, and the glitch shape determination circuit 211 perform the same processing on the same input data X that is repeatedly input, so that at least one other determination signal line is obtained. A representative bit for the same input data X is determined. Then, the glitch shape determination circuit 211 (bit string generation unit) generates a bit string using the determined representative bits.
  • the representative bit can be determined for each determination signal line for the input data X ′ by repeatedly inputting the input data X ′ as the same data.
  • the bit signal line i is fixed, input data X (0) is first input N times, input data X (1) is input N times, and finally input data X (2 u- 1) is input N times.
  • the input data Xj may be fixed and “i” of the signal line i may be switched.
  • the glitch shape determination circuit 211 determines whether or not the output of each bit signal line can be used when the initial key is generated. Next, a representative bit is generated for the output of the bit signal line determined to be usable by the glitch shape determination circuit 211. As a result, the reliability of the generated bit string can be improved. Further, the error correction circuit 300 performs error correction on the bit string generated in this way, whereby the reliability of the bit string can be further improved.
  • the bit string generation device 200 that acquires a glitch shape and generates a bit string from the glitch shape has been described above. Since the shape of the glitch behaves differently depending on the delay relationship of each logic gate constituting the glitch generation circuit 205, a bit string unique to that device, which is different from other devices, is generated for each device. Each time it is generated, the same device generates the same bit string from the glitch. Since glitches occur when data is input to the glitch generation circuit 205, it is naturally not necessary to store key information in a nonvolatile manner.
  • bit string generation device 200 since there is no special restriction regarding the placement and routing, it is possible to output a different bit string for each device even for an FPGA with a low degree of freedom of placement and routing.
  • bit string generation device 200 since there is no processing unit that requires a loop circuit using a combinational circuit, it is possible to provide a PUF circuit that does not violate the “design rule described in the problem”. .
  • bit string generation device 200 has been described in the first embodiment, the bit string generation device 200 can be understood as a bit string generation method by grasping the operations of the components of the bit string generation device 200 as steps.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Manipulation Of Pulses (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

 ビット列生成装置200は、グリッチを発生するグリッチ発生回路205と、グリッチ発生回路205によって発生されたグリッチ波形をサンプリングするサンプリング回路220と、サンプリング回路220によってサンプリングされたグリッチ波形に基づいて、1か0かのいずれかを示す1ビットデータを生成し、生成された複数の1ビットデータからなるビット列を生成するグリッチ形状判定回路211とを備えた。ビット列生成装置200により、配置配線の自由度が低いデバイスであっても、ランダム性の高い秘密情報を生成可能であり、かつ、デザインルールに違反しないPUF回路を提供できる。

Description

ビット列生成装置及びビット列生成方法
 本発明は、認証処理や暗号化処理などを実行するセキュリティ装置に関する。例えば、暗号処理で用いる秘密情報や、装置を認証するために必要な装置固有の識別子を、装置に固有な物理量を元に生成する装置に関する。
 近年、携帯電話に代表される組み込み機器のネットワーク化に伴い、組み込み機器で扱うデータの秘匿や、データ完全性の保持及び組み込み機器そのものの認証のために、組み込み機器が、情報セキュリティに関わる処理を行う必要性が高まっている。これら情報セキュリティに関わる処理は、暗号化アルゴリズムや認証アルゴリズムによって実現される。
 ここで、前記アルゴリズムを実行する上で大前提となるのは、各組み込み機器がユニークな秘密情報や、機器固有の識別子(以下ではこれらの情報を「鍵情報」と呼ぶ)を「安全に」保持していることである。この「安全に」の意味は、その機器を正当に利用可能な者以外にとって、鍵情報の読み取りや改竄が困難であることを指す。
 鍵情報を安全に保持するための手段として、各種センサ(光センサ、電圧センサ、周波数検出器)を搭載し、物理的な保護膜(金属ケースや樹脂によるモールド)によって外部からの不正アクセスを防ぐ筐体やセキュリティチップなどの耐タンパ機構を用いた保護方法がある。これらの保護方法は、不揮発的に装置内にデジタルデータとして存在する鍵情報を守ることを前提とした手段である。
 一方、前述の手段とは異なるアプローチで鍵情報を安全に保持する方法として、PUF(Physical Unclonable Function)と呼ばれる技術がある。PUFの大きな特徴は、鍵情報を装置内に不揮発的なデジタルデータとして保持しない点にある。PUFの実施形態はいくつか存在するが、以下では特許文献1に開示される汎用性の高い「信号発生器をベースとした装置セキュリティ」を代表例として従来技術を説明する。
 図19は、特許文献1におけるPUFの実施形態を示す。ビット生成器100は、N個のリングオシレータ102(R0~RN)で構成されるリングオシレータ群101と、選択回路104及び周波数比較器107で構成される。
 ビット生成器100は、各リングオシレータ102の周波数特性を鍵情報の情報源とする。リングオシレータの出力信号103は各リングオシレータを構成する帰還回路の遅延特性で決定される周波数で発振する。選択回路104はN本のリングオシレータの出力信号103から選択信号105(I,J)の値に応じて2つの信号106(Si,Sj)を対として出力する。次に、Si,Sjの発振周波数は周波数比較器107にて比較され、周波数比較器107は、比較結果108を出力する。ここで、Si及びSjの発振周波数をそれぞれFi、Fjと表記するならば、例としてその差分値Fi-Fjを比較結果108とする方法が挙げられる。最後にビット生成器100は比較結果108と比較結果108の正負を表す応答ビット値109を出力する。
 前記特許文献1の実施例において、リングオシレータの発振周波数はデバイスの遅延特性のばらつきに応じて異なるため、ビット生成器100を同一の設計情報に基づき製造しても、個体に応じて異なる応答ビット値を出力する。従って、前記応答ビット値を各デバイスの識別子として利用することが可能であり、前記識別子は不揮発的なデジタルデータとして格納されておらず、ビット生成器を動作されるたびに生成されるため、従来よりも高い耐タンパ性を持つ、と特許文献1では主張されている。
特表2009-524998号公報
Altera,「Design Guidelines for HardCopy Series Devices」,2008 Altera,「Design Recommendations for Altera Devices and the Quartus II Design Assistant」,2009
 特許文献1に記載されたリングオシレータによるPUFの実現には、2つの課題がある。
 一つは、実装時の配置配線制約と前記応答ビット値の安全性に関するものである。特許文献1ではリングオシレータをすべて同じ設計(5つのインバータを用いたループ回路)によって構成することが記載されている。しかしながら、FPGA()のような配置配線の自由度が低いデバイスでは、同一の設計によるリングオシレータであっても配置配線によって周波数が大きく異なることがある。この場合、デバイスの個体差によって発生する差よりも、配置配線によって異なる差の方が支配的となるケースがある。その結果として、配置配線によって発振周波数に大きな差があるリングオシレータの対を選択した場合、デバイスに依存せず常に同じ応答ビット値を出力することになる。このようなビット値が多く含まれる場合、応答ビット値のランダム性が低くなるため、安全性上問題となる。この問題の解決策として、N個のリングオシレータの発振周波数が大きく変わらないように手動で配置配線を行うアプローチが考えられるが、Nが大きい場合は非常に困難になることが予想される。あるいは、あらかじめ実装するリングオシレータの数を多くし、自動配置配線を行うことで、偶然に発振周波数が近接するリングオシレータの対のみを用いて応答ビットを生成することも考えられるが、この場合Nの大きさを設計保証することが難しく、またリングオシレータと選択回路の回路規模が増大することになる。
 2つ目の課題は、リングオシレータのような組み合わせループ回路は、FPGA(Field Programmable Gate Array)などのデバイスにおいてデザインルール上推奨されない構成となっている課題である。例えば、非特許文献1では、設計によってはリングオシレータを構成するインバータの入出力が中間電位状態となり、発振しない可能性があることが指摘されている。一般に、中間電位状態は貫通電流が定常的に流れる可能性があり、デバイスの信頼性を損ねる危険性がある。同様に、非特許文献2においても、組み合わせループ回路を推奨しない旨が記載されている。
 本発明は以上のような技術的課題を鑑みてなされたものであり、その目的とするところは、配置配線の自由度が低いデバイスであっても、ランダム性の高い秘密情報を生成可能で、かつデザインルール違反を引き起こさないPUF回路を提供することにある。
 この発明のビット列生成装置は、
 グリッチを発生するグリッチ発生部と、
 前記グリッチ発生部によって発生された前記グリッチの波形を取得するグリッチ波形取得部と、
 前記グリッチ波形取得部によって取得された前記グリッチの波形に基づいて、1か0かのいずれかを示す1ビットデータを生成するビットデータ生成部と、
 前記ビットデータ生成部によって生成された複数の前記1ビットデータからなるビット列を生成するビット列生成部と
を備えたことを特徴とする。
 本発明により、配置配線の自由度が低いデバイスであっても、ランダム性の高い秘密情報を生成可能であり、かつ、デザインルールに違反しないPUF回路を提供できる。
実施の形態1における、ビット列生成装置200のシステムLSIへの搭載例。 実施の形態1における、同一の論理回路が異なる遅延情報を持つときに起こりうる、回路の挙動の例。 実施の形態1における、サンプリング回路220の構成。 実施の形態1における、サンプリング結果の期待値と、発生しうるサンプリング結果とを示す図。 実施の形態1における、ジッタ補正処理を用いてグリッチ捕捉処理を行った場合の捕捉結果。 実施の形態1における、ジッタ補正処理を行わない場合の捕捉結果。 実施の形態1における、補足されたグリッチパターンの例。 実施の形態1における、ビット列生成装置200の回路構成。 実施の形態1における、グリッチ発生回路205の構成例。 実施の形態1における、キャリーパスによる遅延回路とLUTによる遅延回路とを組み合わせた遅延回路の構成例。 実施の形態1における、各パラメータの関係。 実施の形態1における、ビット列生成装置200の実装評価結果。 実施の形態1における、伝令信号用遅延回路206、サンプリング用遅延回路209として使用される遅延回路の内部構成例。 実施の形態1における、可変遅延回路207の内部構成例。 実施の形態1における、ビット列生成装置200の動作を示すフローチャート。 実施の形態1における、ビット列生成装置200によるジッタ補正処理の動作を示すフローチャート。 実施の形態1における、サンプリング回路220による伝令信号(h)のサンプリングの状態。 実施の形態1における、サンプリング用レジスタ群210によってラッチされるデータ。 従来技術を示す図。
 実施の形態1.
 図1~図18を参照して、実施の形態1のビット列生成装置200を説明する。実施の形態1のビット列生成装置200は、グリッチ形状を利用してPUFを構成する方法である。
 図1は、ビット列生成装置200をシステムLSI(Large Scale Integration)1000に搭載する例を示す図である。CPU(Central Processing Unit)500、内部メモリ600、外部インタフェース700などを備える一般的な構成のシステムLSIに、ビット列生成装置200と、誤り訂正回路300(誤り訂正部)、暗号処理回路400を搭載した例である。以下に説明するが、ビット列生成装置200は、発生させたグリッチからビット列である鍵情報を生成する。この鍵情報は、グリッチPUFである。ビット列生成装置200によって生成されたデータ(ビット列)は、例えば、暗号処理回路400による暗号処理などの、情報セキュリティ処理で必要な鍵情報として利用される。ビット列生成装置200に対する制御は、CPU500から制御可能としてもよい。
 以下では、まず「1.1 基本アイデア」~「3.1 実装評価結果」においてビット列生成装置200(後述のグリッチPUF)の概要を説明した後、さらに詳しく、ビット列生成装置200の構成及び動作を詳しく説明する。
(1.1 基本アイデア)
 論理回路の上流設計においてデバイス固有の特徴量を入力し、その特徴に応じたデバイスの挙動をシミュレートすることを考える。このシミュレーションの目的は、実装するPUFがデバイスの個体差によってどの程度の情報量をもつかを評価することであり、製造したLSIを大量に評価せずとも、その情報量(特にその下限を)を評価できる環境を構築することにある。前述のように、上流設計のシミュレーションに最も親和性のある特徴量は遅延情報である。各デバイスが持つ遅延情報の個体差がPUFのレスポンスの違いに直接結びつくような回路構成であれば、現状の論理回路設計フローの範囲でPUFの情報量を評価できる可能性がある。ここで、ある同一の論理回路が異なる遅延情報を持つときに起こりうる、回路の挙動の違いについて考える。
 図2は、同一の論理回路が異なる遅延情報を持つときに起こりうる、回路の挙動の例を示す。例えば図2(a)のように、複数の入力に対してANDやXORなどの論理演算を行う回路を考える。このような回路では、ある特殊な条件が成立しない限り、各信号の遅延差によって、「グリッチ」と呼ばれる信号の過渡遷移が発生する。図2の例では、入力信号x1、x2、x3がすべて0から1へと変化する場合、XORゲートの出力は、入力信号x1、x2の信号変化に差があることによって凸状のグリッチが発生する。図2(b)のように、入力信号x3の変化がそのグリッチよりも早くANDゲートに到達していれば、グリッチはANDゲートの出力に伝播する。逆に、図2(c)のように、入力信号x3が遅ければ、グリッチはANDゲート出力に伝播せず、出力は変化しないことになる。さらに、x3の到達時刻が早い場合であっても、グリッチの幅が短い場合は、信号変化が出力に伝播しないケースもある。ここで、十分な幅を持つグリッチ波形に限定すれば、そのグリッチ波形の形状は、各ゲートの遅延の絶対量によって決定するのではなく、信号間の遅延値の相対関係によって確定する。つまり、グリッチ形状は動作環境が変化してもその形状が保存されることが期待できる。
 発明者は、論理回路を構成する各ゲートの入力信号間の遅延関係によって様々な形状を取りうるグリッチに着目し、PUFの構成に応用する方法を考案した。以下では、この構成方法を「グリッチPUF」と呼ぶ場合がある。
(1.2 グリッチ形状の補足)
 上記で述べたように、発明者は、遅延のばらつきによって様々な形状を取りうるグリッチを用いて、PUFを構成することを試みた。ここで問題となるのは、グリッチのような微小時間に発生するパルス信号の形状を如何にして正確に捕捉するかという点である。この点につき、その捕捉処理は、デジタル回路で実現する必要がある。
(位相シフト方法)
 この問題の一般的な解決方法として、位相シフト法によりグリッチ波形をサンプリングする案が考えられる。位相のずれたクロック信号を複数用いし、それらのクロックを用いて微小パルスをサンプリングする。さらに、サンプリング精度を高めるためには、可能な限り多く位相の異なるクロックを用意する必要がある。この場合、クロックラインの数が多くなりすぎるため、この方式は現実的でない。特にFPGAでは、ジッタの少ないグローバルクロックラインの本数は数本から数十本と限られている。グリッチ波形を再生成し、サンプリング処理を時分割処理することでクロックラインの本数を減らす方法も考えられるが、分割数に応じて抽出速度が低下することになる。
 そこで発明者は、サンプリング対象のデータを微小時間ずらし、同一のクロックでサンプリングする処理方式を採用した。
 図3は、この方式を用いたサンプリング回路220の構成を示す。以下、このサンプリング処理を「グリッチ捕捉処理」(グリッチ形状取得処理ともいう)と呼ぶことにする。このサンプリング方式では、正確な形状捕捉のためにはサンプリング間隔を短くする必要がある。よって、図3における各フリップ・フロップ(レジスタR1~Rn)に取り込む信号間に挿入するバッファの段数(B1~Bn)を少なくすること、あるいは、より遅延値の小さい素子を用いることで、フリップ・フロップ(以下、FFと表記する)に取り込む信号間の遅延差をできる限り小さくする必要がある。しかしながら、信号間の遅延差が小さくなればなるほど、FF間のクロックジッタ、配線遅延及びゲート遅延のばらつきなどの影響で、図4のように、FFのサンプリング位置と遅延の順序関係が一致しなくなる。よって、サンプリングしたデータの時刻順序関係に、入れ替わりが発生する。つまり、グリッチの形状を正確に復元できなくなることが予想される。尚この問題は、前述のクロックに対する位相シフトにおいても同様に発生する。
 図4は、「実際のグリッチ波形とサンプリング結果の期待値」(図4(a))と「順序補正の誤差によって発生するサンプリング結果」(図4(b))とを示す図である。すなわち、図4(b)のように、サンプリングしたデータの時刻順序関係に入れ替わりが発生し、グリッチの形状を正確に復元できなくなることが予想される。
(ジッタ補正処理)
 そこで発明者は、グリッチ捕捉処理を行う前に以下に示す「前処理」を行う。「前処理」を行うことでサンプリング結果の時刻順序関係を決定する。以下では、この「前処理」を「ジッタ補正処理」(後述のS701)と呼ぶ。以下に「ジッタ補正処理」の概要を説明する。
(1)まず、グリッチが発生する信号とは別に、単純な立ち上がり信号が発生する信号線を用意する。以下、この信号を伝令信号(後述の伝令信号(h))と呼ぶことにする。
(2)次に伝令信号を図3のサンプリング回路220へ入力し、サンプリングを行う。この場合、サンプリング回路220の各FF(R1~Rn)は、クロックの立ち上がりよりも伝令信号の到達が早いものは1、遅いものは0をラッチすることになる。この処理をクロックラインに遅延値を可変とする遅延回路(後述の可変遅延回路207)を入れた状態で遅延値を変えながら複数回行い、FF毎に1をラッチする回数をカウントする。
(3)最後に、この回数の大小によって各FFがサンプリングする時刻の順序関係を算出する。この順序関係を用いて、グリッチ波形のサンプリング結果に対して並び替えを行うことでグリッチ形状を復元する。
 「ジッタ補正処理」の結果を用いて、グリッチ捕捉処理の結果に対して並び替えを行う。この並び替え処理を「ソート処理」(後述のS708)と呼ぶことにする。
 図5は、ジッタ補正処理を用いてグリッチ捕捉処理を行った場合の捕捉結果を示す。
 図6は、ジッタ補正処理を行わない場合の捕捉結果を示す。
(1.3 グリッチ形状のビット値への変換)
 前述したサンプリング方法によりデジタルデータとして捕捉されたグリッチ形状は、1ビットの値に変換される。ここでは、グリッチ形状がもつ立ち上がりエッジの偶奇性をビット値に変換する方法について述べる。立ち上がりエッジの偶奇判定は、微分処理と加算処理とをハードウェアあるいはソフトウェアで実装することで検出可能である。この処理を「形状判定処理」(後述のS709)と呼ぶ。
 一方で、前述のような前処理(ジッタ補正処理)を行っても、FF間の時間順序関係を完全に補正することは困難である。前処理によって算出されたFF間の順序関係が実際の回路の挙動と異なると、図4(b)に示されるような、見かけ上グリッチ波形のエッジ付近でパルス幅の短いグリッチが連続して発生するように捕捉される。このような現象は、FF間の時間順序関係が近接している場合に発生する不安定な動作であるため、グリッチを捕捉するたびにエッジ検出の結果が異なることになる。また、実際に発生するグリッチのパルス幅が極端に狭い場合も、同様の現象が発生しうる。
(フィルタ処理)
 そこで発明者は、エッジの偶奇性を判定する前に図7に示すような捕捉されたグリッチ形状のパルス幅が閾値w以下の場合、そのパルスを無視する処理を行うことにした。以下この処理を「フィルタ処理」と略記する。
 図7は補足されたグリッチパターンの例を3つ示している。
(1.4 エラーレートの改善)
 形状判定処理の結果のエラーレートを改善するために、繰り返し同じ処理を実行できる特徴を生かして、同じ入力レジスタの状態変化よって発生するグリッチに対して繰り返し形状判定を行い、多数決処理によって最終的な出力を決定する。
 特に「初期鍵生成時」には、M回の繰り返し処理に対して出力が全て同じになる入力のみを鍵生成のために利用する。「初期鍵生成時」とは、ビット列生成装置200が搭載されたシステムLSI1000において、ビット列生成装置200によって初めて鍵情報(ビット列)が生成される時である。例えば、工場出荷時において、そのLSIにおいて、鍵情報が初めて生成されるような場合である。この場合、N個の状態変化に対してそれぞれM回の判定処理を行い、Nビットのレスポンスを生成するが、同時にNビットのマスク値を生成することになる。マスク値が1のビットは鍵生成に利用するビットを表し、0のビットは鍵生成に用いないことを表す。マスク値はHelper Dataの一部として外部に出力する。この「エラーレートの改善」については、「図15のi,j」として後述する説明以降で、詳しく説明する。
 なお、マスク処理を行う場合は、マスク処理を行わない場合と比較して情報量は低下する。しかしながら、グリッチPUFは高いエラーレートを持つビット位置が個体に依存して定まり、かつそのビット量は少ないという特徴を持つため、誤り訂正符号の訂正能力を軽減する方が鍵生成の実装率が向上する。
(2.1 グリッチPUFの構成)
 図8は、グリッチPUFを実行するビット列生成装置200の回路構成を示す。ビット列生成装置200は、主に、制御レジスタ群203、データレジスタ群204、グリッチ発生回路205、サンプリング回路220及び2種類の遅延回路(伝令信号用遅延回路206、可変遅延回路207)によって構成される。
(1)制御レジスタ群203は、以下に示す制御用のパラメータを格納する。
 制御信号Sel(1):グリッチ発生回路の選択信号(loguビット)、
 制御信号sel(2): サンプリング回路の入力選択信号(1ビット)、
 伝令信号(h):(1ビット)、
 制御信号(D):可変遅延回路の遅延値指定信号(q+q’ビット)、
 制御信号(p):トリガー信号(1ビット)、
(2)データレジスタ群204は、グリッチ発生回路205に入力するデータX(uビット)を格納する。
(3)図9は、グリッチ発生回路205の構成を示す。グリッチ発生回路205は、図9に示すように、入力データXに対して、定められた論理演算Y=f(X)を実行する組み合わせ回路(ランダムロジック部2051)と、vビットのYから1ビットを選択信号Sel(1)により選択して1ビットを出力するv-1セレクタ2052によって構成される。
(4)伝令信号用遅延回路206は、例えばバッファチェーンによって構成され、伝令信号(h)の遅延信号hであるDLY(h)を出力する。バッファチェーンの段数は、設計時にグリッチ発生回路205で生成されるグリッチ信号の発生タイミングをシミュレーションで評価して決定する。この詳細は、後述する。
(5)サンプリング回路220は、図3に示したような、バッファチェーン(サンプリング用遅延回路209)とFF(サンプリング用レジスタ群210)とにより構成される。尚、FPGAにグリッチPUFを実装することを想定した場合、サンプリング回路220で用いるバッファチェーンにはLook-up Table(LUT)にバッファを実装するよりも算術加算回路用のキャリーパスを用いた方がサンプリングの分解能を高めることができる。また、可変遅延回路207に関しても変更可能な遅延値の刻みを細かくするためにキャリーパスを用いる。但し、可変遅延回路207の可変範囲はサンプリング範囲よりも広く取る必要があるため、全てをキャリーパスで実装すると回路規模が増大する。そのため、図10に示すように、キャリーパスによる遅延回路とLUTによる遅延回路を組み合わせることで分解能を落とさずに広い稼動範囲を確保することができる。
 図10は、キャリーパスによる遅延回路とLUTによる遅延回路を組み合わせた遅延回路の構成を示す。
 実施の形態1で扱うグリッチPUFは、生成されるグリッチの挙動を観測するためにサンプリング(サンプリング回路220)までをハードウェアで行い、それ以降の処理をファームウェアで実装している。
(2.2 設計パラメータの調整)
 グリッチの形状捕捉を効率よく実現するためには、設計段階で各回路のパラメータを調整する必要がある。調整すべきパラメータは以下の通りである。
 n:サンプリング回路220のFF数、
 delay:サンプリング回路220の信号間に挿入するバッファの遅延値、
 range:サンプリング回路220のサンプリング範囲、
 range:グリッチ発生回路205のグリッチ発生範囲、
 rangeCLK:可変遅延回路207の可変範囲、
 t:グリッチ発生範囲の中央値の時刻、
 t:伝令信号(h)の遅延信号h(DLY(h))の立ち上がり時刻。
 図11は、各パラメータの関係を示す図である。「n」及び「delay」は、サンプリング範囲とその分解能に関係するパラメータであり、サンプリング範囲rangeは、おおよそ「n・delay」なる。つまり、range≒n・delayである。
 グリッチ形状を捕捉するためには、
 range<range<rangeCLK
となる必要がある。以下に、この関係を成立させるための設計手順について述べる。
(1)まず、グリッチ発生回路205の論理を決定した段階で、遅延情報付きの論理シミュレーションを行い、サンプリング回路220の入力においてグリッチが発生する時間範囲rangeと発生タイミングtとを見積もる。
(2)次に、
 range<range
を満たす「n」及び「delay」を決める。このとき実装対象のプラットフォームにおいてdelayが可能な限り小さくなるようなセルをバッファとして利用することでサンプリングの分解能を高めることができる。従って、実際に決定するのはnとなる。実施の形態1の実装では、設計マージンとしてrangeの倍以上になるようにrangeを設定している。また、rangeCLKも同様にrangeの倍を目安に可変遅延回路のバッファ段数を設定している。
(3)次に、伝令信号用遅延回路のバッファ段数を決定する。このとき、遅延回路の遅延値は、前述の見積もり結果tを用いてt≒tとなるように設計する。伝令信号に対してタイミング調整を行う理由は、サンプリング結果の時刻順序関係を算出するために利用するのと同時に、グリッチの形状捕捉を行う際に用いる可変遅延回路の遅延値指定信号の値Dgを決定するためである。
 以下その方法について説明する。
 サンプリング結果の時刻順序関係を算出する際に伝令信号に対してDを最小値から最大値へとインクリメントしながら変化してサンプリングする。このとき、サンプリング結果の中心付近のFFが最初に1をラッチするDの値をDgとする。グリッチ発生範囲は伝令信号の遅延と同程度になるように調整してあるため、グリッチ波形をサンプリング範囲の中央付近でサンプリングすることが可能となる。ただし、正確に信号間の遅延を調整することは一般に困難なため、rangeやrangeCLKは、前述した倍半分のようなマージンをとって設定する必要がある。
(3.1 実装評価結果)
 以下、試作したグリッチPUF(ビット列生成装置200)の回路性能を示す。
 図12は、実装評価結果を示す。試作は、AVNET社のSpartan-3A評価ボードを用いて行った。ターゲットデバイスは、XC3S400A-4FT256である。また、前述した形状捕捉処理以降に行う処理は同一FPGA上に実装したMicroBlazeを用いてファームウェア処理で実行する。グリッチ発生回路205としては、論理の複雑さと広く暗号ハードウェア設計者に回路構造が知られていることからAESのSubBytes回路を用いた。また、サンプリング回路220のFF数は256個で実装し、可変遅延回路207は256ビットの加算回路と、LUTの段数が4、8、12、16段と異なるバッファチェーンを4-1セレクタで選択する構成とした。
 以上ではビット列生成装置200の概要を説明した。次にビット列生成装置200の詳しい構成及び動作を以下に説明する。
 図8を参照して、鍵情報として使用するビット列を生成するビット列生成装置200を説明する。
(ビット列生成装置200の構成)
 ビット列生成装置200は、データバス202に接続されている。ビット列生成装置200は、制御レジスタ群203、データレジスタ群204、グリッチ発生回路205(グリッチ発生部)、伝令信号用回路206(伝令信号遅延部)、可変遅延回路207(可変遅延部)、セレクタ208、サンプリング用遅延回路209(グリッチ遅延部)、サンプリング用レジスタ群210(サンプリング部)、グリッチ形状判定回路211(ビットデータ生成部、ビット列生成部)、及びビット列出力バス212を備える。サンプリング用遅延回路209とサンプリング用レジスタ群210とは、サンプリング回路220(グリッチ波形取得部)を構成する。
 以下、各構成要素を説明する。
(制御レジスタ群203)
 制御レジスタ群203は、データバス202からのデータ入力に対して、
 グリッチ発生回路205への制御信号sel(1)と、
 後述するジッタ補正処理を行う際に用いる伝令信号(h)と、
 セレクタ209への制御信号sel(2)と、
 可変遅延回路207における遅延値の変更のための制御信号(D)と、
 サンプリング用レジスタ群210へのクロック入力のための制御信号(p)と、
を保持する複数のレジスタを備える。
(データレジスタ群204)
 データレジスタ群204は、データバス202からのデータ入力に対して、グリッチ発生回路205への入力信号Xを保持する複数のレジスタを備える。
(グリッチ発生回路205)
 グリッチ発生回路205は、データレジスタ群204からのデータ信号Xと、制御レジスタ群203からの制御信号sel(1)を入力とし、信号gを出力する回路である。図9を参照して、グリッチ発生回路205の内部構成を説明する。ランダムロジック部2051(組み合わせ回路)は、Xをビット毎に表現した{x1,・・・,xu}のuビットの入力を、任意の関数を組み合わせた組み合わせ回路によって処理し、vビットのデータ{y1,・・・,yv}を出力する。セレクタ2052(グリッチ出力セレクタ)は、制御信号sel(1)に従って、{y1,・・・,yv}のv本の信号線(ビット信号線という場合がある)のなかから1ビットの信号線を1本選択し、出力gとする。ランダムロジック部2051で処理する関数としては、DESで定義されるS-boxが例として挙げられる。この例の場合、「u=6,v=4」となる。なお、S-boxは、あくまでも一例であり、ランダムロジック部2051の構成を限定するものではない。
(伝令信号用遅延回路206,サンプリング用遅延回路209)
 伝令信号用遅延回路206及びサンプリング用遅延回路209は、固定の信号遅延を発生させる回路である。
 図13は、伝令信号用遅延回路206、あるいはサンプリング用遅延回路209として使用される遅延回路の内部構成を示す。図13に示す遅延回路401、遅延回路402は、伝令信号用遅延回路206あるいはサンプリング用遅延回路209として使用される。 図13(a)に示す遅延回路401は、一般的なバッファ回路(遅延素子の一例)の直列接続によって構成する例であり、ASIC(Application Specific Integrated Circuit)で一般的に用いられる。一方、図13(b)に示す遅延回路402は、加算器(遅延素子の一例)のキャリー伝播遅延を利用して遅延回路を構成する例である。FPGAでは、加算回路は専用のハードマクロで構成されるため、キャリー伝播遅延は通常の論理を構成するLUTよりも高速となる。このため、キャリー伝播遅延を遅延回路として利用することで、遅延の粒度を細かくすることが可能となる。ここで、伝令信号用遅延回路206の論理段数は、グリッチ発生回路205の論理段数と同程度になるように設計される。
(可変遅延回路207)
 可変遅延回路207は、制御信号(D)によって入力から出力までの遅延を変更可能とする遅延回路である。
 図14は、可変遅延回路207の内部構成を示す。図14に示す可変遅延回路501、可変遅延回路502は、可変遅延回路207として使用される。
 図14(a)の可変遅延回路501は、直列に接続されるバッファ回路の段毎に制御信号(D)によってパスをセレクタで切り替える構成である。
 図14(b)の可変遅延回路502は、制御信号(D)をエンコードしたデータとall「1」のデータとを加算することで発生するキャリーの伝播遅延を用いた構成である。たとえば、可変遅延回路502において大きい遅延値を必要とする場合は、「00・・・01」とall「1」との加算を行うことで下位から桁上げを伝播させ、最上位で発生するキャリー信号を出力する。可変遅延回路502において小さい遅延値を必要とする場合は、「100…0」とall「1」とを加算することで、上位で発生した桁上げを出力する。可変遅延回路502のような加算回路を遅延回路として用いる理由は、前述のように、FPGAのようなLSIにおいて遅延の粒度を細かくするためである。可変遅延回路207の可変範囲は、サンプリング用遅延回路209の最小パス遅延(s1の遅延)と最大パス遅延(sn)とを含む範囲で変更可能に設計される。
(セレクタ208)
 セレクタ208は、グリッチ発生回路205の出力gと伝令信号用遅延回路206の出力DLY(h)とを制御信号sel(2)によって選択する回路であり、セレクタ208の出力s0は、サンプリング用遅延回路209に接続される。
(サンプリング用レジスタ群210)
 図3を参照してサンプリング用レジスタ群210の構成を説明する。サンプリング用レジスタ群210は、サンプリング用遅延回路209の出力を、可変遅延回路207の出力CLK(v)をクロック信号としてラッチするレジスタ群である。サンプリング用遅延回路209は、遅延素子の段数が異なる信号s1,・・・,信号snを出力する。
 サンプリング用遅延回路209は、サンプリング用レジスタ群210を構成する各レジスタRに接続される。
 レジスタRiは、入力信号線から信号siを入力し、クロック信号線からクロック信号CLK(v)を入力し、出力信号線から信号riを出力する。
(グリッチ形状判定回路211)
 グリッチ形状判定回路211は、サンプリング用レジスタ群210の出力「r1,r2,…,rn」であるnビットの信号を入力とし、後述するジッタ補正処理を実行すると共に、ジッタ補正処理の後、グリッチに基づき得られたnビットのデータ「rc1,rc2,…,rcn」を、1ビットのデータbに変換する論理を有する。
(動作の説明)
 図15は、ビット列生成装置200の動作を示すフローチャートである。図15を参照してビット列生成装置200の動作を説明する。以下に説明する図15及び後述の図16の動作に関しては、CPU500がビット列生成装置200を制御するものとする。
(ジッタ補正処理)
 最初に、ビット列生成装置200は、ジッタ補正処理(S701)を行う。
 図16は、ビット列生成装置200によるジッタ補正処理の動作を示すフローチャートである。以下、図16を参照して、ジッタ補正処理に関して説明する。
(1)図16の初期設定では、CPU500は、全レジスタを初期化した後、制御信号sel(2)を、DLY(h)を選択する信号値に設定する(S801)。
(2)続けて、CPU500は、可変遅延回路207への制御信号(D)の変更を繰り返しながら、伝令信号(h)を入力する(S802、S804)。
(3)このとき、CPU500は、同一の制御信号(D)に対してN回、伝令信号(h)を入力する(S803)。伝令信号(h)の入力は、図8に示す伝令信号(h)の信号線と制御信号(p)の信号線とを、それぞれ同一タイミング(同じサイクルで)0から1に変更することで行う。これにより、サンプリング用遅延回路209およびサンプリング用レジスタ群210では、図17のタイミングチャートに記載されるような処理が行われる。
 図17は、サンプリング回路220による伝令信号(h)のサンプリングの状態を示す図である。
(1)図17を参照して、まず制御信号(D)の値が小さい場合(つまり、可変遅延回路207の遅延が小さい場合)を説明する。制御信号(D)の値が小さい場合、サンプリング用遅延回路209において伝令信号(h)が伝播して立ち上がりが観測される区間(図17の中DLY(h)に対するサンプリング範囲254)よりも前に、サンプリング用レジスタ群210のクロック入力であるCLK(v)の立ち上がりエッジが発生する。よって、サンプリング用レジスタ群210は、すべて0をラッチする。すなわち、サンプリング用レジスタ群210の各レジスタRは、信号s1~snに関しすべて「0」をラッチする。
(2)逆に、制御信号(D)の値が大きい場合は、伝令信号(h)が伝播して立ち上がりが観測される区間よりも後にCLK(v)の立ち上がりエッジが発生する。よって、この場合、サンプリング用レジスタ群210は、すべて1をラッチする。すなわち、サンプリング用レジスタ群210の各レジスタRは、信号s1~snに関しすべて「1」をラッチする。
(3)制御信号(D)を最小値から最大値まで変化させ、同様の処理(伝令信号(h)と制御信号l(p)の信号線をそれぞれ同一タイミングで0から1に変更し、サンプリング用レジスタ群210によるラッチ)を行った場合、信号線s1~snのうち伝令信号(h)の伝播が速い信号線から順に1に変化する。
(信号線skの信号遅延の順序逆転)
 伝令信号(h)の伝播に関して、図17では、信号線s1が最も伝令信号(h)の伝播が速い信号線であり、信号線snが最も遅い信号線として表記されている。しかし、サンプリング用遅延回路209の各遅延の粒度を細かくした場合、図17の信号線stと信号線st’との関係のように、「t<t’」であるが、信号遅延値は「st>st’」となる信号線が発生しうる。これは、サンプリング用遅延回路209からサンプリング用レジスタ群210までの配線遅延や、CLK(v)のジッタによって発生する現象である。
 信号線s1から信号線snの信号遅延の順序関係を正しく計測するために、図17のタイミングチャートでは、CPU500は制御信号(D)を最小値Dminから最大値Dmaxまで変化させる。そして、グリッチ形状判定回路211はサンプリング用レジスタ群210の各レジスタRが「1」をラッチする回数を記憶し(S805)、各レジスタRの回数の合計値(S806)を比較して(S807)、サンプリング用レジスタ群210の各レジスタRの順序関係をソートし、ソート結果RegOとして記憶する(S808)。ソート結果RegOは,グリッチの形状を正しく復元する際に用いられる(後述のS708)。またグリッチ形状判定回路211は、サンプリング用レジスタ群210の代表値位置に配置されるレジスタRn’の出力rn’が、最初に「1」となる制御信号(D)の値Dgを記憶する(S809)。「n’」の値は、例としてn/2が挙げられる。
(S803の繰り返し処理の理由)
 S803で同一の制御信号(D)に対して繰り返し処理を行う理由は、サンプリング用レジスタ群210の各レジスタRにおいて、データの変化とクロックの立ち上がりのタイミングとが近接しているレジスタは、ラッチするデータが不安定になる。したがって、ラッチするデータの精度を上げるために繰り返し処理を行う。
(グリッチ形状取得処理)
 図15のグリッチ形状取得処理の説明に戻る。ジッタ補正処理後、CPU500は、グリッチ形状取得処理のための初期設定処理を行う(S702)。この初期設定処理では、CPU500は全レジスタを初期化した後、制御信号sel(2)を、信号gを選択する信号値に設定する。また、CPU500は、可変遅延回路207の遅延値を決定する制御信号(D)を、ジッタ補正処理で記憶された値Dgに設定する。これは、グリッチ発生回路205と同等の論理段数を持つ伝令信号用遅延回路206の信号DLY(h)を補足したCLK(v)の立ち上がりタイミングで、グリッチ発生回路205の信号gを補足するためである。
 初期設定後、CPU500は、sel(1)を初期値(i=1)に設定し(S704)、データレジスタ群204にデータを入力し、同時に、制御信号(p)を0から1へアサートする(S707)。これにより、グリッチ発生回路205では、Xの入力変化に伴う信号変化が発生し、すなわち信号gがグリッチ発生回路205によって出力され、信号gが、セレクタ208を経由してサンプリング用遅延回路209に伝達される。伝達された信号gがサンプリング用レジスタ群210の各レジスタでラッチされる。
 図18は、サンプリング用レジスタ群210によってラッチされるデータ「r1,・・・,rn」(以下、ラッチデータともいう)を示す図である。図18に示すように、グリッチ発生回路205から出力された信号gの形状に応じて、ラッチされるデータ「r1,・・・rn」の値が決まる。グリッチ形状判定回路211は、サンプリング用レジスタ群210のレジスタR1~Rnによってラッチされたデータ「r1,・・・rn」を、ジッタ補正処理で記憶されたソート結果RegOに基づきソートすることで、グリッチ形状の補正を行う(S708)。グリッチ形状判定回路211は補正されたデータ、すなわちソートされた「r1,・・・rn」を、形状判定処理によって、1ビットのデータbに変換する(S709)。
 図15を参照して、グリッチ形状判定回路211による1ビットのデータbへの変換の例を説明する。図15の説明で述べたように、形状判定処理では、データの信頼性が低い微小時間の信号変化(閾値w以下)を無視する処理を含めることで、データの再現性を高めることが可能である。
(図15のi,j)
 図15に示すように、ビット列生成装置200では、前述の処理を、入力データX(変数j)及び制御信号sel(1)(変数i)を変えて繰り返し行う。
 図15の変数i,j,kは次の意味である。
 変数i:「1~v」本の信号線のうち、sel(1)の選択する信号線を示す。
 変数j:2通り(j=0~2-1)のうちの、どの入力データXかを示す。
 変数k:同一の「X、sel(1)」に対する繰り返し回数を示す。
 また、データの信頼性を高めるために、同一の入力データXと制御信号sel(1)とに対しても繰り返し処理を行う。すなわち図15に示すように、変数i,jを固定して、K=1~Nまでを繰り返す。この処理の一例として、グリッチ形状判定回路211は、「i,j」が同一でKの異なる、b(i,j,1),b(i,j,2),b(i,j,N)に対して多数決処理を行い、その結果をb(i,j)とする例が挙げられる。最終的に、上記の処理で得られた互いに「i,j」の異なる複数の1ビットのデータb(i,j)からなるビット列であるビット列b(i,j)を鍵情報として利用する。
 図15は、特定の信号線iに着目して同一の入力データXjをN回繰り返し入力することで、同一の入力データXjに対する特定の信号線iの出力から生成される1ビットデータの信頼性を評価するフローである。
 そして、図15では、「i,j」を切り替えることで、各信号線i(i:1~v)ごとに、各入力データXj(j:0~2-1)に対する各信号線i(i:1~v)の出力から生成される1ビットデータの信頼性を評価している。
 この図15のフローは、例えば、上記で「1.4 エラーレートの改善」として説明した「初期鍵生成時」と、「初期鍵生成時以降」との双方に適用できる。これを以下に説明する。
(初期鍵生成時)
 初期鍵生成時は、例えば以下のような処理によって、生成されるビットの信頼性を向上する。ランダムロジック回路2051(組み合わせ回路)は、同一の入力データXjを繰り返し入力する。グリッチ発生回路205のセレクタ2052は、同一の入力データXjがランダムロジック回路2051へ繰り返し入力されるごとにいずれかのビット信号線から信号g(ビット対応信号)を出力することにより、v本のどのビット信号線からもN回(所定回数)、信号gを出力する。なおセレクタ2052の出力は、制御信号sel(1)による制御に基づく。グリッチ形状判定回路211(ビットデータ生成部)は、N回出力された信号gのそれぞれに対応する1ビットデータ(N個)をv本のビット信号線ごとに生成する。そして、グリッチ形状判定回路211はビット信号線ごとに生成された1ビットデータの総数に占める1と0との比率に応じて、同一の入力データXに対する各ビット信号線の出力の使用可否を決定する。すなわち、各ビット信号線から信号gがN回出力されるので、グリッチ形状判定回路211によって、1と0とのいずれかである1ビットデータが各ビット信号線ごとにN個生成される。グリッチ形状判定回路211は、各ビット信号線ごとに、N個に占める1と0との比率に応じて、同一の入力データXに対する各ビット信号線の出力の使用可否を決定する。この判定は、例えば入力データX(0)についてビット信号線iから出力された信号gを元にする1ビットデータがN個とも全部「1」である場合、あるいはN個とも全部「0」である場合にのみ、ビット信号線iを使用可能と決定する。各ビット信号線の出力の使用可否に関しては、前記「1.4 エラーレートの改善」で述べたように、マスク値を用いることができる。
(ビット信号線の使用可否の決定以降)
 マスク値の生成以降は、同一の入力データXに対して使用可能と決定されたビット信号線の出力の信頼性が判定される。ランダムロジック回路2051は、グリッチ形状判定回路211によって同一の入力データXに対するビット信号線の出力が使用可能と決定された後に、再び、同一の入力データXを繰り返し入力する。セレクタ2052は、同一の入力データXがランダムロジック回路2051へ繰り返し入力されるごとにグリッチ形状判定回路211によって出力が使用可能と決定されたビット信号線である特定の決定信号線から、所定回数(例えばN’回)、信号g(ビット対応信号)を出力する。グリッチ形状判定回路211は、特定の決定信号線からN’回出力された信号gごとにこの信号gに対応する1ビットデータをN’個生成し、生成された1ビットデータの総数(N’個)からなるビットグループに含まれる1と0との比率に基づいて、このビットグループを代表する代表ビットを1と0とのいずれかに決定する。この代表ビットの決定は、前記のように多数決処理を用いることができる。ランダムロジック回路2051と、セレクタ2052と、グリッチ形状判定回路211とは、繰り返し入力される同一の入力データXに対して同様の処理を実行することにより、少なくとも他の一本の決定信号線に関して、同一の入力データXに対する代表ビットを決定する。そしてグリッチ形状判定回路211(ビット列生成部)は、決定された複数の代表ビットを使用して、ビット列を生成する。
 入力データXと異なる他の入力データX’についても、入力データX’を同一のデータとして繰り返し入力することで、入力データX’について決定信号線ごとに代表ビットを決定することができる。なお図15では、ビット信号線iを固定して、最初に入力データX(0)をN回入力し、次に入力データX(1)をN回入力し、そして最後に入力データX(2-1)をN回入力している。これは一例である。入力データXjを固定して、信号線iの「i」を切り替えても構わない。
 このように、まず、グリッチ形状判定回路211によって初期鍵生成時に各ビット信号線の出力の使用可否を決定する。次に、グリッチ形状判定回路211によって、使用可能と決定されたビット信号線の出力に関して代表ビットを生成する。これらにより、生成されるビット列の信頼性を向上できる。また、このようにして生成されたビット列に対して誤り訂正回路300により誤り訂正することで、ビット列の信頼性をさらに向上できる。
 以上、グリッチ形状を取得し、グリッチ形状からビット列を生成するビット列生成装置200を説明した。グリッチの形状はグリッチ発生回路205を構成する各論理ゲートの遅延関係によって異なる振る舞いをするので、デバイス毎に、他のデバイスと異なるそのデバイス固有のビット列が生成される。そして、生成されるごとに、同一のデバイスではグリッチから同一のビット列が生成される。グリッチ発生回路205にデータを入力することでグリッチが発生するので、当然に鍵情報を不揮発的に格納する必要はない。
 実施の形態1のビット列生成装置200では、配置配線に関する特殊な制約はないので、配置配線の自由度が低いFPGAであっても、デバイス毎に異なるビット列を出力することが可能である。
 また、実施の形態1のビット列生成装置200では、組み合わせ回路によるループ回路を必要とする処理部は存在しないので、「課題で述べたデザインルール」に違反しないPUF回路を提供することが可能となる。
 以上の実施の形態1ではビット列生成装置200を説明したが、ビット列生成装置200の構成要素の動作をステップと把握することで、ビット列生成装置200をビット列生成方法と把握することができる。
 100 ビット生成器、101 リングオシレータ群、102 リングオシレータ、103 出力信号、104 選択回路、105 選択信号、106 信号、107 周波数比較器、108 比較結果、109 応答ビット値、200 ビット列生成装置、202 データバス、203 制御レジスタ群、204 データレジスタ群、205 グリッチ発生回路、206 伝令信号用遅延回路、207 可変遅延回路、208 セレクタ、209 サンプリング用遅延回路、210 サンプリング用レジスタ群、211 グリッチ形状判定回路、220 サンプリング回路、300 誤り訂正回路、400 暗号処理回路、500 CPU、600 内部メモリ、700 外部I/F、1000 システムLSI。

Claims (15)

  1.  グリッチを発生するグリッチ発生部と、
     前記グリッチ発生部によって発生された前記グリッチの波形を取得するグリッチ波形取得部と、
     前記グリッチ波形取得部によって取得された前記グリッチの波形に基づいて、1か0かのいずれかを示す1ビットデータを生成するビットデータ生成部と、
     前記ビットデータ生成部によって生成された複数の前記1ビットデータからなるビット列を生成するビット列生成部と
    を備えたことを特徴とするビット列生成装置。
  2.  前記グリッチ発生部は、
     複数の論理回路を組み合わせた組み合わせ回路であって、入力された入力データに対して過渡遷移に起因する前記グリッチを発生して出力する組み合わせ回路を備え、
     前記グリッチ波形取得部は、
     前記組み合わせ回路から前記グリッチを入力し、入力された前記グリッチを遅延させるグリッチ遅延部と、
     前記グリッチ遅延部により遅延された前記グリッチをサンプリングするサンプリング部と
    を備えたことを特徴とする請求項1記載のビット列生成装置。
  3.  前記組み合わせ回路は、
     前記入力データとしてuビット(uは1以上の整数)の入力データXを入力し、入力データXを用いて、vビット(vは1以上の整数)のデータである出力データYを計算するためにY=f(X)の演算を実行すると共に、前記出力データYを各ビットごとに前記グリッチを含んで出力するv本のビット信号線を備え、
     前記グリッチ発生部は、さらに、
     前記複数のビット信号線のいずれかのビット信号線による出力を指示する選択信号を入力し、入力された前記選択信号の指示するビット信号線から前記ビットに対応するビット対応信号を出力するグリッチ出力セレクタを備えた
    ことを特徴とする請求項2記載のビット列生成装置。
  4.  前記組み合わせ回路は、
     互いに異なる前記入力データXを入力し、
     前記グリッチ出力セレクタは、
     前記選択信号で制御されることによって、それぞれの前記入力データXについて前記複数のビット信号線の各ビット信号線から前記ビット対応信号を出力することを特徴とする請求項3記載のビット列生成装置。
  5.  前記組み合わせ回路は、
     同一の前記入力データXを繰り返し入力し、
     前記グリッチ出力セレクタは、
     同一の前記入力データXが前記組み合わせ回路へ繰り返し入力されるごとにいずれかの前記ビット信号線から前記ビット対応信号を出力することにより、どの前記ビット信号線からも所定回数、前記ビット対応信号を出力し、
     前記ビットデータ生成部は、
     前記所定回数出力された前記ビット対応信号のそれぞれに対応する前記1ビットデータを前記ビット信号線ごとに生成し、前記ビット信号線ごとに生成された前記1ビットデータの総数に占める1と0との比率に応じて、同一の前記入力データXに対する各ビット信号線の出力の使用可否を決定することを特徴とする請求項3または4のいずれかに記載のビット列生成装置。
  6.  前記ビットデータ生成部は、
     前記ビット信号線から出力された前記ビット対応信号を元に生成された前記1ビットデータの総数に占める1の比率が100%の場合と、0の比率が100%の場合とのいずれかの場合には、同一の前記入力データXに対する前記ビット信号線の出力を使用可能と決定することを特徴とする請求項5記載のビット列生成装置。
  7.  前記組み合わせ回路は、
     前記ビットデータ生成部によって同一の前記入力データXに対する前記ビット信号線の出力が使用可能と決定された後に、再び、同一の前記入力データXを繰り返し入力し、
     前記グリッチ出力セレクタは、
     同一の前記入力データXが前記組み合わせ回路へ繰り返し入力されるごとに前記ビットデータ生成部によって出力が使用可能と決定された前記ビット信号線である特定の決定信号線から、所定回数、前記ビット対応信号を出力し、
     前記ビットデータ生成部は、
     前記特定の決定信号線から前記所定回数出力された前記ビット対応信号ごとに前記ビット対応信号に対応する前記1ビットデータを生成し、生成された前記1ビットデータの総数からなるビットグループに含まれる1と0との比率に基づいて前記ビットグループを代表する代表ビットを1と0とのいずれかに決定し、
     前記組み合わせ回路と、前記グリッチ出力セレクタと、前記ビットデータ生成部とは、
     繰り返し入力される同一の前記入力データXに対して同様の処理を実行することにより、少なくとも他の一本の前記決定信号線に関して、同一の前記入力データXに対する前記代表ビットを決定し、
     前記ビット列生成部は、
     前記ビットデータ生成部によって決定された複数の前記代表ビットを使用して、前記ビット列を生成することを特徴とする請求項5または6のいずれかに記載のビット列生成装置。
  8.  前記ビット列生成装置は、さらに、
     前記ビット列生成部によって生成された前記ビット列の誤りを訂正する誤り訂正部を備えたことを特徴とする請求項2~7のいずれかに記載のビット列生成装置。
  9.  前記グリッチ遅延部は、
     信号線で直列に接続され、前記グリッチを遅延させて伝搬させる複数の遅延素子を備え、
     前記サンプリング部は、
     入力信号線と、クロック信号線と、出力信号線とを有する複数のレジスタであって、各レジスタの入力信号線は重複することなくいずれかの前記遅延素子の入力側と出力側とのいずれかの側に接続され、前記クロック信号線から入力される前記クロック信号の立ち上がりに連動して、前記入力信号線の接続部における情報をラッチする複数のレジスタを備え、
     前記ビット列生成装置は、さらに、
     ゼロから所定の値に立ち上がる信号である伝令信号を入力し、入力された伝令信号を遅延させ、遅延された伝令信号を前記グリッチ遅延部の直列接続の最初の遅延素子に出力する伝令信号遅延部と、
     前記サンプリング部の各レジスタに入力するためのクロック信号を入力すると共に、入力された前記クロック信号の出力タイミングを制御する制御信号を入力し、入力された前記制御信号に従ったタイミングで、入力された前記クロック信号を前記サンプリング部の各レジスタに出力する可変遅延部と
    を備えたことを特徴とする請求項2~8のいずれかに記載のビット列生成装置。
  10.  前記ビットデータ生成部は、
     前記伝令信号遅延部によって出力された遅延された伝令信号を前記可変遅延部によって出力された前記クロック信号に連動して前記サンプリング部の各レジスタがラッチした前記レジスタごとのラッチデータの値に基づいて前記レジスタごとのラッチデータをソートし、ソート結果を記憶することを特徴とする請求項9記載のビット列生成装置。
  11.  前記ビットデータ生成部は、
     前記サンプリング部の各レジスタが前記グリッチ発生部からグリッチ遅延部に出力された信号をラッチした場合には、記憶された前記ソート結果に基づいて、前記グリッチ発生部から出力され各レジスタによってラッチされた信号をソートすることを特徴とする請求項10記載のビット列生成装置。
  12.  前記ビットデータ生成部は、
     前記伝令遅延部における前記伝令信号と前記可変遅延部における前記クロック信号との同一の設定に対して、前記サンプリング部の各レジスタを用いた前記伝令信号のサンプリングを繰り返し行うことを特徴とする請求項9~11のいずれかに記載のビット列生成装置。
  13.  前記遅延部は、
     加算器の桁上げ信号を用いることにより信号を遅延させることを特徴とする請求項2~9のいずれかに記載のビット列生成装置。
  14.  前記ビットデータ生成部は、
     前記グリッチ波形取得部によって取得された前記グリッチの波形に含まれる立ち上がりエッジの数が奇数か偶数かによって0と1とのいずれかの1ビットデータを生成すると共に、前記グリッチの波形におけるパルス幅が閾値w以下の場合には、そのパルスを無視することを特徴とする請求項1~13のいずれかに記載のビット列生成装置。
  15.  グリッチを発生し、
     発生された前記グリッチの波形を取得し、
     取得された前記グリッチの波形に基づいて、1か0かのいずれかを示す1ビットデータを生成し、
     生成された複数の前記1ビットデータからなるビット列を生成することを特徴とするビット列生成方法。
PCT/JP2010/050422 2010-01-15 2010-01-15 ビット列生成装置及びビット列生成方法 WO2011086688A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP10843047.1A EP2525489B1 (en) 2010-01-15 2010-01-15 Bit sequence generation device and bit sequence generation method
JP2011549823A JP5377667B2 (ja) 2010-01-15 2010-01-15 ビット列生成装置及びビット列生成方法
US13/522,439 US9031232B2 (en) 2010-01-15 2010-01-15 Bit sequence generation apparatus and bit sequence generation method
PCT/JP2010/050422 WO2011086688A1 (ja) 2010-01-15 2010-01-15 ビット列生成装置及びビット列生成方法
KR1020127018346A KR101370231B1 (ko) 2010-01-15 2010-01-15 비트열 생성 장치 및 비트열 생성 방법
CN201080061364.0A CN102783028B (zh) 2010-01-15 2010-01-15 比特列生成装置以及比特列生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/050422 WO2011086688A1 (ja) 2010-01-15 2010-01-15 ビット列生成装置及びビット列生成方法

Publications (1)

Publication Number Publication Date
WO2011086688A1 true WO2011086688A1 (ja) 2011-07-21

Family

ID=44303992

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/050422 WO2011086688A1 (ja) 2010-01-15 2010-01-15 ビット列生成装置及びビット列生成方法

Country Status (6)

Country Link
US (1) US9031232B2 (ja)
EP (1) EP2525489B1 (ja)
JP (1) JP5377667B2 (ja)
KR (1) KR101370231B1 (ja)
CN (1) CN102783028B (ja)
WO (1) WO2011086688A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013094056A1 (ja) * 2011-12-22 2013-06-27 三菱電機株式会社 デバイス固有情報生成装置およびデバイス固有情報生成方法
JP2013131868A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
WO2014091559A1 (ja) * 2012-12-11 2014-06-19 三菱電機株式会社 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
WO2015031683A1 (en) * 2013-08-28 2015-03-05 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
JP2019054509A (ja) * 2017-09-12 2019-04-04 力旺電子股▲ふん▼有限公司eMemory Technology Inc. ランダムコード生成器および関連するランダムコードの制御方法
US10554398B2 (en) 2014-12-24 2020-02-04 Intrinsic Id B.V. Cryptographic key production from a physical unclonable function
DE112019006051T5 (de) 2019-01-09 2021-09-30 Mitsubishi Electric Corporation Sicheres-rechnen-einrichtung und client-einrichtung

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5335141B2 (ja) * 2010-06-07 2013-11-06 三菱電機株式会社 信号処理システム
CN103299576B (zh) * 2011-01-13 2016-05-25 三菱电机株式会社 比特生成装置以及比特生成方法
JP2013031151A (ja) 2011-06-20 2013-02-07 Renesas Electronics Corp 暗号通信システムおよび暗号通信方法
US20140041040A1 (en) * 2012-08-01 2014-02-06 The Regents Of The University Of California Creating secure multiparty communication primitives using transistor delay quantization in public physically unclonable functions
US9038133B2 (en) 2012-12-07 2015-05-19 International Business Machines Corporation Self-authenticating of chip based on intrinsic features
EP2799980A3 (de) * 2013-05-03 2014-11-19 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
CN103338108B (zh) * 2013-06-13 2016-09-21 北京华大信安科技有限公司 生成密钥的方法、装置及芯片
US9992031B2 (en) * 2013-09-27 2018-06-05 Intel Corporation Dark bits to reduce physically unclonable function error rates
CN103543980B (zh) * 2013-11-07 2021-10-22 吴胜远 数字数据处理的方法及装置
US9189654B2 (en) * 2013-12-04 2015-11-17 International Business Machines Corporation On-chip structure for security application
KR102198499B1 (ko) * 2013-12-31 2021-01-05 주식회사 아이씨티케이 홀딩스 디지털 값 처리 장치 및 방법
DE102014203648A1 (de) * 2014-02-28 2014-06-05 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen von Zufallsbits
CN103902930B (zh) * 2014-03-10 2016-09-07 杭州晟元数据安全技术股份有限公司 基于环形振荡器的物理不可克隆函数电路结构
WO2015177923A1 (ja) * 2014-05-23 2015-11-26 三菱電機株式会社 通信装置及び通信方法及びプログラム
KR102201642B1 (ko) 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US9934411B2 (en) * 2015-07-13 2018-04-03 Texas Instruments Incorporated Apparatus for physically unclonable function (PUF) for a memory array
DE102016201176A1 (de) * 2016-01-27 2017-07-27 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
CN105932998A (zh) * 2016-04-18 2016-09-07 宁波大学 一种采用延迟树结构的毛刺型puf电路
CN106872983B (zh) * 2017-01-18 2021-04-16 上海器魂智能科技有限公司 一种测距方法、装置及系统
DE102017215622A1 (de) * 2017-09-05 2019-03-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtungen und verfahren zum erhalten von bitsequenzen
DE102018208118A1 (de) * 2018-05-23 2019-11-28 Robert Bosch Gmbh Verfahren und Vorrichtung zum Authentifizieren einer über einen Bus übertragenen Nachricht
US11201730B2 (en) 2019-03-26 2021-12-14 International Business Machines Corporation Generating a protected key for selective use
US11372983B2 (en) * 2019-03-26 2022-06-28 International Business Machines Corporation Employing a protected key in performing operations
US11271732B2 (en) * 2019-11-12 2022-03-08 Nxp B.V. Robust repeatable entropy extraction from noisy source
CN113922963A (zh) * 2021-09-15 2022-01-11 温州大学 一种利用施密特触发采样的Glitch PUF

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366347A (ja) * 2001-06-06 2002-12-20 Iwaki Electronics Corp 乱数発生装置および確率発生装置
JP2004280486A (ja) * 2003-03-17 2004-10-07 Renesas Technology Corp 乱数生成装置および情報処理装置
JP2007034836A (ja) * 2005-07-28 2007-02-08 Renesas Technology Corp 乱数発生装置
JP2008517365A (ja) * 2004-10-15 2008-05-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 真性乱数生成器を備えた集積回路
JP2009524998A (ja) 2006-01-24 2009-07-02 ヴェラヨ インク 信号発生器をベースとした装置セキュリティ

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3826868A (en) * 1972-01-11 1974-07-30 J Nugent Telemetering system
US3789377A (en) * 1972-05-26 1974-01-29 Lockheed Electronics Co Pseudo-random sequence synchronization for magnetic recording system
TW381057B (en) 1997-08-07 2000-02-01 Hitachi Ltd Semiconductor device
AU2002212570A1 (en) * 2000-10-24 2002-05-15 Hmi Co., Ltd. Random number generator
US7243117B2 (en) 2001-02-07 2007-07-10 Fdk Corporation Random number generator and probability generator
JP3732188B2 (ja) * 2003-03-31 2006-01-05 Necマイクロシステム株式会社 擬似乱数発生回路
CN101421971A (zh) 2006-04-11 2009-04-29 皇家飞利浦电子股份有限公司 利用物理不可复制函数对令牌的询问响应认证
EP2011123B1 (en) 2006-04-13 2015-03-04 Nxp B.V. Semiconductor device identifier generation method and semiconductor device
WO2009076097A1 (en) * 2007-12-06 2009-06-18 Rambus Inc. Edge-based loss-of-signal detection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366347A (ja) * 2001-06-06 2002-12-20 Iwaki Electronics Corp 乱数発生装置および確率発生装置
JP2004280486A (ja) * 2003-03-17 2004-10-07 Renesas Technology Corp 乱数生成装置および情報処理装置
JP2008517365A (ja) * 2004-10-15 2008-05-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 真性乱数生成器を備えた集積回路
JP2007034836A (ja) * 2005-07-28 2007-02-08 Renesas Technology Corp 乱数発生装置
JP2009524998A (ja) 2006-01-24 2009-07-02 ヴェラヨ インク 信号発生器をベースとした装置セキュリティ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ALTERA, DESIGN RECOMMENDATIONS FOR ALTERA DEVICES AND THE QUARTUS II DESIGN ASSISTANT, 2009

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013131868A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
DE112011106024B4 (de) 2011-12-22 2023-07-06 Mitsubishi Electric Corporation Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
CN103946909A (zh) * 2011-12-22 2014-07-23 三菱电机株式会社 器件固有信息生成装置以及器件固有信息生成方法
WO2013094056A1 (ja) * 2011-12-22 2013-06-27 三菱電機株式会社 デバイス固有情報生成装置およびデバイス固有情報生成方法
TWI505641B (zh) * 2011-12-22 2015-10-21 Mitsubishi Electric Corp 半導體裝置固有資訊產生裝置及半導體裝置固有資訊產生方法
KR101576408B1 (ko) 2011-12-22 2015-12-09 미쓰비시덴키 가부시키가이샤 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법
CN103946909B (zh) * 2011-12-22 2016-05-11 三菱电机株式会社 器件固有信息生成装置以及器件固有信息生成方法
US9361482B2 (en) 2011-12-22 2016-06-07 Mitsubishi Electric Corporation Device specific information generation device and device specific generation method
WO2014091559A1 (ja) * 2012-12-11 2014-06-19 三菱電機株式会社 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
JP5863994B2 (ja) * 2012-12-11 2016-02-17 三菱電機株式会社 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
US9722805B2 (en) 2012-12-11 2017-08-01 Mitsubishi Electric Corporation Integrated security device and signal processing method used for an integrated security device
WO2015031683A1 (en) * 2013-08-28 2015-03-05 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
US10666256B2 (en) 2013-08-28 2020-05-26 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
US10230369B2 (en) 2013-08-28 2019-03-12 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
US10554398B2 (en) 2014-12-24 2020-02-04 Intrinsic Id B.V. Cryptographic key production from a physical unclonable function
JP2019054509A (ja) * 2017-09-12 2019-04-04 力旺電子股▲ふん▼有限公司eMemory Technology Inc. ランダムコード生成器および関連するランダムコードの制御方法
DE112019006051T5 (de) 2019-01-09 2021-09-30 Mitsubishi Electric Corporation Sicheres-rechnen-einrichtung und client-einrichtung

Also Published As

Publication number Publication date
CN102783028A (zh) 2012-11-14
EP2525489A1 (en) 2012-11-21
KR101370231B1 (ko) 2014-03-06
US9031232B2 (en) 2015-05-12
US20120293354A1 (en) 2012-11-22
KR20120112557A (ko) 2012-10-11
JPWO2011086688A1 (ja) 2013-05-16
EP2525489B1 (en) 2018-06-13
CN102783028B (zh) 2016-02-03
JP5377667B2 (ja) 2013-12-25
EP2525489A4 (en) 2014-03-05

Similar Documents

Publication Publication Date Title
JP5377667B2 (ja) ビット列生成装置及びビット列生成方法
KR101518153B1 (ko) 비트 생성 장치 및 비트 생성 방법
KR102709350B1 (ko) 물리적 복제방지 기능 비트스트링 생성에 대한 신뢰성 향상 방법
Vijay et al. Physically unclonable functions using two-level finite state machine
US9361482B2 (en) Device specific information generation device and device specific generation method
JP5863994B2 (ja) 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
Shimizu et al. Glitch PUF: extracting information from usually unwanted glitches
Zalivaka et al. FPGA implementation of modeling attack resistant arbiter PUF with enhanced reliability
Fujieda On the feasibility of TERO-based true random number generator on Xilinx FPGAs
Singh et al. Pa-puf: A novel priority arbiter puf
Pratihar et al. Birds of the same feather flock together: A dual-mode circuit candidate for strong PUF-TRNG functionalities
Shariffuddin et al. Review on arbiter physical unclonable function and its implementation in FPGA for IoT security applications
Fischer et al. True random number generators in FPGAs
Wang et al. An ultra-low overhead LUT-based PUF for FPGA
CN109558111B (zh) 基于d触发器亚稳态特性的真随机数生成装置
Likhithashree et al. Area-efficient physically unclonable functions for FPGA using ring oscillator
Antoniadis et al. An efficient implementation of a delay-based PUF construction
Tehranipoor et al. Intrinsic-Transient PUF
KR100366793B1 (ko) 쉬프트 레지스터를 이용한 펄스열 생성장치
Likhithashree et al. Design of Power-Efficient Ring Oscillator based Physically Unclonable Functions for FPGA
TWI803351B (zh) 具有物理不可仿製功能的金鑰產生單元、金鑰產生器與電路系統
Tehranipoor et al. True Random Number Generator (TRNG)

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080061364.0

Country of ref document: CN

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

Ref document number: 10843047

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011549823

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 20127018346

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2010843047

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13522439

Country of ref document: US