About Physical Unclonable Functions
What is a PUF? In short, a PUF is a function that is random, unique, and yet reliable. A PUF is analogous to the human fingerprint in many ways. The fingerprint of a child at birth cannot be predicted (random). The fingerprint of a human will distinguish him from another with extremely high probability (unique). Although, the fingerprint is random to begin with, the fingerprint of a person remains the consistent all through his life (reliable). Note that because of differences in fingerprint measurement instruments or measurement conditions (applied finger pressure, current skin texture, contact angle, etc.), the fingerprint measurement will almost never be exactly the same. However, despite this, a positive ID match is possible if a measurement almost matches the golden measurement stored in the database. Similarly, a silicon PUF is a circuit that embodies a random function such that even the designer or the manufacturer of the chip does not know the function. The output of the function (response) from one instantiation of the PUF should be different from other instantiations, even when designed using the same design files and when provided the same inputs (challenge). And finally, the response of a particular PUF should ideally be consistent every time.
How is a PUF different from a typical digital design? Although a PUF design uses the same design files and rules like any other typical digital circuit, there are some key differences. An output of a typical design is a completely predictable function of the inputs. A good digital designs have enough built-in margins such that the outputs are not a function of small process variations. An output of a PUF, on the other hand, should not be a predictable function of the inputs and should depend only on the process variations.
How are PUFs designed to achieve this? PUFs are typically designed using symmetrical circuits that amplify some electrical characteristic (e.g., delay or threshold voltage) of nominally identical circuits. For example, if a symmetric SRAM cell is powered up, it can power-up to either a '1' or a '0' with equal probability. Since the devices are nominally identical by design, the final state is a function of the differences in the strengths of the devices that originate from process variations. It turns out that the power-up value is quite repeatable, such that over 90% of SRAMs will always power-up to the same bit value every time when powered up in similar conditions. Moreover, if the process variations are uncorrelated across chips, these power-up bit values will be different from one chip to the other. Thus power-up values from a number of SRAM cells can be used as a random, unique, yet reliable signature of a chip.
Several implementations of PUFs have been proposed in literature over the last decade. Most of the implementations can be categorized as either delay based or bi-stable based, depending on the mechanism of response bit generation.
What are the applications of a PUF? PUFs can be used for device authentication and identification. Moreover, if the perfect reliability of PUF responses can be ensured, then they can also be used in random secret key generation applications.
How is a PUF different from a typical digital design? Although a PUF design uses the same design files and rules like any other typical digital circuit, there are some key differences. An output of a typical design is a completely predictable function of the inputs. A good digital designs have enough built-in margins such that the outputs are not a function of small process variations. An output of a PUF, on the other hand, should not be a predictable function of the inputs and should depend only on the process variations.
How are PUFs designed to achieve this? PUFs are typically designed using symmetrical circuits that amplify some electrical characteristic (e.g., delay or threshold voltage) of nominally identical circuits. For example, if a symmetric SRAM cell is powered up, it can power-up to either a '1' or a '0' with equal probability. Since the devices are nominally identical by design, the final state is a function of the differences in the strengths of the devices that originate from process variations. It turns out that the power-up value is quite repeatable, such that over 90% of SRAMs will always power-up to the same bit value every time when powered up in similar conditions. Moreover, if the process variations are uncorrelated across chips, these power-up bit values will be different from one chip to the other. Thus power-up values from a number of SRAM cells can be used as a random, unique, yet reliable signature of a chip.
Several implementations of PUFs have been proposed in literature over the last decade. Most of the implementations can be categorized as either delay based or bi-stable based, depending on the mechanism of response bit generation.
What are the applications of a PUF? PUFs can be used for device authentication and identification. Moreover, if the perfect reliability of PUF responses can be ensured, then they can also be used in random secret key generation applications.