PHYSICAL UNCLONABLE FUNCTION CONFIGURATION AND READOUT
20220368544 · 2022-11-17
Assignee
Inventors
- William Michael James HOLLAND (Lothian, GB)
- George Redfield Spalding, Jr. (Edinburgh, GB)
- Jonathan Ephraim David Hurwitz (Edinburgh, GB)
Cpc classification
H04L9/0866
ELECTRICITY
G06F17/18
PHYSICS
H04L2209/34
ELECTRICITY
H04L9/3255
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
Abstract
The present disclosure relates to configuring at least one pair of devices in a physical unclonable function (PUF) apparatus and reading out at least one pair of devices for determining a persistent random PUF output. The pair of devices may be readout by measuring a physical difference between the devices/components caused by random manufacturing differences, which may then be used to determine a persistence random PUF output. Configuring the pair of devices includes measuring the random manufacturing difference and, based on that measurement, setting a readout condition for the pair of devices, which dictates aspects of the readout process that should be used for that pair of devices. Each time the pair of devices is readout in the future, it may be readout in accordance with the condition that was set at configuration.
Claims
1. A method of configuring a pair of devices in a Physical Unclonable Function (PUF) apparatus for generating a PUF output that is a persistent random number, the PUF apparatus comprising: a plurality of PUF cells, each comprising a plurality of electronic devices; and a PUF output unit configured to: determine, in parallel, a measurement of a physical characteristic of each of at least two of the plurality of PUF cells; and determine the PUF output based at least in part on the at least two measurements of the physical characteristic.
2. The PUF apparatus of claim 1, wherein the plurality of electronic devices comprise at least one of: active devices or passive devices.
3. The PUF apparatus of claim 1, wherein the plurality of electronic devices comprise a pair of single component devices.
4. The PUF apparatus of claim 1, wherein the plurality of electronic devices form a pair composite devices, each comprising a plurality of components.
5. The PUF apparatus of claim 4, wherein the pair of composite devices are a pair of ring oscillators or a pair of NOT gate strings.
6. The PUF apparatus of claim 1, wherein each of the plurality of PUF cells has an associated configuration indicator, wherein the configuration indicator for each of the at least two of the plurality of PUF cells is set to indicate that the PUF cells are suitable for use in determining the PUF output.
7. The PUF apparatus of claim 1, wherein determining the PUF output comprises comparing the measurement of the physical characteristic of each of the at least two PUF cells against a comparison threshold.
8. The PUF apparatus of claim 7, wherein each of the plurality of PUF cells has an associated configuration indicator, and wherein the comparison threshold to be used is indicated by the configuration indicator.
9. A method for generating a physical unclonable function (PUF) output that is a persistent random number, the method comprising: determining, in parallel, a plurality of measurements of a physical characteristic of a corresponding plurality of PUF cells, wherein each PUF cell comprises a plurality of electronic devices; and determining the PUF output based at least in part on the plurality of measurements.
10. The method of claim 9, wherein the plurality of electronic devices comprise at least one of: active devices or passive devices.
11. The PUF apparatus of claim 9, wherein the plurality of electronic devices comprise a pair of single component devices.
12. The PUF apparatus of claim 9, wherein the plurality of electronic devices form a pair composite devices, each comprising a plurality of components.
13. The PUF apparatus of claim 12, wherein the pair of composite devices are a pair of ring oscillators or a pair of NOT gate strings.
14. A physical unclonable function (PUF) apparatus comprising: a plurality of PUF cells, each comprising a plurality of electronic devices; and a determination unit configured to: measure a physical characteristic of the plurality of electronic devices of a first PUF cell of the plurality of PUF cells; compare the measured physical characteristic of the first PUF cell against at least one configuration threshold; and set a first configuration indicator associated with the first PUF cell based on the comparison, wherein the first configuration indicator is indicative of how the first PUF cell should be used when generating a persistent random number using the plurality of PUF cells.
15. The PUF apparatus of claim 14, wherein the determination unit is further configured to measure a magnitude of the physical characteristic of the first PUF cell.
16. The PUF apparatus of claim 14, wherein the determination unit is further configured to: in parallel with measuring the physical characteristic of the first PUF cell, measure a physical characteristic of the plurality of electronic devices of a second PUF cell of the plurality of PUF cells; compare the measured physical characteristic of the second PUF cell against the configuration threshold; and set a second configuration indicator associated with the second PUF cell based on the comparison of the measured physical characteristic of the second PUF cell against the configuration threshold, wherein the second configuration indicator is indicative of how the second PUF cell should be used when generating a persistent random number using the plurality of PUF cells.
17. The PUF apparatus of claim 14, wherein the determination unit comprises an analog to digital converter for measuring the physical characteristic of the first PUF cell.
18. The PUF apparatus of claim 14, wherein the plurality of electronic devices comprise a pair of single component devices.
19. The PUF apparatus of claim 14, wherein the plurality of electronic devices form a pair composite devices, each comprising a plurality of components.
20. The PUF apparatus of claim 19, wherein the pair of composite devices are a pair of ring oscillators or a pair of NOT gate strings.
Description
DRAWINGS
[0035] Aspects of the present disclosure are described, by way of example only, with reference to the following drawings, in which:
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
DETAILED DESCRIPTION
[0050] The inventor has identified many different challenges in implementing a PUF apparatus with one or more pairs of physical devices. First, each possible persistent random PUF value of each pair should have an equal, or substantially equal, probability. For example, if a pair of physical devices is used generate a ‘1’ or a ‘0’ depending on random manufacturing variations between the physical devices, there should be an equal, or substantially equal, probability of a ‘1’ or a ‘0’. If this is not achieved, the output of the PUF apparatus may not be sufficiently random. Achieving this requires the PUF apparatus to be design not to favour any one particular possible PUF value from each pair of physical devices.
[0051] Second, since the random number generated by the PUF apparatus should be persistent, it is preferable that any physical device measurements/readings on which the random number is based are relatively stable and consistent over time. Therefore, it is preferable that any physical characteristics that are used to determine the value of the random number are relatively stable over time and are measured accurately and reliably over time, so that the random number remains the same (or the same within acceptable tolerances, such as the tolerances required for effective error correction coding, ECC).
[0052] The inventor has devised a technique for configuring each pair of physical devices, which sets the way in which the pair of devices is subsequently used during readout to determine a PUF value. The physical devices may be transistors or capacitors, as non-limiting examples. In the technique, the size of the physical characteristic of the pair of devices is determined during configuration (e.g., the size of the difference between the pair of physical devices/components is determined). Non-limiting examples of the physical characteristic include a voltage difference across a pair of transistors, a difference in gate-to-source voltages of a pair of transistors, a difference in capacitance of a pair of capacitors, or a difference in current through a pair of physical devices. The size of the physical characteristic is then compared against configuration thresholds in order to assign the pair of devices to a particular readout condition. A non-limiting example of a configuration threshold is a voltage threshold. The assigned readout condition then determines which readout thresholds should be used during PUF readout. The configuration thresholds may be different to the readout thresholds, such that there is a buffer between them. In this way, the readout condition set during configuration may be set such that the physical characteristic of a pair of devices measured during readout is likely to be a distance away from the readout threshold(s) that is to be used. Consequently, the measurement of physical characteristic may change or drift over time with low risk that they will change enough to cross over the readout threshold, causing the PUF value to change. Thus, the persistence of the PUF value generated by each pair of devices, and therefore the overall PUF output, may be improved. Furthermore, the configuration and readout thresholds may be set such that the probability of each PUF value for each pair of devices is equal, or substantially equal, thereby achieving randomness of the PUF values.
[0053]
[0054] The determination unit 170 is configured to determine a PUF output using the plurality of PUF cells 105.sub.x,y. The PUF output is a persistent random number. Each PUF cell 105.sub.x,y comprises a pair of physical components/devices, where the determination unit 170 measures a difference in a physical characteristic of the pair of components/devices in a particular PUF cell 105.sub.x,y in order to determine a persistent random PUF value. The determination unit 170 may repeat this for a plurality of the PUF cells 105.sub.x,y and the plurality of determined persistent random values may then be used to generate the PUF output (for example, each persistent random value may be a 1-bit or multi-bit value that forms part of the PUF output. In one particular non-limiting example, the PUF output may be a 128-bit word, and 128 PUF cells may each contribute 1-bit to the 128-bit word).
[0055] The challenge/response unit 180 is configured to receive a ‘challenge’ from an external entity, request and obtain the PUF output from the determination unit 170 and then determine and return a response based on the challenge and the PUF output. The challenge/response unit 180 may be configured to operate in any suitable way that will be apparent to the person skilled in the art of PUF devices. The challenge/response unit 180 may form a separate unit, or may be part of the determination unit 170. The present disclosure is concerned specifically with the configuration and operation of the PUF cells 105.sub.x,y and determination unit 170, as described in detail below. Therefore, no further reference to, or explanation of, the challenge/response unit 180 is given in this disclosure.
[0056] Example PUF Cell Implementations
[0057] Each PUF cell 105.sub.x,y may comprise a pair of any suitable physical devices/components that are arranged to be compared in order to determine a difference in their physical characteristics, caused by random manufacturing differences.
[0058] For example, each PUF cell 105.sub.x,y may comprise a pair of matched transistors and the determination unit 170 may be configured to determine a PUF output based on a difference between a physical characteristic (such as gate-source voltage) of the transistors that is caused by random manufacturing differences. Various example implementations of the PUF apparatus/system 100 where PUF cells 105.sub.x,y each comprise a pair of transistors are given in U.S. patent application Ser. No. 16/296,998 (the '998 application), which is incorporated herein by reference in its entirety. Two particular example implementations are disclosed between
[0059]
[0060]
[0061] Returning to
[0062] Whilst the two transistors making up the matched pair of transistors 210 are of identical design, in practice there will inevitably be small, random manufacturing variations between the two transistors. Those manufacturing variations may include at least one of: differences in gate oxide thickness, differences in doping densities, differences in carrier mobility, differences in device dimensions, etc. These manufacturing variations result in variations in transistor on-state characteristics/performance, such as differences in turn-on threshold voltage, differences in 3, differences in the back-gate effect, etc. The term ‘on-state’ is used herein to refer to an operational characteristic of a transistor relating to its normal on state operation, such as turn-on threshold voltage, gate-source voltage, drain current, linear resistivity, saturation point, transconductance, etc. By considering an on-state characteristic, as opposed to an off-state characteristic (such as off-state leakage current) or a failure characteristic (such as dielectric breakdown), reliability of the PUF apparatus 100 may be increased, since high voltages are not applied, gate oxides are not degraded, etc.
[0063] The determination unit 170 is configured to determine a transistor difference value based at least in part on a comparison of an on-state characteristic of the matched pair of transistors 210, wherein the transistor difference value is indicative of one or more random manufacturing differences between the matched pair of transistors 210. In this implementation, the compared on-state characteristic of the matched pair of transistors 210 is the gate-source voltage of the two transistors (V.sub.GS). The V.sub.GS of the two transistors may differ as a result of one or many different random manufacturing differences that cause, for example, a difference in the turn-on threshold voltage and/or β and/or back-gate effect, of the transistors.
[0064] The drains of the matched pair of transistors 210 are coupled to ground. The determination unit 170 comprises a selector circuit 220 configured to apply a suitable voltage to the gates of the matched pair of transistors 210 in order to turn-on the transistors. This voltage functions as a ‘selection potential’, which is explained in more detail below with reference to
[0065] The determination unit 170 further comprises an ADC 250 that is configured to measure the difference in the gate-source voltage and output a digital value indicative of the difference. However, it has been realised that there may be some mismatch between the currents provided by the first current source 232 and the second current source 234. Therefore, a chop circuit 236 may be provided so that the first input signal (the current from the first current source 232) may be applied to the first transistor, the second input signal (the current from the second current source 234) may be applied to the second transistor and a first transistor comparison value determined by the ADC 250 by comparing the gate-source voltages of the matched pair of transistors 210. Then, the chop circuit 236 may switch the coupling of the first current source 232 and the second current source 234 such that the first input signal is applied to the second transistor, the second input signal is applied to the first transistor and a second transistor comparison value is determined by the ADC 250 by comparing the gate-source voltages of the matched pair of transistors 210.
[0066] The first and second transistor comparison values may be expressed as:
First transistor mismatch value=ΔV.sub.GS+mismatch+noise1
Second transistor mismatch value=ΔV.sub.GS−mismatch+noise2
[0067] The transistor difference value for the PUF cell 105 may then be determined based on the first transistor comparison value and the second transistor comparison value, for example from a sum or an average of the first transistor comparison value and the second transistor comparison value.
[0068] For example, the transistor difference value may be expressed as:
[0069] In this way, any measurement inaccuracies caused by a mismatch between the first and second current sources 232 and 234 may be eliminated without appreciably increasing the signal to noise ratio. It will be appreciated that the chop circuit 236 is optional and the determination unit 170 may be configured to determine the transistor difference value from a single comparison of the gate-source voltages, for example if the first and second current sources are considered to be matched to a sufficiently high accuracy.
[0070] Furthermore, optionally, a further chop circuit 240 may be provided at the input to the ADC 250. This may operate similarly to the chop circuit 236, and at the same time as the chop circuit 236, in order to switch the coupling of differential inputs to a comparator in the ADC 250. In this case however, the sign of the ΔV.sub.GS component in the first transistor comparison value will be different from the sign of the ΔV.sub.GS component in the second transistor comparison value as a result of switching the inputs to the comparator in the ADC 250. For example, in the case where both chop circuit 236 and 240 are used:
First transistor mismatch value=ΔV.sub.GS+mismatch+offset+noise1
Second transistor mismatch value=−ΔV.sub.GS+mismatch+offset+noise2
where offset is the offset of the ADC 250.
[0071] In this case, the transistor difference value may be determined by taking the difference of the first transistor comparison value and the second transistor comparison value. For example:
[0072] Using the chop circuit 236 in this way may help to cancel any offset in the ADC 250 and well as any mismatch between the first and second current sources 232 and 234. Furthermore, the ΔV.sub.GS component has increased by 2× and low frequency components of noisel and noise2 should mostly cancel each other out. However, it will be appreciated that the chop circuit 240 is optional, depending on the configuration of the ADC 250 and the quality of components making up the ADC 250. Furthermore, the determination unit 170 may not comprise an ADC 250, but may instead determine the transistor difference value using any other suitable circuitry, for example analog only circuitry.
[0073] The chop circuit 236 and further chop circuit 240 may be configured in any suitable way to perform the switching/chopping functionality described above. For example, they may each comprise one or more switches that can be controlled (for example, by a control unit not represented in
[0074] The transistor difference value is indicative of which of the transistors in the matched pair of transistors 210 has the larger/smaller VGS and the magnitude of the difference.
[0075] For example, it may be a positive number of a magnitude indicative of the amount by which the Vis of the first transistor is larger than the VGS of the second transistor, and may be a negative number of a magnitude indicative of the amount by which the VGS of the first transistor is smaller than the VGS of the second transistor.
[0076] Turning to
[0077] It can also be seen that the determination unit 170 comprises X first and second current sources 232.sub.x and 234.sub.x, X chop circuits 236.sub.x, X further chop circuits 240.sub.x and X ADCs 250.sub.x. Consequently, it is possible to determine, in parallel, transistor difference values for the X pairs of transistors 210.sub.x,y in a selected row, thereby increasing the speed of operation. Furthermore, each set of first and second current sources 232.sub.x and 234.sub.x, chop circuit 236.sub.x, further chop circuit 240.sub.x and ADC 250.sub.x may be shared by a column of the PUF array, thereby reducing the number of components required and thus the overall size, cost and power consumption of the PUF apparatus 100.
[0078] The determination unit 170 represented in
[0079] The determination unit 170 may operate by selecting one row of PUF cells 105.sub.x,y and determining a transistor difference value for each selected PUF cell. Subsequently, the next row of PUF cells 105.sub.x,y may be selected and transistor difference values determined for them. The operation of the selector circuit 220, chop circuits 236.sub.x and further chop circuits 240.sub.x may be controlled in any suitable way, for example by the PUF output unit 310 or any other suitable controller. Control interconnections are not represented in
[0080]
[0081] The PUF output determined by the PUF output unit 310 is a persistent random number that may be, for example, a multi-bit number. This is explained in more detail later in the “Configuration” and “Readout” sections. However, in summary, the measured transistor difference value of a particular PUF cell may be used to set the value (i.e., “0” or “1”) of one or more bits of the multi-bit PUF output. Since the outcome of each transistor comparison is dependent on random manufacturing differences between the matched pair of transistors 210.sub.x,y, it can be seen that the PUF output should be random, in that each different instance of PUF apparatus 100 is highly likely to generate a randomly different PUF output.
[0082] In a further example implementation, each PUF cell 105.sub.x,y may comprise a pair of capacitors and the determination unit 170 may be configured to determine a PUF output based on a difference between a physical characteristic (such as the capacitance) of the capacitors that is caused by random manufacturing differences. Various example implementations of the PUF apparatus/system 100 where PUF cells 105.sub.x,y each comprise a matched pair of capacitors are given in U.S. patent application Ser. No. 16/716,435 (the '435 application), which is incorporated herein by reference in its entirety. Various example implementations are disclosed between
[0083]
[0084]
[0085] Returning to
[0086] The pair of capacitors 2100 may be a matched pair of capacitors, or they may be different capacitors. The term ‘matched’ in this disclosure means that the pair of capacitors are of identical design. Whilst the two capacitors making up the matched pair of capacitors 2100 are of identical design, in practice there will inevitably be small, random manufacturing variations between the two capacitors. Those manufacturing variations may include at least one of: differences in distance between the capacitor plates (for example, caused by differences in dielectric thickness), differences in the area of overlap of the two plates, differences in dielectric constant, etc. These manufacturing variations result in variations in capacitance between the two capacitors making up the matched pair of capacitors 2100. Whilst the below description will focus on a matched pair of capacitors 2100 for simplicity, it should be appreciated that in an alternative the two capacitors 2100 may be of different design. In this case, there will be some expected difference between their capacitances, on top of which random manufacturing differences should introduce some random variation around the expected difference. Consequently, the capacitor difference value that is determined according to the processes described below may perform the same function as when the capacitors are matched, but with an offset applied to the random variation, that offset being equal to the design difference in capacitance of the two capacitors.
[0087] The circuit of
[0088]
V.sub.o(t.sub.o)=V.sub.cm+V.sub.off+V.sub.n(t.sub.0)
where V.sub.off is the offset of readout, caused by any inherent offset in the buffer 2200, and V.sub.n(t.sub.0) is the random readout noise at time t.sub.0.
[0089] A first bias condition is then set by opening the reset switch such that the common node is no longer held at V.sub.cm. This means that a first bias voltage V.sub.hi−V.sub.lo is applied across the pair of capacitors 2100 without the common node or centre tap being held to any particular potential. The first bias condition thereby sets a corresponding first charge distribution between the two capacitors. In the timing diagram of
V.sub.o(t.sub.1)=V.sub.cm+V.sub.off+V.sub.ci+V.sub.ktc+V.sub.n(t.sub.1)
where V.sub.ci is the charge injection from the rst switch caused by the switch opening, V.sub.n(t.sub.1) is the random readout noise at time t.sub.1 and V.sub.ktc is sampled KTC noise from the two capacitors. The value V.sub.o(t.sub.1) shall be referred to as a first nodal measurement that is indicative of a voltage at the common node of the capacitor divider 2100 during the first bias condition.
[0090] A second bias condition is then set by applying the first bias voltage across the pair of capacitors 2100 in the opposite direction, such that the voltage across the pair of capacitors 2100 is −(V.sub.hi−V.sub.lo). This is achieved by controlling the switch bank 2300 to apply V.sub.lo to V.sub.2 and apply V.sub.hi to V.sub.1. In the timing diagram of
V.sub.o(t.sub.2)=V.sub.cm+V.sub.off+V.sub.ci+V.sub.ktc+V.sub.n(t.sub.2)+((C.sub.1−C.sub.2)/(C.sub.1+C.sub.2))*(V.sub.hi−V.sub.lo)
[0091] The value V.sub.o(t.sub.2) shall be referred to as a second nodal measurement that is indicative of a voltage at the common node of the capacitor divider 2100 during the first bias condition.
[0092] Because the pair of capacitors are matched, by design their capacitance is C.sub.1=C.sub.2=C. However, in practice, there is a small, random difference in their capacitance, such that C.sub.1−C.sub.2=dC. Therefore, we can express the actual capacitance of C.sub.1 and C.sub.2 as:
C.sub.1=C+dC/2
C.sub.2=C−dC/2
Substituting this into the equation above, we arrive at:
V.sub.o(t.sub.2)=V.sub.cm+V.sub.off+V.sub.c+V.sub.ktc+V.sub.n(t.sub.2)+(dC/2C)*(V.sub.hi−V.sub.lo)
[0093] Whilst V.sub.o(t.sub.2) is a function of the random manufacturing difference (dC) between the capacitors, it is also affected by a number of different sources of noise. Consequently, V.sub.o(t.sub.2) may not be a reliable indicator of the random manufacturing difference, particularly considering that dC may be very small and therefore susceptible to being lost in noise.
[0094] However, by taking the difference of V.sub.o(t.sub.2)−V.sub.o(t.sub.1i), we arrive at:
V.sub.o(t.sub.2)−V.sub.o(t.sub.1)=(dC/2C)*(V.sub.hi−V.sub.lo)+V.sub.n(t.sub.2)−V.sub.n(t.sub.1)
[0095] By taking the difference in this way, ktc noise V.sub.ktc, the offset V.sub.off, the charge injection signal V.sub.ci, and the common mode signal, V.sub.cm, are all cancelled out. Furthermore, any low frequency components in the readout noise V.sub.n(t.sub.0) and V.sub.n(t.sub.1) should also substantially cancel. Therefore, by measuring Vo under both first and second bias conditions and then finding the difference, a more accurate measure of the random manufacturing difference between the two capacitors C.sub.1 and C.sub.2 can be found. The difference between V.sub.o(t.sub.2) and V.sub.o(t.sub.1) may be referred to as the capacitor difference value, that is indicative of a random manufacturing difference between the pair of capacitors 2100. This more accurate measure can then be used to determine a persistent random PUF value, based on which the PUF output can be determined, for example setting the value of one bit in a multi-bit PUF output, as explained in more detail below in the “Configuration” and “Readout” sections.
[0096] For example, the size of the capacitor difference value (V.sub.o(t.sub.2)−V.sub.o(t.sub.1)) of a particular PUF cell 105.sub.x,y may be used to set a persistent random PUF value (eg, to “0” or “1”), which then acts as one or more bits of the multi-bit PUF output. Since the capacitor difference value V.sub.o(t.sub.2)−V.sub.o(t.sub.1) has been determined in a way that maximises the accuracy of measurement of dC by eliminating almost all noise, the value of the PUF output is determined almost exclusively by the random manufacturing difference. This should result in the value of the PUF output being sufficiently random to meet PUF requirements.
[0097] Turning to
[0098] In the above, a number of particular examples have been given for measuring a physical characteristic of the PUF cell (in one example the physical characteristic is a difference in gate-source voltage of a pair of transistors and in the other example the physical characteristic is a difference in capacitance of a pair of capacitors), wherein the measurement of the physical characteristic is indicative of a random manufacturing variation of the PUF cell. However, it will be appreciated that there are many other ways in which pairs of devices and the determination unit 170 may be configured to determine a persistent random value for each PUF cell based on physical characteristics of pairs of devices. Furthermore, there are many other types of physical, electrical devices (either single components that may be active or passive, such as transistors or capacitors, or more complex composite devices that each comprise a plurality of components, such as ring oscillators, etc) that may be used for the pairs of devices and many other types of physical characteristics that may be measured. For example, each PUF cell may comprise a pair of identical strings of NOT gates, wherein the physical characteristic of the PUF cell is the time difference in how long it takes a signal to pass through one of the strings of NOT gates compared with how long it takes a signal to pass through the other string of NOT gates. It will be appreciated that the present disclosure is not limited to any particular implementation of PUF apparatus/system and may be applied to any implementation where a physical characteristic, indicative of a random manufacturing variation between a pair of devices, may be used to determine a persistent random PUF value.
[0099] ‘Configuration’
[0100] The term ‘configuration’ as used in the context of a process is used herein to refer to a process of assigning a particular readout condition to a pair(s) of devices that are to be used in the generation of a persistent random PUF value(s). For example, a readout condition may be assigned to each of at least some of the PUF cells 105.sub.x,y in the PUF apparatus 100. It may be performed once (e.g., during manufacture/set-up of the PUF apparatus 100, also sometimes referred to as “enrollment”), after which the PUF apparatus 100 may be used for ‘readout’, also sometimes referred to as “recovery”. The term ‘readout’ is used herein to describe the process of determining a persistent random PUF value(s) based on a physical characteristic of one or more pairs of devices (e.g., PUF cells 105.sub.x,y). Readout may be performed many times over the life of the PUF apparatus 100, each time a PUF output is required from the PUF apparatus 100. The readout condition assigned to a PUF cell 105.sub.x,y during configuration may dictate how a physical characteristic of that PUF cell 105.sub.x,y is to be used to determine a PUF value during readout. The usage of the term “configuration” as described above does not alter the meaning of the term “configuration” in the context of a physical configuration (e.g., a configuration of devices).
[0101] Described below are three different PUF apparatus 100 configurations that may be implemented in order to achieve different readout characteristics, referred to below as “1-bit per PUF cell—throw away”, “1-bit per PUF cell—shift threshold” and “Multi-bit per PUF cell”. For each of these, the configuration and readout process is slightly different, as will be explained in more detail later. However, the common aspects of the configuration process are first described with reference to
[0102] The below explanations refer specifically to PUF cells 105.sub.x,y, each of which comprise a fixed pair of devices (i.e., the device pairings cannot be changed in this example). However, it should be appreciated that the described processes may be applied to other types of PUF apparatuses that comprise other configurations of pairs of devices, for example PUF apparatus that dynamically selects two devices from a bank(s) of devices to form a pair of devices. In that example, one particular device may be part of a number of different pairs of devices, as different second devices are dynamically selected to form different pairs with that one particular device. Therefore, throughout the description below, the term ‘PUF cell’ can be substituted more generally with ‘pair of devices’.
[0103]
[0104] In Step 510, the determination unit 170 measures a physical characteristic of a PUF cell 105.sub.x,y (eg a transistor difference value or a capacitor difference value, described earlier), wherein the measurement of the physical characteristic is indicative of a random manufacturing variation of the PUF cell. For example, the processes described above with respect to
[0105]
[0106] In Step 520, the determination unit 170 may compare the measurement of the physical characteristic against one or more configuration thresholds. The one or more configuration thresholds used depends on the desired readout characteristic (“1-bit per PUF cell—throw away”, “1-bit per PUF cell—shift threshold” and “Multi-bit per PUF cell”) and will be described in more detail later.
[0107] In Step S530, the determination unit 170 may set, based on the comparison performed in Step S520, a configuration indicator associated with the PUF cell 105.sub.x,y to indicate that during readout of the PUF cell 105.sub.x,y, either a first readout condition should be used, or a second readout condition should be used. The configuration indicator may be a 1-bit value (for example, set to “0” to assign the PUF cell to the first readout condition and set to “1” to assign the PUF cell to the second readout condition, or vice-versa), or may be any other suitable form of indicator that may be used during readout to determine which readout condition to use for a PUF cell 105.sub.x,y. The configuration indicator may be stored in memory, for example in the determination unit 170 or elsewhere, such that when a PUF cell 105.sub.x,y is later being readout, its configuration indicator may be looked-up and used during readout. Consequently, each PUF cell 105.sub.x,y may have an associated configuration indicator that is set during configuration and stored so that it may be used during readout.
[0108] The first read-out condition indicates that when generating a persistent random PUF value during readout of a PUF cell 105.sub.x,y, the physical characteristic of the PUF cell should be compared against at least one first readout condition threshold that is different to the at least one configuration threshold. The second read-out condition may indicate a number of different things, depending on which readout characteristic (“1-bit per PUF cel—throw away”, “1-bit per PUF cell—shift thresholds” and “Multi-bit per PUF cell”) has been implemented. This is explained in more detail later in the “readout” section.
[0109] The different readout characteristics have all been devised by the inventor as different ways in which the stability and consistency of each determined PUF value may be maintained over time. As explained earlier, the PUF output generated by the PUF apparatus 100 should be persistent over time. Consequently, the PUF value generated for each PUF cell 105.sub.x,y should also be persistent over time. However, the inventor has recognised that the measured physical characteristic of a PUF cell 105.sub.x,y is likely to vary over time, owing to one or more of: noise in the measurement of the physical characteristic, device degradation, environmental changes, locality changes, etc. This may sometimes cause difficulties in maintaining the persistence of the PUF value for a PUF cell 105.sub.x,y, as explained below with reference to
[0110]
[0111] However, an example measured physical characteristic for a particular PUF cell 105.sub.x,y is represented with reference numeral 730. Initially, the measured physical characteristic 730 may be a negative value, such that that PUF cell 105.sub.x,y generates a PUF value of “0”. Over time, however, the measured physical characteristic may change or drift, as represented with reference numeral 740. If the measured physical characteristic increases over time, eventually it may become a positive value, at which time the persistent random PUF value would change from “0” to “1”. This change would also cause a change in the PUF output. In some examples, the change in the measured physical characteristic may cause the measured physical characteristic to be positive sometimes, then negative sometimes, then positive sometimes, etc, resulting in the PUF value regularly changing between “0” and “1”. ECC techniques may be able to tolerate a small number of bits in the PUF output changing over time, but a larger number would mean that the PUF output would no longer be persistent, at which time it could not be relied upon. The inventor has recognised that PUF cells 105.sub.x,y with a measured physical characteristic that is close to the readout threshold used to determine whether the PUF value should be a “0” or “1” may be particularly susceptible to this problem, since relatively small changes in the measured physical characteristic over time may cause the PUF value to change. Therefore, the inventor has devised the configuration and readout processes described below to address these issues and improve the long term reliability and persistence of the PUF output generated by the PUF apparatus 100.
[0112] 1-bit Per PUF Cell—Throw Away
[0113] In this implementation, configuration is performed so that some PUF cells 105.sub.x,y are assigned to be used during readout for determination of persistent random PUF values and other PUF cells 105.sub.x,y are assigned not to be used during readout at all (‘thrown away’). In this example, setting a configuration indicator to assign a PUF cell 105.sub.x,y to the second condition indicates that the PUF cell 105.sub.x,y should not be used for generating a persistent random PUF value.
[0114]
[0115] During configuration of a PUF cell 105.sub.x,y, the physical characteristic of the PUF cell 105.sub.x,y may be measured (step S510 in
[0116] Then, in step S530, if it is between the first configuration threshold 840 and the second configuration threshold 850, the configuration indicator of that PUF cell 105.sub.x,y to assigned to the second readout condition, which means that that PUF cell 105.sub.x,y should not be used during readout. If, however, the measured physical characteristic is less than the first configuration threshold 840, or is greater than the second configuration threshold 850, the configuration indicator of that PUF cell 105.sub.x,y is assigned to the first readout condition, which means that during readout, that PUF cell 105.sub.x,y should be used for generating a persistent random PUF value. Thus, during configuration any PUF cells 105.sub.x,y that have a measured physical characteristic within the central region 810 are assigned to the second readout condition and any PUF cells 105.sub.x,y that have a measured physical characteristic within the outer regions 820 and 830 are assigned to the first readout condition. For example,
[0117] The inventor has devised ‘1-bit per PUF cell—throw away’ so that PUF cells 105.sub.x,y that have been determined to have a physical characteristic that is relatively close to the readout threshold 810 are not subsequently used during readout. This is because these PUF cells 105.sub.x,y have a relatively high risk of having a PUF value that changes over time as a result of the physical characteristic measured during readouts changing by enough to move from one side of the readout threshold 810 to the other. The PUF cells 105.sub.x,y that have a measured physical characteristic that is relatively far away from the readout threshold 810 are then subsequently used during readout. This is because these PUF cells 105.sub.x,y have a relatively low risk of having a PUF value that changes over time, because their measured physical characteristic would have to change significantly over time to cause the PUF value to change (i.e., the physical characteristic has a significant margin for change between the configuration measurement and subsequent readout measurements without affecting the PUF value for that PUF cell 105.sub.x,y). Consequently, the PUF value for each PUF cell 105.sub.x,y assigned to the first readout condition should be persistent, thereby improving the persistence of the PUF output.
[0118] The first readout condition threshold 860 should be set to a value where suitable configuration threshold may then be set such that there is a 50-50 chance of each PUF cell 105.sub.x,y having a measured physical characteristic that is either greater than or less than the threshold 860, in order to preserve the randomness of the PUF value determined for each PUF cell 105.sub.x,y. This can be achieved using standard statistical analyses of the distribution. The first configuration threshold 840 and second configuration threshold 850 may then be set to any suitable values that achieve a substantially 50-50 chance of different PUF values, achieve a desired balance between improving the persistence of the PUF output determined during readout and having enough PUF cells 105.sub.x,y available for use during readout to determine the PUF output. For example, it may be set at one standard deviation, or two standard deviations, or three standard deviations, or four standard deviations, etc from the first readout condition threshold 860. It will be appreciated that the further the configuration thresholds 840 and 850 are from the first readout condition threshold 860, the more PUF cells 105.sub.x,y may be ‘thrown away’ during configuration. However, the chances of maintaining a persistent PUF output over time will be improved. Therefore, if the array of PUF cells 105.sub.x,y comprises a large number of PUF cells 105.sub.x,y compared with the desired size of PUF output (for example, if there are 400 PUF cells 105.sub.x,y, but the desired size of PUF output is 128-bits), the configuration thresholds 840 and 850 may be set to be relatively far from the readout threshold 860, since a large number of PUF cell ‘throw aways’ can be accommodated.
[0119] In an alternative approach to this technique, the n PUF cells 105.sub.x,y that are measured to be the furthest away from the first readout condition threshold 860 may be assigned to the first readout condition, with the remainder thrown away by assigning them to the second readout condition. For example, the value n may be the number of PUF cells 105.sub.x,y that will be required for determining the PUF output (for example, if the PUF output is 128-bit, then n may be set to 128). As such, the best PUF cells 105.sub.x,y for providing long term stability may be selected for use during the read out processes in the future. In this case, there is effectively a single configuration threshold, which is the same as the first readout condition threshold 860. The configuration threshold may be set to a value based on the statistical distribution in order to achieve a substantially 50-50 chance of getting either possible PUF value for each PUF cell 105.sub.x,y during readout.
[0120] In a further alternative, rather than throwing away individual PUF cells 105.sub.x,y, entire rows of PUF cells 105.sub.x,y may instead be thrown away based on a comparison of measured physical characteristics against the configuration threshold(s). For example, any of the processes described above may be performed for comparing the measured physical characteristics of each PUF cell 105.sub.x,y against the configuration threshold(s).
[0121] Any rows with relatively few PUF cells 105.sub.x,y assigned to the first readout condition may be thrown away, either by setting the configuration indicators for all PUF cells 105.sub.x,y to the second readout condition, or by setting a row configuration indicator to indicate that that entire row should not be used during readout. If row configuration indicators are used, during readout the determination unit 170 may first read the row configuration indicator for a row and only if it indicates that the row should be used would it move on to read the configuration indicators for each PUF cell in that row. This may improve speed and power efficiency of readout, by minimising the number of parallel readout operations required during readout to determine the PUF output. In a further alternative, rather than having a single configuration indicator for each PUF cell, there may instead simply be a configuration indicator for each row. In this case, during readout all PUF cells in a row that has been assigned to the first readout condition may be readout, according to the process described later. All PUF cells in a row that has been assigned to the second readout condition may be discarded, as described later. Thus, throughout this disclosure, during readout when a configuration indicator associated with a PUF cell is read, that configuration indicator may be for that specific PUF cell, or may be for the entire row in which the PUF cell is located.
[0122] 1-bit Per PUF Cell—Shift Threshold
[0123] It will be appreciated that the above ‘throw away’ implementation may be useful where there are a large number of PUF cells 105.sub.x,y compared with the size of PUF output. An alternative configuration, ‘shift thresholds’, may be useful where that are not a large number of PUF cells 105.sub.x,y compared with the size of PUF output.
[0124]
[0125]
[0126] During configuration, step S510 is carried out as described above. Step S520 is also carried out as described above with reference to one-bit per PUF cell—throw away, except the measured physical characteristic is compared against the first configuration threshold 940, the second configuration threshold 950, the third configuration threshold 960 and the fourth configuration threshold 970. The configuration thresholds define a plurality of ranges. In Step 530, if the measured physical characteristic is in the range between the first configuration threshold 940 and the second configuration threshold 950, or is in the range between the third configuration threshold 960 and the fourth configuration threshold 970, the configuration indicator for the PUF cell is set to assign the PUF cell 105.sub.x,y to the first readout condition. If the measured physical characteristic is in the range below the first configuration threshold 940, or in the range between the second configuration threshold 950 and the third configuration threshold 960, or in the range above the fourth configuration threshold 970, the configuration indicator for the PUF cell 105.sub.x,y is set to assign the PUF cell 105.sub.x,y to the second readout condition.
[0127]
[0128] During readout, if a PUF cell 105.sub.x,y has been assigned to the first readout condition, a readout measurement of the physical characteristic of the PUF cell 105.sub.x,y may be taken and compared against the first readout condition threshold 910. Therefore, the first readout condition for “1-bit per PUF cell—shift threshold” is effectively the same as the first readout condition for “1-bit per PUF cell—throw away”. If, for example, region 912 has been assigned “0” and region 914 has been assigned “1”, then if the readout measurement is in the range that is less than the first readout condition threshold 910, the PUF value will be determined to be “0”. If the readout measurement is in the range that is greater than the first readout condition threshold 910, the PUF value will be determined to be “1”. Because region 912 and 914 are separated from the first readout condition threshold 910, the readout measurements of physical characteristic may change over time compared with the measurement taken during configuration and still the PUF value for those PUF cells 105.sub.x,y should not change over time, since the measurements of physical characteristic are unlikely to change enough over time to move from one side of threshold 910 to the other.
[0129]
[0130] During readout, if a PUF cell 105.sub.x,y has been assigned to the second readout condition, a readout measurement of the physical characteristic of the PUF cell 105.sub.x,y is taken and compared against the second readout condition thresholds 920 and 930. The second readout condition thresholds 920 and 930 define a plurality of ranges (in this example three ranges) and to generate a PUF value during readout, it is determined which range a readout measurement of the physical characteristic is in. If the measured physical characteristic is less than both of the second readout condition thresholds 920 and 930, or greater than both of the second readout condition thresholds 920 and 930, then the PUF value for that PUF cell 105.sub.x,y is set to a first digital state (in this example “0”). If the measured physical characteristic is between the second readout condition thresholds 920 and 930, then the PUF value for that PUF cell 105.sub.x,y is set to a second digital state (in this example “1”).
[0131] Thus, it can be seen that the second readout condition has shifted readout thresholds compared with the first readout condition. Because regions 922, 924 and 926 are all separated from the second readout thresholds 920 and 930, the readout measurements of physical characteristic may change over time compared with the measurement taken during configuration and still the PUF value for those PUF cells 105.sub.x,y should not change over time, since the measurements of physical characteristic are unlikely to change enough over time to move from one side of threshold 910 or threshold 920 to the other side.
[0132] Consequently, the PUF value for each PUF cell 105.sub.x,y should be persistent, thereby improving the persistence of the PUF output. Furthermore, it can be seen that none of the PUF cells 105.sub.x,y are discarded/thrown away during the configuration process, such that they may all be used during readout and therefore all contribute to the determination of the PUF output.
[0133] It will be appreciated that the readout thresholds 910, 920 and 930 and the configuration thresholds 940, 950, 960 and 970 may all be set using standard statistical techniques such that the areas of regions 912 and 914 are the same, and such that the area of region 922 plus the area of region 926 is the same as the area of region 924. In this way, randomness of the PUF value determined for each PUF cell may be preserved.
[0134] Multi-Bit Per PUF Cell
[0135] Configuration and readout for this implementation is similar to “1-bit per PUF cell—threshold shift”, except a greater number of configuration thresholds and readout thresholds are used to enable each PUF cell to be used to generate a multi-bit persistent random PUF value.
[0136]
[0137]
[0138]
[0139] During configuration of a PUF cell, in Step S520 the measured physical characteristic is compared against the configuration thresholds identified above. In Step S530, if the measured physical characteristic is between the first configuration threshold 1022 and the second configuration threshold 1024, or between the third configuration threshold 1032 and the fourth configuration threshold 1034, or between the fifth configuration threshold 1042 and the sixth configuration threshold 1044, or between the seventh configuration threshold 1052 and the eighth configuration threshold 1054 (i.e., if the measured physical characteristic is in any of the shaded regions represented in
[0140] During readout of a PUF cell 105.sub.x,y, if it has been assigned to the first readout condition, a readout measurement of the physical characteristic may be compared against the first readout condition thresholds 1012, 1014 and 1016. The first readout condition thresholds define a first plurality of ranges. In this particular example, if the measured physical characteristic is in the range less than threshold 1012, the PUF value is 00. If the measured physical characteristic is in the range greater than threshold 1012 but less than threshold 1014, the PUF value is 01. If the measured physical characteristic is in the range greater than threshold 1014 but less than threshold 1016, the PUF value is 11. If the measured physical characteristic is in the range greater than threshold 1016, the PUF value is 11.
[0141] During readout of a PUF cell 105.sub.x,y, if it has been assigned to the second readout condition a readout measurement of the physical characteristic may be compared against the second readout condition thresholds 1062, 1064, 1066 and 1068. The second readout condition thresholds define a second plurality of ranges. In this particular example, if the measured physical characteristic is in the range less than threshold 1062 or in the range greater than threshold 1068, the PUF value is 00. If the measured physical characteristic is in the range greater than threshold 1062 but less than threshold 1064, the PUF value is 01. If the measured physical characteristic is in the range greater than threshold 1064 but less than threshold 1066, the PUF value is 11. If the measured physical characteristic is in the range greater than threshold 1066 but less than threshold 1068, the PUF value is 10.
[0142] The configuration thresholds may be set to values such that the probability for each different PUF value is approximately the same (i.e., the total shaded area for each PUF value is
[0143] In this example, grey coding has been used for adjacent regions. For example, in the second readout condition, a measured physical characteristic that is less than threshold 1062 will result in a PUF value of 00 and a measured physical characteristic greater than threshold 1062 but less than threshold 1064 will result in a PUF value of 01 (i.e., only one bit value different). By changing the value of only one bit for each adjacent readout region, if a measured physical characteristic of a PUF cell 105.sub.x,y were to drift sufficiently over time to move from one side of a readout threshold to another, the value of only one bit will change. This minimises the error caused and makes it more feasible that errors may be dealt with using ECC. However, it will be appreciated that whilst using grey coding may be useful, any other suitable coding scheme may be used.
[0144] Readout
[0145]
[0146] In Step S1110, the determination unit 170 reads the configuration indicator associated with the PUF cell 105.sub.x,y to determine if the PUF cell 105.sub.x,y was assigned during configuration to a first readout condition or to a second readout condition. If the PUF cell 105.sub.x,y was assigned to the first readout condition, the method proceeds to Step S1120. If the PUF cell 105.sub.x,y was assigned to the second readout condition, the method proceeds to Step S1140.
[0147] In Step S1120, the determination unit 170 measures a physical characteristic of the PUF cell 105.sub.x,y, (eg a transistor difference value or a capacitor difference value, described earlier), wherein the measurement of the physical characteristic is indicative of a random manufacturing variation of the PUF cell. For example, the determination unit may carry out the processes described above with respect Step S510 of
[0148] In Step S1130, the determination unit 170 determines a persistent random value for the PUF cell 105.sub.x,y by comparing the physical characteristic against the at least one first readout condition threshold. For example, if the determination unit 170 has been configured according to the 1-bit per PUF cell implementations described above, the first readout condition threshold may comprise only one threshold (such as threshold 860 in
[0149] In Step S1140, a second readout condition action is performed. The second readout condition action depends on how the determination unit 170 has been configured. If the determination unit 170 has been configured according to “1-bit per PUF cell—throw away” described above, the second readout condition indicates that the PUF cell 105.sub.x,y should not be used for generating a persistent random value. Consequently, the second readout condition action would comprise taking no further action in respect of that PUF cell, at which time the determination unit 170 may move on to reading out the next PUF cell 105.sub.x,y, if appropriate. If the determination unit 170 has been configured according to “1-bit per PUF cell—shift threshold” described above, the second readout condition action comprises comparing the physical characteristic against at least one second read-out condition threshold, which comprises threshold 920 and threshold 930 represented in
[0150] This readout process may be repeated for a plurality of the PUF cells 105.sub.x,y, optionally in serial or in parallel. For example, as explained earlier the PUF apparatus 100 may be configured such that the physical characteristic of a plurality of PUF cells (for example, some of all of the PUF cells in a particular row) may be measured in parallel and persistent random PUF values determined based on those measured physical characteristics. In this way, faster readout and persistent random PUF value determination may be achieved. Each determined PUF value may then be used by the determination unit 170 for generating the PUF output. For example, the PUF values may be concatenated in a particular order to form the persistent random PUF output, or any other suitable operations may be performed on the PUF values to generate the PUF output.
[0151] During readout, the physical characteristic of the PUF cell 105.sub.x,y may optionally be determined as a digital measurement. In this case, the digital measurement of the physical characteristic may have M quantisation levels and the persistent random PUF value may have a digital value of N quantisation levels, wherein M is greater than N. It will be appreciated that in this example, in order to accurately determine the persistent random PUF value for a PUF cell, the measurement of the physical characteristic should have a finer resolution (eg, a larger number of quantisation levels) than the PUF value.
[0152] Furthermore, in each of the configurations, it will be appreciated that the configuration thresholds effectively define a readout error margin for the readout condition thresholds. For example, if during configuration it is determined that the measurement of physical characteristic is within the readout error margin around the first readout condition threshold(s) defined by the configuration thresholds, the PUF cell 105.sub.x,y may be assigned to the second readout condition. Thus, a margin of error, or change, in readout measurements may be tolerated without a resulting change in PUF value.
[0153] By developing the above described techniques for configuration and readout, where a measurement of the magnitude of the physical characteristic of each PUF cell may be measured and then use for configuration or determining a PUF value, it is possible to configure or readout a plurality of PUF cells in parallel, for example using circuit arrangements such as those represented in
[0154] The skilled person will readily appreciate that various alterations or modifications may be made to the above described aspects of the disclosure without departing from the scope of the disclosure.
[0155] For example, as explained earlier, the statistical distributions represented in
[0156] Typically, during readout of a PUF cell, its physical characteristic is measured (for example, magnitude and sign) and then compared against one or more readout thresholds. However, in the example of “1-bit per PUF cell—throw away”, Step S1120 in
[0157] Pairs of configuration thresholds may be set each side of a read out threshold, equal distances from the read out threshold, for example if the statistical distribution of measured physical characteristics is symmetrical. However, they may alternatively be set unequal distances from the read out threshold, for example if the distribution is asymmetric.
[0158] In the above, there may be two possible readout conditions for each PUF cell. However, there may be three or more possible readout conditions for each PUF cell. For example, the first readout condition may be to compare a measure of the physical characteristic against a first readout condition threshold(s) and the second readout condition may be to compare the measure of the physical characteristic against a second readout condition threshold(s) (as per the shift threshold and multi-bit implementations described above). The third readout condition may be not to use the PUF cell for the determination of the PUF output (equivalent to the second readout condition of the ‘throw away’ implementation described above). In this case, the configuration indicator may, for example, comprise two bits. The first bit may indicated whether or not the PUF cell is assigned to the third readout condition. If it is, it should not be used as part of the PUF output determination. If it is not assigned to the third readout condition, the second bit may be read to determine if the PUF cell has been assigned to the first or second readout condition, which informs which readout condition threshold(s) to use. In a further optional alternative of the readout process, there may not be a configuration indicator set for any of the PUF cells. In this alternative, readout step S1110 may be omitted and a measurement of the physical characteristic of one or more pairs of devices may be made using any of the measurement processes described above. The one or more measures of physical characteristic may then be used to determine at least part of a PUF output (for example, by comparing each measured physical characteristic against a predetermined readout threshold(s)). In one particular example where there are a plurality of PUF cells arranged in an array, a measurement of the physical characteristic of two or more PUF cells may be readout in parallel at the same time, with the two or more measurements then being used to determine at least part of the PUF output.
[0159] For some PUF systems 100, the same determination unit 170 may be used for both PUF configuration and PUF readout. In some alternative implementations, one determination unit may configured for performing PUF configuration and a different determination unit may be configured for performing PUF readout.