Physically unclonable functions with enhanced margin testing
Apparatus for identifying stable physically unclonable function (PUF) cells includes an array of PUF cells, a bias control circuit, and a selector circuit. The bias control circuit has a plurality of bias control lines that apply one or more bias control signals to each PUF cell in the array of PUF cells. The selector circuit selects a subset of the PUF cells in the array of PUF cells based on whether outputs of the PUF cells in the array of PUF cells change in response to application of the bias control signals. A corresponding method is also disclosed.
Latest Altera Corporation Patents:
- Micro-network-on-chip and microsector infrastructure
- Techniques For Testing Leakage Current In Input And Output Circuits
- Systems And Methods For Electronically Scanned Array Antennas
- Modular periphery tile for integrated circuit device
- Circuits And Methods For Preventing Row Hammer Attacks To Memory Circuits
This application claims priority to provisional patent application No. 61/940,076, filed Feb. 14, 2014, which is hereby incorporated by reference in its entirety.
FIELDThe present disclosure relates to a method and an apparatus for enhancing the stability of physically unclonable functions.
BACKGROUNDA Physically Unclonable Function (PUF) is a physical circuit inside an integrated circuit device whose behavior is determined by random physical variations inside the integrated circuit or within the proximate environment of the integrated circuit. PUFs may be used to derive encryption keys for configuring Programmable Logic Devices (PLDs) such as Field Programmable Gate Arrays (FPGAs), which are integrated circuits that include programmable logic blocks and programmable routing. The random physical variations in and around the integrated circuits may be due to random manufacturing variations within the device (such as variations in transistor thresholds, transistor driver strengths, capacitances, or resistances), or may be due to explicitly added sources of variations (such as device coatings that contain a slurry of dielectric particles that cause random fluctuations in capacitance sensors).
Because of these variations, corresponding PUFs on multiple ostensibly identical devices will behave differently. Sometimes, a PUF will accept an input (called a challenge), and produce an output (called a response). A response may include multiple bits. Alternatively, a PUF may return a response with no need for an explicit challenge. The random variations between ostensibly identical devices may cause the corresponding PUFs in different devices to return different responses under the same conditions (including in response to the same challenges).
PUF responses may be used to create, encrypt, or obfuscate encryption keys. The PUF responses can also be used to create unique ID values that can be used to uniquely identify a device, or to otherwise make one device behave differently from another ostensibly identical device. These use cases require, for a particular instance of a device, that the PUF response for a particular challenge input be stable (such that it consistently returns the same value for that challenge on that device).
SUMMARYThe present disclosure provides systems and methods for improving the stability of PUFs. In one embodiment, an apparatus is provided for identifying stable physically unclonable function (PUF) cells. The apparatus includes an array of PUF cells, a bias control circuit, and a selector circuit. The bias control circuit has a plurality of bias control lines, which apply one or more bias control signals to each PUF cell in the array of PUF cells. The selector circuit selects a subset of the PUF cells in the array of PUF cells based on whether outputs of the PUF cells in the array of PUF cells change in response to application of the bias control signals.
The bias control circuit may include at least one capacitor coupling a node of a PUF cell in the array of PUF cells and one of the one or more bias control signals. Each PUF cell in the array of PUF cells may be based on a voltage and may be a butterfly PUF cell or a SRAM PUF cell.
The bias control circuit may include at least a transistor connected to a load capacitor such that when the transistor is disabled, the load capacitor is disconnected from a delay path for a PUF cell in the array of PUF cells. Each PUF cell in the array of PUF cells may be based on a delay and may be an arbiter PUF cell or a ring oscillator PUF cell.
The apparatus may further include a polarity control circuit that selectively changes a polarity of at least one bias control signal before the one or more bias control signals are applied to each PUF cell in the array of PUF cells. The polarity control circuit may selectively change the polarity based on a nominal response of the PUF cells.
A first PUF cell that has a changed output when the one or more bias control signals are applied to the first PUF cell may be less stable than a second PUF cell that has an unchanged output when the one or more bias control signals are applied to the second PUF cell. The selector circuit may select the subset of PUF cells by selecting a predetermined number of PUF cells in the array of PUF cells that are more stable than a remainder of the PUF cells in the array of PUF cells.
Further features of the invention, its nature and various advantages will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
To provide an overall understanding of the invention, certain illustrative embodiments will now be described. However, it will be understood by one of ordinary skill in the art that the systems and methods described herein may be adapted and modified as is appropriate for the application being addressed and that the systems and methods described herein may be employed in other suitable applications, and that such other additions and modifications will not depart from the scope hereof.
The figures described herein show illustrative embodiments, however the figures may not necessarily show and may not be intended to show the exact layout of the hardware components contained in the embodiments. The figures are provided merely to illustrate the high level conceptual layouts of the embodiments. The embodiments disclosed herein may be implemented with any suitable number of components and any suitable layout of components in accordance with principles known in the art.
A response of a PUF on a device for a particular challenge input should be stable, so that the response of the PUF consistently returns the same value for that particular challenge. However, random variations in or around the device on which the PUF response depends may vary over time. These variations may be due to changes in operating temperature or operating voltage, stress-related changes in transistor characteristic due to Negative Bias Threshold Instability (NBTI), Positive Bias Threshold Instability (PBTI), or accumulated environmental radiation effects, or simply to thermal noise. The variations can cause the response of the PUF to change, or “flip”. As used herein, “flip” refers to a change in PUF response and is an indication of instability. As an example, a PUF bit cell may provide a PUF response of a ‘0’ or a ‘1’ value under certain conditions. When those conditions change (due to any of the random variations described above, for example), the PUF response sometimes flips, meaning that the PUF response that was originally a ‘0’ has changed to a ‘1’ or the PUF response that was originally a ‘1’ has changed to a ‘0’. Most of the present disclosure is described with respect to PUF bit cells exhibiting flipping behavior as an indication of instability. However, in general, one of ordinary skill in the art will understand that the present disclosure is also applicable to systems in which a PUF response may take on non-binary values, and changes in those non-binary values are indications of instability.
As an example, SRAM cells, such as the SRAM cell shown in
Examples of PUFS include arbiter PUFs, ring-oscillator PUFs, butterfly PUFs, and SRAM PUFs. One technique for stabilizing such PUFs is to read a PUF response multiple times, and, for each response bit, use the value of that bit that occurs most often (this is referred to as “majority voting”). One problem with majority voting is that it is only effective for averaging away truly random fluctuations—such as those due to thermal noise, and cannot correct consistent changes in variation due to factors such as aging and stress.
Another technique for stabilizing PUFs makes use of additional non-volatile “helper-data”. PUF implementations use helper-data by reading a first set of one or more responses for a given challenge input, generating a non-volatile helper that will aid in the re-creation of future responses for the challenge input, and then saving the helper data in (possibly public) non-volatile storage. This may be referred to as the “recruitment phase”. In one example, helper-data may be used in Error Correcting Codes (ECC), where the helper data may include an error-correction syndrome for the response. However, one problem with using ECC is that the syndrome reveals some information about the PUF response, which becomes especially problematic when the number of bits in the syndrome approaches the number of bits of entropy in the PUF response. Thus, using helper-data in ECC is particularly undesirable when the PUF response is used to create encryption keys that should be kept secret.
In another example, helper-data may be used to select a subset of PUF response bits which appear to be the most stable, and mask out those response bits that do not appear to be stable. This may be performed during the recruitment phase by reading the PUF response multiple times and counting how many times a particular PUF response bit is a 0 or 1. One problem with this technique is that it can only detect marginal response bits whose margin is on the order of the thermal noise. For example, if the source of variation for a PUF is due to variations in transistor threshold voltages (which is a major source of variation for many PUFs), and the standard deviation in the threshold voltage is 30 mV, about half of the PUF bits would have a margin of above 30 mV, but some of the PUF response bits may have a lower margin such as equal to or less than 6 mV. If the thermal noise were 1 mV, only PUF response bits whose margin was on the order of 2-3 mV may be detected using this technique. However, it is more challenging to test the stability of PUF cells with margins that are higher than a small multiple of the thermal noise, because these cells would tend to exhibit stable behavior. The systems and methods of the present disclosure improve upon these techniques by enhancing the ability to check the margin of each response bit.
One way to enhance the margin testing of a response bit is to apply one or more bias control lines to a PUF bit cell. Although some of the figures of the present disclosure may indicate specific numbers of bias control lines used in some of the illustrative embodiments, those numbers of bias control lines may be provided by way of example only. The embodiments disclosed herein may be implemented to accommodate any suitable number of bias control lines.
The bias control lines form an assertion pattern (a pattern of zeros and ones, for example) that may be applied to an array of PUF bit cells, where each PUF bit cell corresponds to one response bit. As used herein, an assertion pattern that gives rise to approximately an equal number of 0 and 1 response bit values may be referred to as a nominal bias setting of the bias control lines. The resulting bias may be referred to herein as the nominal bias. In contrast, an assertion pattern that on average, causes more than half of the response bits to be read as a 1 may be referred to as a positive bias setting. An assertion pattern that on average, causes more than half of the response bits to be read as a 0 may be referred to as a negative bias setting.
In accordance with some embodiments of the present disclosure, during the recruitment phase, a PUF response is initially read under nominal bias. Multiple reads may be additionally performed to obtain further PUF responses, and majority voting on each bit may be performed to compute the most common response for each bit. After the nominal response for each PUF bit is determined, the bias control signals may be used to measure the stability of each response bit.
The systems and methods of the present disclosure may be described in detail with reference to
PUFs may be implemented based on voltages or delays. In particular, depending on the particular PUF implementation, the systems and methods of the present disclosure may use different circuitry for enhancing the stability of the PUF bit. Some balanced PUFs, such as butterfly PUFs shown in
In such cases, the systems and methods of the present disclosure may include one or more capacitors coupled to each of the complementary nodes such that the voltage level on a bias control line is coupled to one of complementary nodes through one of those capacitors, as is shown in
Rather than relying on the initial voltage, other PUFs may rely on variations in overall path delays. Examples of delay-dependent PUFs include arbiter PUFs, such as the arbiter PUF shown in
The present disclosure enhances the ability to measure the margin of a response bit for a PUF by adding one or more bias control signals that bias the response of one or more PUF response bits. As an illustrative example and with no loss in generality, when a bias control signal is asserted, a PUF bit will be slightly more likely to be read as a 1 than when the bias control signal is not asserted. These bias control signals may be static (level-sensitive) or dynamic (edge-sensitive). In particular, static bias control signals may be applied to delay-based PUF cells, such as that shown in
Manufacturing variations in the multiplexers in the set 102 and line drivers cause the two paths to have different delays that depend on the path specified by the challenge input bits. By selectively switching and passing the top and bottom signals, different sets of challenge input bits C[1:6] will give rise to different delay paths. The first path to reach the arbiter 104, which includes a set/reset latch composed of two cross-coupled NOR gates causes either a 1 or a 0 to be latched.
While
As shown in
In the example shown in
In
With the use of polarity control block 986, the nominal value of the corresponding response bit may be latched onto the polarity control line, such that asserting further bias control signals would bias the reading of that response bit away from its nominally read value. In other words, a positive bias may be applied if the nominal response bit value was a 0, and a negative bias may be applied if the nominal response bit value was a 1.
Even though only one PUF bit response cell is shown in
Subsequently, when the other bias control signals BIAS2− and BIAS2+ have voltage changes at times 1092 and 1093, respectively, this applies larger voltage changes to nodes N− and N+ than when BIAS1− and BIAS1+ had voltage changes at times 1090 and 1091. In particular, at time 1092, the BIAS2− control signal has a voltage change from GND to VCC, which causes the node N− to have a larger increase in voltage than the increase that occurred at time 1090. Similarly, at time 1093, the BIAS2+ control signal has a voltage change from VCC to GND, which causes the node N+ to have a larger decrease in voltage than the decrease that occurred at time 1092. This is because the BIAS2− and BIAS2+ control signals may have a larger capacitive coupling than the capacitive coupling of the BIAS1− and BIAS1+ control signals.
The voltage changes effected on the nodes N− and N+ that take place at times 1094, 1095, 1096, and 1097 mirror those that took place at times 1090, 1091, 1092, and 1093. In particular, the voltage changes affected on the complementary nodes N− and N+ that originated from voltage changes in the BIAS1− and BIAS1+ control signals are smaller than those that originated from voltage changes in the BIAS2− and BIAS2+ control signals.
As is described in relation to
Rather than relying on voltages, other PUFs may rely on variations in overall path delays. For such delay-dependent PUFs, such as those shown in
When any of the bias control signals 1101, 1102, 1103, and 1104 is asserted, the path through the node connected to the source of the pass gate that is controlled by that bias control signal is marginally slowed down, thereby increasing the delay of the corresponding path. In this way, the presence of the load capacitors and the bias control signals allows for enhanced control of the delays along the paths. Any number of bias control signals may be used to control any number of pass gates that are connected to load capacitors having the same or different capacitances. In one example, the C2+ and C2− load capacitors may have twice the capacitance as the C1+ and C1− capacitors. The capacitors C0+ and C0− represent the total parasitic capacitance on the complementary path nodes.
As is shown in
At 1202, one or more bias control signals are applied to a plurality of PUF cells. As described in relation to
As described in relation to
In some embodiments, the one or more bias control signals are modified before being applied to the plurality of PUF cells. In particular, a polarity control signal may be selectively applied for each of the one or more bias control signals. The polarity control signals may selectively change the polarity of each bias control signal that is applied to the PUF cells. As an example, the polarities that are selected for applying to the bias control signals may be based on the nominal responses of the PUF cells. In particular, when the nominal response of a PUF cell is 1, the polarity of the bias control signal may be selected so as to apply a negative bias to the PUF cell. Similarly, when the nominal response of a PUF cell is 0, the polarity of the bias control signal may be selected so as to apply a positive bias to the PUF cell. Selecting the polarities of the bias control signals in this way allows for marginal testing of the PUF cells, to identify PUF cells that may flip (or otherwise change) their responses away from the nominal responses.
At 1204, any PUF cells that have changed outputs in response to the bias control signals are identified, and at 1206, stabilities of the PUF cells are assessed based on whether the outputs of the PUF cells are changed. When a PUF cell has a flipped response when the bias control signals are applied, this may be a sign that the flipped PUF cell is unstable.
In some embodiments, an array of PUF cells includes more PUF cells than are needed for an application. In other words, an array of PUF cells contains M PUF cells, but only N PUF cells are necessary for an encryption, for example, where N<M. It may be desirable to identify the most stable subset of PUF cells in the array. In this case, when a PUF cell flips in response to an application of bias control signals to the PUF cell, the flipped PUF cell may be labeled as “unstable” and may be eliminated. The bias control signals may be adjusted to further test the margins of the remaining PUF cells (i.e., applying positive bias to those PUF cells with nominal response 0 and applying negative bias to those PUF cells with nominal response 1), and any of the remaining PUF cells that flip in response to the adjusted bias control signals may also be eliminated. This process may be iteratively repeated until N PUF cells remain. The remaining N PUF cells may be identified as the N most stable PUF cells out of the M PUF cells in the array.
The stability of a PUF cell may be assessed based on any number of factors. In one example, a PUF cell that does not flip even when different bias controls are applied may be labeled as stable. In another example, a PUF cell that flips the least often compared to other PUF cells may be labeled as stable. In another example, a PUF cell that requires the greatest magnitude bias control signals to flip may be labeled as stable. In another example, if N PUF cells are required for an application, the N/2 most stable PUF cells with nominal response 1 and the N/2 most stable PUF cells with nominal response 0 are selected as the stable set. In this case, a PUF cell with a nominally read 1 may be selected over an otherwise more stable PUF cell with a nominally read 0 (or vice versa). These examples are for illustrative purposes only, and one of ordinary skill in the art will understand that any combination of the methods described herein for determining stability, or any other suitable method for determining stability of a PUF cell, may be used without departing from the scope of the present disclosure.
In some embodiments, the bias control signals are swept over some range, and the PUF response bit values are read one or more times for each of the different bias settings. In particular, the nominally read 1 PUF cells may be read under various degrees of negative bias, and the nominally read 0 PUF cells may be read under various degrees of positive bias. In some embodiments, the number of PUF responses read for each of the different bias settings may be the same. Moreover, the number of used negative bias settings and the number of used positive bias settings may be the same. In some embodiments, for each positive bias setting that results in a particular positive bias value, a negative bias setting may be used that results in a negative bias value of the same magnitude as the corresponding positive bias value.
At 1208, a subset of the plurality of PUF cells is selected based on the respective stabilities. As an example, selecting the subset of the plurality of PUF cells may include selecting a predetermined number (i.e., N) of PUF cells in the plurality of PUF cells with the highest stabilities. In general, the selected subset of PUF cells may be selected based on the satisfaction of one or more criteria. The criteria may include identifying at least N PUF cells that are associated with stability scores that exceed some threshold. As an example, the stability score of a PUF cell may correspond to the smallest magnitude of the bias control signal that was required to cause the PUF cell to flip. As another example, the stability score of a PUF cell may correspond to a frequency at which the PUF cell flips in response to various bias control signals.
In some embodiments, when N PUF cells are required for an application, the N most stable PUF cells are selected, and helper data is used to mask out the remaining less stable bits.
The foregoing is merely illustrative of the principles of the embodiments and various modifications can be made by those skilled in the art without departing from the scope and spirit of the embodiments disclosed herein. The above described embodiments of the present disclosure are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.
Claims
1. An apparatus for identifying stable physically unclonable function (PUF) cells, the apparatus comprising:
- an array of PUF cells;
- a bias control circuit having a plurality of bias control lines, wherein the bias control lines apply one or more bias control signals to each PUF cell in the array of PUF cells; and
- a selector circuit that selects a subset of the PUF cells in the array of PUF cells based on whether outputs of the PUF cells in the array of PUF cells change in response to application of the bias control signals.
2. The apparatus of claim 1, wherein the bias control circuit includes at least one capacitor coupling a node of a PUF cell in the array of PUF cells and one of the one or more bias control signals.
3. The apparatus of claim 1, wherein each PUF cell in the array of PUF cells is based on a voltage and is a butterfly PUF cell or a SRAM PUF cell.
4. The apparatus of claim 1, wherein the bias control circuit includes at least a transistor connected to a load capacitor such that when the transistor is disabled, the load capacitor is disconnected from a delay path for a PUF cell in the array of PUF cells.
5. The apparatus of claim 1, wherein each PUF cell in the array of PUF cells is based on a delay and is an arbiter PUF cell or a ring oscillator PUF cell.
6. The apparatus of claim 1, further comprising a polarity control circuit that selectively changes a polarity of at least one bias control signal before the one or more bias control signals are applied to each PUF cell in the array of PUF cells.
7. The apparatus of claim 1, wherein a first PUF cell that has a changed output when the one or more bias control signals are applied to the first PUF cell is less stable than a second PUF cell that has an unchanged output when the one or more bias control signals are applied to the second PUF cell.
8. The apparatus of claim 1, wherein the selector circuit selects the subset of PUF cells by selecting a predetermined number of PUF cells in the array of PUF cells that are more stable than a remainder of the PUF cells in the array of PUF cells.
9. A circuit for measuring a stability of a physically unclonable function (PUF) cell, the circuit comprising:
- a bias control circuitry having a plurality of bias control lines, wherein: each bias control line applies a bias control signal to the PUF cell; and the stability of the PUF cell is evaluated based on whether an output of the PUF cell changes in response to application of the bias control signals to the PUF cell.
10. The circuit of claim 9, wherein the bias control circuitry includes at least one capacitor coupling a node of the PUF cell and one of the plurality of bias control signals.
11. The circuit of claim 9, wherein the PUF cell is based on a voltage and is a butterfly PUF cell or a SRAM PUF cell.
12. The circuit of claim 9, wherein the bias control circuitry includes at least a transistor connected to a load capacitor such that when the transistor is disabled, the load capacitor is disconnected from a delay path for a PUF cell in the array of PUF cells.
13. The circuit of claim 9, wherein the PUF cell is based on a delay and is an arbiter PUF cell or a ring oscillator PUF cell.
14. The circuit of claim 9, further comprising a polarity control block that selectively changes a polarity of the plurality of bias control lines before the plurality of bias control signals are applied to the PUF cell.
15. The circuit of claim 9, wherein the PUF cell is unstable when the output of the PUF cell changes in response to the application of the bias control signals to the PUF cell, and the PUF cell is stable when the output of the PUF cell is unchanged in response to the application of the bias control signals to the PUF cell.
16. A method for identifying stable physically unclonable function (PUF) cells, the method comprising:
- applying one or more bias control signals to a plurality of PUF cells;
- identifying any PUF cells that have a changed output in response to the one or more bias control signals;
- assessing stabilities of the PUF cells based on whether the outputs of the PUF cells change; and
- selecting a subset of the plurality of PUF cells based on the respective stabilities.
17. The method of claim 16, wherein selecting the subset of the plurality of PUF cells comprises selecting a predetermined number of PUF cells in the plurality of PUF cells with higher stabilities than a remainder of the PUF cells in the plurality of PUF cells.
18. The method of claim 16, further comprising applying a polarity control signal for each bias control signal to selectively change the polarity of each bias control signal that is applied to the plurality of PUF cells.
19. The method of claim 16, further comprising selecting one or more polarities for the one or more bias control signals based on a nominal response of the PUF cells.
20. The method of claim 16, wherein a PUF cell in the plurality of PUF cells is unstable when the output of the PUF cell changes in response to the one or more bias control signals, and the PUF cell in the plurality of PUF cells is stable when the output of the PUF cell is unchanged in response to the one or more bias control signals.
7904731 | March 8, 2011 | Devadas et al. |
20110317829 | December 29, 2011 | Ficke et al. |
Type: Grant
Filed: Feb 12, 2015
Date of Patent: Mar 8, 2016
Assignee: Altera Corporation (San Jose, CA)
Inventor: Bruce B. Pedersen (Sunnyvale, CA)
Primary Examiner: Anh Tran
Application Number: 14/620,495
International Classification: H03K 19/00 (20060101); G01R 31/28 (20060101); H03K 19/003 (20060101); G01R 31/3177 (20060101);