METHOD TO UTILIZE MISMATCH SIZE TO PRODUCE ADDITIONAL STABLE BIT IN TILTING PUF
20220131713 · 2022-04-28
Assignee
Inventors
Cpc classification
H04L9/0866
ELECTRICITY
H04L2209/26
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
Abstract
A method for creating a physical unclonable function (PUF) bit for use with transistor circuitry includes performing a tilt test on a PUF cell of a transistor circuitry, comprising tilting the PUF cell at least once, and comparing a mismatch of a response of the PUF cell to a tilt threshold. A magnitude of the mismatch is determined. A mismatch magnitude below the tilt threshold is considered a first logic value” and a mismatch magnitude above the tilt threshold is considered a second logic value. The mismatch magnitude of the PUF cell is random. The absolute value of the mismatch magnitude is used as an entropy source to produce at least one PUF bit called a mirror PUF bit.
Claims
1. A method for creating a physical unclonable function (PUF) bit for use with transistor circuitry comprising: performing a tilt test on a physical unclonable function (PUF) cell of a transistor circuitry, comprising tilting said PUF cell at least once, and comparing a mismatch magnitude of said PUF cell to a tilt threshold; determining a magnitude of said mismatch, wherein a mismatch magnitude below said tilt threshold is considered a first logic value and a mismatch magnitude above said tilt threshold is considered a second logic value, and wherein said mismatch magnitude of said PUF cell is random; and using said absolute value of said mismatch magnitude as an entropy source to produce at least one PUF bit called a mirror PUF bit.
2. The method according to claim 1, wherein the polarity of the mismatch determines an additional bit.
3. The method according to claim 1, wherein responses to tilting of said mirror PUF bit based on the mismatch magnitude and said PUF cell are not correlated.
4. The method according to claim 1, wherein the PUF cell comprises an SRAM (static random access memory)-based PUF.
5. The method according to claim 1, further comprising performing the tilt test on more than one PUF cell, and segmenting said PUF cells into at least two segments according to their mismatch magnitude.
6. The method according to claim 1, further comprising performing the tilt test on more than one PUF cell, and segmenting said PUF cells into distinct zones to disqualify unstable cells.
7. The method according to claim 1, comprising tilting said PUF cell at least twice, whereby the PUF is tilted by an amount N2 in a positive direction to obtain a first response, and then tilted by N2 in a negative direction to obtain a second response, wherein if the first response and the second response are equal, then the mirror PUF bit is deemed a first logic value and if the first response and the second response are different, the mirror PUF bit is deemed a second logic value.
8. The method according to claim 7, wherein the first logic value is a logic “1” and the second logic value is a logic “0”.
9. The method according to claim 1, wherein the first logic value is a logic “0” and the second logic value is a logic “1”.
10. The method according to claim 7, wherein a preselection test is performed using tilt magnitudes N1 and N3, such that |N1|≤|N2|≤|N3|, and wherein said PUF cell is first tilted to ±N1 to yield third and fourth response and then tilted to ±N3 to yield fifth and sixth response, and if the 3.sup.rd and 4.sup.th responses are not equal or the 5.sup.th and 6.sup.th responses are equal, then the mirror PUF cell is considered stable, and if the 3.sup.rd and 4.sup.th responses are equal or the 5.sup.th and 6.sup.th responses are not equal, then the mirror PUF is considered unstable.
11. The method according to claim 1, wherein the tilting is accomplished by varying a programmable capacitor.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
DETAILED DESCRIPTION
I. Some Non-Limiting Features of the Invention
[0030] The invention uses preselection/mismatch measurement tests to utilize a new uncorrelated source of entropy within the PUF cells, such that:
[0031] 1. A V/T immune post-processing scheme (that is, independent of voltage and temperature) is created, which significantly increases the number of bits extracted from the preselected PUF. The invention provides a systematic method of a new, energy-efficient PUF based on the mismatch data, just by post-processing existing PUF data, without changing the PUF architecture. This PUF is useful for any of the PUF applications discussed above.
[0032] 2. The invention reuses the preselection test to preselect the unstable bits from the new PUF bits made available by the method. This preselection is also V/T immune and selects only the cells which are stable across all the V/Ts.
[0033] 3. An implementation of this method on the Si implementation of a Capacitive Tilt PUF, in TSMC 65 nm, is presented. This implementation demonstrates 100% more raw data prior to preselection, and 66% more stable bits post preselection, on top of the existing PUF bits. In this implementation, the additional area/bit is zero at the bit-cell level and the energy for each of the new bits is 46 fJ. Of the cells which were found as unstable in the measurements, all were identified by the preselection test except for 0.03%. In the worst V/T, the measured BER was 2.35E-5 and only 0.00026% bit-errors were measured across all the V/Ts after the preselection. A user utilizing the capacitive tilt PUF could implement 40% less physical cells and achieve 0.0003% bit-errors.
[0034] In Section II, more details of embodiments of the invention are presented. In Section III, various implementation detail and system consideration are described, such as the stabilization method of the PUF. Section IV provides the measurements results of the PUF and compares it to prior art, and finally, in Section V non-limiting conclusions are presented.
II. New PUF Concept
[0035] A PUF cell is designed to have an equal probability to respond a ‘1’ and a ‘0’. A preselection test induces a temporary intentional skew (also called tilt) within the cell, such that the probability of the response is tilted towards ‘1’ or ‘0’. In a case where the induced tilt opposes the natural skew of the cell, which is ideally dictated only by the manufacturing mismatches, there is a conflict between these two effects. If the response of the tilted cell is unchanged by the tilt, the mismatch could be viewed as ‘high’. Otherwise, the tilt overcomes the mismatch, and the mismatch is considered as ‘low’. Put in different terms, the mismatch of the response of each of the PUF cells is compared to a tilt threshold, and a magnitude of the mismatch is determined. A mismatch below the tilt threshold is considered a first logic value (e.g., “zero”) and a mismatch above the tilt threshold is considered a second logic value (e.g., “one”). The mismatch of each PUF cell is random, and an absolute value of the mismatch is independent of its sign. The mismatch magnitude is thus differentiated from the mismatch polarity. The mismatch magnitude (aka mismatch size) is the absolute value of the mismatch, while the polarity is the direction depends on the sign of the mismatch. The prior art capacitive tilt PUF patent (U.S. Pat. No. 10,848,327) utilizes the mismatch polarity to determine whether the PUF is a zero or one. For both a zero and one value, the valid prior-art tilt PUF cells have a relatively large mismatch magnitude.
[0036] Cells with low mismatch are regarded as unstable and masked from the overall PUF response. In practice, during the preselection test the cells are tilted twice, towards ‘1’ and ‘0’, and the responses are compared. If they are equal, the mismatch is stronger than the tilt and the cell is considered as stable. If they are different, the cell is deemed as unstable and masked from the response.
[0037]
[0038] In fact, in a traditional PUF without preselection, bit cells are divided to two disjoint segments, S.sub.−1 and S.sub.1, as depicted in
[0039] The PUF of the invention is based on the mismatch amount of each PUF cell being random, and the absolute value being independent of its sign. While the sign of the mismatch corresponds to the response of the cell, the absolute value of the mismatch (i.e., its size) does not. For example, a cell with a high positive mismatch responds ‘1’, similarly to a cell with lower positive mismatch (ignoring noise effects). Therefore, it is proposed to utilize the size of the mismatch as an uncorrelated entropy source to generate an additional PUF bit.
[0040] In the reminder of this section, it is explained how the segmentation concept is used for the generation of another PUF bit. It is further shown that the new PUF response is not correlated to the original PUF. In section III.A the segmentation is expanded and a method to find the unstable bits of the new PUF is presented.
[0041] To generate the new PUF data, the cells are divided into three disjoint segments, as in
[0042] To show that the responses of the Mirror PUF and the original PUF are not correlated, let us consider the original PUF in
[0043] For example, a PUF response v may look like the sequence [0044] v=(−1,−1,0,1,0,1,1,0,−1,1 . . . ,1)
[0045] This PUF response, however, and the response of the original PUF as in FIG. 3a are linked together. Assume, for example, that N.sub.0=N.sub.2, then by knowing v one can deduce that the original PUF generated the response [0046] u=(0,0,*,1,*,1,1,*,0,1 . . . ,1)
where the stars (*) are ignored. In the opposite direction, by observing the response of the original PUF, say u=(0,0,1,1,1, . . . ), one can gain some knowledge on the response of the new PUF v. Therefore, from this point of view, the responses of the two PUFs are correlated and the PUF response in v may not be offered as a new uncorrelated PUF. To make them completely uncorrelated, segment S.sub.1 is identified with segment S.sub.−1, such that only two responses are possible and thus the response vector v becomes [0047] v′=(1,1,0,1,0,1,1,0,1,1 . . . ,1).
[0048] This way, the linkage is broken and the PUFs are uncorrelated. Note that there are other ways to reduce the correlation; e.g., by multiplying the response vector by a matrix over an alphabet of size 3.
[0049] Notice that the original PUF response vector u and the new PUF response v′ are of different lengths. Section III explains how to set the thresholds and make the probability of each symbol to appear in the response vector close to uniform.
III. Stabilization and System Considerations
[0050] In this section, practical aspects of the Mirror PUF are discussed. It is shown how the Mirror PUF could be integrated in a full PUF system in parallel to the original PUF.
[0051] A. Stabilization
[0052] Two major factors contribute to instability of the Mirror PUF. Firstly, PUF bits whose mismatch is close to the applied tilt magnitude N.sub.2 may appear as having a high mismatch in some evaluations and a low mismatch in others. Secondly, a similar tilt configuration may have a different influence under alternative V/T conditions, which will “flip” the value of the PUF bit.
[0053] While for data generation the cells are divided to three segments, an embodiment of the invention extends the tilt preselection concept to the Mirror PUF by dividing the cells to five segments, {S.sub.−1, S.sub.mn, S.sub.0, S.sub.mp, S.sub.1}.
[0054] Therefore, one tilt magnitude, ±N.sub.2, is used to evaluate the Mirror PUF data in the field. Two additional tilt magnitudes, ±N.sub.1 and ±N.sub.3, are required to generate its stabilization mask during preselection testing, where N.sub.1<N.sub.2<N.sub.3, as in
[0055]
[0056] This mask could be generated in one V/T only and successfully identify the unstable cells across all the applicable V/T conditions. This is required since during in-field PUF evaluations with N.sub.2, the V/T condition is not controlled. To accomplish this, N.sub.1 and N.sub.3 are selected with a sufficient numerical deviation from N.sub.2. Note that the mask generation, consisting of four additional PUF evaluations, is done only once if a lifetime of the device, such that the field response generation requires only two evaluations, at ±N.sub.2. Additionally, note that the parameters N.sub.1-N.sub.3 do not reveal data on the responses of any of the PUFs, the original and the Mirror, and therefore could be treated as a public data.
[0057] B. Parameter Selection
[0058] A proper selection of the parameters N.sub.0-N.sub.3 is used not only for achieving the most efficient masking ratio of the original and the Mirror PUFs, which is affected by N.sub.0 and N.sub.1/N.sub.3, respectively, but also for the Hamming Weight (HW) of the Mirror PUF, affected by N.sub.2. An incorrect selection of N.sub.2 results with the number of ‘1’s, i.e. bits with mismatch higher than N.sub.2, not equal to the number of ‘0’s. Moreover, note that the impact of the tilt test is not necessarily linear, such that, for example, an increment in N.sub.3 may disqualify more Mirror PUF cells than a similar decrement in N.sub.1.
[0059] N.sub.0 may be found by measuring multiple PUF devices across multiple operation conditions. An embodiment of the invention finds the best N.sub.0-N.sub.3 parameters, and applies the parameters to all the fabricated devices. Such a method is also utilized in other types of circuits which require calibration. To find N.sub.1-N.sub.3 an embodiment of the invention iterates over all the applicable values of these parameters, and finds a set which optimizes the HW and the masking ratio. In mass-production, this parameter selection would be applied to a small sample group in each manufactured lot, and the selected N.sub.1-N.sub.3 would be used for the rest of the lot. As the process of finding these parameters is done during manufacturing, it does not affect the in-filed device performance. The manufacturing test-time overhead is assumed to be low either, as the parameter selection is performed on a small group only.
[0060] C. Masks Storage
[0061] Although the data of the Mirror PUF is generated at a tilt of N.sub.2 and the mask of the original PUF at a tilt of N.sub.0, they are strongly correlated. Assume, for example, a special case where N.sub.0=N.sub.2. In this case, the masked bits of the original PUF are identical to the ‘0’ bits of the Mirror PUF, since the masked bits are the bits with |mismatch|<N.sub.0 and the ‘0’ bits are these with |mismatch|<N.sub.2. Therefore, in this special case, the mask of the original PUF reveals the entire secret of the Mirror PUF. In the general case, N.sub.0 may also be greater or smaller than N.sub.2, such that the only some of the original PUF's masked bits are ‘0’ bits of the Mirror PUF. But also in the general case, the correlation between the Mirror PUF's masked bits and the Mirror PUF's ‘0’ bits is non-negligible, and increases as the difference between N.sub.0 and N.sub.2 decreases. Hence, the mask of the original PUF cannot be treated as a public data and must be kept secret. To accomplish this, for the mask of the original PUF, one may use a soft dark bits approach. In this approach, the mask is generated prior to the PUF evaluations, at chip wakeup, and stored in a secure volatile memory, and is thus unavailable to malicious attackers. This approach reduces the usage of the expensive Non-Volatile Memory (NVM) that is otherwise required to store the full mask. A mask generation which utilizes the tilt test requires only two PUF evaluations and is thus more efficient in terms of power and runtime. In contrast to the mask of the original PUF, the mask of the Mirror PUF does not reveal data on any of the two PUFs, because this mask only holds data on the proximity of the mismatch to N.sub.2, such that if a cell's mismatch is close to N.sub.2, i.e. N.sub.1<|mismatch|<N.sub.2, the cell is masked. But it does not provide data on whether the mismatch size is greater or less than N.sub.2, and therefore does not correlate with the responses of either the Mirror PUF or the original PUF. Hence, it can be treated as a public data. A user could either save it in NVM (i.e., hard mask) or utilize the soft dark bits approach for this mask as well and save the expensive NVM. For mask storage efficiency, we propose the mask to have the same size, in bits, of the PUF array and hold ‘1’ value at the corresponding locations of the qualified bits, and ‘0’ otherwise.
[0062] D. Tilt Implementation Aspects and Attack Vectors
[0063] In order for the Mirror PUF to be feasible, it may be desired that the preselection test circuitry be fully integrated to the IC. For the Mirror PUF, tilting is done in each evaluation, so these voltages have to be generated on die. As such, the present study of the invention was conducted on the capacitive tilt PUF, as the entire tilting hardware is implemented on-die.
[0064] The available range and resolution of the tilt test are also of importance. An insufficient range might result in inability to identify all the unstable cells, and an insufficient resolution may result with HW too far from 50%, as the most optimized spot for N.sub.2 may be unachievable.
[0065] While no area overhead is required at the bit-cell level, additional area utilization is required at the PUF system level. This includes mask storage circuits, such as NVM or a secure volatile memory if the soft dark bits approach is utilized. Additionally, digital control circuits are required to generate the noisy PUF response from the two±N.sub.2 PUF evaluations, as well as for mask application. While these circuits are required for every preselected PUF, a new PUF core is not required for the Mirror PUF. While PUFs with no preselection may not require mask storage circuits, the ECC that is otherwise required incurs a large area utilization, as well as power, runtime, and a lower code rate.
[0066] The invention can be made to withstand the so-called Helper Data Manipulation Attack. During this attack, an attacker can modify the mask and be able to compare any two subsequent qualified PUF bits, to conclude whether they are equal or opposite. After running the attack on all the qualified bits, the attacker remains with only two possibilities for the entire PUF key. To counter the attack, a user could utilize the soft dark bits approach, such that the mask is kept hidden and an attacker has no access to it. Another possibility is to add a hash function, and the qualified bits are XORed with the hash value of the mask. This way, any change in the mask results in a change, in average, in 50% of the PUF bits and prevents the attacker from concluding on the state of the bits.
[0067] Another attack vector could be to set N.sub.2 to its maximal value, thereby achieving a predicted PUF key of all ‘0’. This may enable the attacker, for example, to enroll with one device and later authenticate with another. While this attack in infeasible for the current implementation of the Capacitive Tilt PUF, where the maximal capacitance is insufficient to tilt all the PUF cells, it may be applicable for future implementation which may have a larger range. As a countermeasure, the PUF device could be programmed to ignore an ‘all 0’ key, or the value of N.sub.2 could be programmed to a fuse to prevent overriding. While other attacks specific to this PUF implementation, e.g., by modifying N.sub.0-N.sub.3, appear to just corrupt the PUF output without revealing data on the actual PUF response, it is recommended as a precaution to program N.sub.0-N.sub.3 to fuses such that tampering will be more difficult.
IV. Implementation and Results
[0068] This section presents the measured results of the Mirror PUF on the Capacitive Tilt PUF (
[0069] To assess the efficiency of a preselection test on a PUF, three steps may be used.
[0070] 1. The stability of the bits is decided after multiple evaluations across all the applicable V/T conditions.
[0071] 2. For each bit, it is checked if the preselection test identifies it as stable.
[0072] 3. The results are analyzed and the relative portions of qualified unstable cells and disqualified stable cells are calculated for each applicable tilt magnitude.
[0073] Note, that to optimize the preselection test, it is desired to minimize the amount of “qualified unstable” bits, which are the unstable bits that pass the test and are used in the PUF response. It is also desired to minimize the “disqualified stable” bits in the test, so that a greater percentage of stable bits remain in the array after preselection.
[0074] For the Mirror PUF, there are three degrees of freedom as N.sub.1, N.sub.2 and N.sub.3 can be determined, and that for this PUF, also the HW has to be optimized. The results in this section represent a hard mask, where a mask is generated in a single V/T but identifies unstable bits across all the V/T conditions. This scheme is more difficult to accomplish than a soft mask, where the mask could be generated at the same V/T of the PUF evaluation. Thus, the hard mask better demonstrates the strength of the Mirror PUF.
[0075] The states of cells for the Mirror PUF, either stable ‘1’, stable ‘0’ or unstable, were determined for each applicable value of N.sub.2, from one Capacitive Unit (CU) to 29 CU. The bits were evaluated across 12 V/T corners, [1.1V, 1.2V, 1.3V, 1.4V]×[−10° C., 50° C., 85° C.], 500 evaluations in each, 6,000 evaluations in total. A temperature of 50° C. was selected as the nominal condition, since in an actual product, this is expected to be the die temperature under standard operation conditions due to self-heating. 85° C. is the highest temperature that could be obtained without damaging the setup. Recall that one Mirror PUF evaluation consists of two raw evaluations, with ±N.sub.2, a ‘0’ response is obtained when the two raw evaluations differ and a ‘1’ response is obtained when the two raw evaluations equal. A bit was considered as stable if it provided the same response in all the 6,000 evaluations, across the different V/Ts. The results for all the applicable N.sub.2 values are depicted in
[0076] The preselection test was conducted in one V/T only, 1.4V/50° C. For each N.sub.2 value, all the available N.sub.1 and N.sub.3 values were swept such that the PUF metrics were calculated for all the legal [N.sub.1, N.sub.2, N.sub.3] combinations.
[0077] The BER of the Mirror PUF was calculated in two different methods. In the first method, the reference response was taken in typical condition, 1.2V/50° C., and the individual BERs were calculated for each measured V/Ts relative to this reference (Table I). The overall PUF BER is the worst case of these BERs, 2.35E-5. The second method assumes an equal probability for operating in each of the V/Ts, and BER is thus the ratio of errors from the entire measurements. The BER according to this method is 2.6E-6 (21 erroneous evaluations in 8.2M evaluations of 3,404 qualified cells).
TABLE-US-00001 TABLE I MEASURED ERROR RATES FOR EACH V/T V T 1.1 V 1.2 V 1.3 V 1.4 V −10° C. 2.35E−05 0 0 0 50° C. 0 0 0 0 85° C. 0 0 0 7.34E−06
[0078] For users who are willing to compromise the number of qualified-unstable cells for masking ratio, such that overall, more cells are qualified, but together with more unstable cells, a ‘best performance’ front is plotted in
[0079] The mask generation was done at V.sub.cc of 1.4, since the implemented MOS capacitors have the highest ‘on’ to ‘off’ capacitance ratio at higher gate voltages, and thus the test has the highest impact and the best performance. Another embodiment might consider placing metal capacitors or MOS capacitors with low threshold voltage to optimize for lower voltages.
[0080] The best N.sub.1 and N.sub.3 are found to be close to the ends of the capacitance range to enable the aggressive filtering that is required given the high portion of unstable cells.
[0081] For the selection of [N.sub.1, N.sub.2, N.sub.3] in mass-production, Section II.B proposes to derive these values from a limited number of measured devices in each manufactured lot and apply these values to the entire lot. To verify that this could work, the important metrics from each measured chip are analyzed (
[0082] In order to illustrate the independence between the original PUF and the Mirror PUF, let us consider the Kullback-Leibler Divergence (D.sub.KL). D.sub.KL provides the relative entropy in bits, or the difference between two probability distributions, denoted by:
[0083] where x∈X, y∈ are the random variables read from the original and the Mirror PUFs, respectively,
is the probability of two independent uniformly distributed random variables, and q(x, y) is the measured probability. In our case, both alphabets, X and , are of size 2, hence p(x,y)=¼. The measured probabilities q(x,y) were obtained from the qualified bits of each chip, such that only the first bits of the PUF that had a larger number of qualified bits were taken. As depicted in
[0084] Other uniqueness and the randomness metrics of the Mirror PUF are demonstrated for the 3404 qualified bits. The inter-chip HD demonstrates a near-perfect uniqueness with an average of 49.6%.
[0085] One advantage of the Mirror PUF is that it requires no additional area at the bit-cell level assuming the capacitive tilt PUF is instantiated, as it reuses the same core circuits of that PUF. The masking ratio is somewhat increased over other works, including the capacitive tilt PUF, implying a larger requirement for mask storage circuits, such as NVM, for each qualified bit. However, the logic circuits controlling the Mirror PUF operation, such as those required to fetch and apply the mask, may be shared with the original PUF.
[0086] The other metrics of the PUF, such as its BER, energy, HW and HD are better or on a par with the other state of the art PUF works. Its BER is sufficiently low to require only a very lightweight ECC. No correlation was demonstrated between the PUF bits, either adjacent bits or across dies. The PUF responses stands the standard randomness NIST tests. The Mirror PUF is also shown to be uncorrelated with the capacitive tilt PUF. The proposed method to select its essential parameters, N.sub.1-N.sub.3, is shown to be feasible and coherent. This PUF has no specific usage constraints apart from the preselection requirements, and therefore useful for any PUF application, such and encryption, key generation, identification and authentication.
[0087] As the useful cells' ratio (i.e., 1-masking ratio) of the capacitive tilt PUF is 41% and of the Mirror PUF is 27%, the number of the qualified bits is increased by 66% for a given number of manufactured cells, or the number of manufactured cells could be reduced by 40% for a given number of required qualified cells.
TABLE-US-00002 TABLE II NIST TESTS RESULTS FOR 3X1024 MEASURED QUALIFIED BITS Average Pass % in P 3 runs Test Name value (p > 0.01) Frequency 0.26 100% Block Frequency 0.2 100% Runs 0.45 100% Longest Run 0.8 100% Cumulative Sums 0.3 100% FFT 0.25 100% Non-overlapping Templates (m = 4) 0.35 100% Serial (m = 8) 0.63 100% Approximate Entropy (m = 4) 0.58 100%
V. Conclusion
[0088] Preselection tests of PUFs, originally designed to indicate the internal mismatch amount within the cells and consequently their stability, could be reused as an additional PUF. These tests typically add an artificial mismatch that counters the internal mismatch of the PUF cells, such that cells that overcome the imposed mismatch are considered as stable. Herein we note that the amount of artificial mismatch required to overcome the internal mismatch could also be viewed as a measure to the size of the internal mismatch. Since the absolute amount of internal mismatch is random and not correlated with the PUF response, it could be viewed as another entropy source, and more PUF bits could be generated by utilizing the measured internal mismatch size. One PUF cell could generate two data bits, the first being its original response and the second represents its mismatch amount, such that a high mismatch size translates to ‘1’ and a low mismatch size to ‘0’. This new PUF concept is called the Mirror PUF.
[0089] The concept is further developed to mask unstable cells from the Mirror PUF response. Such cells have a medium mismatch and can therefore flip their Mirror PUF response between subsequent reading. At some readings they may appear as having a large mismatch and at others, a low mismatch. These cells are identifiable by the same preselection test after a proper selection of test thresholds, such that a mask is generated and these cells are disqualified from the Mirror PUF response. Thus, the Mirror PUF uses also cells that were masked from the original PUF, since unstable cells for the original PUF could represent stable bits of the Mirror PUF.
[0090] The concept could be applied to any preselection PUF which has the test integrated to the PUF, if the test has enough range and resolution. If the preselection test is entirely integrated to the PUF, no architecture changes or additional custom analog blocks are required. Outside of the bit-cell level, an addition of NVM or another mask storage memory is required, as well as an inexpensive post processing digital circuit. As analyzed in [1], these additions may be preferred by the users over traditional ECC methods, as the preselection is much more efficient than in the aspects of code rate, runtime, power, and area of the error-reduction circuits.
[0091] An application of the Mirror PUF to the existing Capacitive Tilt PUF demonstrates the feasibility of the Mirror PUF. A parameter sizes selection process could be carried out for a small group of devices and the sizes could be applied to the entire group, to yield a high quality PUF. The Mirror PUF yields an addition of 66% cross-V/T stable bits to the Capacitive Tilt PUF's stable bits. The fraction of errors measured in these bits is 2.6E-6, with BER of 2.35E-5 for the worst-case V/T. The Mirror PUF is shown to be uncorrelated to the capacitive tilt PUF, and its other measured parameters, such as randomness and uniqueness, are shown to match the standards required by an industrial PUF.
[0092] No additional area overhead is required at the bit-cell level, and the only limitation is that the mask of the original PUF is now a part of the PUF secret, such that a soft masking scheme or another method is required.
APPENDIX
[0093] This appendix explains the characteristics of
[0094] Since a cell flips its Mirror PUF response in tilt values between N.sup.HV and N.sup.LV, the range of N.sub.2 values where it is unstable is N.sup.HV≤N.sub.2≤N.sup.LV. For a given cell, if N.sub.2 is selected such that N.sub.2 is smaller than this cell's N.sup.HV it always responds ‘1’ (high mismatch), while for N.sub.2 larger than this cell's N.sup.LV, it always responds ‘0’ (low mismatch). For N.sub.2 such that N.sup.HV≤N.sub.2≤N.sup.LV, the cell is unstable: for a high V.sub.cc it responds ‘0’ and for a low V.sub.cc, ‘1’. The range between N.sup.HV and N.sup.LV is therefore denoted the “instability range” of the cell, and this range is specific to each cell. For example, let us consider two cells, as depicted in
[0095] As explained in Section IV, the mask generation is done at a high V.sub.cc, where the tilt impact is larger. Therefore, the mismatch of each cell viewed by the tilt test during the mask generation is approximately its N.sup.HV, the lower boundary of its instability range. Therefore, during the mask generation the cells are binned to three segments, according to their N.sup.HV:N.sup.HV≤N.sub.1, N.sub.1<N.sup.HV<N.sub.3 and N.sub.3≤N.sup.HV. This implies that a cell is disqualified, approximately, if its N.sup.HV is between N.sub.1 and N.sub.3. In the example in
[0096]
[0097] The increase in the HW for low N.sub.2 values (
[0098] Summary of Concepts Used in the Invention
[0099] Let us begin from an ideal PUF, where no instability exists. In other words, assume that our tilt test, or the mismatch measurement, always provides the same result.
[0100] There are two ways to add more bits to the PUF cells.
[0101] The first way is in accordance with an embodiment of the invention and is shown in
[0102] For the second PUF bit, we view only the mismatch magnitude and ignore the polarity, as shown in
[0103] This is equivalent to ‘folding’ the previous plot on X=0, as shown in
[0104] For the third PUF bit, we repeat the same procedure. We ‘fold’ the previous plot over X=|N| and decide the bit's value depending on the distance of the bit's (absolute) mismatch from |N|, as shown in
[0105] This process could be repeated to obtain more bits.
[0106] The second way to add more bits is to segment the cells according to their mismatch.
[0107] For 1-bit cells, one may segment the cells to two bins as seen in