WO2011086688A1 - ビット列生成装置及びビット列生成方法 - Google Patents
ビット列生成装置及びビット列生成方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/84—Generating pulses having a predetermined statistical distribution of a parameter, e.g. random pulse generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation 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
Description
グリッチを発生するグリッチ発生部と、
前記グリッチ発生部によって発生された前記グリッチの波形を取得するグリッチ波形取得部と、
前記グリッチ波形取得部によって取得された前記グリッチの波形に基づいて、1か0かのいずれかを示す1ビットデータを生成するビットデータ生成部と、
前記ビットデータ生成部によって生成された複数の前記1ビットデータからなるビット列を生成するビット列生成部と
を備えたことを特徴とする。
図1~図18を参照して、実施の形態1のビット列生成装置200を説明する。実施の形態1のビット列生成装置200は、グリッチ形状を利用してPUFを構成する方法である。
論理回路の上流設計においてデバイス固有の特徴量を入力し、その特徴に応じたデバイスの挙動をシミュレートすることを考える。このシミュレーションの目的は、実装する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」と呼ぶ場合がある。
上記で述べたように、発明者は、遅延のばらつきによって様々な形状を取りうるグリッチを用いて、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がサンプリングする時刻の順序関係を算出する。この順序関係を用いて、グリッチ波形のサンプリング結果に対して並び替えを行うことでグリッチ形状を復元する。
図5は、ジッタ補正処理を用いてグリッチ捕捉処理を行った場合の捕捉結果を示す。
図6は、ジッタ補正処理を行わない場合の捕捉結果を示す。
前述したサンプリング方法によりデジタルデータとして捕捉されたグリッチ形状は、1ビットの値に変換される。ここでは、グリッチ形状がもつ立ち上がりエッジの偶奇性をビット値に変換する方法について述べる。立ち上がりエッジの偶奇判定は、微分処理と加算処理とをハードウェアあるいはソフトウェアで実装することで検出可能である。この処理を「形状判定処理」(後述のS709)と呼ぶ。
そこで発明者は、エッジの偶奇性を判定する前に図7に示すような捕捉されたグリッチ形状のパルス幅が閾値w以下の場合、そのパルスを無視する処理を行うことにした。以下この処理を「フィルタ処理」と略記する。
図7は補足されたグリッチパターンの例を3つ示している。
形状判定処理の結果のエラーレートを改善するために、繰り返し同じ処理を実行できる特徴を生かして、同じ入力レジスタの状態変化よって発生するグリッチに対して繰り返し形状判定を行い、多数決処理によって最終的な出力を決定する。
特に「初期鍵生成時」には、M回の繰り返し処理に対して出力が全て同じになる入力のみを鍵生成のために利用する。「初期鍵生成時」とは、ビット列生成装置200が搭載されたシステムLSI1000において、ビット列生成装置200によって初めて鍵情報(ビット列)が生成される時である。例えば、工場出荷時において、そのLSIにおいて、鍵情報が初めて生成されるような場合である。この場合、N個の状態変化に対してそれぞれM回の判定処理を行い、Nビットのレスポンスを生成するが、同時にNビットのマスク値を生成することになる。マスク値が1のビットは鍵生成に利用するビットを表し、0のビットは鍵生成に用いないことを表す。マスク値はHelper Dataの一部として外部に出力する。この「エラーレートの改善」については、「図15のi,j」として後述する説明以降で、詳しく説明する。
図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)の遅延信号hdであるDLY(h)を出力する。バッファチェーンの段数は、設計時にグリッチ発生回路205で生成されるグリッチ信号の発生タイミングをシミュレーションで評価して決定する。この詳細は、後述する。
(5)サンプリング回路220は、図3に示したような、バッファチェーン(サンプリング用遅延回路209)とFF(サンプリング用レジスタ群210)とにより構成される。尚、FPGAにグリッチPUFを実装することを想定した場合、サンプリング回路220で用いるバッファチェーンにはLook-up Table(LUT)にバッファを実装するよりも算術加算回路用のキャリーパスを用いた方がサンプリングの分解能を高めることができる。また、可変遅延回路207に関しても変更可能な遅延値の刻みを細かくするためにキャリーパスを用いる。但し、可変遅延回路207の可変範囲はサンプリング範囲よりも広く取る必要があるため、全てをキャリーパスで実装すると回路規模が増大する。そのため、図10に示すように、キャリーパスによる遅延回路とLUTによる遅延回路を組み合わせることで分解能を落とさずに広い稼動範囲を確保することができる。
図10は、キャリーパスによる遅延回路とLUTによる遅延回路を組み合わせた遅延回路の構成を示す。
グリッチの形状捕捉を効率よく実現するためには、設計段階で各回路のパラメータを調整する必要がある。調整すべきパラメータは以下の通りである。
n:サンプリング回路220のFF数、
delays:サンプリング回路220の信号間に挿入するバッファの遅延値、
ranges:サンプリング回路220のサンプリング範囲、
rangeg:グリッチ発生回路205のグリッチ発生範囲、
rangeCLK:可変遅延回路207の可変範囲、
tg:グリッチ発生範囲の中央値の時刻、
th:伝令信号(h)の遅延信号hd(DLY(h))の立ち上がり時刻。
図11は、各パラメータの関係を示す図である。「n」及び「delays」は、サンプリング範囲とその分解能に関係するパラメータであり、サンプリング範囲rangesは、おおよそ「n・delays」なる。つまり、ranges≒n・delaysである。
グリッチ形状を捕捉するためには、
rangeg<ranges<rangeCLK
となる必要がある。以下に、この関係を成立させるための設計手順について述べる。
(1)まず、グリッチ発生回路205の論理を決定した段階で、遅延情報付きの論理シミュレーションを行い、サンプリング回路220の入力においてグリッチが発生する時間範囲rangegと発生タイミングtgとを見積もる。
(2)次に、
rangeg<ranges
を満たす「n」及び「delays」を決める。このとき実装対象のプラットフォームにおいてdelaysが可能な限り小さくなるようなセルをバッファとして利用することでサンプリングの分解能を高めることができる。従って、実際に決定するのはnとなる。実施の形態1の実装では、設計マージンとしてrangegの倍以上になるようにrangesを設定している。また、rangeCLKも同様にrangesの倍を目安に可変遅延回路のバッファ段数を設定している。
(3)次に、伝令信号用遅延回路のバッファ段数を決定する。このとき、遅延回路の遅延値は、前述の見積もり結果tgを用いてtg≒thとなるように設計する。伝令信号に対してタイミング調整を行う理由は、サンプリング結果の時刻順序関係を算出するために利用するのと同時に、グリッチの形状捕捉を行う際に用いる可変遅延回路の遅延値指定信号の値Dgを決定するためである。
以下その方法について説明する。
サンプリング結果の時刻順序関係を算出する際に伝令信号に対してDを最小値から最大値へとインクリメントしながら変化してサンプリングする。このとき、サンプリング結果の中心付近のFFが最初に1をラッチするDの値をDgとする。グリッチ発生範囲は伝令信号の遅延と同程度になるように調整してあるため、グリッチ波形をサンプリング範囲の中央付近でサンプリングすることが可能となる。ただし、正確に信号間の遅延を調整することは一般に困難なため、rangesやrangeCLKは、前述した倍半分のようなマージンをとって設定する必要がある。
以下、試作したグリッチ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は、データバス202に接続されている。ビット列生成装置200は、制御レジスタ群203、データレジスタ群204、グリッチ発生回路205(グリッチ発生部)、伝令信号用回路206(伝令信号遅延部)、可変遅延回路207(可変遅延部)、セレクタ208、サンプリング用遅延回路209(グリッチ遅延部)、サンプリング用レジスタ群210(サンプリング部)、グリッチ形状判定回路211(ビットデータ生成部、ビット列生成部)、及びビット列出力バス212を備える。サンプリング用遅延回路209とサンプリング用レジスタ群210とは、サンプリング回路220(グリッチ波形取得部)を構成する。
以下、各構成要素を説明する。
制御レジスタ群203は、データバス202からのデータ入力に対して、
グリッチ発生回路205への制御信号sel(1)と、
後述するジッタ補正処理を行う際に用いる伝令信号(h)と、
セレクタ209への制御信号sel(2)と、
可変遅延回路207における遅延値の変更のための制御信号(D)と、
サンプリング用レジスタ群210へのクロック入力のための制御信号(p)と、
を保持する複数のレジスタを備える。
データレジスタ群204は、データバス202からのデータ入力に対して、グリッチ発生回路205への入力信号Xを保持する複数のレジスタを備える。
グリッチ発生回路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は、固定の信号遅延を発生させる回路である。
図13は、伝令信号用遅延回路206、あるいはサンプリング用遅延回路209として使用される遅延回路の内部構成を示す。図13に示す遅延回路401、遅延回路402は、伝令信号用遅延回路206あるいはサンプリング用遅延回路209として使用される。 図13(a)に示す遅延回路401は、一般的なバッファ回路(遅延素子の一例)の直列接続によって構成する例であり、ASIC(Application Specific Integrated Circuit)で一般的に用いられる。一方、図13(b)に示す遅延回路402は、加算器(遅延素子の一例)のキャリー伝播遅延を利用して遅延回路を構成する例である。FPGAでは、加算回路は専用のハードマクロで構成されるため、キャリー伝播遅延は通常の論理を構成するLUTよりも高速となる。このため、キャリー伝播遅延を遅延回路として利用することで、遅延の粒度を細かくすることが可能となる。ここで、伝令信号用遅延回路206の論理段数は、グリッチ発生回路205の論理段数と同程度になるように設計される。
可変遅延回路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は、グリッチ発生回路205の出力gと伝令信号用遅延回路206の出力DLY(h)とを制御信号sel(2)によって選択する回路であり、セレクタ208の出力s0は、サンプリング用遅延回路209に接続される。
図3を参照してサンプリング用レジスタ群210の構成を説明する。サンプリング用レジスタ群210は、サンプリング用遅延回路209の出力を、可変遅延回路207の出力CLK(v)をクロック信号としてラッチするレジスタ群である。サンプリング用遅延回路209は、遅延素子の段数が異なる信号s1,・・・,信号snを出力する。
サンプリング用遅延回路209は、サンプリング用レジスタ群210を構成する各レジスタRに接続される。
レジスタRiは、入力信号線から信号siを入力し、クロック信号線からクロック信号CLK(v)を入力し、出力信号線から信号riを出力する。
グリッチ形状判定回路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を参照して、ジッタ補正処理に関して説明する。
(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)のサンプリングの状態を示す図である。
(2)逆に、制御信号(D)の値が大きい場合は、伝令信号(h)が伝播して立ち上がりが観測される区間よりも後にCLK(v)の立ち上がりエッジが発生する。よって、この場合、サンプリング用レジスタ群210は、すべて1をラッチする。すなわち、サンプリング用レジスタ群210の各レジスタRは、信号s1~snに関しすべて「1」をラッチする。
(3)制御信号(D)を最小値から最大値まで変化させ、同様の処理(伝令信号(h)と制御信号l(p)の信号線をそれぞれ同一タイミングで0から1に変更し、サンプリング用レジスタ群210によるラッチ)を行った場合、信号線s1~snのうち伝令信号(h)の伝播が速い信号線から順に1に変化する。
伝令信号(h)の伝播に関して、図17では、信号線s1が最も伝令信号(h)の伝播が速い信号線であり、信号線snが最も遅い信号線として表記されている。しかし、サンプリング用遅延回路209の各遅延の粒度を細かくした場合、図17の信号線stと信号線st’との関係のように、「t<t’」であるが、信号遅延値は「st>st’」となる信号線が発生しうる。これは、サンプリング用遅延回路209からサンプリング用レジスタ群210までの配線遅延や、CLK(v)のジッタによって発生する現象である。
S803で同一の制御信号(D)に対して繰り返し処理を行う理由は、サンプリング用レジスタ群210の各レジスタRにおいて、データの変化とクロックの立ち上がりのタイミングとが近接しているレジスタは、ラッチするデータが不安定になる。したがって、ラッチするデータの精度を上げるために繰り返し処理を行う。
図15のグリッチ形状取得処理の説明に戻る。ジッタ補正処理後、CPU500は、グリッチ形状取得処理のための初期設定処理を行う(S702)。この初期設定処理では、CPU500は全レジスタを初期化した後、制御信号sel(2)を、信号gを選択する信号値に設定する。また、CPU500は、可変遅延回路207の遅延値を決定する制御信号(D)を、ジッタ補正処理で記憶された値Dgに設定する。これは、グリッチ発生回路205と同等の論理段数を持つ伝令信号用遅延回路206の信号DLY(h)を補足したCLK(v)の立ち上がりタイミングで、グリッチ発生回路205の信号gを補足するためである。
図15に示すように、ビット列生成装置200では、前述の処理を、入力データX(変数j)及び制御信号sel(1)(変数i)を変えて繰り返し行う。
図15の変数i,j,kは次の意味である。
変数i:「1~v」本の信号線のうち、sel(1)の選択する信号線を示す。
変数j:2u通り(j=0~2u-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,j」を切り替えることで、各信号線i(i:1~v)ごとに、各入力データXj(j:0~2u-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(ビット列生成部)は、決定された複数の代表ビットを使用して、ビット列を生成する。
Claims (15)
- グリッチを発生するグリッチ発生部と、
前記グリッチ発生部によって発生された前記グリッチの波形を取得するグリッチ波形取得部と、
前記グリッチ波形取得部によって取得された前記グリッチの波形に基づいて、1か0かのいずれかを示す1ビットデータを生成するビットデータ生成部と、
前記ビットデータ生成部によって生成された複数の前記1ビットデータからなるビット列を生成するビット列生成部と
を備えたことを特徴とするビット列生成装置。 - 前記グリッチ発生部は、
複数の論理回路を組み合わせた組み合わせ回路であって、入力された入力データに対して過渡遷移に起因する前記グリッチを発生して出力する組み合わせ回路を備え、
前記グリッチ波形取得部は、
前記組み合わせ回路から前記グリッチを入力し、入力された前記グリッチを遅延させるグリッチ遅延部と、
前記グリッチ遅延部により遅延された前記グリッチをサンプリングするサンプリング部と
を備えたことを特徴とする請求項1記載のビット列生成装置。 - 前記組み合わせ回路は、
前記入力データとしてuビット(uは1以上の整数)の入力データXを入力し、入力データXを用いて、vビット(vは1以上の整数)のデータである出力データYを計算するためにY=f(X)の演算を実行すると共に、前記出力データYを各ビットごとに前記グリッチを含んで出力するv本のビット信号線を備え、
前記グリッチ発生部は、さらに、
前記複数のビット信号線のいずれかのビット信号線による出力を指示する選択信号を入力し、入力された前記選択信号の指示するビット信号線から前記ビットに対応するビット対応信号を出力するグリッチ出力セレクタを備えた
ことを特徴とする請求項2記載のビット列生成装置。 - 前記組み合わせ回路は、
互いに異なる前記入力データXを入力し、
前記グリッチ出力セレクタは、
前記選択信号で制御されることによって、それぞれの前記入力データXについて前記複数のビット信号線の各ビット信号線から前記ビット対応信号を出力することを特徴とする請求項3記載のビット列生成装置。 - 前記組み合わせ回路は、
同一の前記入力データXを繰り返し入力し、
前記グリッチ出力セレクタは、
同一の前記入力データXが前記組み合わせ回路へ繰り返し入力されるごとにいずれかの前記ビット信号線から前記ビット対応信号を出力することにより、どの前記ビット信号線からも所定回数、前記ビット対応信号を出力し、
前記ビットデータ生成部は、
前記所定回数出力された前記ビット対応信号のそれぞれに対応する前記1ビットデータを前記ビット信号線ごとに生成し、前記ビット信号線ごとに生成された前記1ビットデータの総数に占める1と0との比率に応じて、同一の前記入力データXに対する各ビット信号線の出力の使用可否を決定することを特徴とする請求項3または4のいずれかに記載のビット列生成装置。 - 前記ビットデータ生成部は、
前記ビット信号線から出力された前記ビット対応信号を元に生成された前記1ビットデータの総数に占める1の比率が100%の場合と、0の比率が100%の場合とのいずれかの場合には、同一の前記入力データXに対する前記ビット信号線の出力を使用可能と決定することを特徴とする請求項5記載のビット列生成装置。 - 前記組み合わせ回路は、
前記ビットデータ生成部によって同一の前記入力データXに対する前記ビット信号線の出力が使用可能と決定された後に、再び、同一の前記入力データXを繰り返し入力し、
前記グリッチ出力セレクタは、
同一の前記入力データXが前記組み合わせ回路へ繰り返し入力されるごとに前記ビットデータ生成部によって出力が使用可能と決定された前記ビット信号線である特定の決定信号線から、所定回数、前記ビット対応信号を出力し、
前記ビットデータ生成部は、
前記特定の決定信号線から前記所定回数出力された前記ビット対応信号ごとに前記ビット対応信号に対応する前記1ビットデータを生成し、生成された前記1ビットデータの総数からなるビットグループに含まれる1と0との比率に基づいて前記ビットグループを代表する代表ビットを1と0とのいずれかに決定し、
前記組み合わせ回路と、前記グリッチ出力セレクタと、前記ビットデータ生成部とは、
繰り返し入力される同一の前記入力データXに対して同様の処理を実行することにより、少なくとも他の一本の前記決定信号線に関して、同一の前記入力データXに対する前記代表ビットを決定し、
前記ビット列生成部は、
前記ビットデータ生成部によって決定された複数の前記代表ビットを使用して、前記ビット列を生成することを特徴とする請求項5または6のいずれかに記載のビット列生成装置。 - 前記ビット列生成装置は、さらに、
前記ビット列生成部によって生成された前記ビット列の誤りを訂正する誤り訂正部を備えたことを特徴とする請求項2~7のいずれかに記載のビット列生成装置。 - 前記グリッチ遅延部は、
信号線で直列に接続され、前記グリッチを遅延させて伝搬させる複数の遅延素子を備え、
前記サンプリング部は、
入力信号線と、クロック信号線と、出力信号線とを有する複数のレジスタであって、各レジスタの入力信号線は重複することなくいずれかの前記遅延素子の入力側と出力側とのいずれかの側に接続され、前記クロック信号線から入力される前記クロック信号の立ち上がりに連動して、前記入力信号線の接続部における情報をラッチする複数のレジスタを備え、
前記ビット列生成装置は、さらに、
ゼロから所定の値に立ち上がる信号である伝令信号を入力し、入力された伝令信号を遅延させ、遅延された伝令信号を前記グリッチ遅延部の直列接続の最初の遅延素子に出力する伝令信号遅延部と、
前記サンプリング部の各レジスタに入力するためのクロック信号を入力すると共に、入力された前記クロック信号の出力タイミングを制御する制御信号を入力し、入力された前記制御信号に従ったタイミングで、入力された前記クロック信号を前記サンプリング部の各レジスタに出力する可変遅延部と
を備えたことを特徴とする請求項2~8のいずれかに記載のビット列生成装置。 - 前記ビットデータ生成部は、
前記伝令信号遅延部によって出力された遅延された伝令信号を前記可変遅延部によって出力された前記クロック信号に連動して前記サンプリング部の各レジスタがラッチした前記レジスタごとのラッチデータの値に基づいて前記レジスタごとのラッチデータをソートし、ソート結果を記憶することを特徴とする請求項9記載のビット列生成装置。 - 前記ビットデータ生成部は、
前記サンプリング部の各レジスタが前記グリッチ発生部からグリッチ遅延部に出力された信号をラッチした場合には、記憶された前記ソート結果に基づいて、前記グリッチ発生部から出力され各レジスタによってラッチされた信号をソートすることを特徴とする請求項10記載のビット列生成装置。 - 前記ビットデータ生成部は、
前記伝令遅延部における前記伝令信号と前記可変遅延部における前記クロック信号との同一の設定に対して、前記サンプリング部の各レジスタを用いた前記伝令信号のサンプリングを繰り返し行うことを特徴とする請求項9~11のいずれかに記載のビット列生成装置。 - 前記遅延部は、
加算器の桁上げ信号を用いることにより信号を遅延させることを特徴とする請求項2~9のいずれかに記載のビット列生成装置。 - 前記ビットデータ生成部は、
前記グリッチ波形取得部によって取得された前記グリッチの波形に含まれる立ち上がりエッジの数が奇数か偶数かによって0と1とのいずれかの1ビットデータを生成すると共に、前記グリッチの波形におけるパルス幅が閾値w以下の場合には、そのパルスを無視することを特徴とする請求項1~13のいずれかに記載のビット列生成装置。 - グリッチを発生し、
発生された前記グリッチの波形を取得し、
取得された前記グリッチの波形に基づいて、1か0かのいずれかを示す1ビットデータを生成し、
生成された複数の前記1ビットデータからなるビット列を生成することを特徴とするビット列生成方法。
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)
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)
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)
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)
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 |
-
2010
- 2010-01-15 WO PCT/JP2010/050422 patent/WO2011086688A1/ja active Application Filing
- 2010-01-15 JP JP2011549823A patent/JP5377667B2/ja active Active
- 2010-01-15 KR KR1020127018346A patent/KR101370231B1/ko active IP Right Grant
- 2010-01-15 CN CN201080061364.0A patent/CN102783028B/zh active Active
- 2010-01-15 US US13/522,439 patent/US9031232B2/en active Active
- 2010-01-15 EP EP10843047.1A patent/EP2525489B1/en active Active
Patent Citations (5)
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)
Title |
---|
ALTERA, DESIGN RECOMMENDATIONS FOR ALTERA DEVICES AND THE QUARTUS II DESIGN ASSISTANT, 2009 |
Cited By (17)
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 |