-
TECHNISCHES GEBIET
-
Die Ausführungsformen der vorliegenden Erfindung beziehen sich auf ein elektronisches Gerät mit einem nicht-flüchtigen Speicher. Weitere Ausführungsformen der vorliegenden Erfindung beziehen sich auf eine elektronische Vorrichtung mit einer Vielzahl von Leseverstärkern, welche so konfiguriert sind, eine Mehrzahl von Speicherzellen auszulesen. Weitere Ausführungsformen der vorliegenden Erfindung betreffen ein Verfahren zur Erzeugung einer physikalisch unklonbaren Funktions(PUF)-Antwort einer elektronischen Vorrichtung. Weitere Ausführungsformen der vorliegenden Erfindung beziehen sich auf eine PUF Funktionalität auf der Grundlage nicht-flüchtigen Speicher(NVM)-Verhaltens.
-
HINTERGRUND
-
Die sogenannten PUFs (Physikalisch Unklonbare Funktionen) werden verwendet, um einen geheimen Schlüssel von physikalischen Eigenschaften eines Chips zu erzeugen, die sich willkürlich von Chip zu Chip unterscheiden. Dieser geheime Schlüssel ist nicht auf dem Chip (z. B. in einem NVM) gespeichert, sondern wird neu generiert (zumindest) jedes Mal, wenn der Chip eingeschaltet wird. Daher kann eine Rückerschließung (Reverse-Engineering) der Struktur oder des Speicherinhalts eines Chips nicht diesen Schlüssel offenbaren, da er nicht im stromlosen Chip vorhanden ist. Die Umsetzung eines PUF kann auf speziell entwickelter Hardware basieren oder die Eigenschaften von ohnehin bestehenden Schaltungen nutzen, die sich willkürlich zwischen Chips ändert. Das Hauptproblem für die Realisierung eines PUF liegt in der Fehlerwahrscheinlichkeit für die Bits, wenn ein Schlüssel unter verschiedenen Bedingungen (unterschiedliche Temperatur, Spannung, ...) neu generiert wird. Je höher die Fehlerwahrscheinlichkeit ist, desto höher wird der Aufwand für die korrekte Wiederherstellung des Schlüssels. Oberhalb einer bestimmten Irrtumswahrscheinlichkeit ist keine Wiederherstellung des Schlüssels möglich. Verschiedene Verfahren, um die Fehlerwahrscheinlichkeit bei der Wiederherstellung des Schlüssels in den Griff zu bekommen, sind aus anderen PUF-Umsetzungen bekannt und sind nicht Teil dieser Diskussion.
-
Einige herkömmliche Lösungen setzen speziell entworfene und implementierte PUF-Hardware ein, die es typischerweise ermöglichen, geringe Bitfehlerwahrscheinlichkeiten zu erreichen. Dementsprechend ist ein relativ geringer Aufwand für eine nachgeschaltete Fehlerkorrektur erforderlich. Allerdings muss eine solche zweckbestimmte PUF-Hardware speziell auf einem Chip implementiert werden und braucht somit eine zusätzliche Fläche. Die PUF-Hardware muss auch auf jedem Chip einer Reihe eingeführt werden, auch wenn nur wenige Chips eine physikalisch unklonbare Funktion benötigen. Für die Chips, welche keine PUF brauchen, bedeutet dies verschwendete Fläche.
-
Die
US 2009 / 0 165 086 A1 bezieht sich auf einen Zufallszahlengenerator, der Zufallszahlen basierend auf einer Elektronenaktivität in einer ausgewählten Speicherzelle erzeugt.
-
In [BHARGAVA, M. [et al.]: Attack Resistant Sense Amplifier Based PUFs (SA-PUF) with Deterministic and Controllable Reliability of PUF Responses, Hardware-Oriented Security and Trust (HOST), 2010 IEEE International Symposium on, Year: 2010, Pages: 106-111, DOI: 10.1109/HST.2010.5513106] wird eine PUF beschrieben, die auf einem angriffsresistenten Sensorverstärker basiert.
-
Daher ist es erwünscht, ein Konzept bereitzustellen, welches das Ausmaß der speziell entworfenen und implementierten PUF und/oder die Verwendung von Allzweck-Hardware auf dem Chip zum Erzeugen einer PUF-Antwort verringert.
-
KURZ DARSTELLUNG
-
Ausführungsformen der vorliegenden Erfindung beziehen sich auf ein elektronisches Gerät mit einem nicht-flüchtigen Speicher, einen Speicher-Controller und eine Auswerteeinrichtung. Der nicht-flüchtige Speicher umfasst eine Vielzahl von Speicherzellen. Der Speicher-Controller ist konfiguriert, um Steuersignale an den nicht-flüchtigen Speicher bereitzustellen, wodurch der nicht-flüchtige Speicher oder ein ausgewählter Speicherbereich des nicht-flüchtigen Speichers in einem Lesezustand oder in einem schwachen Löschzustand sein kann. Der schwache Löschzustand bewirkt, dass die Vielzahl von Speicherzellen die unterschiedlichen Zustände in Abhängigkeit von unterschiedlichen (willkürlich variierenden) physikalischen Eigenschaften der Vielzahl von Speicherzellen aufrechterhalten. Die Auswerteeinrichtung ist zum Auslesen der Mehrzahl von Speicherzellen und zum Bereitstellen eines Auslesemusters während des Lesezustands konfiguriert. Das Auslesemuster, welches nach einem vorhergehenden schwachen Löschzustand bereitgestellt wird, entspricht einer physikalisch unklonbaren Funktions-Antwort (PUF-Antwort) des elektronischen Geräts. Die PUF-Antwort kann zur eindeutigen Identifizierung des elektronischen Geräts eingesetzt werden.
-
Weitere Ausführungsformen der vorliegenden Erfindung beziehen sich auf ein elektronisches Gerät mit einer Vielzahl von Leseverstärkern, mit einem Referenzsignalgenerator, mit einem Referenzsignalvervielfältiger und mit einer Vielzahl von Eingangsauswahleinrichtungen. Die Vielzahl von Leseverstärkern ist zum Auslesen einer Vielzahl von Speicherzellen durch Vergleichen eines Zellensignalausgangs von einem der Vielzahl von Speicherzellen mit einem Referenzsignal konfiguriert. Der Referenzsignalgenerator ist konfiguriert, um das Referenzsignal zu erzeugen. Der Referenzsignalvervielfältiger ist konfiguriert, um ein vervielfältigtes Referenzsignal bereitzustellen. Die Vielzahl von Eingangsauswahleinrichtungen ist konfiguriert, um selektiv eines aus Zellensignal und vervielfältigtem Referenzsignal an die Vielzahl von Leseverstärkern zum Vergleich mit dem Referenzsignal anzulegen. Der Vergleich des vervielfältigten Referenzsignals mit dem Referenzsignal durch die Vielzahl von Leseverstärkern erzeugt eine physikalisch unklonbare Funktions(PUF)-Antwort des elektronischen Geräts. Die physikalisch unklonbare Funktions(PUF)-Antwort spiegelt Offsetunterschiede der Vielzahl von Leseverstärkern wider.
-
Weitere Ausführungsformen der vorliegenden Erfindung betreffen ein elektronisches Gerät mit einer Einrichtung zum Speichern von Daten, einer Einrichtung zum Steuern eines Betriebszustands der Einrichtung zum Speichern von Daten und eine Einrichtung zum Auslesen des internen Zustands der Einrichtung zum Speichern von Daten. Die Einrichtung zum Speichern von Daten weist zumindest einen Lesezustand und einen schwachen Löschzustand als Betriebszustände auf, die durch die Einrichtung zum Steuern des Betriebszustands gesteuert werden. Der schwache Löschzustand bewirkt, dass die Einrichtung zum Speichern von Daten einen internen Zustand beibehält, der in einem Toleranzbereich von einem charakteristischen internen Zustand der Einrichtung zum Speichern von Daten liegt. Die Einrichtung zum Auslesen des internen Zustands der Einrichtung zum Speichern von Daten ist auch konfiguriert, um eine physikalisch unklonbare Funktions(PUF)-Antwort auf der Grundlage des internen Zustands der Einrichtung zum Speichern von Daten auszugeben.
-
Weitere Ausführungsformen der vorliegenden Erfindung stellen ein Verfahren zum Erzeugen einer physikalisch unklonbaren Funktions(PUF)-Antwort eines elektronischen Geräts bereit. Das Verfahren umfasst das Anlegen eines schwachen Löschzustands an zumindest einen Abschnitt eines nicht-flüchtigen Speichers (non-volatile memory NVM), so dass die Speicherzellen zumindest des Abschnitts des nicht-flüchtigen Speichers in einen unterschiedlichen internen Zustand in Abhängigkeit von verschiedenen physikalischen Eigenschaften der Speicherzellen gelöscht werden. Das Verfahren umfasst auch das Anlegen eines Lesezustands in zumindest dem Abschnitt des nicht-flüchtigen Speichers. Die verschiedenen internen Zustände der Speicherzellen werden dann ausgelesen, um ein Auslesemuster bereitzustellen. Das Verfahren umfasst des Weiteren die Bestimmung der physikalisch unklonbaren Funktions-Antwort des elektronischen Geräts auf der Basis des Auslesemusters.
-
Weitere Ausführungsformen der vorliegenden Erfindung beziehen sich auf ein Verfahren zum Erzeugen einer physikalisch unklonbaren Funktions-Antwort eines elektronischen Geräts. Das Verfahren umfasst das Erzeugen eines Referenzsignals für eine Vielzahl von Leseverstärkern, welche so konfiguriert sind, eine Mehrzahl von Speicherzellen auszulesen. Das Referenzsignal wird dann vervielfältigt, um ein vervielfältigtes Referenzsignal zu erhalten. Das Verfahren umfasst des Weiteren das Anlegen des Referenzsignals an Referenzsignaleingängen der Vielzahl von Leseverstärkern und das Anlegen des vervielfältigten Referenzsignals an den Zellensignaleingängen der Vielzahl von Leseverstärkern. Die Vielzahl von Leseverstärkern erzeugt entsprechende Ausgangssignale als eine Funktion der verschiedenen Offsetunterschiede der Leseverstärker. Die physikalisch unklonbare Funktions-Antwort wird dann unter Verwendung der jeweiligen Ausgangssignale der Vielzahl von Leseverstärkern bestimmt.
-
Figurenliste
-
Ausführungsformen der vorliegenden Erfindung werden im Detail mit Hilfe der beiliegenden Figuren beschrieben, wobei:
- 1 ein schematisches Blockdiagramm eines elektronischen Geräts zeigt, welches willkürliche Variationen der physikalischen Eigenschaften von Speicherzellen in einem nicht-flüchtigen Speicher zur Erzeugung einer PUF-Antwort verwendet;
- 2 ein schematisches Schaltbild eines Abschnitts einer NVM eines elektronischen Geräts gemäß einigen Ausführungsformen zeigt;
- 3 eine statistische Verteilung von Ausgangswerten einer Vielzahl von NVM-Zellen über einer Schwellenspannung Vth zeigt;
- 4 ein schematisches Schaltbild eines Abschnitts eines NVM zeigt, in welchem Speicherzellen gepaart sind, um ein Auslesemuster und schließlich eine PUF-Antwort zu bestimmen;
- 5 eine statistische Verteilung der Ausgangswerte der Vielzahl von NVM-Zellen über die Schwellenspannung Vth und auch einige Beispiele für Zellenausgangswerte innerhalb der Paare von Speicherzellen zeigt;
- 6 eine ähnliche Ansicht wie 5 ist und zusätzlich die Maskierung eines gegebenen Speicherzellenpaars zeigt, in welchem die Speicherzellenausgänge auch zueinander ähnlich sind;
- 7 ähnlich zu 5 ist und zusätzlich ein explizites Beschreiben der beiden Zellen eines Speicherzellenpaars zeigt, welche auch ähnlich in ihren Ausgangswerten sind und daher nicht zuverlässig zur PUF-Generation ausnutzbar sind;
- 8 ein schematisches Flussdiagramm eines Verfahrens zum Erzeugen einer physikalisch unklonbaren Funktions-Antwort gemäß einiger Ausführungsformen zeigt;
- 9 ein schematisches Blockdiagramm eines elektronischen Geräts gemäß weiterer Ausführungsformen zeigt;
- 10 ein schematisches Blockdiagramm eines elektronischen Geräts gemäß weiteren Ausführungsformen zeigt, welches die willkürlichen Unterschiede innerhalb einer Vielzahl von Leseverstärkern zum Erzeugen einer PUF-Antwort verwendet;
- 11 ein schematisches Flussdiagramm eines Verfahrens zum Erzeugen einer physikalisch unklonbaren Funktions-Antwort gemäß weiterer Ausführungsformen zeigt;
- 12A und 12B Messergebnisse zeigen, welche demonstrieren, dass die willkürlichen Unterschiede zwischen den Speicherzellen in einem NVM verwendet werden können, um PUF-Antworten zu erzeugen;
- 13 das unterschiedliche Verhalten verschiedener Leseverstärker zeigt, welche auf unterschiedlichen Chips, aber an entsprechenden Positionen innerhalb der verschiedenen Chips implementiert sind; und
- 14 ein schematisches Blockdiagramm eines elektronischen Geräts zeigt, welches eine Fehlerkorrektureinrichtung zum Korrigieren des Auslesemusters unter Verwendung von Redundanzinformation umfasst.
-
DETAILLIERTE BESCHREIBUNG
-
Bevor Ausführungsformen der vorliegenden Erfindung detailliert anhand der beiliegenden Figuren beschrieben werden, wird darauf hingewiesen, dass die gleichen Elemente oder funktional gleiche Elemente mit den gleichen Bezugszeichen versehen sind und dass eine wiederholte Beschreibung für mit den gleichen Bezugszeichen versehene Elemente weggelassen wird.
-
1 zeigt ein schematisches Blockdiagramm eines elektronischen Geräts 100 oder eines Abschnitts davon, der einen nicht-flüchtigen Speicher (NVM) 110 mit einer Vielzahl von Speicherzellen 112a, 112b, 112c ... 112n umfasst. Das elektronische Gerät umfasst des Weiteren einen Speicher-Controller (CTRLR) 120, welcher konfiguriert ist, Steuersignale (CTRL SIGNALS) an den nicht-flüchtigen Speicher 110 zu liefern. Die Steuersignale werden an die Speicherzellen 112a bis 112n verteilt und definieren einen aktuellen Betriebszustand für die Vielzahl von Speicherzellen. Typischerweise stellen die Speicherzellen 112a bis 112n zumindest zwei Betriebszustände bereit: einen Lesezustand und einen schwachen Löschzustand. Das elektronische Gerät umfasst des Weiteren eine Auswerteeinrichtung 130, welche mit der Vielzahl von Speicherzellen 112a bis 112n verbunden ist. Die Auswerteeinrichtung 130 ist konfiguriert, um die Vielzahl von Speicherzellen 112a bis 112n auszulesen und ein Auslesemuster 140 im Lesezustand des nicht-flüchtigen Speichers 110 zu liefern. Das Auslesemuster 140, das nach einem vorhergehenden schwachen Löschzustand bereitgestellt wird, entspricht einer physikalisch unklonbaren Funktions-Antwort (PUF-Antwort) des elektronischen Geräts 100, welche eindeutig das elektronische Gerät 100 identifiziert. Das Auslesemuster 140 kann weiterer Verarbeitung unterzogen werden, an deren Ende die entsprechende PUF-Antwort erzielt ist.
-
Die vorgeschlagene PUF-Antworterzeugung nutzt die Eigenschaften und das Verhalten des NVM 110, das bereits vorhanden ist oder auf vielen Chips wie Mikroprozessoren und Mikrocontroller, welche für Chipkarten-Anwendungen, Automotive-Anwendungen und viele andere Anwendungen eingesetzt werden, erforderlich ist. Zwei Eigenschaften des NVM 110, welche eingesetzt werden können, da sie von Chip zu Chip variieren, aber ansonsten relativ stabil sind, sind:
- Schwankungen in den physikalischen Eigenschaften der NVM-Speicherzellen 112a bis 112n selbst (insbesondere wie die TOX(Tunnel-OXid)-Dicke), die durch das Lesen dieser Zellen unter bestimmten Bedingungen oder Verfahren bestimmt werden können. Diese Bedingungen und/oder Verfahren unterscheiden sich notwendigerweise von den üblicherweise verwendeten Betriebszuständen des NVM 110, da üblicherweise die Schwankungen keinen Einfluss auf das Verhalten des NVM 110 haben dürfen. Diese Möglichkeit und mehrere Varianten davon sind in den 1 bis 7 dargestellt und in der entsprechenden Beschreibung erklärt.
-
Eine weitere Möglichkeit sind die Offsets der Leseverstärker, die in einem Festspeicher vorhanden sind und die willkürlichen Variationen ihrer physikalischen Eigenschaften unterworfen sind. 9 bis 11 zeigen schematisch entsprechende elektronische Vorrichtungen und Verfahren zum Erzeugen einer PUF-Antwort.
-
Anstelle der Verwendung eines nicht-flüchtigen Speichers besteht eine herkömmliche Lösung darin, den Reset-Wert eines Random Access Memory (RAM) auszunützen. Da der RAM sowieso vorhanden ist, bedarf es keiner zusätzlichen Hardware für die PUF (oder zumindest nur einer geringen Menge an zusätzlicher Hardware). Die PUF-Funktionalität kann als Software implementiert sein („Software-PUF“), so dass sie nur auf den Chips, die eine PUF brauchen, implementiert werden muss. Allerdings werden Reset-Werte von RAM-Bits durch Umgebungsbedingungen (und sogar von dem letzten Stand beim Abschalten und von der Zeitspanne seit dem Abschalten) beeinflusst. Dies kann zu einer recht hohen Fehlerquote führen. Ein weiterer Nachteil bei RAM-basierten PUFs besteht darin, dass typischerweise eine große Menge an RAM-Bits ausgewertet werden muss, so dass komplizierte Algorithmen und ein hoher Software-Aufwand (Code-Größe und Laufzeit) für PUF-Antwort-Wiederherstellung (die für eine nachfolgende Schlüssel-Generierung, d.h. für die Schlüssel-Wiederherstellung verwendet werden kann) nötig sind.
-
Das elektronische Gerät 100, welches systematisch im Blockdiagramm, das in 1 ausgebildet ist, dargestellt ist, kann wie folgt betrieben werden.
-
Die folgenden Aktionen können einmal als Vorbereitung des PUF-Bereichs durchgeführt werden, zum Beispiel während einer Anmeldungsphase, in welcher ein Referenzauslesemuster für das vorliegende elektronische Gerät bestimmt wird (auch unten als „Schritt 1“ bezeichnet).
-
Reservieren eines Bereichs von NVM-Zellen, vorzugsweise eine NVM-Speicherseite (= Wortlinie) oder eines Abschnitts einer NVM-Seite.
-
Vollständig Beschreiben aller Bits des Bereichs, um jedweden bereits vorhandenen Informationsgehalt der Zellen zu entfernen.
-
Löschen aller Bits des Bereichs (z.B. Löschen der Seite) mit einem schwach gelöschten Zustand (d.h. typischerweise nicht ein vollständiges Löschen wie in der normalen Anwendung, was ansonsten die folgende Auswertung der Zellen schwieriger als notwendig machen würde.)
-> Alle Zellen sind nominell auf den gleichen Zustand gelöscht, aber in Wirklichkeit unterscheiden sich die Zustände geringfügig etwas in Abhängigkeit von den physikalischen Eigenschaften der beteiligten NVM-Zellen.
-
Wahlweise: Bestimmen der Lese-Bedingungen (wie Lese-Spannung und Referenz-Strom), die etwa 50% Bit-Wert = ‚1‘ und 50% Bit-Wert = ‚0‘ beim Lesen des NVM Zellbereich erzielen. Speichern dieser Bedingungen entweder Chip-intern oder extern.
-
2 zeigt ein schematisches Schaltbild eines Abschnitts eines Speicherzellenfeldes, wobei der Zellenbereich in der reservierten Seite 1 durch gestrichelte Kästen markiert ist. Die Speicherzellen können beispielsweise 2T Zellen (Zwei-Transistor Zellen) wie HS3P (Hot Source Triple Poly) oder 2T-UCP (2-Transistor Uniform Channel-Program) sein. Die Speicherzellen 112a bis 112n sind mit einer Vielzahl von Bitleitungen 113a bis 113n verbunden, die zu Leseverstärkern (nicht in 2 dargestellt) führen.
-
3 zeigt eine statistische Verteilung der Schwellenspannung Vth für eine Vielzahl von NVM-Zellen, bei welcher die einzelnen Speicherzellen 112a bis 112n ihren Auslesewert von binärer „Eins“ zu binärer „Null“ ändern. Die Speicherzellen 112a bis 112n sind jedoch nicht darauf beschränkt, binäre Speicherzellen zu sein, sondern könnten auch ternäre Speicherzellen oder auch Speicherzellen sein, die eine noch höhere Anzahl von unterschiedlichen Speicherauslesewerten unterstützen. Mit anderen Worten veranschaulicht 3 schematisch die Zellenzustandsverteilung nach (schwachem) Löschen, wobei der Lesezustand durch die orthogonale Linie gekennzeichnet ist, welche den Bereich, wo der Speicherauslesewert „eins“ ist, von dem Bereich trennt, wo der Speicherauslesewert „null“ ist. Die Zellenzustandsverteilung weist in dem Beispiel, welches in 3 gezeigt ist, ungefähr die Gauß'sche Verteilung auf, die angenommen werden kann, wenn die Anzahl der Speicherzellen ausreichend hoch ist. Dennoch sind andere Zellenzustandsverteilungen ebenfalls möglich.
-
Während einer Überprüfungsphase einer PUF-Anwendung wird das Auslesemuster und schließlich die PUF-Antwort des elektronischen Geräts jedes Mal regeneriert, wenn die PUF-Antwort benötigt wird. Zum Beispiel kann die PUF-Antwort als ein kryptographischer Schlüssel verwendet werden, welcher zum Entschlüsseln von Daten, die in Abschnitten der NVM 110, die nicht zur PUF-Funktionalität des elektronischen Geräts benötigt werden, gespeichert sind. Typischerweise ist das Auslesemuster, welches während einer Überprüfungsphase erzeugt wird, ähnlich dem Referenzauslesemuster, aber unterscheidet sich dennoch geringfügig vom Referenzauslesemuster in einer meist willkürlichen Weise. Unterschiedliche Umgebungsbedingungen (Temperatur, Versorgungsspannung, usw.) können auch zu Unterschieden zwischen dem Referenzauslesemuster (erzeugt während der Anmeldungsphase) und einem Auslesemuster, welches während einer Überprüfungsphase generiert wird, führen. Diese Unterschiede lassen sich typischerweise mit Fehlerkorrekturtechniken korrigieren.
-
Die folgenden Aktionen können jedes Mal durchgeführt werden, wenn das Auslesemuster (wiederum) erzeugt werden muss (auch als „Schritt 2“ bezeichnet):
- Option 1:
- Erstellen geeigneter vorgegebener Lesebedingungen oder Lesebedingungen, welche in Schritt 1 ermittelt werden, die sich von den Lesebedingungen, welche auf den normalen Betrieb des NVM angewendet werden, unterscheiden.
-
Auslesen aller Zellen im Bereich und (Re-)Generieren des Schlüssels aus dem Ergebnis.
- Option 2:
- In einer Schleife Ausprobieren verschiedener vorgegebener Lesebedingungen oder leichter Variationen der Lesebedingungen, welche in Schritt 1 bestimmt werden, bis ungefähr 50% Bit = ‚1‘ und 50% = ‚0‘ gelesen werden.
-
Auslesen aller Zellen im Bereich und (Re-)Generieren des Schlüssels aus dem Ergebnis.
-
Für das elektronische Gerät 100, welches schematisch in 1 dargestellt ist, und die entsprechende PUF-Generierung, welche in Verbindung mit den 1 bis 3 erläutert wird, ist nur ein kleiner Bereich von NVM-Zellen notwendig. Darüber hinaus bedarf es nur eines kleinen und einfachen Aufwands für die Generierung der PUF-Bits. Bei Option 1 ist keine Kompensation von Temperaturschwankungsauswirkungen oder von Degradation im Laufe der Zeit, z.B. durch störende Einflüsse, vorgesehen. Im Falle von Option 2 ist nur eine teilweise Kompensation von beispielsweise Temperaturschwankungsauswirkungen oder von Degradation im Laufe der Zeit vorgesehen. Dies kann zu einer relativ hohen Fehlerrate führen, die durch einen relativ hohen Aufwand zur Fehlerkorrektur behandelt werden kann.
-
Relativ hohe Fehlerraten können auch durch Änderungen des Inhalts von anderen NVM-Zellen, die mit den gleichen Bitleitungen wie die NVM-Zellen verbunden sind, welche für die PUF-Generierung vorbehalten sind, (Verändern des wichtigsten NVM-Inhalts im Laufe der Zeit) verursacht werden. Darüber hinaus kann die Willkürlichkeit der einzelnen Bits durch Leseverstärker-Offsets begrenzt sein, welche systematisch die Messergebnisse beeinflussen. Wiederum können diese Erscheinungen durch einen relativ hohen Aufwand für die Fehlerkorrektur behandelt werden.
-
4 und 5 beziehen sich auf ein elektronisches Gerät gemäß weiteren Ausführungsformen, in denen der Schwerpunkt von der Verwendung nur eines kleinen Abschnitts des NVM zu einem reduzierten Aufwand für die Fehlerkorrektur verschoben ist. Zu diesem Zweck können die folgenden Maßnahmen einmal als Vorbereitung des PUF-Bereichs, z.B. während der Anmeldungsphase (Schritt 1') durchgeführt werden:
- Reservieren von zwei Bereichen von NVM-Zellen, welche mit identischen Bitleitungen verbunden sind, vorzugsweise zwei NVM Speicherseiten (= Wortlinien) oder identische Abschnitte von zwei NVM Seiten.
-
Vollständiges Überschreiben aller Bits der beiden Bereiche, um bereits vorhandenen Informationsgehalt der Zellen zu entfernen.
-
Löschen aller Bits der beiden Bereiche (z.B. Löschen der beiden Seiten) auf den gleichen schwachen Löschzustand. Dies führt in allen Zellen der beiden Bereiche zum nominellen Löschen auf den gleichen Zustand, aber in Wirklichkeit unterscheiden sich die Zustände leicht (in einer willkürlichen Weise zwischen den einzelnen Exemplaren des elektronischen Geräts) in Abhängigkeit von den physikalischen Eigenschaften der beteiligten NVM-Zellen.
-
4 zeigt ein schematisches Schaltbild eines Abschnitts eines NVM-Speicherfelds mit dem Bereich der Zellenpaare 412a bis 412n in den reservierten Seiten, gekennzeichnet durch gestrichelte Kästen.
-
Während der Überprüfungsphase können die folgenden Aktionen jedes Mal durchgeführt werden, wenn das Auslesemuster (entsprechend der PUF-Antwort und/oder z.B. einem kryptographischen Schlüssel) (re-)generiert werden muss. Verschiedene vorgegebene Lesebedingungen können in einer Schleife in einer „aufsteigenden Reihenfolge“ oder einer „abnehmenden Reihenfolge“ ausprobiert werden. Für jede Bitleitung 113a bis 113n wird die eine der beiden NVM-Zellen, welche mit derselben Bitleitung verbunden sind, bestimmt, die früher schaltet, dh ihren Zustand früher in der Schleife über das Lesebedingungen verändert. Nachdem die Schleife beendet ist, kann der Schlüssel dann aus dem Ergebnis (re) generiert werden. Die Schleife kann beendet werden, wenn alle vorgegebenen Lesebedingungen ausprobiert worden sind, oder sie kann vorzeitig beendet werden, wenn für jede Bitleitung 113a bis 113n die früher schaltende Speicherzelle und somit der Speicherauslesewert des entsprechenden Speicherzellenpaars 412a bis 412n bereits bestimmt worden ist.
-
Das Konzept der Speicherzellenpaare kann auf Speicherzellengruppen aus drei oder mehr Speicherzellen verallgemeinert werden.
-
Der nicht-flüchtige Speicher 110 umfasst einen ersten Speicherabschnitt (z.B. Seite 1 in 4) und einen zweiten Speicherabschnitt (z.B. Seite 2 in 4). Eine erste Speicherzelle in dem ersten Speicherabschnitt und eine zweite Speicherzelle in dem zweiten Speicherabschnitt bilden ein Speicherzellenpaar, z. B. 412a, aus. Weitere Speicherzellenpaare 412b bis 412n sind auch in 4 dargestellt. Der Speicher-Controller 120 ist konfiguriert, um die Steuersignale für den nicht-flüchtigen Speicher während des Lesezustands zu verändern, um unterschiedliche Lesebedingungen für den nicht-flüchtigen Speicher 110 zu liefern. Diese verschiedenen Lesebedingungen können beispielsweise Versorgungsspannungen oder Versorgungsströme Vorspannungen oder Stabilisierungsströme, Schwellenspannungen oder Schwellenströme, usw. sein, welche an die Speicherzellen 112a bis 112n und/oder Leseverstärker, die zum Auslesen der Speicherinhalte der Speicherzellen verwendet werden, angelegt werden. Die Auswerteeinrichtung 130 ist konfiguriert, um zu bestimmen, welche Speicherzelle des Speicherzellenpaares 412a bis 412n einen unterschiedlichen Speicherauslesewert zwischen einem Lesezustand und einem nachfolgenden Lesezustand aufweist. Die Auswerteeinrichtung 130 ist auch konfiguriert, um das Auslesemuster auf der Grundlage dieser Bestimmung der Reihenfolge des Umschaltens der Speicherzellen in einem Speicherzellenpaar 412a bis 412n zu bestimmen. Typischerweise wird die Vielzahl von vorgegebenen Lesebedingungen vom Speicher-Controller 120 in einer Reihenfolge analysiert, welche die Speicherzellen ihren jeweiligen Auslesewert bis zu einem bestimmten Lesezustand erhalten lässt und einen anderen Auslesewert für die verbleibenden Lesebedingungen aufrechterhalten lässt. In anderen Worten gesagt, während der Analyse der unterschiedlichen vorgegebenen Lesebedingungen folgen die Auslesewerte der einzelnen Speicherzellen typischerweise einem mathematisch monotonen Verhalten, so dass der Auslesewert einer gegebenen Speicherzelle nicht auf einen bestimmten Wert zurückfällt, den sie bereits zuvor aufwies. Die Ausdrücke „erste Lesebedingung“ und „zweite Lesebedingung“ sind nicht so auszulegen, dass sie unbedingt die allererste und die genau zweite Lesebedingung sein müssen, sondern definieren eine Reihenfolge der ersten Lesebedingung und der zweiten Lesebedingung. Typischerweise wird die zweite Lesebedingung unmittelbar auf die ersten Lesebedingung folgen, aber auch dies ist nicht notwendigerweise so, d.h., es kann eine oder mehrere Zwischenlesebedingungen zwischen der ersten Lesebedingung und der zweiten Lesebedingung geben.
-
Gemäß einigen Ausführungsformen kann die erste Speicherzelle und die zweite Speicherzelle einen identischen Aufbau und/oder eine identische Ausrichtung aufweisen. Somit reagieren die ersten und die zweiten Speicherzellen eher in der gleichen Weise auf unterschiedliche Betriebsbedingungen, wie Temperatur, Magnetfeld, Strahlung usw.
-
Der Speicher-Controller 120 kann des Weiteren konfiguriert sein, um eine Mehrzahl von Wiederholungen ausführen, um die Steuersignale für den nicht-flüchtigen Speicher während des Lesezustands zu variieren. Die Lesebedingungen können in einem (mathematisch) monotonen Sinn von einer Wiederholung zu einer nachfolgenden Wiederholung variiert werden. Man beachte, dass die Mehrzahl von Wiederholungen während der Anmeldungsphase des elektronischen Geräts und auch während einer oder mehrerer Überprüfungsphasen des elektronischen Geräts ausgeführt werden kann. Die Auswerteeinrichtung 130 kann konfiguriert sein, um zu bestimmen, welche Speicherzelle des Speicherzellenpaars 412a bis 412n ihren Speicherauslesewert zu einer früheren Wiederholung als die andere Speicherzelle ändert, um eine entsprechende Speicherzellenreihenfolgeninformation zu erhalten. Um dies mit 4 zu veranschaulichen, kann die Speicherzellenreihenfolgeninformation einfach angeben, ob in einem gegebenen Speicherzellenpaar (z.B. Speicherzellenpaar 412c) die Speicherzelle auf Seite 2 ihren Speicherauslesewert früher ändert oder die Speicherzelle auf Seite 1 ihren Speicherauslesewert früher ändert. Im ersteren Fall kann die Speicherzellenreihenfolgeninformation eine binäre „Null“ sein und im weiteren Fall kann die Speicherzellenreihenfolgeninformation, zum Beispiel, eine binäre „Eins“ sein. Die Auswerteeinrichtung 130 kann des Weiteren konfiguriert sein, um das Auslesemuster auf der Grundlage der Speicherzellenreihenfolgeninformation zu ermitteln. Dies und die Auswerteeinrichtung 130 sammelt und kombiniert typischerweise die einzelne Speicherzellenreihenfolgeninformation, die von den einzelnen Speicherzellenpaaren 412a bis 412n zur Verfügung gestellt wird. Zum Beispiel kann das Auslesemuster ein Bit-Vektor aus der Vielzahl von Speicherzellenreihenfolgeninformationen sein.
-
5 zeigt die Zellzustandsverteilung nach (schwacher) Löschung für drei unterschiedliche Zellenpaare. Es ist ersichtlich, dass die Speicherzellen des Paares 2 ihre Speicherauslesewerte bei relativ niedrigen Schwellenspannungen Vth ändern, während die Speicherzellen des Paars 3 ihre Speicherauslesewerte bei relativ hohen Schwellenspannungen Vth ändern. Interessanter ist jedoch die Tatsache, dass die Speicherzellen in Paar 1 ihre Speicherauslesewerte bei deutlich unterschiedlichen Schwellenspannungen ändern. Ebenso ändern die Speicherzellen in Paar 2 ihre jeweiligen Speicherauslesewerte bei deutlich unterschiedlichen Schwellenspannungen. Speicherzellenpaar 3 zeigt ein anderes Verhalten: anscheinend sind die erste Speicherzelle und die zweite Speicherzelle in Paar 3 im Hinblick auf ihre physikalischen Eigenschaften (z. B. Tunneloxiddicke) so ähnlich, dass sie ihre Speicherauslesewerte im Wesentlichen bei der gleichen Schwellenspannung ändern. Da die zwei Speicherzellen im Speicherzellenpaar 3 so ähnlich sind, kann nicht zuverlässig sichergestellt werden, dass die erste Speicherzelle immer ihren Speicherauslesewert vor der zweiten Speicherzelle oder umgekehrt ändert. Daher hat Paar 3 ein sehr willkürliches Verhalten bezüglich seiner Speicherzellenreihenfolgeinformationen. Es ist auch möglich (oder sogar sehr wahrscheinlich), dass die erste und die zweite Speicherzelle des Speicherzellenpaars 3 im selben Schleifenschritt sehr oft umschalten. In diesem Fall wird keine Bearbeitung von Paar 3 und weiterer Zellenpaare, welche ein ähnliches Verhalten aufweisen, wo beide Zellen im selben Schleifenschritt schalten, durchgeführt. Diese Zellenpaare gehen typischerweise in der Fehlerrate auf. Auf der anderen Seite ist nur ein kleiner Bereich von NVM-Zellen für Ausführungsformen notwendig, die Speicherzellenpaare einsetzen. Der Software-Aufwand für die Erzeugung von PUF-Bits ist noch relativ klein und einfach, aber höher als in den Ausführungsformen, welche in Verbindung mit den 2 und 3 beschrieben wurden.
-
Unter Einbeziehung des Unterschieds zwischen zwei Speicherzellen an den gleichen Bitleitung 113a bis 113n wird erwartet, dass sich die hohen Fehlerraten stark verringern, da die folgenden Wirkungen im Wesentlichen automatisch ausgeglichen werden:
- Temperaturvariationseffekt (identische Temperatur beider Zellen).
-
Degradation im Laufe der Zeit, z.B. aufgrund von Störungen (gesehen auf die gleiche Weise durch beide Zellen).
-
Änderungen des Inhalts der anderen NVM-Zellen, die mit den gleichen Bitleitungen 113a bis 113n wie die NVM-Zellen, welche für PUF reserviert sind, verbunden sind (gesehen auf die gleiche Weise durch beide Zellen).
-
Einfluss der Leseverstärker-Offsets (da ein identischer Leseverstärker verwendet wird, um beide Zellen zu lesen).
-
Im Vergleich zu den Ausführungsformen, welche im Zusammenhang mit 2 und 3 beschrieben worden sind, kann ein verringerter Aufwand zur Fehlerkorrektur erwartet werden, wenn Speicherzellenpaare oder Speicherzellengruppen eingesetzt werden.
-
Ausführungsformen werden nachfolgend in Verbindung mit den 6 und 7 beschrieben, welche unterschiedliche Optionen zur Bearbeitung ununterscheidbarer Speicherzellenpaare, wie in Paar 3 in 5, bieten. Während einer Anmeldungsphase des elektronischen Geräts 100 werden die folgenden Aktionen einmal als Vorbereitung des PUF-Bereichs (ähnlich oder identisch zu dem, was oben beschrieben ist) durchgeführt:
- Reservieren von zwei Bereichen von NVM-Zellen, welche mit identischen Bitleitungen 113a bis 113n, beispielsweise zwei NVM-Speicherseiten (= Wortleitungen) oder identische Abschnitte von zwei NVM-Seiten, verbunden sind.
-
Vollständiges Beschreiben aller Bits der beiden Bereiche, um bereits vorhandenen Informationsgehalt der Zellen zu entfernen.
-
Löschen aller Bits der beiden Bereiche (z.B. Löschen der beiden Seiten) auf den gleichen schwach gelöschten Zustand. Dies führt dazu, dass alle Zellen der beiden Bereiche nominell auf den gleichen Zustand gelöscht sind, aber in Wirklichkeit sich die Zustände geringfügig in Abhängigkeit von den physikalischen Eigenschaften der beteiligten NVM-Zellen unterscheiden.
-
In einer Schleife werden verschiedene vorbestimmte Lesebedingungen in einer „aufsteigenden Reihenfolge“ ausprobiert und für jede Bitleitung (d.h. für jedes Speicherzellenpaar) wird die eine der beiden NVM-Zellen bestimmt, welche früher schaltet, d.h. früher ihren Zustand in der Schleife über die Lesebedingungen verändert.
-
Zusätzlich zu dem, was oben im Zusammenhang mit den 4 und 5 beschrieben ist, wird die folgende Maßnahme auch durchgeführt:
- Für jedes Zellenpaar, das keinen oder keinen geeigneten Schaltunterschied in der Ausleseschleife zeigt oder das ein instabiles Verhalten aufweist:
- a. Option 1: Laden der Maskierungsinformation Chip-intern oder extern, um das Bit-Paar (Speicherzellenpaar) von der Schlüssel-(Re-)Generierung auszuschließen. Es kann auch möglich sein, das Speicherzellenpaar direkt aus der Generierung des Auslesemusters auszuschließen.
- b. Option 2: (explizit) Beschreiben der beiden Bits des Bit-Paars und so ihr vollständiges Entfernen aus der schwach gelöschten Verteilung, so dass sie überhaupt nicht in der Ausleseschleife schalten und somit von der Schlüssel-(Re-)Generierung ausgeschlossen werden. Mit anderen Worten sind die beiden Speicherzellen des Speicherzellenpaars (explizit) beschrieben, zum Beispiel auf den binären Wert „eins“. Die Auswerteeinrichtung 130 kann beachten, dass dieses besondere Speicherzellenpaar noch nicht eine gültige Speicherzellenreihenfolgeninformation abgeliefert hat, wenn die Schleife über die Lesebedingungen beendet ist und alle unterschiedlichen Lesebedingungen ausprobiert worden sind. Dementsprechend kann die Auswerteeinrichtung 130 das Speicherzellenpaar auf der Grundlage dieses Befundes von der PUF-Generierung und/oder der AuslesemusterGenerierung ausschließen.
-
6 zeigt schematisch Option 1 und zeigt die Zellenzustandsverteilung nach (schwacher) Löschung. Paar 3 wird maskiert, da der Unterschied der Speicherauslesewerte der ersten und der zweiten Speicherzelle zu gering ist. Wie oben erwähnt, kann die Maskierungsinformationen Chip-intern oder extern gespeichert werden.
-
7 zeigt die Zellenzustandsverteilung nach (schwacher) Löschung und für unterschiedliche Zellenpaare: Paar 3 ist beschrieben und aus der (Schwach-)Löschungsverteilung entfernt, da der Unterschied zwischen den Speicherauslesewerten der ersten und der zweiten Speicherzelle zu gering ist. Die Aktion des ausdrücklichen Beschreibens der zwei Speicherzellen des Speicherzellenpaares 3 ist schematisch in 7 durch einen Pfeil dargestellt, welcher das Paar 3 nach rechts bringt, das heißt, auf eine relativ hohe Schwellenspannung Vth, die typischerweise nicht als in der Schleife des vorbestimmten Lesebedingungen liegend betrachtet wird.
-
Während der Überprüfungsphase werden die folgenden Aktionen jedes Mal durchgeführt, wenn der Schlüssel (re-)generiert werden muss:
- In einer Schleife Ausprobieren verschiedener vorgegebener Lesebedingungen in einer „ansteigenden Reihenfolge“ (oder einer „abnehmenden Reihenfolge“) und für jede Bitleitung Bestimmen der einen der beiden NVM-Zellen, welche mit der gleichen Bitleitung verbunden sind, die früher schaltet, d.h. früher ihren Zustand in der Schleife durch die Lesebedingungen verändert.
-
Option 1: Ausschließen aller Bit-Paare aus der Schlüssel-(Re-)Generierung wie durch die gespeicherten Maskierungsinformationen angezeigt.
-
Option 2: Ausschließen aller Bit-Paare aus der Schlüssel-(Re-)Generierung, wo kein Bit überhaupt umschaltet.
-
(Re-)generieren des Schlüssels aus dem Ergebnis.
-
Mit der vorgeschlagenen Maskierung oder mit explizitem Beschreiben von Speicherzellenpaaren, die nicht über einen geeigneten Unterschied zwischen den Speicherauslesewerten ihrer entsprechenden Speicherzellen verfügen, ist wiederum nur ein kleiner Bereich von NVM-Zellen erforderlich. Der Software-Aufwand zur Erzeugung von PUF-Bits ist noch relativ klein und einfach, jedoch ist er höher als in den oben beschriebenen Ausführungsformen, welche in Verbindung mit den 1 bis 5 beschrieben wurden.
-
Wie in den Ausführungsformen, welche in Verbindung mit den 4 und 5 beschrieben sind, reduziert der „Unterschied“ zwischen zwei Zellen auf derselben Bitleitung die ansonsten relativ hohen Fehlerraten sehr stark, da die folgenden Wirkungen im Wesentlichen automatisch ausgeglichen werden:
- Temperaturänderungseffekte (identische Temperatur beider Zellen).
- Degradation im Laufe der Zeit, z.B. aufgrund von Störungen (in der gleichen Weise von beiden Zellen erfahren).
-
Änderungen des Inhalts gegenüber anderen NVM-Zellen, welche mit den gleichen Bitleitungen wie die NVM-Zellen, die für PUF reserviert sind, verbunden sind (in der gleichen Weise von beiden Zellen erfahren).
-
Einfluss der Leseverstärker-Offsets (da ein identischer Leseverstärker verwendet wird, um beide Zellen zu lesen).
-
Zellenpaare, wo beide Zellen nicht unterschiedlich genug sind, werden maskiert.
-
Verglichen mit den Ausführungsformen, welche im Zusammenhang mit 4 und 5 beschriebenen sind, kann ein noch geringerer Aufwand für die Fehlerkorrektur bei den Ausführungsformen, welche im Zusammenhang mit 6 und 7 beschrieben sind, erwartet werden.
-
Weitere Ausführungsformen schlagen das zusätzliche Maskieren von Zellenpaaren vor, die ein Veränderungsverhalten bei unterschiedlicher(en) Temperatur(en) zeigen und/oder keinen oder keinen geeigneten Unterschied in der Ausleseschleife bei zusätzlicher(en) Temperatur(en) zeigen. Dies kann einmal als eine Vorbereitung des PUF-Bereichs durchgeführt werden, zum Beispiel während der Anmeldungsphase. Man beachte, dass jedes elektronische Gerät bei verschiedenen Temperaturen untersucht werden muss und für jedes elektronische Gerät 100 die Ergebnisse für eine erste Temperatur vorübergehend zwischengespeichert werden müssen, bis das elektronische Gerät 100 unter der(den) zusätzlichen Temperatur(en) getestet worden ist, um jene Speicherzellenpaare zu ermitteln und auszuschließen, die ein unvorhersehbares oder nicht nutzbares Verhalten bei verschiedenen Temperaturen aufweisen. Zum Beispiel kann ein anderer Abschnitt des NVM, der nicht für PUF-Generierung verwendet wird, während der Anmeldungsphase eingesetzt werden, da er typischerweise zu diesem Zeitpunkt die Nutzdaten noch nicht enthält. Sobald die Tests bei unterschiedlichen Temperaturen durchgeführt worden sind und der Chip-individuelle PUF-Schlüssel bestimmt worden ist, können die Nutzdaten mit diesem Chip-individuellen PUF-Schlüssel verschlüsselt werden und dann in verschlüsselter Form in einem Abschnitt des NVM, der nicht für die PUF-Generierung verwendet wird, gespeichert werden.
-
Während der Überprüfungsphase kann das elektronische Gerät im Wesentlichen in der gleichen Weise, wie oben im Zusammenhang mit den 6 und 7 beschrieben, verwendet werden.
-
Auch hier ist nur eine kleine Auswahl der NVM-Zellen erforderlich. Der Software-Aufwand für die Generierung von PUF-Bits ist noch relativ klein und einfach, aber größer als in den Ausführungsformen, welche im Zusammenhang mit den 1 bis 7 beschrieben sind. Während der Anmeldungsphase muss für jedes elektronische Gerät eine relativ große Menge von Daten verarbeitet und vorübergehend gespeichert werden, bis das elektronische Gerät 100 unter allen gewünschten Temperaturen getestet worden ist.
-
Zusätzlich zu den Speicherzellenpaaren, die identifiziert und maskiert oder explizit beschrieben werden konnten, wie oben in Verbindung mit 6 und 7 erwähnt, werden nun auch Speicherzellenpaare, welche unerwünschtes Verhalten in Bezug auf Temperatur zeigen, maskiert oder explizit beschrieben.
-
Alles in allem ergibt sich ein relativ geringer Aufwand für die Fehlerkorrektur. Unter den Ausführungsformen, welche bis zu diesem Punkt in Verbindung mit den 1 bis 7 beschrieben worden sind, kann wahrscheinlich der niedrigste Aufwand für die Fehlerkorrektur für die Ausführungsformen erwartet werden, die auch unerwünschtes Verhalten bei Temperatur berücksichtigen.
-
Die Auswerteeinrichtung kann des Weiteren konfiguriert sein, um eine ausgewählte Lesebedingung aus den unterschiedlichen Lesebedingungen, die durch den Speicher-Controller 120 für den nicht-flüchtigen Speicher 110 vorgegeben werden, zu bestimmen, wobei mit der ausgewählten Lesebedingung eine Reihe aus einer Vielzahl von Speicherzellenpaaren 412a bis 412n einen ersten Wert aufweisen, der einer vorbestimmten Zahl am nächsten ist.
-
Auf diese Weise kann eine im Wesentlichen ausgewogene Verteilung von Nullen und Einsen im Auslesemuster erreicht werden. Die ausgewählte Lesebedingung kann während der Anmeldungsphase bestimmt werden. Der Speicher-Controller 120 kann auch so konfiguriert werden, um die ausgewählte Lesebedingung zu speichern, entweder Chip-intern oder extern. Während der Überprüfungsphase(n) kann die ausgewählte Lesebedingung dann abgerufen und wieder vom Speicher-Controller 120 verwendet werden, um die Lesebedingung(en), welche während der Anmeldungsphase eingesetzt wurde(n), zu reproduzieren, wenn das Referenzauslesemuster erzeugt wurde.
-
Das elektronische Gerät kann einen Speicher für eine ausgewählten Lesebedingung, die während einer Anmeldungsphase von zumindest der ersten Lesebedingung und der zweiten Lesebedingung ausgewählt ist, umfassen. Die ausgewählte Lesebedingung wird aus dem Speicher abgerufen und während einer Überprüfungsphase verwendet, wenn eine physikalisch unklonbare Funktions-Antwort auf der Grundlage des Auslesemusters, das durch die Auswerteeinrichtung 130 bereitgestellt wird, generiert wird.
-
8 zeigt ein schematisches Flussdiagramm eines Verfahrens zum Erzeugen einer physikalisch unklonbaren Funktions-Antwort (PUF-Antwort) eines elektronischen Geräts. Das Verfahren umfasst einen Schritt 802 des Anlegens eines schwachen Löschzustands an zumindest einem Abschnitt eines nicht-flüchtigen Speichers (NVM), so dass Speicherzellen zumindest des Abschnitts des nicht-flüchtigen Speichers auf unterschiedliche interne Zustände in Abhängigkeit von unterschiedlichen physikalischen Eigenschaften der Speicherzellen gelöscht werden. Typischerweise wird in Schritt 802 nur die Anmeldung durchgeführt. Das Verfahren umfasst des Weiteren einen Schritt 804 des Anlegens einer Lesebedingung an zumindest den Abschnitt des nicht-flüchtigen Speichers. Dann werden, wie in Schritt 806 angegeben ist, die verschiedenen internen Zustände der Speicherzellen ausgelesen, um ein Auslesemuster bereitzustellen. In einem Schritt 808 wird die physikalisch unklonbare Funktions-Antwort des elektronischen Geräts auf der Basis des Auslesemusters bestimmt. Wie durch den gestrichelten Pfeil in 8 gekennzeichnet, werden typischerweise die Schritte 804, 806 und 808 während der Überprüfungsphase jedes Mal wiederholt, wenn die PUF regeneriert werden muss.
-
Vor dem Anlegen des schwachen Löschzustands an zumindest dem Abschnitt des nicht-flüchtigen Speichers kann das Verfahren des Weiteren einen Schritt des Anlegens einer Schreibbedingung an wenigstens dem Abschnitt des nicht-flüchtigen Speichers umfassen. Des Weiteren können dann die Speicherzellen von zumindest dem Abschnitt des nicht-flüchtigen Speichers mit einem Schreibwert beschrieben werden, so dass vor dem schwachen Löschzustand die Speicherzellen in zumindest dem Abschnitt des nicht-flüchtigen Speichers in einen definierten Ausgangszustand gebracht werden.
-
Der nicht-flüchtige Speicher kann einen ersten Speicherabschnitt und einen zweiten Speicherabschnitt umfassen. Eine erste Speicherzelle in dem ersten Speicherabschnitt und eine zweite Speicherzelle in dem zweiten Speicherabschnitt bilden ein Speicherzellenpaar. In diesem Fall kann das Verfahren des Weiteren einen Schritt des Variierens der Lesebedingung, die auf zumindest den Abschnitt des nicht-flüchtigen Speichers angelegt ist, und des Bestimmens umfassen, welche Speicherzelle des Speicherzellenpaars einen anderen Speicherauslesewert zwischen einer ersten Lesebedingung und einer zweiten Lesebedingung zeigt (während die andere Speicherzelle keinen unterschiedlichen Speicherauslesewert zeigt). Das Auslesemuster kann dann auf der Basis eines entsprechenden Ergebnisses des Bestimmens bestimmt werden. Insbesondere kann bestimmt werden, welche der ersten und zweiten Speicherzelle in dem Speicherzellenpaar seinen Speicherauslesewert beim Übergang von der ersten Lesebedingung in die zweite Lesebedingung ändert: wenn die erste Speicherzelle ihren Speicherauslesewert ändert, weist das Ergebnis für das Speicherzellenpaar einen ersten Wert (z. B. eine binäre „Null“) auf und wenn die zweite Speicherzelle ihren Speicherauslesewert ändert, weist das Ergebnis für das Speicherzellenpaar einen zweiten Wert (z. B. eine binäre „Eins“) auf.
-
Die Variation der Lesebedingung kann das Variieren der Lesebedingung in einem monotonen Sinne von einer Wiederholung zu einer späteren Wiederholung über zumindest drei Wiederholungen umfassen. Das Verfahren kann des Weiteren einen Schritt des Bestimmens, welche Speicherzelle des Speicherzellenpaars ihren Speicherauslesewert in einer früheren Wiederholung als die andere Speicherzelle ändert, umfassen, um eine entsprechende Speicherzellenreihenfolgeninformationen zu erhalten. Das Verfahren kann auch einen Schritt des Bestimmens des Auslesemusters auf der Grundlage der Speicherzellenreihenfolgeninformationen umfassen. Typischerweise werden eine Vielzahl von Speicherzellenpaaren zum Bestimmen des Auslesemusters herangezogen, so dass diese Schritte im Wesentlichen gleichzeitig für die Vielzahl von Speicherzellenpaaren durchgeführt werden können.
-
Das Verfahren kann des Weiteren umfassen, typischerweise für jedes Speicherzellepaar, einen Schritt des Bestimmens, ob das Speicherzellenpaar ein ausreichend unterschiedliches Verhalten in Bezug auf die Speicherauslesewerte seiner ersten und zweiten Speicherzellen zeigt oder nicht. Zu diesem Zweck kann die Differenz der Speicherauslesewerte der ersten und zweiten Speicherzellen mit einer Schwelle verglichen werden und es kann das Speicherzellenpaar bestimmt werden, welches das nicht ausreichend unterschiedliche Verhalten zeigt, wenn die Differenz kleiner ist als der Schwellenwert. Das Speicherzellenpaar kann dann aus der Ermittlung für das Auslesemuster des Speicherzellenpaars ausgeschlossen werden und zeigt nicht das ausreichend unterschiedliche Verhalten. Die entsprechende Maskierungsinformation kann dann während einer Anmeldungsphase der PUF-Bearbeitung gespeichert werden. Während einer nachfolgenden Überprüfungsphase der PUF-Bearbeitung kann die Maskierungsinformation wieder abgerufen werden und das Speicherzellenpaar kann (wieder) von der Ermittlung für das Auslesemuster ausgeschlossen werden, wenn die Maskierungsinformation dies anzeigt.
-
Das Verfahren kann auch eine Bestimmung umfassen, ob das Speicherzellenpaar kein ausreichend unterschiedliches Verhalten in Bezug auf die Speicherauslesewerte seiner ersten und zweiten Speicherzellen nach dem schwachen Löschzustand zeigt. Das Speicherzellenpaar kann dann explizit mit einem identischen Speicherwert beschrieben werden, so dass keine der Speicherzellen des Speicherzellenpaars einen anderen Speicherauslesewert zwischen der ersten Lesebedingung und der zweiten Lesebedingung aufweist. Auf diese Weise kann das Speicherzellenpaar in diesem Fall von einer Auslesemustergenerierung ausgeschlossen werden.
-
Es ist auch möglich, wenigstens einen Abschnitt des nicht-flüchtigen Speichers vor dem Anlegen des schwachen Löschzustands explizit zu beschreiben. Auf diese Weise ist der Abschnitt des NVM in einen definierten Ausgangszustand, wenn der schwache Löschzustand anschließend angelegt wird. Folglich wird der Einfluss der vorhandenen Daten in dem Abschnitt des NVM reduziert, da die Handlung des expliziten Beschreibens typischerweise während der Anmeldungsphase und auch während jeder Überprüfungsphase erfolgt.
-
Während einer Anmeldungsphase einer physikalisch unklonbaren Funktions-Anwendung kann bestimmt werden, wie viele Speicherzellenpaare einen ersten Wert für jede der unterschiedlichen Lesebedingungen aufweisen, die für den nicht-flüchtigen Speicher bereitgestellt werden. Das Verfahren kann dann einen Schritt des Bestimmens, für welche Lesebedingung von den unterschiedlichen Lesebedingungen die Anzahl von Speicherzellenpaaren mit dem ersten Wert einer vorbestimmten Anzahl von Speicherzellenpaaren am Nächsten kommt (z. B. 50 % der Speicherzellenpaare haben den Wert „1“). Die Lesebedingung, welche auf diese Weise bestimmt wird, wird als eine „ausgewählte Lesebedingung“ betrachtet, die dann für die Verwendung während einer Überprüfungsphase in Zukunft gespeichert werden.
-
Das Verfahren kann auch einen Schritt des Auswählens und Speicherns einer ausgewählten Lesebedingung aus zumindest der ersten Lesebedingung und der zweiten Lesebedingung während einer Anmeldungsphase einer physikalisch unklonbaren Funktions-Anwendung umfassen. Während einer Überprüfungsphase der physikalisch unklonbaren Funktions-Anwendung kann die ausgewählte Lesebedingung abgerufen und für die Generierung der physikalisch unklonbaren Funktions-Antwort verwendet werden, welche typischerweise ähnlich der physikalisch unklonbaren Referenzfunktions-Antwort ist, die während der Anmeldungsphase erhalten wurde, aber dennoch fast nie völlig identisch mit dieser ist.
-
Es ist auch möglich, eine Fehlerkorrektur an der physikalisch unklonbaren Funktions-Antwort und/oder an dem Auslesemuster in Übereinstimmung mit einem Fehlerkorrekturcode auszuführen. Insbesondere ist es möglich, Redundanzinformation für den Fehlerkorrekturcode während der Anmeldungsphase der physikalisch unklonbaren Funktions-Anwendung zu bestimmen. Die Redundanzinformationen können dann (auf dem Chip oder auf einem anderen Speichermedium) noch während der Einschreibungsphase gespeichert werden. Während der Überprüfungsphase der physikalisch unklonbaren Funktions-Anwendung kann die zuvor gespeicherte Redundanzinformation wieder abgerufen und zum Korrigieren von Fehlern in einer physikalisch unklonbaren Funktions-Antwort während der Überprüfungsphase herangezogen werden.
-
9 zeigt ein schematisches Blockdiagramm eines elektronischen Geräts mit PUF-Funktionalität gemäß weiteren Ausführungsformen. Der nicht-flüchtige Speicher 110 weist eine Mehrzahl von Seiten (Seite 1, Seite 2, Seite 3, ...) auf. Jede Seite umfasst eine Vielzahl von Speicherzellen. Zum Beispiel umfasst Seite 1 die Speicherzellen 112a bis 112n. Speicherzelle 112a auf Seite 1 ist mit einer Bitleitung 113a verbunden. Diese Bitleitung 113a ist auch mit Speicherzellen auf den verbleibenden Seiten des nicht-flüchtigen Speichers 110 verbunden. Die Bitleitung 113a führt zu einem Leseverstärker 180a, welcher Teil einer Mehrzahl von Leseverstärkern 180a bis 180n ist. Auch die anderen Speicherzellen 112b, 112c, ..., 112n sind mit Bitleitungen 113b, 113c, ..., 113n und auf diese Weise mit den entsprechenden Leseverstärker 180b, 180c, ..., 180n verbunden. Der Speicher-Controller 120 ist konfiguriert, um die Steuersignale für die Speicherzellen 112a bis 112n bereitzustellen und gegebenenfalls auch für die Vielzahl von Leseverstärkern 180a bis 180n, wie durch die gestrichelte Linie gekennzeichnet. Auf diese Weise wird der Speicher-Controller 120 auch konfiguriert, Betriebseinstellungen der Leseverstärker 180a bis 180n, wie Versorgungsspannung, Vorspannung, Schwellenspannung oder Versorgungs-/Vor-/Schwellenströme als Teil der Lesebedingungen zu beeinflussen. Dann kann der Speicher-Controller 120 variieren, um die Speicherzellen 112a bis 112n und ihre entsprechenden Leseverstärker 180a bis 180n auf einen Betriebsbereich, in welchem die Willkürlichkeit der physikalischen Eigenschaften der Speicherzellen 112a bis 112n sichtbar wird, einzustellen.
-
10 zeigt ein schematisches Blockdiagramm eines elektronischen Geräts gemäß weiteren Ausführungsformen, bei denen die willkürlich verteilten physikalischen Eigenschaften der Leseverstärker 180a bis 180n zum Erzeugen von Auslesemustern eingesetzt werden, die dazu verwendet werden können, um gerätespezifische PUF-Antworten zu bestimmen. Insbesondere umfasst das elektronische Gerät 1000 eine Vielzahl von Leseverstärkern 180a bis 180n, welche so konfiguriert sind, eine Mehrzahl von Speicherzellen (nicht dargestellt in 10) durch Vergleichen eines Zellensignalausgangs von einer der Vielzahl von Speicherzellen mit einem Referenzsignal auszulesen. Die Vielzahl von Speicherzellen kann typischerweise in einem Speicherzellenfeld angeordnet sein.
-
Das elektronische Gerät 1000 kann des Weiteren einen Referenzsignalgenerator 170, welcher konfiguriert ist, das Referenzsignal zu erzeugen, und einen Referenzsignalvervielfältiger 1090 umfassen, welcher konfiguriert ist, ein vervielfältigtes Referenzsignal bereitzustellen. Des Weiteren umfasst das elektronische Gerät 1000 eine Vielzahl von Eingangsauswahleinrichtungen 1060a, 1060b, 1060c, ..., 1060n, welche konfiguriert sind, selektiv entweder das Zellensignal oder das vervielfältigte Referenzsignal an die Vielzahl von Leseverstärkern 180a bis 180n zum Vergleich mit dem Referenzsignal anzulegen. Im normalen Betrieb, d.h. wenn gespeicherte Daten aus dem Speicherzellenfeld ausgelesen werden, werden die Zellensignale (Zellensignal a ..., Zellensignal n), welche durch das Speicherzellenfeld bereitgestellt werden, mit dem Referenzsignal durch die Vielzahl von Leseverstärkern 180a bis 180n gepaart und in Abhängigkeit vom Inhalt der Speicherzelle, die momentan mit dem entsprechenden Leseverstärker verbunden ist, nimmt der Ausgang des Leseverstärkers einen bestimmten Wert (typischerweise „null“ oder „eins“ im Fall von binären Daten, die in den Speicherzellen gespeichert sind) an. Dies wird einem Puffer zugeliefert, der zum Empfangen des Anzeigemusters 140 konfiguriert ist. In diesem normalen Betrieb des Speichers entspricht das Auslesemuster dem Inhalt einer Speicherseite. Neben diesem Normalbetrieb kann die Vielzahl von Leseverstärkern 180a bis 180n auch verwendet werden, um ein Auslesemuster für nachfolgende PUF-Antwortgenerierung zu erzeugen. Die PUF-Antwort ist typischerweise einzigartig für das elektronische Gerät 1000 und kann verwendet werden, um ein bestimmtes Exemplar des elektronischen Geräts 1000 zu identifizieren. Wie oben erwähnt, liegt der Grund für diese Einzigartigkeit darin, dass die physikalischen Eigenschaften der Leseverstärker 180a bis 180n sich von Chip zu Chip unterscheiden, obwohl sie im Wesentlichen identischen Herstellungsbedingungen eingesetzt wurden. Daher wird die Zufälligkeit unter den verschiedenen Leseverstärkern 180a bis 180n sichtbar, wenn die Leseverstärker in ihrem Toleranzbereich, der während des normalen Betriebs vermieden wird, betrieben werden. Im Zusammenhang mit der PUF-Antwortgenerierung erzeugt der Vergleich des vervielfältigten Referenzsignals des Referenzsignals durch die Vielzahl von Leseverstärkern 180a bis 180n eine physikalisch unklonbare Funktions-Antwort des elektronischen Geräts 1000. Die physikalisch unklonbare Funktions-Antwort spiegelt insbesondere Offsetunterschiede der Vielzahl von Leseverstärkern wider.
-
Man kann sehen, dass nur wenig zusätzliche Hardware erforderlich ist, nämlich der Referenzsignalvervielfältiger 1090 und die Vielzahl von Eingangsauswahleinrichtungen 1060a bis 1060n.
-
Wenn die Leseverstärker 180a bis 180n in ihrem Auslösungspunkt eingestellt sind, bestimmen die kleinen willkürlichen Offsetunterschiede den Leseverstärkerausgang. Der Auslösungspunkt wird gesetzt, wenn der Zellenstrom und der Referenzstrom gleich sind. Da der Zellenstrom nicht zuverlässig beeinflusst werden kann, wird ein kleiner Hardware-Zusatz für diese Ausführungsform benötigt, die bei Bedarf den Zellenstrom mit einer anderen Kopie des Referenzstroms ersetzt. Das Auslesen der Leseverstärker 180a bis 180n ergibt direkt eine Anzahl von PUF-Bits oder Bits eines Zwischenauslesemusters, die weiter verarbeitet werden, um die PUF-Bits bereitzustellen, oder die unmittelbar als PUF-Bits verwendet werden können. Auch hier ist eine Maskierung der instabilen Bits wie in den Ausführungsformen möglich, welche die willkürlichen Variationen der physikalischen Eigenschaften der Speicherzellen 120a bis 120n, die oben im Zusammenhang mit den 6 und 7 beschrieben sind, verwenden.
-
Die Anzahl der Bits wird durch die Anzahl von Leseverstärkern begrenzt. Auf der anderen Seite ist die PUF Antwortgenerierung unabhängig von den Speicherzellen. Insbesondere müssen keine Speicherzellen für die PUF-Antwortgenerierung reserviert werden, sondern die gesamte Speicherkapazität des Speicherzellenfeldes kann verwendet werden. Die Software kann auch relativ einfach gehalten werden.
-
Das Zellensignal kann ein Zellenstrom sein und das Referenzsignal kann ein Referenzstrom sein. Der Referenzsignalvervielfältiger 1090 kann ein Stromspiegel sein. Jeder Leseverstärker 180a bis 180n kann so konfiguriert werden, um ein binäres Ausgangssignal als eine Funktion des Zellenstroms auszugeben, welcher größer ist als der Referenzstrom oder umgekehrt (Zellenstrom größer als Referenzstrom: „0“; Zellenstrom kleiner als Referenzstrom: „1“) .
-
Das elektronische Gerät 1000 kann des Weiteren eine Auswerteeinrichtung umfassen, welche konfiguriert ist, Leseverstärker, die einen instabilen Ausgang haben, wenn der Referenzstrom und der vervielfältigte Referenzstrom verglichen werden, zu ermitteln. Ein Maskierungsinformationsspeicher kann ebenfalls vorgesehen sein, welcher konfiguriert ist, eine entsprechende Maskierungsinformation, die durch die Auswerteeinrichtung erzeugt wird, zu speichern, so dass die Leseverstärker, welche mit einer instabilen Leistung beim Vergleich von Referenzstrom und vervielfältigtem Referenzstrom identifiziert worden sind, für die Miteinbeziehung für die physikalisch unklonbare Funktions-Antwort ausgeschlossen werden.
-
11 zeigt ein schematisches Flussdiagramm eines Verfahrens zum Erzeugen einer PUF-Antwort auf der Grundlage der Unterschiede in den physikalischen Eigenschaften der Leseverstärker 180a bis 180n. Das Verfahren umfasst einen Schritt 1102 zum Erzeugen eines Referenzsignals für eine Vielzahl von Leseverstärkern, die konfiguriert sind, eine Vielzahl von Speicherzellen auszulesen. Das Referenzsignal kann vervielfältigt werden, um ein vervielfältigtes Referenzsignal zu erhalten, wie in einem Schritt 1104 gezeigt. Das Verfahren umfasst des Weiteren Schritt 1106 des Anlegens des Referenzsignals an Referenzsignaleingängen der Vielzahl von Leseverstärkern. Das vervielfältigte Referenzsignal wird an den Zellensignaleingängen der Vielzahl von Leseverstärkern angelegt. Die Zellensignaleingänge der Vielzahl von Leseverstärkern 180a bis 180n werden normalerweise (im Normalbetrieb als ein Speicher) verwendet, um die Speicherzellen eines Speicherzellenfeldes mit den Leseverstärkern zu verbinden. Wenn das elektronische Gerät 1000 sich in einem Modus zur PUF-Antwortgenerierung befindet, wird eine Vielzahl von Eingangsauswahleinrichtungen in einer Weise gesteuert, dass anstelle der Zellensignale das vervielfältigte Referenzsignal an die Vielzahl von Leseverstärkern bereitgestellt wird. Die Vielzahl von Leseverstärkern erzeugt dann jeweils entsprechende Ausgangssignale als eine Funktion der verschiedenen Offsetunterschiede der Leseverstärker. Diese Offsetunterschiede sind typischerweise statistisch innerhalb eines Toleranzbereichs der Leseverstärker verteilt und deshalb geeignet, in Verbindung mit PUF-Antwortgenerierung genutzt zu werden. In einem Schritt 1108 des Verfahrens wird die physikalisch unklonbare Funktions-Antwort unter Verwendung der jeweiligen Ausgangssignale der Vielzahl von Leseverstärkern 180a bis 180n bestimmt.
-
Man beachte, dass die Ausführungsform, welche in Verbindung mit den 10 und 11 beschrieben ist, nicht notwendigerweise vom Vorhandensein eines nicht-flüchtigen Speichers abhängt, sondern mit anderen Arten von Speichern, welche Leseverstärker verwenden, auch umgesetzt werden kann.
-
Ausführungsformen, die einen nicht-flüchtigen Speicher umfassen und in Verbindung mit den 1 bis 9 beschrieben sind, können, zum Beispiel, jede Art von nicht-flüchtigen Speichern sein, wie HS3P, UCP, ETOX, MRAM, PCRAM, RRAM.
-
Bei Ausführungsformen, welche die verschiedenen physikalischen Eigenschaften von gekoppelten Speicherzellen verwenden, kann der Einsatz von Seiten, die beide entweder eine ungerade Adresse oder eine gerade Adresse haben, bei der Bildung der Speicherzellenpaare berücksichtigt werden. Diese Maßnahme kann systematische Layout-Abhängigkeiten reduzieren, d.h. im Allgemeinen Seiten mit nichtgespiegelten Layouts.
-
Eine andere Möglichkeit ist, andere Schemata zu verwenden, die mehr als zwei NVM-Zellen in einem „Paar“ oder einer „Gruppe“ verwenden, welche mit der gleichen Bitleitung verbunden sind.
-
Es kann sogar möglich sein, Schemata zu verwenden, die zwei oder mehr NVM-Zellen in einem „Paar“ oder einer „Gruppe“ verwenden, welche nicht mit der gleichen Bitleitung verbunden sind.
-
Unterschiedliche Lesebedingungen können durch Variation der Auslesespannung und/oder des Referenzstroms gesetzt werden.
-
Physikalisch unklonbare Funktionen auf NVMs Basis können von Interesse für die Aufnahme in elektronische Geräte sein, welche ebenfalls NVM auf dem Chip aufweisen, z.B. in FPGAs, da der Aufwand für die PUF-Schlüsselregenerierung für NVMs im Vergleich zu SRAMs als viel kleiner erwartet.
-
12A und 12B zeigen eine Tabelle, welche einen kleinen Abschnitt der Ergebnisse einer Auswertung von NVM-Zellenpaaren umfasst, wie im Zusammenhang mit den 4 bis 7 beschrieben. 12A zeigt den Unterschied der elektrischen Ströme der ersten Speicherzelle und der zweiten Speicherzelle in einem Speicherzellenpaar. Jedes Speicherzellenpaar ist mit einer gemeinsamen Bitleitung verbunden und die erste Speicherzelle gehört zu einer ersten Speicherseite und die zweite Speicherzelle gehört zu einer zweiten Speicherseite. Die erste und die zweite Speicherseite bilden ein Seitenpaar. Von diesen Seitenpaaren werden die Unterschiede der elektrischen Ströme für 18 Seitenpaare bereitgestellt, und zwar von Seitenpaar 1 bis Seitenpaar 18. 12B ist im Wesentlichen identisch mit 12A, jedoch zeigt sie 17 weitere Seitenpaare, nämlich Seitenpaar 19 bis Seitenpaar 35. Die Tabellen in den 12A und 12B zeigen nur die Ergebnisse für die Bitleitungen 2188 bis 2208, wobei die Gesamtzahl der Bitleitungen 2208 beträgt. In horizontaler Richtung wird ein Auszug aus den Ergebnissen der 35 unterschiedlichen Seitenpaare angezeigt. Jene Unterschiede der elektrischen Ströme, die zumindest 10 µA in die eine oder die andere Richtung betragen, sind durch strichpunktierte Kästen markiert. Um ein Beispiel zu geben, weist das Speicherzellenpaar auf Bitleitung 2197 vom Seitenpaar 6 einen aktuellen Unterschied von 17 µA auf.
-
Im unteren Abschnitt der 12A und 12B ist eine statistische Analyse der Ergebnisse für die verschiedenen Seitenpaare bereitgestellt. Eine erste statistische Analyse wurde für den 10 µA Unterschied und darunter durchgeführt und eine weitere statistische Analyse wurde für einen 15 µA Unterschied durchgeführt. Die statistische Analyse kann, wie folgt, interpretiert werden. Zum Beispiel sagt die statistische Analyse für 10 µA und Seitenpaar 1: von den 2208 Speicherzellenpaaren haben 534 (= 24%) einen absoluten Unterschied von zumindest 10 pA, wobei 47% einen positiven Unterschied und 53% einen negativen Unterschied aufweisen. Bei Anlegen der Bedingung, dass zuverlässig auswertbare Speicherzellen zumindest 10 µA nach einem vorhergehenden schwach gelöschten Zustand und, wenn der ausgewählte Auslesevorgang an die Speicherzellen angelegt ist, auseinander liegen müssen, dann ist das Seitenpaar 1 geeignet, eine PUF mit einem Maximum von 534 Bits zu generieren, die dann 47% Einsen und 53% Nullen enthalten würde. Die Zahlen im Kasten auf der linken Seite der statistischen Analyse für 10 µA sind die Durchschnittswerte über alle Seitenpaare. Dementsprechend werden durchschnittlich 464 (= 21%) auswertbare Bits pro Seitenpaar bereitgestellt, was eine Null/Eins-Verteilung von 50% zu 50% ergibt.
-
Da die 10 µA Unterschiede zu einer zuverlässigen Bewertung der PUFs führen sollten, zeigt diese Messung, dass im Durchschnitt 464 zuverlässige PUF Bits von einem Seitenpaar herausgezogen werden können.
-
13 zeigt das unterschiedliche Verhalten von Leseverstärkern an zwei verschiedenen Chips, aber an der gleichen Position. Insbesondere wird die mittlere Schwellwertspannung Vth für unterschiedliche Leseverstärker SA00 bis SA34 dargestellt. Das Diagramm zeigt, dass es erhebliche Chip-zu-Chip-Unterschiede zwischen Chip 1 und Chip 2 gibt, die als Grundlage für PUF-Generierung genutzt werden können.
-
Des Weiteren zeigt das Diagramm in 13 auch, dass bei verschiedenen Betriebsbedingungen für die Vielzahl von Leseverstärkern SA00 bis SA34 die Leseverstärker auf einem Chip (zum Beispiel Chip 1) auf die gleiche Weise reagieren, wie durch Vergleichen der gestrichelten Linie für eine Betriebsbedingung von 5 µA und der gepunkteten Linie für eine Betriebsbedingung von 6 µA beobachtet werden kann: sie sind im Großteil ähnlich mit Ausnahme eines Offsets.
-
14 zeigt ein schematisches Blockdiagramm eines elektronischen Geräts 100 gemäß weiteren Ausführungsformen. Zusätzlich zu den Komponenten, die dargestellt sind, zum Beispiel in 1, umfasst das elektronische Gerät 100 des Weiteren eine Fehlerkorrektureinrichtung 150. Ferner ist ein Abschnitt des nicht-flüchtigen Speichers 110 dem Speichern von Redundanzinformationen gewidmet. Während der Anmeldungsphase kann das Auslesemuster aus der Auswerteeinrichtung 130 zu einer Codiereinrichtung 1450 geliefert werden. Die Codiereinrichtung 1450 kann eine Komponente des elektronischen Geräts 100 sein oder sie kann extern bereitgestellt werden, da die Codiereinrichtung 1450 typischerweise nur während der Anmeldungsphase erforderlich ist. Als Alternative kann die Fehlerkorrektureinrichtung 150 auch die Funktionalität der Codiereinrichtung 1450 bereitstellen. Die Rolle der Codiereinrichtung 1450 besteht darin, die Redundanzinformation auf der Grundlage des Referenzauslesemusters zu bestimmen, welches durch die Auswerteeinrichtung 130 während der Anmeldungsphase bereitgestellt wird und welches im gewidmeten Abschnitt 115 des nicht-flüchtigen Speichers 110 gespeichert werden muss. In einer Alternative kann die Redundanzinformation auch in einem anderen Speicher gespeichert werden oder sogar einem Benutzer des elektronischen Geräts 100 über einen völlig anderen Kanal übergeben werden, beispielsweise als ein gedruckter Produktschlüssel, der vom Benutzer über eine Tastatur oder über einen Kommunikationskanal eingegeben werden muss. In den meisten Fällen ist jedoch die Redundanzinformationen wahrscheinlich auf dem Chip zum schnellen und einfachen Zugriff während der Überprüfungsphasen gespeichert.
-
Während einer Überprüfungsphase bietet die Auswerteeinrichtung 130 ein Auslesemuster an, das ähnlich dem Referenzauslesemuster der Anmeldungsphase ist, aber typischerweise nicht zu 100% mit diesem identisch ist. Wenn dieses Auslesemuster zum Entschlüsseln von Nutzdaten, die in einem weiteren Abschnitt 119 des nichtflüchtigen Speichers 110 gespeichert sind, verwendet werden soll, wird die Entschlüsselung typischerweise scheitern, wenn der Schlüssel, welcher zum Entschlüsseln der Nutzdaten verwendet wird, vom Schlüssel, welcher zum Verschlüsseln der Nutzdaten (d.h. das Referenzauslesemuster oder ein Schlüssel, welcher aus dem Referenzauslesemuster abgeleitet ist) verwendet wird, abweicht. Asymmetrische Verschlüsselung kann dabei verwendet werden, aber auch in diesem Fall muss der Entschlüsselungsschlüssel (geheimer Schlüssel) dem Verschlüsselungsschlüssel (öffentlicher Schlüssel) entsprechen. Die Fehlerkorrektureinrichtung 150 ist nun so konfiguriert, um die Redundanzinformation zur Korrektur möglicher Fehler im Auslesemuster zu verwenden. Ein Fehler im Auslesemuster wird als ein Unterschied zwischen dem Auslesemuster, welches während der Überprüfungsphase bestimmt wird, und dem Referenzauslesemuster, welches während der Anmeldungsphase bestimmt wird, definiert. Insbesondere bildet eine Kombination des Referenzauslesemusters und der Redundanzinformationen ein Codewort eines Fehlerkorrekturcodes, welcher durch die Fehlerkorrektureinrichtung 150 implementiert wird. Wenn das Auslesemuster nicht zu viele Fehler enthält, ist die Fehlerkorrektureinrichtung 150 typischerweise in der Lage, diese Fehler zu korrigieren und ein korrigiertes Auslesemuster, das gleich dem Referenzauslesemuster ist, auszugeben.
-
Obwohl einige Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, ist es klar, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, bei dem ein Block oder ein Gerät einem Verfahrensschritt oder einem Merkmal eines Verfahrensschrittes entspricht. Analog dazu stellen Aspekte, welche im Zusammenhang mit einem Verfahrensschritt beschrieben sind, auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle der Verfahrensschritte können durch (oder mit) eine(r) Hardware-Vorrichtung, wie beispielsweise ein Mikroprozessor, ein programmierbarer Computer oder eine elektronische Schaltung, ausgeführt werden. In einigen Ausführungsformen können einige oder mehrere der wichtigsten Verfahrensschritte von einer solchen Vorrichtung durchgeführt werden.
-
Je nach Durchführung bestimmter Anforderungen können Ausführungsformen der Erfindung als Hardware oder als Software implementiert werden. Die Implementierung kann unter Verwendung eines digitalen Speichermediums ausgeführt werden, beispielsweise einer Floppy-Disk, einer DVD, einer Blue-Ray, einer CD, einem ROM, einem PROM, einem EPROM, einem EEPROM oder einem Flash-Speicher, mit elektronisch auslesbaren Steuersignalen, die darauf gespeichert sind, welche mit einem programmierbaren Computersystem zusammenwirken können (oder in der Lage sind, mit diesem zusammenzuwirken), so dass das jeweilige Verfahren durchgeführt wird. Daher kann das digitale Speichermedium computerlesbar sein.
-
Einige Ausführungsformen gemäß der Erfindung umfassen einen Datenträger mit elektronisch auslesbaren Steuersignalen, die geeignet sind, mit einem programmierbaren Computersystem zusammen zu arbeiten, so dass eines der hierin beschriebenen Verfahren durchgeführt wird.
-
Im Allgemeinen können Ausführungsformen der vorliegenden Erfindung als ein Computerprogrammprodukt mit einem Programmcode implementiert werden, wobei der Programmcode zum Durchführen eines der Verfahren betreibbar ist, wenn das Computerprogrammprodukt auf einem Computer läuft. Der Programmcode kann beispielsweise auf einem maschinenlesbaren Träger gespeichert sein.
-
Weitere Ausführungsformen umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, welche auf einem maschinenlesbaren Träger gespeichert sind.
-
Mit anderen Worten ist eine Ausführungsform des erfindungsgemäßen Verfahrens daher ein Computerprogramm mit einem Programmcode zum Durchführen eines der hierin beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer abläuft.
-
Eine weitere Ausführungsform der erfindungsgemäßen Verfahren ist daher ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), welcher(welches), darauf aufgezeichnet, das Computerprogramm zur Durchführung eines der hierin beschriebenen Verfahren aufweist. Der Datenträger, das digitale Speichermedium oder das aufgezeichnete Medium sind typischerweise materiell und/oder nicht-vergänglich.
-
Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist daher ein Datenstrom oder eine Abfolge von Signalen, die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellen. Der Datenstrom oder die Sequenz von Signalen kann beispielsweise konfiguriert sein, um über eine Datenkommunikationsverbindung übertragen zu werden, beispielsweise über das Internet.
-
Eine weitere Ausführungsform umfasst ein Verarbeitungsmittel, beispielsweise einen Computer oder eine programmierbare Logikvorrichtung, welche konfiguriert oder ausgelegt ist, eines der hierin beschriebenen Verfahren auszuführen.
-
Eine weitere Ausführungsform umfasst einen Computer mit dem darauf installierten Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren.
-
Eine weitere Ausführungsform gemäß der Erfindung weist eine Vorrichtung oder ein System auf, welche(s) konfiguriert ist, (z. B. elektronisch oder optisch) ein Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren an einen Empfänger zu übertragen. Der Empfänger kann zum Beispiel ein Computer, ein mobiles Gerät, eine Speichervorrichtung oder dergleichen sein. Die Vorrichtung oder das System kann beispielsweise einen Dateiserver zur Übertragung des Computerprogramms an den Empfänger umfassen.
-
In einigen Ausführungsformen kann eine programmierbare Logikvorrichtung (beispielsweise ein feldprogrammierbares Gate-Array) verwendet werden, um einige oder alle der Funktionalitäten der hierin beschriebenen Verfahren auszuführen. In einigen Ausführungsformen kann ein feldprogrammierbares Gate-Array mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Im Allgemeinen können die Verfahren durch eine beliebige Hardware-Vorrichtung ausgeführt werden.
-
Die oben beschriebenen Ausführungsformen sind lediglich veranschaulichend für die Prinzipien der vorliegenden Erfindung. Es versteht sich von selbst, dass Modifikationen und Variationen der Anordnungen und die hier beschriebenen Einzelheiten sich auch für andere Fachleute auf diesem Gebiet der Technik ergeben. Es besteht daher die Absicht, nur durch den Umfang der schwebenden Patentansprüche und nicht durch die spezifischen Details, welche als Beschreibung und Erläuterung der Ausführungsformen hierin dargestellt sind, begrenzt zu sein.
-
Obwohl jeder Anspruch sich nur wieder auf einen einzigen Anspruch zurückbezieht, umfasst die Offenbarung auch jede denkbare Kombination der Ansprüche.