CN113760221A - True random number generator based on physical unclonable function and related method - Google Patents

True random number generator based on physical unclonable function and related method Download PDF

Info

Publication number
CN113760221A
CN113760221A CN202110578028.3A CN202110578028A CN113760221A CN 113760221 A CN113760221 A CN 113760221A CN 202110578028 A CN202110578028 A CN 202110578028A CN 113760221 A CN113760221 A CN 113760221A
Authority
CN
China
Prior art keywords
seed
random number
entropy
circuit
volatile memory
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN202110578028.3A
Other languages
Chinese (zh)
Other versions
CN113760221B (en
Inventor
游钧元
刘用翔
庄恺莘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Entropy Code Technology Co ltd
Original Assignee
Entropy Code Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/211,799 external-priority patent/US11487505B2/en
Application filed by Entropy Code Technology Co ltd filed Critical Entropy Code Technology Co ltd
Publication of CN113760221A publication Critical patent/CN113760221A/en
Application granted granted Critical
Publication of CN113760221B publication Critical patent/CN113760221B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers

Abstract

The invention discloses a Physical Uncloneable Function (PUF) based true random number generator and a method for generating a true random number. The PUF-based random number generator may include a first garbled circuit, a cryptographic circuit coupled to the first garbled circuit, and a second garbled circuit coupled to the cryptographic circuit. The first obfuscation circuit takes a first PUF value from a PUF pool of the electronic device and performs a first obfuscation function on a preliminary seed based on the first PUF value to produce a final seed. The cryptographic circuit generates a plurality of preliminary random numbers using the final seed as a key for a cryptographic function. The second garbled circuit takes a second PUF value from the pool of PUFs and performs a second garbled function on the plurality of preliminary random numbers based on the second PUF value to produce a plurality of final random numbers. The invention can improve the safety and output randomness of the true random number generator based on the physical unclonable function.

Description

True random number generator based on physical unclonable function and related method
Technical Field
The present invention relates to a true random number generator, and more particularly, to a true random number generator based on a physical unclonable function and a method for generating a true random number.
Background
The physically unclonable function may be considered a fingerprint on a wafer, and may be used as a static entropy (entropy) value for a qualification-related application because the physical characteristics of different wafers may differ slightly due to some uncontrollable factors in the manufacturing process, which cannot be duplicated or predicted. In some related art, the pool of physical unclonable functions requires a storage space in the electronic device, and in particular, in order to improve the randomness of the output values based on the physical unclonable functions, the required hardware resources are increased accordingly. Therefore, a novel architecture and associated method are needed to improve the output randomness of a physically unclonable function-based true random number generator with no or less side effects.
Disclosure of Invention
Therefore, the present invention is directed to a physical unclonable function-based true random number generator and a method for generating true random numbers, which can improve the overall performance of the physical unclonable function-based true random number generator without significantly increasing the overall hardware cost.
At least one embodiment of the present invention provides a Physical Unclonable Function (PUF) -based true random number generator for an electronic device. The physically unclonable function based true random number generator may include a first obfuscation (obfuscation) circuit, a cryptographic circuit coupled to the first obfuscation circuit, and a second obfuscation circuit coupled to the cryptographic circuit. The first obfuscation circuit is configured to obtain a first physically unclonable function value from a physically unclonable function pool of the electronic device, and perform a first obfuscation function on a primary seed based on the first physically unclonable function value to generate a final seed. The cryptographic circuit is configured to generate a preliminary random number sequence using the final seed as a key for a cryptographic function. The second obfuscation circuit is configured to obtain a second physically unclonable function value from the physically unclonable function pool, and perform a second obfuscation function on the preliminary random number sequence based on the second physically unclonable function value to generate a final random number sequence.
At least one embodiment of the present invention provides a method for generating true random numbers, wherein the method is applicable to an electronic device. The method may include: performing a first obfuscation function on a preliminary seed based on a first physically unclonable function value by using a first obfuscation circuit to generate a final seed; using a cryptographic circuit to generate a preliminary random number sequence using the final seed as a key for a cryptographic function; and performing a second obfuscation function on the preliminary random number sequence based on a second physically unclonable function value by using a second obfuscation circuit to generate a final random number sequence. In particular, the first and second physically unclonable function values are obtained from a physically unclonable function pool of the electronic device.
Embodiments of the present invention provide true random number generators and related methods based on physical unclonable functions that can improve overall performance with various characteristics such as cryptographic functions (e.g., good security and good pseudo-randomness), dynamic entropy (e.g., providing "live" (live) entropy to systems, particularly electronic devices), and static entropy (e.g., physical unclonable functions, which can be considered as fingerprints on a chip). Thus, embodiments of the present invention can improve the security and output randomness of a physically unclonable function-based true random number generator with no or less side effects.
Drawings
Fig. 1 is a schematic diagram of an electronic device according to an embodiment of the invention.
Fig. 2 is a schematic diagram of an electronic device according to an embodiment of the invention.
Fig. 3 is a schematic diagram of an electronic device according to another embodiment of the invention.
Fig. 4 is a schematic diagram of an electronic device according to an embodiment of the invention.
Fig. 5 is a schematic diagram of an electronic device according to an embodiment of the invention.
FIG. 6 is a workflow of a method for generating true random numbers according to an embodiment of the invention.
Wherein the reference numerals are as follows:
10. 20, 40, 50 electronic device
15 pool of physical unclonable functions
100. 200, 400, 500 true random number generator based on a pool of physical unclonable functions
110 garbled circuit
120 cipher circuit
130 garbled circuit
140 entropy circuit
141 oscillator
142 exclusive OR logic circuit
143 multiplexer
144 entropy collector
145 selective entropy collector
150 non-volatile memory
160 health test circuit
170 multiplexer
180 multiway distributor
PUF1, PUF2 physically uncloneable function value
SEEDDYNDynamic entropy seeding
SEEDNVMNon-volatile memory seed
SEEDPREPreliminary seed
SEEDFINALFinal seed
{RNPREPreliminary random number sequence
{RNFINALFinal random number sequence
TEST results of TEST
610. 620, 630, 640, 650 steps
Detailed Description
Fig. 1 is a schematic diagram of an electronic device 10 according to an embodiment of the invention, in which the electronic device 10 may include a Physical Unclonable Function (PUF) pool 15 and a PUF-based true random number generator 100 coupled to the PUF pool 15. As shown in fig. 1, the PUF-based true random number generator 100 may include a first obfuscation (obfuscation) circuit such as obfuscation circuit 110, a cryptography circuit 120, and a second obfuscation circuit such as obfuscation circuit 130, wherein the cryptography circuit 120 is coupled to the obfuscation circuit 110, and the obfuscation circuit 130 is coupled to the cryptography circuit 120. In this embodiment, the garbled circuit 110 may obtain a first PUF value, such as PUF value PUF1, from the PUF pool 15 and perform a first garbled function on a preliminary SEED based on PUF value PUF1 to generate a final SEEDFINAL. The cryptographic circuit 120 may be used to utilize the final SEED SEEDFINALGenerating a preliminary random number sequence { RN ] as a key for a cryptographic functionPRE}. For example, the cryptographic circuit 120 may perform the cryptographic algorithm of DES, AES, RSA, or MD 5. The garbled circuit 130 may retrieve a second PUF value, such as PUF value PUF2, from the PUF pool 15 and pair the preliminary sequence of random numbers { RN } based on PUF value PUF2PREPerforming a second obfuscation function to generate a sequence of final random numbers RNFINALIn which the final random number sequence { RN }FINALEach random number in the (f) is used as an output random number of the PUF-based true random number generator 100, if necessary.
In this embodiment, the PUF-based true random number generator 100 may further compriseAn entropy (entropy) circuit 140 is provided for providing an entropy SEED such as a dynamic entropy SEEDDYNAs the preliminary seed. For example, the entropy circuit 140 may comprise an oscillator for outputting a plurality of random single bit (bit) values. In detail, the oscillator can generate a periodic signal that varies between a logic value "0" and a logic value "1" at an oscillation frequency, and the value of the periodic signal is sampled at a sampling frequency (e.g., by a sampler built at an output terminal of the oscillator, wherein the sampler is controlled by the sampling frequency) to output the plurality of random single-bit values, wherein the sampling frequency is different from the oscillation frequency (e.g., the sampling frequency may be lower than the oscillation frequency). Because of factors such as temperature, noise, etc., the logic values "1" and "0" generated by the periodic signal are sampled in a random manner, so that the logic values "1" and "0" appear randomly in the plurality of random single-bit values. In addition, the physical characteristics of different wafers may differ slightly due to certain uncontrollable factors during the manufacturing process, which cannot be replicated or predicted, and the differences may be reflected in the PUF values (e.g., PUF1 and PUF2) in the PUF pool 15 of the electronic device 10. These PUF values can therefore be considered as fingerprints on the wafer, whereas in this embodiment these PUF values provide static entropy. In certain embodiments, the first PUF value may be different from the second PUF value (e.g., PUF1 ≠ PUF 2).
To determine whether a random number sequence is available (available), the random number sequence requires certain test items defined by the National Institute of Standards and Technology (NIST) -800-22. Although based on a dynamic entropy SEED SEED generated by an oscillator SEEDDYNWith some degree of randomness, but dynamic entropy seedingDYNIt may still be difficult to pass all of the test items of NIST-800-22. For example, dynamic entropy SEEDDYNPerhaps by a binary matrix rank test (binary matrix rank test), a non-overlapping template matching test (n)on-overlapping template matching test), linear complexity test (linear complexity test), and random offset variance test (random offset variance test), but may not pass frequency tests such as single bit test (monobit test), intra-block frequency test (frequency with a block test), run-through test (run test), intra-block run-time longest test (change run in a block test), discrete Fourier transform test (discrete Fourier transform) such as discrete Fourier transform spectrum test (discrete Fourier transform spread test), Overlapping template matching test (Overlapping template matching test), mauer's general statistical test (main's statistical test), serial test (serial test), approximate entropy test, cumulative sum test (cumulative sum test), and random offset test (random offset test). However, after the processing of the obfuscation circuit 110 and the encryption circuit 120, the initial random number sequence { RN }PREAll test items listed above can be passed. Frequency (single bit) tests are used to detect whether the occurrence rates of "0" and "1" are close to each other, serial tests are used to detect whether the longest consecutive "0" and the longest consecutive "1" are reasonable (e.g., below a predetermined threshold), and non-overlapping template matching tests are used to detect whether the repeating pattern of a random number sequence is reasonable (e.g., whether the pattern repeats regularly or randomly). Since the test items are defined in the NIST-800-22 standard, which is well known, a person of ordinary skill in the art should understand the meaning of the test items, and the details thereof are not repeated herein for the sake of brevity.
In this embodiment, any one (e.g., each) of the first obfuscation function and the second obfuscation function may include an addend (e.g., an addition), a multiplicative (e.g., a multiplication), a permutation (multiplication), a substitution (substitution), a one-way function (encryption), or a combination thereof. For example, either (e.g., each) of the obfuscation circuits 110 and 130 may be exclusive-OR (XOR) logic circuits to implement an addition arithmetic function. Those skilled in the art will understand how to implement the above-described embodimentsThe logic circuits corresponding to the obfuscating functions of other types are not described in detail herein for the sake of brevity. In some embodiments, the first obfuscation function may be the same as the second obfuscation function (e.g., obfuscation circuits 110 and 130 may be implemented by the same type of logic circuit). In some embodiments, the first obfuscation function may be different than the second obfuscation function (e.g., obfuscation circuits 110 and 130 may be implemented by different types of logic circuits). When each of the garbled circuits 110 and 130 is an exclusive OR logic circuit, the garbled circuit 110 performs a dynamic entropy SEED onDYNExclusive OR operation with PUF value PUF1 to generate final SEED SEEDFINALThe aliasing circuit 130 is used to alias the preliminary random number sequence { RNPREMutually exclusive OR operation with PUF value PUF2 to generate the final random number sequence RNFINAL}。
In an embodiment, the garbled circuit 110 may use the preliminary SEED such as the dynamic entropy SEEDDYNConcatenating (concatenating) with PUF values PUF1, e.g. by arranging dynamic entropy SEEDs SEED sequentiallyDYNWith PUF value PUF1 to generate the final SEED SEEDFINAL. For example, assume a dynamic entropy SEED SEEDDYNFor M-bit digital values and the PUF value PUF1 for N-bit digital values, and the garbled circuit 110 may SEED the dynamic entropyDYNSEED as final SEEDFINALAnd additionally takes the PUF value PUF1 as the final SEEDFINALTo generate a final SEED of M + N bitsFINAL
In one embodiment, the cryptographic function may comprise a cipher function (e.g., stream cipher such as a Trivium cipher) or a hash function (hash function). When a specific key (e.g., final SEED SEED)FINAL) Is input to the cryptographic circuit 120, a corresponding bit stream is output and the bit stream has good security and good pseudo-randomness. If the key is constant every time the electronic device 10 is powered on, the corresponding bitstream is also constant every time. To further improve security and randomness, the key used by the cryptographic circuit 120 may be dynamic. Due to the final seed SEEDFINALBased on dynamic entropy SEED SEEDDYNAnd a sequence of preliminary random numbers { RN } generated by the PUF value PUF1PREThere may be a benefit of using the dynamic entropy seed with the PUF value PUF1, thereby improving security and randomness. Furthermore, even if the cryptographic functions are implemented by well-known methods or standards, it is still difficult for a person of ordinary skill in the art to self-evaluate the final random number sequence { RNFINALTrace back to decrypt the cryptographic function (decripher) because of the final output (i.e. { RN)FINAL} is generated by the garbled circuit 130 based on the unpredictable PUF value PUF 2. Thus, the final random number sequence RNFINALThe security performance of is further improved. It is noted that the cryptographic functions are not limited to a particular type of cryptographic function, and that certain well known algorithms can be employed for the cryptographic functions of the present invention.
Fig. 2 is a schematic diagram of an electronic device 20 according to an embodiment of the invention, wherein the electronic device 20 may include the PUF cell 15 and a PUF-based true random number generator 200 coupled to the PUF cell 15. The embodiment of fig. 2 is similar to that of fig. 1, but the main difference is that the PUF-based true random number generator 200 may include a non-volatile memory (NVM) 150 (denoted as "NVM" in the figure for simplicity) for providing the preliminary SEED, and in particular, a non-volatile memory SEED (NVM SEED) SEED stored in the NVM 150NVMTo serve as the preliminary seed. In addition, a feedback random number may be written to the non-volatile memory 150 at one or more predetermined points in time to update the NVM SEED stored in the non-volatile memory 150NVM. In one embodiment, the feedback random number may be derived from a preliminary random number sequence { RNPREGet, as shown in fig. 2. In another embodiment, the feedback random number may be derived from a final random number sequence { RNFINALGet as shown in fig. 3. Similar to the embodiment of FIG. 1, the final random number sequence { RN }FINALEach random number in the (f) is available as an output random number of the PUF-based true random number generator 200, if desired.
Note that the updates are stored inNVM SEED SEED in non-volatile memory 150NVMThe point in time of (a) is not a limitation of the invention. For example, the feedback random number may be a preliminary random number sequence { RNPRE} or a final random number sequence RNFINALThe first random number after the electronic device 20 is powered on, and once the first random number is generated, the first random number can be written into the non-volatile memory 150. As another example, the feedback random number may be written to the non-volatile memory 150 at predetermined time intervals to update the NVM SEEDNVM. For another example, when the electronic device 20 receives a power-off command, the feedback random number may be a preliminary random number sequence { RNPRE} or a final random number sequence RNFINALThe latest random number after the electronic device 20 is powered on can be written into the non-volatile memory 150 to update the NVM SEED before the electronic device 20 is powered offNVM
Fig. 4 is a schematic diagram of an electronic device 40 according to an embodiment of the invention. As shown in fig. 4, the electronic device 40 may include the PUF pool 15, and a PUF-based true random number generator 400 coupled to the PUF pool 15, wherein the PUF-based true random number generator 400 may be considered a combination of the PUF-based true random number generator 100 shown in fig. 1, the PUF-based true random number generator 200 shown in any one of fig. 2 and 3, and one or more additional circuits. Specifically, the PUF-based true random number generator 400 may include the obfuscation circuit 110, the cryptographic circuit 120, the obfuscation circuit 130, the entropy circuit 140, and the non-volatile memory 150 mentioned in the above embodiments, and may further include a test circuit such as a health test circuit 160, and a Multiplexer (MUX) 170 (labeled "MUX" in the figure for simplicity). In the present embodiment, the health test circuit 160 is coupled to the entropy circuit 140, and the multiplexer 170 is coupled to the entropy circuit 140, the nonvolatile memory 150 and the health test circuit 160. For example, the health test circuit 160 may be used to test dynamic entropy SEED SEEDDYN(or any data/signals associated with the operation of the entropy circuit 140) to generate a TEST result TEST, and in particular, the health TEST circuit 160 is dynamicEntropy SEED SEEDDYNHealth TESTs are performed and the multiplexer 170 may be used to derive the dynamic entropy SEED SEED from the TEST result TESTDYNWith NVM SEEDNVMSelecting one of them for use as the preliminary SEED (e.g., SEED)PRE) Is output to the garbled circuit 110.
Specifically, the multiplexer 170 may select the dynamic entropy SEED SEED when the TEST result TEST indicates that the entropy circuit 140 is in a healthy stateDYNSEED as preliminary SEEDPREWhen the TEST result TEST indicates that the entropy circuit 140 is in an unhealthy state, the multiplexer 170 may select the NVM SEED SEEDNVMSEED as preliminary SEEDPRE. For example, the health test circuit 160 can collect a certain number of random single-bit values from the oscillator in the entropy circuit 140 at intervals of a predetermined time interval as a set of data. If the health TEST circuit 160 detects that the coverage of a logic value "0" (or a logic value "1") within a set of data falls within a predetermined range (e.g., from 20% to 80%), the health TEST circuit 160 may output a TEST result TEST with a first logic state (e.g., "0") to indicate that the entropy circuit 140 is "healthy", and the multiplexer 170 may select the dynamic entropy SEED SEEDDYNSEED as preliminary SEEDPRE. If the health TEST circuit 160 detects that the coverage of a logic value "0" (or a logic value "1") in a set of data does not fall within the predetermined range (e.g., greater than a predetermined upper limit such as 80% or below a predetermined lower limit such as 20%), the health TEST circuit 160 may output a TEST result TEST with a second logic state (e.g., "1") to indicate that the entropy circuit 140 is "unhealthy", and the multiplexer 170 may select the NVM SEED SEEDNVMSEED as preliminary SEEDPRE. It should be noted that the detailed operations related to the at least one test are for illustrative purposes only and are not intended to limit the present invention, and that one or more of the test items defined in, for example, the NIST-800-22 standard may also be employed in the at least one test.
In some cases, either the entropy circuit 140 or the non-volatile memory 150 may be hacked from or into the electronic device 40Risk of hacking or destruction, leading to security problems. Since the garbled circuit 110 has two sources for obtaining the preliminary SEEDPREIf one of the entropy circuit 140 and the non-volatile memory 150 is hacked or corrupted, the other can be replaced to provide the preliminary SEED SEEDPRE. Thus, the robustness and security of the PUF-based true random number generator 400 is improved.
In some embodiments, the health test circuit 160 may be omitted and the multiplexer 170 may be enabled to respond to another control signal to SEED from the dynamic entropyDYNWith NVM SEEDNVMSelecting one of them for output as a preliminary SEED SEEDPREWherein this control signal can be taken from outside the electronic device 40. For example, by controlling the logic state of this control signal, the user can manually control the multiplexer 170 to slave the dynamic entropy SEEDDYNWith NVM SEEDNVMSelecting one of them for output as a preliminary SEED SEEDPREAnd the health test circuit 160 may be omitted, but the present invention is not limited thereto.
Fig. 5 is a schematic diagram of an electronic device 50 according to an embodiment of the invention. As shown in fig. 5, the electronic device 50 may include the PUF cell 15 and a PUF-based true random number generator 500 coupled to the PUF cell 15, wherein the PUF-based true random number generator 500 may be considered as an example of the PUF-based true random number generator 400 shown in fig. 4, and the health test circuit 160 is not shown in fig. 5 for simplicity. In particular, FIG. 5 shows implementation details of the entropy circuit 140. In the present embodiment, the entropy circuit 140 may include an oscillator 141, and a collecting circuit such as a selective entropy collector (selective entropy collector)145 coupled to the oscillator 141, wherein the oscillator 141 may be used to output a random control bit SEL (e.g., each of the random single-bit values), and the selective entropy collector 145 may determine whether to utilize a feedback random number RN according to the random control bit SELFBTo update the dynamic entropy SEED SEEDDYN. In the embodiment of fig. 5, the random number RN is fed backFBIs a self-terminating random number sequence RNFINALThe acquisition is carried out by the following steps,but the invention is not limited thereto. In some embodiments, a random number RN is fed backFBIs derived from a preliminary random number sequence RNPREBut the present invention is not limited thereto. In detail, the selective entropy collector 145 may include a third garbled circuit such as the exclusive-or logic 142 (labeled "XOR" for simplicity), a multiplexer 143 (labeled "MUX" for simplicity) coupled to the oscillator 141 and the exclusive-or logic 142, and an entropy collector 144 coupled to the multiplexer 143 and the exclusive-or logic 142. For example, the third garbled circuit such as the XOR logic 142 may be used to base the feedback random number RN onFBFor dynamic entropy SEED SEEDDYNA third obfuscating function such as an exclusive-or operation is performed to generate an updated entropy SEED, and the multiplexer 143 may be used to select one of the pre-updated entropy SEED (i.e., the entropy SEED from the output of the entropy collector 144) and the updated entropy SEED to output a latest entropy SEED (e.g., the dynamic entropy SEED) due to the random control bit SELDYNThe latest version of (d). In addition, entropy collector 144 may receive and output the latest entropy SEED as a dynamic entropy SEED SEEDDYNAnd dynamic entropy SEED SEEDDYNIs a feedback entropy seed to be transmitted to the multiplexer 143 and the exclusive or logic 142. Thus, the XOR logic 142 performs the XOR operation to generate the updated entropy SEED (which is a dynamic entropy SEED)DYNAnd feedback random number RNFBExclusive or result of) and the multiplexer 143 may select the updated entropy SEED or the pre-updated dynamic entropy SEED according to the random control bit SELDYNThe output is provided to entropy collector 144, wherein entropy collector 144 may be implemented by flip-flop (flip-flop), but the invention is not limited thereto. Since the random control bit SEL is randomly switched between logic states "0" and "1", the dynamic entropy SEED SEED is updatedDYNCan be performed randomly. For example, when the random control bit SEL is "0", the dynamic entropy SEED SEEDDYNWill not change; when the random control bit SEL is '1', the dynamic entropy SEED SEEDDYNIt is updated. It is noted that mutual exclusion isThe OR logic 142 is not limiting to the third garbled circuit embodiment, in which the dynamic entropy SEED can be changedDYNAre within the scope of the present invention.
In the embodiment of FIG. 5, when the multiplexer 170 selects the NVM SEED SEEDNVMAnd the multiplexer 143 selects the updated entropy SEED, the dynamic entropy SEEDDYNCan be based on NVM SEED SEEDNVMIs generated. In detail, when the multiplexer 170 selects the NVM SEED SEEDNVMSEED as preliminary SEEDPRETime, feedback random number RNFBIs based on the preliminary SEED SEEDPREGeneration (representing feedback random number RN)FBIs based on NVM SEED SEEDNVMGenerated), and the exclusive-or logic circuit 142 is based on the feedback random number RNFBGenerating the mutex or result. Then, the multiplexer 143 outputs the exclusive OR result as the updated entropy SEED, since the updated entropy SEED is based on the NVM SEED SEEDNVMGeneration, and therefore entropy collector 144, can be based on NVM SEED SEEDNVMGeneration of dynamic entropy SEED SEEDDYN
Additionally, the embodiment of FIG. 5 is not limiting of the invention. In some embodiments, the entropy circuit 140 shown in fig. 1 and 4 can be implemented by different architectures. For example, the entropy circuit 140 may comprise an oscillator and a collecting circuit coupled to the oscillator, wherein the oscillator may be used to output a plurality of random single-bit values, and the collecting circuit may be used to collect the random single-bit values to generate the dynamic entropy SEEDDYN(e.g., by concatenating, such as sequentially arranging, a predetermined number of random single-bit values from the random single-bit values to produce a dynamic entropy SEED SEEDDYN) However, the present invention is not limited thereto.
In addition, the final random number sequence { RNFINALEach final random number in the } is preferably sent to only one object. For example, the PUF-based true random number generator 500 may further include a de-multiplexer (DEMUX) 180 (labeled "DEMUX" in the figure for simplicity) coupled to the garbled circuit 130. In this embodiment, the final random number sequence{RNFINALThere may be three possible paths, including a first path for providing an output random number to the PUF-based true random number generator 500, a second signal path for updating the NVM SEED SEEDNVMAnd a third signal path for updating the dynamic entropy SEEDDYNWherein the demultiplexer 180 controls only one of the signal paths to be enabled at a single point in time. Thus, from the final random number sequence RNFINALAny single final random number taken is not reused by different elements, thus ensuring the security of the PUF-based true random number generator 500. For example, the final random number sequence RNFINALThe first final random number after the electronic device 50 is powered up may be programmed into the non-volatile memory 150 (e.g., the second signal path is enabled during the first operation cycle after the electronic device 50 is powered up); then, the NVM SEED stored in the non-volatile memory 150 is SEEDNVMAfter being updated, the second signal path is disabled and the third signal path is enabled; the first signal path is enabled only when another component within the electronic device 50 requests a random number. It should be noted that the above-mentioned scheduling for enabling the first signal path, the second signal path and the third signal path is only for illustrative purposes and is not meant to limit the present invention.
Fig. 6 is a flowchart of a method for generating a true random number according to an embodiment of the present invention, wherein the method is applicable to an electronic device such as the electronic devices 10, 20, 40 and 50 shown in fig. 1 to 5. It should be noted that the workflow shown in fig. 6 is for illustrative purposes only and is not limiting to the present invention. One or more steps may be added, deleted or modified in the workflow of fig. 6 without affecting the overall result, and the steps need not be performed exactly in the order shown in fig. 6.
In step 610, the garbled circuit 110 obtains a first PUF value (e.g., PUF1) from the PUF pool 15.
In step 620, the power is obfuscatedWay 110 pairs a preliminary SEED (e.g., SEED) based on the first PUF value (e.g., PUF1)PRE) Performing a first obfuscation function to generate a final SEED (e.g., SEED)FINAL)。
At step 630, the cryptographic circuit 120 utilizes the final SEED (e.g., SEED)FINAL) As a key for a cryptographic function to generate a preliminary random number sequence (e.g., { RN })PRE})。
At step 640, the garbled circuit 130 obtains a second PUF value (e.g., PUF2) from the PUF cell 15.
At step 650, garbled circuit 130 couples the sequence of primary random numbers (e.g., { RN) based on the second PUF value (e.g., PUF2)PRE}) perform a second obfuscating function (e.g., XOR) to generate a final random number sequence (e.g., RNFINAL})。
The PUF-based true random number generator and the related method can control related operations by matching with the characteristics of a cryptographic function, dynamic entropy and static entropy. In addition, the invention can reduce the size requirement of the PUF pool under the condition of not reducing the randomness and the safety. The invention thus enables an improvement of the overall performance of a PUF-based true random number generator without or with less side effects.
The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (20)

1. A physical unclonable function-based true random number generator for an electronic device, the physical unclonable function-based true random number generator comprising:
a first obfuscation circuit configured to obtain a first physically unclonable function value from a physically unclonable function pool of the electronic device, and perform a first obfuscation function on a preliminary seed based on the first physically unclonable function value to generate a final seed;
a cryptographic circuit, coupled to the first obfuscation circuit, for generating a preliminary random number sequence using the final seed as a key of a cryptographic function; and
a second obfuscation circuit, coupled to the cryptographic circuit, for obtaining a second physically unclonable function value from the physically unclonable function pool and performing a second obfuscation function on the preliminary random number sequence based on the second physically unclonable function value to generate a final random number sequence.
2. The physical unclonable function-based true random number generator of claim 1, wherein the first garbled circuit concatenates the preliminary seed with the first physical unclonable function value to generate the final seed.
3. The physical unclonable function-based true random number generator of claim 1, wherein the physical unclonable function-based true random number generator further comprises an entropy circuit to provide the preliminary seed, and wherein the entropy circuit comprises:
an oscillator for outputting a plurality of random single bit values; and
a collecting circuit for collecting the plurality of random single-bit values to generate the preliminary seed.
4. The physically unclonable function-based true random number generator of claim 1, wherein the physically unclonable function-based true random number generator further comprises a non-volatile memory to provide the preliminary seed, wherein a feedback random number is written to the non-volatile memory at one or more predetermined points in time to update the preliminary seed stored in the non-volatile memory, and wherein the feedback random number is derived from the preliminary random number sequence or the final random number sequence.
5. The physical unclonable function-based true random number generator of claim 1, wherein the physical unclonable function-based true random number generator further comprises:
an entropy circuit for providing an entropy seed;
a non-volatile memory for providing a non-volatile memory seed, wherein a feedback random number is written to the non-volatile memory at one or more predetermined points in time to update the non-volatile memory seed stored in the non-volatile memory, and the feedback random number is derived from the preliminary random number sequence or the final random number sequence;
a test circuit, coupled to the entropy circuit, for testing the entropy seed to generate a test result; and
a multiplexer, coupled to the entropy circuit, the non-volatile memory, and the test circuit, for selecting one of the entropy seed and the non-volatile memory seed for output as the preliminary seed in response to the test result.
6. The physically unclonable function based true random number generator of claim 5, wherein the test circuit is a health test on the entropy seed, the multiplexer selects the entropy seed as the preliminary seed when the test result indicates that the entropy circuit is in a healthy state, and the multiplexer selects the non-volatile memory seed as the preliminary seed when the test result indicates that the entropy circuit is in an unhealthy state.
7. The physical unclonable function-based true random number generator of claim 1, wherein the physical unclonable function-based true random number generator further comprises an entropy circuit to provide an entropy seed, and wherein the entropy circuit comprises:
an oscillator for outputting a random control bit; and
a collecting circuit coupled to the oscillator, wherein the collecting circuit determines whether to update the entropy seed by a feedback random number in response to the random control bit, and the feedback random number is obtained from the preliminary random number sequence or the final random number sequence.
8. The physical unclonable function-based true random number generator of claim 7, wherein the collection circuit comprises:
a third obfuscating circuit for performing a third obfuscating function on the entropy seed based on the feedback random number to generate an updated entropy seed; and
a first multiplexer, coupled to the oscillator, for selecting one of the pre-update entropy seed and the post-update entropy seed in response to the random control bit to output a latest entropy seed.
9. The physical unclonable function-based true random number generator of claim 8, wherein the physical unclonable function-based true random number generator further comprises:
a non-volatile memory for providing a non-volatile memory seed, wherein the feedback random number is written to the non-volatile memory at one or more predetermined points in time to update the non-volatile memory seed stored in the non-volatile memory; and
a second multiplexer, coupled to the non-volatile memory and the gather circuit, for selecting one of the non-volatile memory seed and the entropy seed as the preliminary seed;
wherein when the second multiplexer selects the non-volatile memory seed, the feedback random number is generated based on the non-volatile memory seed and the updated entropy seed is generated based on the feedback random number.
10. The physically unclonable function-based true random number generator of claim 1, wherein the physically unclonable function-based true random number generator further comprises an entropy circuit for providing the preliminary seed, and wherein the entropy circuit comprises:
an oscillator for outputting a plurality of random single bit values, wherein the oscillator generates a periodic signal that varies between a first logic value and a second logic value at an oscillation frequency, and the periodic signal is sampled at a sampling frequency such that the first logic value and the second logic value randomly appear among the plurality of random single bit values;
wherein the sampling frequency is different from the oscillation frequency.
11. A method for generating true random numbers, applicable to an electronic device, comprising:
performing a first obfuscation function on a preliminary seed based on a first physically unclonable function value by using a first obfuscation circuit to generate a final seed;
using a cryptographic circuit to generate a preliminary random number sequence using the final seed as a key for a cryptographic function; and
performing a second obfuscation function on the preliminary random number sequence based on a second physically unclonable function value by using a second obfuscation circuit to generate a final random number sequence;
wherein the first and second physically unclonable function values are obtained from a pool of physically unclonable functions of the electronic device.
12. The method of claim 11, wherein performing, with the first obfuscation circuit, the first obfuscation function on the preliminary seed based on the first physically unclonable function value to generate the final seed comprises:
stitching, with the first garbled circuit, the preliminary seed with the first physically unclonable function value to generate the final seed.
13. The method of claim 11, further comprising:
generating a plurality of random single-bit values; and
and obtaining the preliminary seed according to the plurality of random single bit values.
14. The method of claim 11, further comprising:
obtaining the preliminary seed from a non-volatile memory, wherein a feedback random number is written to the non-volatile memory at one or more predetermined points in time to update the preliminary seed stored in the non-volatile memory, and the feedback random number is obtained from the preliminary random number sequence or the final random number sequence.
15. The method of claim 11, further comprising:
obtaining an entropy seed from an entropy circuit;
obtaining a non-volatile memory seed from a non-volatile memory, wherein a feedback random number is written to the non-volatile memory at one or more predetermined points in time to update the non-volatile memory seed stored in the non-volatile memory, and the feedback random number is obtained from the preliminary random number sequence or the final random number sequence;
testing the entropy seed by using a test circuit to generate a test result; and
selecting one of the entropy seed and the non-volatile memory seed for output as the preliminary seed in response to the test result using a multiplexer.
16. The method of claim 15, wherein the testing circuit tests the entropy seed for health, the step of selecting one of the entropy seed and the non-volatile memory seed comprising:
selecting the entropy seed as the preliminary seed when the test result indicates that the entropy circuit is in a healthy state; and
selecting the non-volatile memory seed as the preliminary seed when the test result indicates that the entropy circuit is in an unhealthy state.
17. The method of claim 11, further comprising:
generating a random control bit; and
determining whether to update an entropy seed with a feedback random number in response to the random control bit, wherein the feedback random number is obtained from the preliminary random number sequence or the final random number sequence.
18. The method as claimed in claim 17, wherein the step of determining whether to update the entropy seed by means of the feedback random number in response to the random control bit comprises:
performing a third obfuscation function on the entropy seed based on the feedback random number to generate an updated entropy seed; and
selecting one of the entropy seed before and after updating in response to the random control bit to output a latest entropy seed.
19. The method of claim 18, further comprising:
obtaining a non-volatile memory seed from a non-volatile memory, wherein the feedback random number is written to the non-volatile memory at one or more predetermined points in time to update the non-volatile memory seed stored in the non-volatile memory; and
selecting one of the non-volatile memory seed and the entropy seed as the preliminary seed;
wherein when the non-volatile memory seed is selected, the feedback random number is generated based on the non-volatile memory seed and the updated entropy seed is generated based on the feedback random number.
20. The method of claim 17, wherein the step of generating the random control bits comprises:
generating a periodic signal by using an oscillator, wherein the periodic signal changes between a first logic value and a second logic value under an oscillation frequency; and
sampling the periodic signal at a sampling frequency such that the first and second logic values randomly appear in a plurality of random single-bit values of the oscillator output to generate the random control bit;
wherein the sampling frequency is different from the oscillation frequency.
CN202110578028.3A 2020-06-04 2021-05-26 True random number generator based on physical unclonable function and related method Active CN113760221B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063034410P 2020-06-04 2020-06-04
US63/034,410 2020-06-04
US17/211,799 2021-03-24
US17/211,799 US11487505B2 (en) 2020-06-04 2021-03-24 Physical unclonable function based true random number generator, method for generating true random numbers, and associated electronic device

Publications (2)

Publication Number Publication Date
CN113760221A true CN113760221A (en) 2021-12-07
CN113760221B CN113760221B (en) 2024-02-23

Family

ID=78787220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110578028.3A Active CN113760221B (en) 2020-06-04 2021-05-26 True random number generator based on physical unclonable function and related method

Country Status (2)

Country Link
CN (1) CN113760221B (en)
TW (1) TWI782540B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664234A (en) * 2018-01-17 2018-10-16 北京智芯微电子科技有限公司 Real random number generator
EP3557407A1 (en) * 2018-04-18 2019-10-23 eMemory Technology Inc. Puf-based true random number generation system
CN110537191A (en) * 2017-03-22 2019-12-03 维萨国际服务协会 Secret protection machine learning

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079281A1 (en) * 2010-06-28 2012-03-29 Lionstone Capital Corporation Systems and methods for diversification of encryption algorithms and obfuscation symbols, symbol spaces and/or schemas
US9530009B2 (en) * 2013-06-27 2016-12-27 Visa International Service Association Secure execution and update of application module code
CN106020771B (en) * 2016-05-31 2018-07-20 东南大学 A kind of pseudo-random sequence generator based on PUF
EP3407336B1 (en) * 2017-05-22 2022-08-17 Macronix International Co., Ltd. Unchangeable phyisical unclonable function in non-volatile memory
EP3407335B1 (en) * 2017-05-22 2023-07-26 Macronix International Co., Ltd. Non-volatile memory based physically unclonable function with random number generator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110537191A (en) * 2017-03-22 2019-12-03 维萨国际服务协会 Secret protection machine learning
CN108664234A (en) * 2018-01-17 2018-10-16 北京智芯微电子科技有限公司 Real random number generator
EP3557407A1 (en) * 2018-04-18 2019-10-23 eMemory Technology Inc. Puf-based true random number generation system
CN110389747A (en) * 2018-04-18 2019-10-29 力旺电子股份有限公司 With physics can not copy function true random number generate system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
栾志存;张跃军;王佳伟;潘钊;: "基于线性反馈的多模混合可重构PUF电路设计", 电子技术应用, no. 11 *

Also Published As

Publication number Publication date
TWI782540B (en) 2022-11-01
CN113760221B (en) 2024-02-23
TW202147097A (en) 2021-12-16

Similar Documents

Publication Publication Date Title
JP5248328B2 (en) Equipment security based on signal generators
US11487505B2 (en) Physical unclonable function based true random number generator, method for generating true random numbers, and associated electronic device
CN110389747B (en) True random number generation system with physical unclonable function
KR101727130B1 (en) Device and method for obtaining a cryptographic key
CA2971212C (en) Reliability enhancement methods for physically unclonable function bitstring generation
US9021001B2 (en) Individual-specific information generation apparatus and individual-specific information generation method
JP7006887B2 (en) Random number generator and how to generate output random numbers
JP3696209B2 (en) Seed generation circuit, random number generation circuit, semiconductor integrated circuit, IC card and information terminal device
US8861725B2 (en) Random bit stream generator with enhanced backward secrecy
US10333708B1 (en) Hybrid random-number generator
KR20020008849A (en) Robust random number generator
US8879733B2 (en) Random bit stream generator with guaranteed minimum period
Srinivasu et al. CoLPUF: a novel configurable LFSR-based PUF
Torii et al. ASIC implementation of random number generators using SR latches and its evaluation
JP6167876B2 (en) Electronic circuit, electronic device and authentication system
CN113158200A (en) Integrated circuit for performing authentication using challenge-response protocol and method for using the same
Anandakumar et al. Efficient and lightweight FPGA-based hybrid PUFs with improved performance
Nassar et al. CaPUF: Cascaded PUF structure for machine learning resiliency
Shariffuddin et al. Review on arbiter physical unclonable function and its implementation in FPGA for IoT security applications
CN113760221B (en) True random number generator based on physical unclonable function and related method
Rajski et al. A lightweight true random number generator for root of trust applications
US20230139712A1 (en) Circuit apparatus and methods for puf source and generating random digital sequence
JP2000242470A (en) Device and method for generating random number and recording medium
Chhabra et al. Hardware Obfuscation of AES IP Core Using PUFs and PRNG: A Secure Cryptographic Key Generation Solution for Internet-of-Things Applications
CN111193584B (en) Sensitive data encryption method and device based on operating system and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant