# Physical unclonable function

Physical unclonable functions (auch Physically unclonable functions) oder kurz PUF sind Hardwarestrukturen in einem Halbleiter, die dazu dienen, eine eindeutige Identifikation des Halbleiters zu ermöglichen oder Schlüssel für kryptografische Verfahren zu sichern. Halbleiter (im Folgenden als Systeme bezeichnet) können komplette elektronische Chipkarten oder Mikroprozessoren sein, insbesondere solche mit Hardware Security Module (HSM) für kryptografische Aufgaben. Wie ein Fingerabdruck ist die PUF ein individuelles Merkmal, welches an ein physikalisches Objekt gebunden ist. PUF werden als physikalisches Primitiv (in Anlehnung an ein kryptographisches Primitiv) eingestuft.

## Geschichte

Erste Versuche mit PUF bestanden aus einer Scheibe aus einem lichtdurchlässigen Material, in deren Schmelze bereits reflektierende Partikel eingemischt wurden. Die Scheibe wurde beleuchtet und Sensoren erfassten das reflektierte Licht. Der Herstellungsprozess und der Aufbau von Lichtquelle und Sensoren waren zwar immer gleich, jede Scheibe lieferte den Sensoren aber jeweils ein anderes Bild. Das Grundprinzip konnte später auf Halbleiterschaltungen übertragen werden.

## Anwendungen

Anwendungsmöglichkeiten werden auf folgenden Gebieten gesehen:
* in der Kryptografie zur Herstellung eines AES-Schlüssels
* eindeutige Kennzeichnung von Waren, um Produktfälschungen zu erkennen (Produktpiraterie)
* Authentifizierungen im Challenge-Response-Verfahren
* Authentifizierungszertifikate für mobile Endgeräte

## Funktionsprinzip

Die PUF basieren darauf, dass durch kleinste Schwankungen im Produktionsprozess bestimmte Baugruppen ein individuelles Verhalten zeigen, obwohl durch das Produktionsverfahren absolut gleiche Teile entstehen sollten. Systeme mit einer PUF-Einheit werden daher alle im absolut gleichen Produktionsprozess hergestellt und erfahren – zumindest im Hinblick auf die PUF – keinerlei individuelle Bearbeitung.
Die PUF-Einheit in der Hardware enthält Bereiche, die eine Eingabe (Challenge) mit bekannten Methoden (Funktion) verarbeiten und daraus einen Rückgabewert (Response) erzeugen. Teil dieses Challenge-Response-Verfahrens ist die PUF, die über ihr Verhalten eine für das Bauteil eindeutige Veränderung des Rückgabewertes verursacht.
Darüber hinaus kann beispielsweise durch kryptografische Hashes das Challenge-Response-Verfahren soweit abgesichert werden, dass aus Eingabe und Rückgabewert nicht auf das Verhalten der PUF zurückgeschlossen werden kann.
In Hardware gibt es eine Reihe von Möglichkeiten, von denen einige im Folgenden dargestellt werden.

### SRAM PUF

Ein Register eines SRAMs hat nach dem Einschalten zunächst eine zufällige Belegung der Bits mit 0 oder 1. Für die Funktion als PUF ist entscheidend, dass bei jedem Einschalten immer wieder die gleiche (oder überwiegend gleiche) Belegung mit 0/1 vorliegt, dass diese Belegung jedoch von System zu System anders ist.

### Ringoszillator PUF

Bei einer Ringoszillator-PUF werden verschiedene Glieder mit zeitlicher Verzögerung rückgekoppelt und beispielsweise auf einen Eingang eines Multiplexers gelegt. Die Dauer der Schwingung hängt wieder von kleinen Produktionstoleranzen ab und ist individuell für die PUF. Der Rückgabewert wird aus dem Vergleich von Oszillatorfrequenzen erreicht oder aus dem Auslesen eines Multiplexers zu einem bestimmten Zeitpunkt. Durch geschickten Vergleich lassen sich Schwankungen in den Umgebungsbedingungen vorteilhaft eliminieren.

## Notwendige Eigenschaften für Sicherheitsanwendungen

Damit PUF in kryptografischen Anwendungen eingesetzt werden können, sind verschiedene Eigenschaften erforderlich:
* Robustheit bedeutet, dass sich beim Auslesen äußere Einflüsse im Augenblick des Auslesens (Temperatur, Spannung usw.) nur so gering verändern, dass mit zuverlässigen Maßnahmen zur Fehlerkorrektur die Response immer das gleiche Verhalten oder Ergebnis zu einer Challenge liefert. Dazu werden beispielsweise Fehlerkorrekturverfahren eingesetzt.
* Unkopierbarkeit verhindert, dass beispielsweise ein Rohling einer Chipkarte zum Klon einer anderen Chipkarte gemacht werden kann. Die PUF kann nicht mehr verändert werden, und bei geeigneter Auslegung des Produktionsprozesses verschwindet die Wahrscheinlichkeit von zwei gleichartig produzierten Chipkarten.
* Unvorhersagbarkeit bedeutet, dass die Rückgabe (Response) nicht aus der Eingabe (Challenge) vorhergesagt werden kann. Daraus resultiert die Erwartung einer hohen Entropie der Antwort auch dann, wenn sich die Umgebungsbedingungen ändern. So soll nach einer Abkühlung des Halbleiters (Reduktion der thermischen Entropie) nicht eine Reduktion der informationellen Entropie (nach Claude Shannon) folgen.
* Tamper-Evidence bedeutet, dass die PUF auf invasive Manipulationen am Halbleiter reagiert und diese dadurch aufdeckt bzw. die Response nicht mehr akzeptiert wird.

## Andere Verfahren und Vorteile

PUF erfüllen die gleiche Funktion wie Halbleiter, die nach der Produktion über das gezielte Durchbrennen einiger Halbleiterbauelemente (Fuse-Bit) oder über einen softwaremäßig abgelegten Schlüssel in einem nichtflüchtigen Speicher individualisiert werden.
Der Vorteil der PUF liegt in den günstigen Kosten, da am Ende des Produktionsprozesses (im Rahmen der Funktionsprüfung) die PUF nur noch ausgelesen werden muss, damit der Schlüssel oder eine bestimmte Anzahl von Challenges und Responses in einer Datenbank abgelegt und der Halbleiter später jederzeit über die PUF identifiziert bzw. authentifiziert werden kann.
Darüber hinaus können einige einfache Angriffe auf das System ausgeschlossen werden. Eine Veränderung der PUF bedeutet eine Manipulation der mikroskopischen Bauteile auf der Schaltung, worauf einige PUF-Typen ihre Eigenschaften irreversibel und erkennbar ändern.