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...
Last updated on