Introduction to PUFs
Though Question#
- You're planning on leaving your laptop in a hotel room
- You suspect that criminals may sneak in, open your laptop, clone your hard-drive and plant a data skimming device
- How would you know if someone's been in your laptop?
How could you know if someone tampers with the device?#
- Tamper seal? It needs something that is unique so that it is hard to clone or replace.
- It should also be inexpensive
One Solution#
- Glitter nail polish
- Paint over screws in laptop case
- Why is it good?
- Randomness of glitter is very hard (if not impossible) to replicate
PUFs#
- Physically unclonable function
- Concept of unique objects applied to the digital domain
Building a PUF#
- Need something that varies randomly between chips
- But doesn't change too much as a chip ages
- Need randomness that's difficult/cost-prohibitive to reproduce
- Want something cheap and easy to add to a system
- Can't significantly affect performance, power, chip area, or reliability
- Must be compatible with commercial fab processes
- Need lots of ways to read/test/challenge the system to prevent spoofing
IC-to-IC Entropy#
- Process variations mean that every chip is different
- Sources of PUF variation
- Digital features sizes are smaller than the wavelength of light used to print them
- Some impurities exist in the substrates and dopants
- Tolerance in mask alignments between processing stages
- This means
- No two wires are exactly the same
- No two transistors are exactly the same
- Delays and initialization states vary
Three types of PUFs#
- Memory
- Look at what values memory cells naturally take on power-up
- Ring Oscillator
- Design several identical ring oscillators
- Count how many times each oscillates over a period
- Arbiter PUF (shown below)

Building a PUF: SRAM Example#
- Power on each chip
- Read the initial values from local SDRAMs
- Figure out which SRAM cells always initialize the same way
- Use these values as your PUF responses
Caution: Many sources of Entropy#
- Systematic process variations across chip wafers
- Randomness from temperature variation
- Randomness from hysteresis
- Charges may persist between power cycles
- Transistors (and interconnect) will degrade randomly with use, eventually flipping some initialization states
Difficulties in PUF Design#
- Differentiate per device random variation from thermal, system, and hysteresis dependent
- COmpute consistent(ish) responses for different inputs across a wide range of operating conditions
- Use error correcting codes to lose the "ish"
- That reduces numbe of possible challenge response pairs, though...