DE102011079259B4 - Bitfehlerkorrektur zur Beseitigung von altersbedingten Fehlern in einem Bitmuster - Google Patents

Bitfehlerkorrektur zur Beseitigung von altersbedingten Fehlern in einem Bitmuster Download PDF

Info

Publication number
DE102011079259B4
DE102011079259B4 DE102011079259A DE102011079259A DE102011079259B4 DE 102011079259 B4 DE102011079259 B4 DE 102011079259B4 DE 102011079259 A DE102011079259 A DE 102011079259A DE 102011079259 A DE102011079259 A DE 102011079259A DE 102011079259 B4 DE102011079259 B4 DE 102011079259B4
Authority
DE
Germany
Prior art keywords
bit pattern
bit
aging
uncorrected
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102011079259A
Other languages
English (en)
Other versions
DE102011079259B9 (de
DE102011079259A1 (de
Inventor
Rainer Göttfert
Berndt Gammel
Thomas Künemund
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102011079259A priority Critical patent/DE102011079259B9/de
Priority to US13/548,462 priority patent/US8726123B2/en
Priority to CN201210242382.XA priority patent/CN102880061B/zh
Publication of DE102011079259A1 publication Critical patent/DE102011079259A1/de
Application granted granted Critical
Publication of DE102011079259B4 publication Critical patent/DE102011079259B4/de
Publication of DE102011079259B9 publication Critical patent/DE102011079259B9/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • G06F21/35User authentication involving the use of external additional devices, e.g. dongles or smart cards communicating wirelessly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Abstract

Ein Bitfehlerkorrektor umfasst einen Alterungsbitmusterspeicher (111) zum Speichern zumindest eines Alterungsbitmusters (H), das alterungsbedingte Effekte innerhalb einer Folge von nicht korrigierten Bitmustern wiedergibt; einen Bitmustermodifizierer (102; 502; 602) zum Modifizieren eines aktuellen, nicht korrigierten Bitmusters (B) mittels des zumindest einen Alterungsbitmusters (H), wobei der Bitmustermodifizierer (102; 502; 602) ein modifiziertes Bitmuster (B') erzeugt; einen Bitmustervergleicher (104) zum Vergleichen des aktuellen, nicht korrigierten Bitmusters (B) mit einem korrigierten Bitmuster (BKORR), das auf dem modifizierten Bitmuster (B') basiert, und zum Bestimmen eines entsprechenden Vergleichsbitmusters (V); und einen Alterungsbitmusterbestimmer (134) zum rekursiven Bestimmen eines neuen Alterungsbitmusters (HNEU) auf der Grundlage des zumindest einen Alterungsbitmusters (H) und des Vergleichsbitmusters (V), und zum Speichern des neuen Alterungsbitmusters (HNEU) in dem Alterungsbitmusterspeicher (111) zur Verwendung beim Modifizieren eines nachfolgenden nicht korrigierten Bitmusters durch den Bitmustermodifizierer (102; 502; 602). Ein Bitfehlerkorrekturverfahren und ein entsprechendes Computerprogramm werden auch offenbart.

Description

  • Ausführungsbeispiele der vorliegenden Erfindung schaffen einen Bitfehlerkorrektor zum Korrigieren von altersbedingten Fehlern in einem Bitmuster, wie sie beispielsweise im Zusammenhang mit physikalischen, unklonbaren Funktionen (engl.: physically unclonable function (PUF)) auftreten können. Weitere Ausführungsbeispiele der vorliegenden Erfindung schaffen ein Bitfehlerkorrekturverfahren, das insbesondere zum Korrigieren von altersbedingten Fehlern in einem Bitmuster verwendet werden kann, sowie ein entsprechendes Computerprogramm.
  • Bei der Übertragung oder Speicherung von digitalen Daten in Form von digitalen Datenbits lassen sich Bitfehler in der Regel kaum vermeiden. Häufig sind die Bitfehler zufällig. Eine Möglichkeit, Bitfehler in übertragenen oder gespeicherten Datenbits zu erkennen und ggfs. sogar zu korrigieren, wird insbesondere durch Redundanz-basierte Fehlererkennungs- und Fehlerkorrekturverfahren bereitgestellt. Diese basieren darauf, dass zusätzlich zu den eigentlichen Datenbits noch weitere Daten übertragen bzw. gespeichert werden, aus denen sich erkennen lässt, ob innerhalb der Datenbits ein Bitfehler vorliegt und ggf. korrigiert werden kann.
  • Bitmuster, die Daten repräsentieren, können auch mittels einer physikalischen, unklonbaren Funktion (PUF) gewonnen werden. Die einer physikalischen, unklonbaren Funktion zugrundeliegende Idee ist, physikalische Eigenschaften eines Objekts zu digitalisieren und so eine dem Objekt zugeordnete Bitfolge (Nummer bzw. Zahl) zu erhalten.
  • Dabei ist es wünschenswert, dass die Bitfolgen zweier verschiedener physikalischer Objekte zueinander unkorreliert sind. Ein einfaches Beispiel zur Veranschaulichung ist ein Blatt Papier. Unter einem Mikroskop betrachtet erkennt man eine spezielle Feinstruktur der Holzspäne oder Zellstoffteile. Die Struktur wird mit Hilfe eines geeigneten Algorithmus vermessen und das Ergebnis als Bitfolge dargestellt. Diese Bitfolge ist die PUF. Ein anderes Blatt Papier ergibt im allgemeinen eine Bitfolge, die unkorreliert ist zur Bitfolge des ersten Blatts.
  • Mittels der physikalischen Hashfunktion bzw. physikalisch unklonbaren Funktion (PUF) kann nun zu einem ersten Zeitpunkt ein Bitmuster bestimmt werden, das für die physikalischen Eigenschaften des jeweiligen Objekts zum ersten Zeitpunkt charakteristisch ist. Dieses Bitmuster kann zum Beispiel zum Verschlüsseln von Nutzdaten verwendet werden. Um zu einem späteren Zeitpunkt die Nutzdaten wieder zu entschlüsseln, wird wieder dasselbe Bitmuster benötigt. Das benötigte Bitmuster kann wiederum auch zum zweiten Zeitpunkt aus den physikalischen Eigenschaften des Objekts gewonnen werden, wobei jedoch leichte Abweichungen von dem zum ersten Zeitpunkt erstellten Bitmuster zu erwarten sind. Der Artikel „Secure and Robust Error Correction for Physical Unclonable Functions” von Meng-Day Yu und Srinivas Devadas, erschienen in IEEE Design & Test of Computers, Vol. 27, Issue 1, Seiten 48–65, Jan.-Feb. 2010, gibt einen Überblick über physikalische, unklonbare Funktionen und die Korrektur von Fehlern in einer PUF-Ausgabe. Mit zunehmendem zeitlichen Abstand zwischen dem ersten und dem zweiten Zeitpunkt können sich die physikalischen Eigenschaften des Objekts nachhaltig verändern, was dazu führt, dass bestimmte Abweichungen in dem Bitmuster immer häufiger und schließlich fast immer auftreten. Zu den altersbedingten Abweichungen kommen typischerweise noch zufällige Abweichungen zwischen den zum ersten Zeitpunkt und zum zweiten Zeitpunkt generierten Bitmustern hinzu, so dass ab einem bestimmten Zeitpunkt eine zuverlässige Korrektur des Bitmusters nicht mehr gewährleistet werden kann.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Korrektur eines Bitmusters zuverlässiger zu gewährleisten, auch wenn zwischen den Zeitpunkten einer ursprünglichen Verwendung und einer aktuellen Verwendung des Bitmusters eine relativ lange Zeitspanne besteht.
  • Diese Aufgabe wird gelöst durch einen Bitfehlerkorrektor gemäß den Ansprüchen 1 und 14, ein Verfahren gemäß Anspruch 15 und ein Computerprogramm gemäß Anspruch 16.
  • Ausführungsbeispiele der vorliegenden Erfindung schaffen einen Bitfehlerkorrektur, der einen Alterungsbitmusterspeicher, einen Bitmustermodifizierer, einen Bitmustervergleicher und einen Alterungsbitmusterbestimmer umfasst. Der Alterungsbitmusterspeicher ist konfiguriert zum Speichern zumindest eines Alterungsbitmusters, das alterungsbedingte Effekte innerhalb einer Folge von nicht korrigierten Bitmustern wiedergibt. Die alterungsbedingten Effekte beziehen sich auf Bits einer ersten Gruppe in den nicht korrigierten Bitmustern, die mit hoher Wahrscheinlichkeit falsch sind. Der Bitmustermodifizierer ist konfiguriert zum Modifizieren eines aktuellen nicht korrigierten Bitmusters mittels des zumindest eines Alterungsbitmusters, wobei der Bitmustermodifizierer ein modifiziertes Bitmuster erzeugt. Der Bitmustermodifizierer umfasst einen Invertierer zum Invertieren von Bits der ersten Gruppes des nicht korrigierten Bitmusters und zum Erzeugen des modifizierten Bitmusters. Der Bitmustervergleicher ist konfiguriert zum Vergleichen des aktuellen, nicht korrigierten Bitmusters mit einem korrigierten Bitmuster, das auf dem modifizierten Bitmuster basiert, sowie zum Bestimmen eines entsprechenden Vergleichsbitmusters. Der Alterungsbitmusterbestimmer ist konfiguriert zum rekursiven Bestimmen eines neuen Alterungsbitmusters auf der Grundlage des zumindest einen Alterungsbitmusters und des Vergleichsbitmusters. Der Alterungsbitmusterbestimmer ist weiterhin konfiguriert zum Speichern des neuen Alterungsbitmusters in dem Alterungsbitmusterspeicher zur Verwendung beim Modifizieren eines nachfolgenden nicht korrigierten Bitmusters durch den Bitmustermodifizierer. Die rekursive Bestimmung des neuen Alterungsbitmusters erfolgt gemäß der Formel Hj+1 = Ej+1 & H3, wobei Hj+1 das neue Alterungsbitmuster, Hj das Alterungsbitmuster, Ej+1 das Vergleichsbitmuster ist, und das Symbol & ein bitweises logisches UND darstellt.
  • Ausführungsbeispiele basieren auf dem Konzept der Beobachtung der Abweichungen, die zwischen den sukzessiven nicht korrigierten Bitmustern und dem/den korrigierten Bitmuster(n) festgestellt werden können. Insbesondere wenn altersbedingte Bitfehler oder sonstige relativ stabile systematische Abweichungen zwischen den nicht korrigierten Bitmustern und dem korrigierten Bitmuster auftreten, kann dies von dem Bitfehlerkorrektor ausgenutzt werden. Die alterungsbedingten Effekte bzw. die sonstigen systematischen Effekte gestatten begründete Vermutungen über die Richtigkeit bzw. die Falschheit einzelner Bestandteile des nicht korrigierten Bitmusters, in der Regel einzelner Bits. Diesen begründeten Vermutungen liegt zugrunde, dass die altersbedingten bzw. sonstigen systematischen Effekte gerade nicht rein zufällig sind.
  • Bei Verwendung eines Bitfehlerkorrektors gemäß der hierin offenbarten technischen Lehre können andere Maßnahmen zur Bitfehlerkorrektur relativ einfach gehalten werden. Insbesondere wird es bei Redundanz-basierten Fehlerkorrekturverfahren, die neben dem hierin offenbarten Bitfehlerkorrektor Korrekturen an dem nicht korrigierten Bitmuster oder dem modifizierten Bitmuster vornehmen, ausreichen, dass weniger Redundanzinformation gespeichert und verarbeitet wird. Dieser geringere Aufwand für die Redundanz-basierte Bitfehlerkorrektur führt in der Regel zu einer höheren Geschwindigkeit, einem geringeren Schaltungsaufwand und/oder geringerem Energieverbrauch der Redundanz-basierten Fehlerkorrektur. Ein weiterer Punkt ist, dass weniger Redundanzinformation vorhanden sein muss, d. h. es werden weniger Redundanzbits benötigt. Da jedes zusätzliche Redundanzbit Informationen über das unter Umständen geheime korrigierte Bitmuster preisgibt, ist es wünschenswert, so wenig Redundanzbits wie möglich vorzusehen.
  • Gemäß weiteren Ausführungsbeispielen kann der Bitfehlerkorrektor einen Eingang für die Folge von nicht korrigierten Bitmustern umfassen, der konfiguriert ist, mit einem Ausgang eines Generators für ein auf einer physikalischen Hashfunktion (PUF) basierendes Bitmuster verbunden zu werden, wobei die alterungsbedingten Effekte im Wesentlichen auf die physikalische Hashfunktion zurückzuführen sind. Die nicht korrigierten Bitmuster entsprechen somit den sukzessive von der physikalischen Hashfunktion erzeugten Ausgabebitmuster. Die alterungsbedingten Effekte können sich zum Beispiel in Form von stabilen guten Bits und/oder stabilen falschen Bits innerhalb des von der physikalischen Hashfunktion erzeugten Ausgabebitmusters zeigen.
  • Gemäß weiteren Ausführungsbeispielen kann der Bitfehlerkorrektor einen Initialisierer umfassen zum Rücksetzen des zumindest einen Alterungsbitmusters, das in dem Alterungsbitmuster gespeichert ist, auf einen Anfangswert. Der Anfangswert kann beispielsweise ein Alles-Null-Bitmuster oder ein Alles-Eins-Bitmuster sein. In der Regel besagt eine solche Wahl des Anfangswerts, dass anfänglich angenommen wird, dass prinzipiell an allen Stellen des nicht korrigierten Bitmusters altersbedingte bzw. systematische Effekte auftreten können. Nach einer Iteration oder mehreren Iterationen, bei denen jeweils neue, nicht korrigierte Bitmuster verarbeitet werden, kristallisiert sich dann mehr und mehr heraus, an welchen Stellen in zukünftigen nicht korrigierten Bitmustern vermehrt mit einem Auftreten von alterungsbedingten bzw. systematischen Effekten zu rechnen ist.
  • Gemäß weiteren Ausführungsbeispielen kann der Alterungsbitmusterspeicher konfiguriert sein, weiterhin zumindest ein weiteres Alterungsbitmuster zu speichern, das sich auf zumindest eine vorhergehende Rekursion bezieht. Der Alterungsbitmusterbestimmer kann dann konfiguriert sein, eine Tendenz für die alterungsbedingten bzw. systematischen Effekte anhand von dem Alterungsbitmuster und dem zumindest einen weiteren Alterungsbitmuster zu identifizieren und für das rekursive Bestimmen des neuen Alterungsbitmusters heranzuziehen.
  • Gemäß einigen Ausführungsbeispielen kann der Alterungsbitmusterbestimmer einen Zähler umfassen, der konfiguriert ist, in dem Vergleichsbitmuster, dem Alterungsbitmuster und dem zumindest einen weiteren Alterungsbitmuster eine Ausprägung eines alterungsbedingten Effekts auf zumindest ein Bit der nicht korrigierten Bitmuster zu zählen. Der Alterungsbitmusterbestimmer kann konfiguriert sein, ein entsprechendes Zählergebnis bei dem rekursiven Bestimmen des zumindest einen Bits des Alterungsbitmusters zu berücksichtigen. Das Vergleichsbitmuster zeigt im Wesentlichen an, an welchen Stellen sich das nicht korrigierte Bitmuster und das korrigierte Bitmuster voneinander unterscheiden, bzw. an welchen Stellen sie übereinstimmen. Auch das Alterungsbitmuster und das zumindest eine weitere Alterungsbitmuster enthalten eine entsprechende Abweichungs- bzw. Übereinstimmungsinformation, in die jedoch noch eine Historie früherer nicht korrigierter Bitmuster eingeht. Beispielsweise kann anhand des Vergleichsbitmusters, des Alterungsbitmusters und des zumindest einen weiteren Alterungsbitmusters festgestellt werden, wie oft innerhalb einer Anzahl n vorhergehender Iterationen ein bestimmtes Bit in dem nicht korrigierten Bitmuster mit dem entsprechenden Bit des korrigierten Bitmusters übereingestimmt hat. Wenn bei dieser Auswertung eine signifikante statistische Verzerrung festgestellt werden kann, so kann diese statistische Verzerrung von dem Alterungsbitmusterbestimmer ausgenutzt werden, um eine vermutlich bessere Vorhersage der alterungsbedingten Effekte in nachfolgenden, nicht korrigierten Bitmustern zu machen.
  • Gemäß einigen Ausführungsformen kann der Alterungsbitmusterbestimmer ein Filter umfassen, das konfiguriert ist, um zumindest ein Bit in dem Vergleichsbitmuster und in zumindest einem von dem Alterungsbitmuster und dem zumindest einen weiteren Alterungsbitmuster zu filtern und ein entsprechendes Filterergebnis bei dem rekursiven Bestimmen des zumindest einen Bits des Alterungsbitmusters zu berücksichtigen. Das Filter kann zum Beispiel neuere Erkenntnisse über Abweichungen bzw. Übereinstimmungen einzelner Bits in den nicht korrigierten Bitmustern stärker gewichten als ältere Erkenntnisse.
  • Gemäß weiterer Ausführungsbeispiele kann der Bitfehlerkorrektor einen Redundanzspeicher zum Speichern einer Redundanzinformation und eine Redundanz-basierte Fehlerkorrektureinheit zum Korrigieren von Bitfehlern in dem nicht korrigierten Bitmuster oder dem modifizierten Bitmuster mittels der Redundanzinformation umfassen. Bei einigen Ausführungsbeispielen kann die Redundanz-basierte Fehlerkorrektureinheit Teil des Bitmustermodifizierers sein. Mittels der Redundanz-basierten Fehlerkorrektureinheit können zufällige Bitfehler korrigiert werden, die typischerweise in den nicht korrigierten Bitmustern beobachtet werden können. Weiterhin kann die Redundanzbasierte Fehlerkorrektureinheit Bits zurückkorrigieren, die fälschlicherweise aufgrund des zumindest einen Alterungsbitmusters als falsch angesehen wurden, tatsächlich jedoch korrekt waren. Die Redundanz-basierte Fehlerkorrektur gelingt, wenn die Anzahl der Bitfehler in dem in die Redundanzbasierte Fehlerkorrektureinheit eingehenden Bitmuster eine maximal korrigierbare Bitfehleranzahl (z. B. Hamming-Distanz) nicht überschreitet.
  • Gemäß einigen Ausführungsbeispielen können sich die alterungsbedingten Effekte auf zumindest ein Bit in den nicht korrigierten Bitmustern beziehen, das mit hoher Wahrscheinlichkeit falsch ist. Der Bitmustermodifizierer kann dann einen Invertierer umfassen zum Invertieren des zumindest einen, mit hoher Wahrscheinlichkeit falschen Bits des nicht korrigierten Bitmusters. Die Redundanz-basierte Fehlerkorrektureinheit kann konfiguriert sein, verbleibende Bitfehler in dem von dem Bitmustermodifizierer erzeugten modifizierten Bitmuster zu korrigieren. Der Inverter kann z. B. eine bitweise XOR-Funktion umfassen, wobei ein Eingang der bitweisen XOR-Funktion ein auf dem zumindest einen Alterungsbitmuster basierendes Steuerbitmuster bzw. Invertierungsbitmuster sein kann.
  • Gemäß einigen Ausführungsbeispielen können sich die alterungsbedingten Effekte auf zumindest ein Bit in den nicht korrigierten Bitmustern beziehen, das mit hoher Wahrscheinlichkeit richtig ist. Die Redundanz-basierte Fehlerkorrektureinheit kann konfiguriert sein, Bitfehler in dem aktuellen, nicht korrigierten Bitmuster unter Verwendung des Alterungsbitmusters und der Redundanzinformation zu korrigieren. Insbesondere kann die Redundanz-basierte Fehlerkorrektureinheit eine kumulative bzw. gleichzeitige Verwendung des zumindest einen Alterungsbitmusters und der Redundanzinformation implementieren, so dass die Fehlerkorrektur besser und/oder schneller gelingt. Insbesondere sind durch das Alterungsbitmuster einige Teile des richtigen Bitmusters bereits bekannt, so dass der Fehlerkorrekturalgorithmus diese Information verwenden und die Suche nach möglicherweise fehlerhaften Bits auf die verbleibenden Bits eingrenzen kann. Wenn die Redundanz-basierte Fehlerkorrektureinheit eine sogenannte Brute-Force-Methode einsetzt, kann der Rechenaufwand dafür in der Regel aufgrund des zumindest einen Alterungsbitmusters beträchtlich reduziert werden.
  • Gemäß einigen Ausführungsbeispielen kann die Redundanzbasierte Fehlerkorrektureinheit konfiguriert sein, das mit hoher Wahrscheinlichkeit richtige Bit als a priori bekanntes Bit in das korrigierte Bitmuster zu übernehmen, um die Redundanz-basierte Fehlerkorrektureinheit zu unterstützen.
  • Ausführungsbeispiele der vorliegenden Erfindung werden im Folgenden anhand der beiliegenden Figuren näher beschrieben. Es zeigen:
  • 1 ein schematisches Blockschaltbild zur Veranschaulichung des technologischen Umfelds, aus dem ein Alterungsvektor für eine physikalische Hashfunktion gewonnen werden kann;
  • 2 ein schematisches Blockschaltbild zur Veranschaulichung einer Verschlüsselung von unverschlüsselten Nutzdaten auf der Basis einer physikalischen Hashfunktion;
  • 3 ein schematisches Blockschaltbild zur Veranschaulichung einer Entschlüsselung von verschlüsselten Nutzdaten auf der Basis einer physikalischen Hashfunktion;
  • 4 ein schematisches Blockschaltbild eines Bitfehlerkorrektors gemäß zumindest einem Ausführungsbeispiel der hierin offenbarten technischen Lehre;
  • 5 ein schematisches Blockschaltbild zur Veranschaulichung einer Entschlüsselung von verschlüsselten Nutzdaten unter Verwendung eines Bitfehlerkorrektors gemäß einem ersten Ausführungsbeispiel der hierin offenbarten technischen Lehre;
  • 6 ein schematisches Blockschaltbild zur Veranschaulichung einer Entschlüsselung von verschlüsselten Nutzdaten unter Verwendung eines Bitfehlerkorrektors gemäß einer zu der beanspruchten Lehre alternativen oder ergänzenden Implementierung;
  • 7 ein schematisches Blockschaltbild zur Veranschaulichung einer Entschlüsselung von verschlüsselten Nutzdaten unter Verwendung eines Bitfehlerkorrektors gemäß einem zweiten Ausführungsbeispiel der hierin offenbarten technischen Lehre; und
  • 8 ein schematisches Flussdiagramm eines Bitfehlerkorrekturverfahrens gemäß einem Ausführungsbeispiel der hierin offenbarten technischen Lehre.
  • Bevor im Folgenden Ausführungsbeispiele anhand der beiliegenden Figuren erläutert werden, wird darauf hingewiesen, dass gleiche Elemente oder Elemente gleicher Funktion mit denselben oder ähnlichen Bezugszeichen versehen sind und dass auf eine wiederholte Beschreibung dieser Elemente möglicherweise verzichtet wird. Beschreibungen von Elementen mit gleichen Bezugszeichen sind daher untereinander austauschbar.
  • 1 zeigt ein schematisches Blockschaltbild zur Veranschaulichung eines Grundprinzips, das der hierin offenbarten technischen Lehre zugrunde liegt. Wie eingangs erwähnt, können die physikalischen Eigenschaften eines Objekts dazu verwendet werden, eine Bitfolge (oder allgemeiner: Bitmuster) zu gewinnen. Der Prozess der Erzeugung einer Bitfolge mittels einer physikalischen Hashfunktion aus den Eigenschaften des physikalischen Objekts wird PUF-Generierung genannt.
  • Eine Hauptverwendung von physikalischen Hashfunktionen ist zum Beispiel die folgende. Die physikalische Hashfunktion wird zur Herstellung eines kryptographischen Schlüssels verwendet. Zum Beispiel könnte man das von der physikalischen Hashfunktion erzeugte Bitmuster (PUF-Bitstring) selbst als kryptographischen Schlüssel verwenden. Oder man könnte das erzeugte Bitmuster zu einem kürzeren oder kleineren Bitmuster komprimieren und letzteres als kryptographischen Schlüssel verwenden.
  • Das in 1 dargestellte Blockschaltbild zeigt das physikalische Objekt 10 als Quelle der physikalischen Eigenschaften (PUF-Quelle), die in die physikalische Hashfunktion eingehen. Anhand der physikalischen Hashfunktion wird aus der PUF-Quelle 10 ein Bitmuster generiert, das per Definition als wahres Bitmuster 12 (wahrer PUF-Wert A) angesehen wird. In der Regel erfolgt die Festlegung des wahren Bitmusters 12 während eines Herstellungsprozesses oder Konfektionierungsschritts des physikalischen Objekts, wie zum Beispiel dem Schreiben oder Speichern von Daten auf oder in das physikalische Objekt. Andere Möglichkeiten zur Definition, welche der aus der PUF-Quelle 10 erzeugten Bitmuster als wahrer PUF-Wert A angesehen werden, sind jedoch ebenfalls möglich.
  • Der wahre PUF-Wert 12 dient als Eingang für einen Encoder 14, der basierend auf dem wahren PUF-Wert 12 eine Redundanzinformation 16 erzeugt. Der wahre PUF-Wert 12 bzw. A kann auf vielfältige Weise verwertet werden. Häufig dient er als kryptographischer Schlüssel oder zur Erzeugung eines auf dem wahren PUF-Wert 12 basierenden kryptographischen Schlüssels. Der wahre PUF-Wert 12 kann jedoch auch beispielsweise in einer Datenbank gespeichert oder an einen Empfänger übermittelt werden, wodurch sich zu einem späteren Zeitpunkt oder an einem anderen Ort feststellen lässt, ob ein vorliegendes physikalisches Objekt mit demjenigen übereinstimmt, das bei der Bestimmung des wahren PUF-Werts 12 verwendet wurde. Nachdem der wahre PUF-Wert 12 auf eine dieser Arten verwertet wurde, wird er in der Regel gelöscht, um einen möglichen Missbrauch zu erschweren.
  • Im Gegensatz zum wahren PUF-Wert 12 wird die Redundanzinformation 16 in der Regel auf, im oder im Zusammenhang mit dem als PUF-Quelle dienenden physikalischen Objekt gespeichert.
  • Zu einem späteren Zeitpunkt kann nun aus der PUF-Quelle 10 ein neuer PUF-Wert 22 bzw. B erzeugt werden. Dies kann beispielsweise notwendig sein, um Daten, die mittels des wahren PUF-Werts 12 bzw. A verschlüsselt wurden, wieder zu entschlüsseln. Zu diesem Zweck und auch bei anderen möglichen Anwendungsfällen wäre es eine wünschenswerte Eigenschaft eines PUF-Mechanismus, dass dasselbe physikalische Objekt jedes Mal dasselbe Bitmuster im Zuge einer erneuten PUF-Generierung ergibt. Dies sollte wünschenswerterweise insbesondere auch zutreffen unter verschiedenen Umweltbedingungen (Temperatur, Luftfeuchtigkeit, Helligkeit, elektrische und magnetische Feldstärken usw.).
  • Tatsächlich ist dies nicht der Fall. Eine wiederholte PUF-Generierung für dasselbe physikalische Objekt liefert Bitmuster, die zwar untereinander sehr ähnlich sind, aber im allgemeinen nicht miteinander identisch sein werden. Dieses Defizit kann mit Methoden der Codierungstheorie (Fehlerkorrektur) ausgeglichen werden.
  • Zu diesem Zweck wird der neue PUF-Wert 22 bzw. B einem Decoder zugeführt, der gemeinsam mit dem Encoder eine Encoder-Decoder-Einheit 14 bildet. Mit Hilfe der Redundanzinformation 16 kann der Decoder etwaige falsche Bits in dem neuen PUF-Wert 22 korrigieren, sofern die Anzahl der fehlerhaften Bits nicht größer als eine maximal korrigierbare Fehlerbitanzahl ist. Beispiele für mögliche Fehlererkennungs- und Fehlerkorrekturverfahren sind: Bose-Ray-Chaudhuri-Code (BCH), Fountain-Code, Hamming-Code, Low-Density-Parity-Check-Code (LDPC), Reed-Muller-Code, und Reed-Solomon-Code (RS). Mittels des verwendeten Redundanz-basierten Fehlerkorrekturverfahrens kann der Decoder einen Fehlervektor 24 bzw. E berechnen. Der Fehlervektor 24 kann dazu verwendet werden, die in dem neuen PUF-Wert 22 vorhandenen Abweichungen gegenüber dem wahren PUF-Wert 12 zu korrigieren, indem sowohl der neue PUF-Wert 22 als auch der Fehlervektor 24 mittels einer XOR-Funktion 26 verknüpft werden. Hieraus ergibt sich ein Bitmuster A', das gleich dem wahren PUF-Wert 12 ist, sofern die Abweichung zwischen dem neuen PUF-Wert 22 und dem wahren PUF-Wert 12 nicht zu groß waren, d. h. von dem Decoder unter Zuhilfenahme der Redundanzinformation 16 korrigiert wurden.
  • Zusammenfassend lässt sich somit festhalten: Gegeben ist ein physikalisches Objekt, nämlich die PUF-Quelle 10. Man erzeugt die dem Objekt 10 zugeordnete erste PUF-Bitfolge A (wahrer PUF-Wert 12). Die Bitfolge A wird wie eine Nachricht in der Codierungstheorie betrachtet, die über einen lauten Kanal übertragen werden soll, wobei zu erwarten ist, dass bei der Übertragung Fehler auftraten, d. h. einzelne Biteinträge umfallen (eine 0 wird zu einer 1, oder umgekehrt). In der Codierungstheorie begegnet man diesem Problem, indem man die Nachricht A mit einer Redundanz R versieht und das Codewort (A, R) überträgt. Wenn bei der Übertragung Fehler auftreten, so können diese dank der Redundanz R mit Methoden der Codierungstheorie korrigiert werden. Nach der Korrektur liegt in der Regel das fehlerfreie Nachrichtenwort A bzw. A' wieder vor.
  • Dieselbe Idee macht man sich zunutze in der PUF-Generierung:
    Der ursprüngliche PUF-Wert A bzw. 12 wird per definitionem als der wahre PUF-Wert festgelegt. Aus dem wahren PUF-Wert A bzw. 12 wird ein zugehöriger Redundanzwert R bzw. 16 berechnet. Der Wert R wird abgespeichert (aus Sicherheitsgründen wird der PUF-Wert A selbst nicht abgespeichert und steht daher auch nicht immer zur Verfügung). Bei einer späteren erneuten PUF-Generierung erhält man einen neuen PUF-Wert B bzw. 22. Der Wert B ist im allgemeinen nicht identisch mit A, unterscheidet sich aber von A nur geringfügig. Ziel ist es, den wahren PUF-Wert wiederzugewinnen. Dies gelingt mit Hilfe der Redundanz R und Methoden der Codierungstheorie: B → (B, R) → (A, R) → A bzw. A'
  • Die Aufgabe, den wahren PUF-Wert A aus dem neuen PUF-Wert B zu rekonstruieren, gelingt nur dann, wenn sich der neue PUF-Wert B nicht zu stark von dem wahren PUF-Wert A unterscheidet.
  • Dies ist am Anfang des Lebenszyklus eines physikalischen Objekts 10 in der Regel der Fall. Durch umfangreiches Experimentieren und geeignete Wahl des Fehlerkorrekturalgorithmus kann gewährleistet werden, dass die Rekonstruktion des wahren PUF-Werts A bzw. 12 aus dem neu generierten PUF-Wert B bzw. 22 gelingen wird.
  • Es ist jedoch damit zu rechnen, dass im Laufe der Zeit, als Folge von Alterungsprozessen, sich die Situation verschlechtert. Das heißt, die nun erzeugten PUF-Werte B unterscheiden sich bereits so stark von dem ursprünglichen PUF-Wert A, dass eine Rekonstruktion von A nicht mehr gelingt. Die hierin offenbarte technische Lehre kann an diesem Punkt Abhilfe schaffen.
  • 1 zeigt, wie prinzipiell ein Alterungsvektor H aus den Informationen gewonnen werden kann, die in dem schematischen Blockschaltbild von 1 verarbeitet werden. Insbesondere gibt der Fehlervektor E bzw. 24 an, wie sich der neue PUF-Wert B von dem wahren PUF-Wert A unterscheidet, d. h. welche Bits des neuen Bitmusters 22 sich von denjenigen des wahren Bitmusters 12 unterscheiden. Der Fehlervektor E wird an einen Alterungsbitmusterbestimmer 430 übergeben. Dieser kann anhand zumindest eines früheren Alterungsvektors H feststellen, ob sich Fehler an einer bestimmten Bitposition wiederholen bzw. statistisch häufen. Zu diesem Zweck wird der aktuelle Fehlervektor E in einem rekursiven Verfahren mit den Informationen verknüpft, die auf früheren PUF-Generierungen zur Gewinnung früherer PUF-Werte B bzw. 22 beruhen. Auf diese Weise kann ein jeweils aktueller Alterungsvektor H bzw. 36 ermittelt werden, der zu Informationszwecken ausgelesen und analysiert werden kann.
  • Das oben beschriebene Problem wurde bis jetzt so gelöst, dass der ursprüngliche (der wahre) PUF-Wert A mit einer sehr großen Redundanz R ausgestattet wird und das entsprechend ein sehr mächtiger Code (im Sinne einer hohen Fehlerkorrekturfähigkeit) verwendet wird. Ein derartiger mächtiger Code mit einer hohen Fehlerkorrekturfähigkeit erfordert jedoch in der Regel einen erhöhten Strom- und Flächenbedarf für die Speicherung der Redundanz R bzw. für den Ablauf des Codierungsalgorithmus. Dies gilt insbesondere für Chipkarten. Bei Chipkarten können Silizium-PUFs (Silizium-basierte physikalische Hashfunktionen) zur Realisierung von PUFs verwendet werden. Bei einer Silizium-PUF werden etwa unterschiedliche Laufzeiten von Schaltkreisen als Basis für die Digitalisierung (PUF-Generierung) genutzt. Die Redundanz R wird im nicht flüchtigen Speicher (engl.: non-volatile memory, NVM) der Chipkarte hinterlegt. Der PUF-Wert A wird jedoch aus Sicherheitsgründen nicht abgespeichert.
  • Weiterhin ist zu beachten, dass eine große Redundanz R zu folgender Situation führen kann: Der PUF-Wert A ist geheim und soll es in der Regel auch bleiben. Die Redundanz R ist jedoch öffentlich. Informationstheoretisch betrachtet verrät die Redundanz R ein gewisses Maß an Information von A. Wenn R nun größer als A ist, dann wäre A im Sinne der Informationstheorie kein Geheimnis mehr. Wenn jedoch die Redundanz R kleiner ist als A, dann gilt: Das wahre Geheimnis von A ist gegeben durch die Differenz der Bitlänge von A und der Bitlänge von R. Ein Beispiel: Der PUF-Wert A sei eine 500 Bit lange Bitfolge. Die Redundanz R habe 400 Bit. Da die Redundanz R öffentlich ist, stecken in dem wahren PUF-Wert A noch 100 Bit geheime Informationen. Es kann also aus diesem Beispiel 100 Bit kryptographischer Schlüssel aus dem wahren PUF-Wert A gewonnen werden (etwa indem jeweils 5 Bit von A miteinander XOR-fiert werden).
  • Zur Unterstützung der Redundanz-basierten Fehlerkorrektur, d. h. der Fehlerkorrektur auf der Grundlage von Verfahren der Codierungstheorie, können Erkenntnisse über die Alterungseffekte des Bitmusters herangezogen werden. Die physikalische Hashfunktion erzeugt ein Bitmuster, das aus einem physikalischen Prozess gewonnen wird. Wir können prinzipiell drei Typen von Bits in dem PUF-Bitmuster unterscheiden:
    • a) stabile richtige Bits;
    • b) Zufallsbits;
    • c) stabile falsche Bits.
  • Typ a) wäre der Idealfall. Gäbe es nur Bits von diesem Typus, dann wäre die PUF-Generierung ein deterministischer stabiler Prozess, der immer zum selben Ergebnis führt. In diesem Fall wäre eine Fehlerkorrektur nicht erforderlich.
  • Typ b) ist der Normalfall. Ein bestimmtes Bit wird im allgemeinen einen neuen bestimmten Wert annehmen, sagen wir den Wert 0. Gelegentlich passiert es aber, dass im Zuge einer neuen PUF-Generierung dieses Bit den Wert 1 annimmt. Dieser Situation wird mit Methoden der (redundanz-basierten) Fehlerkorrektur begegnet.
  • Typ c): Diese Bits sind stabil, ihr Wert ist aber stets dem Wert des entsprechenden Bits im wahren PUF-Wert A bzw. 12 entgegengesetzt. Beispiel: Der wahre PUF-Wert A hat an Position 7 das Bit 0. Ab einem gewissen Zeitpunkt tritt jedoch bei jeder erneuten PUF-Generierung an Position 7 das Bit 1 auf. Bits von diesem Typus müssen gegenwärtig ebenfalls mit Hilfe von Fehlerkorrektur richtiggestellt werden.
  • Die Anzahl der Bits vom Typ c) wird bei bestimmten PUF-Mechanismen im Laufe der Zeit zunehmen. Es kann von einem Alterungsprozess gesprochen werden.
  • Es sei darauf hingewiesen, dass ein Alterungsprozess nicht nur von der verstrichenen Kalenderzeit abhängen muss. Der Alterungsprozess kann auch durch den Betriebsstress des PUF-Geräts beschleunigt werden. Zum Beispiel dürfte ein Gerät, das eine Silizium-PUF nutzt und bei dem innerhalb von einem Kalenderjahr 10.000 Mal die PUF-Generierung stattfindet, stärker gealtert sein als ein Vergleichsgerät, bei dem nur 50 PUF-Generierungen stattfanden im gleichen Zeitraum.
  • Gemäß der hierin offenbarten technischen Lehre werden Bits vom Typ c) (also Bits, die gleichzeitig stabil und falsch sind) und/oder Bits vom Typ a) (also Bits, die gleichzeitig stabil und richtig sind) identifiziert, d. h. die Positionen solcher Bits ausfindig gemacht. Sind diese Positionen bekannt, dann kann im Falle der stabilen, falschen Bits (Typ c) folgendermaßen bei der PUF-Generierung vorgegangen werden: Es wird wie bisher ein PUF-Wert B generiert. In diesem Bitmuster B werden sodann alle Bits an den bekannten Positionen der Typ-C-Bits invertiert. Man erhält einen neuen PUF-Wert B', wobei das Bitmuster B' eine bessere Approximation an den wahren PUF-Wert A darstellt als B. Unter Verwendung der Redundanz R werden die in dem Bitmuster B' verbleibenden Fehler korrigiert, wodurch man den wahren PUF-Wert A bzw. den angenommenen wahren PUF-Wert A' erhält.
  • Bei Kenntnis der Positionen von stabilen, guten Bits (Typ a) kann diese Information als Startwert oder Nebenbedingung für die Redundanz-basierte Fehlerkorrektur verwendet werden, wodurch sich der Aufwand für die Redundanz-basierte Fehlerkorrektur vermindert und die Chancen für ein erfolgreiches Rekonstruieren des wahren PUF-Werts A steigen.
  • Somit befasst sich die hierin offenbarte technische Lehre damit, bei PUF-Generierungsmechanismen stabile, falsche Bits und/oder stabile, gute Bits in dem neu generierten PUF-Bitmuster zu identifizieren und diese Fehler sofort zu bereinigen bzw. diese a priori Information für weitere Fehlerkorrekturmaßnahmen zu verwenden, die zum Beispiel auf der Codierungstheorie beruhen. Im Falle von identifizierten stabilen falschen Bits geschieht die Bereinigung der entsprechenden Bitfehler durch simple Invertierung der entsprechenden Bits (aus 0 mache 1, aus 1 mache 0). Erst danach kommen die komplizierteren Methoden der Codierungstheorie zum Einsatz.
  • Da infolge von Altersprozessen die Anzahl solcher stabiler und falscher Bits (Typ c) zunehmen kann, wird hierdurch der Arbeits- und Rechenaufwand, den die Codierungstheorie bei der PUF-Gewinnung leisten muss, nicht mehr größer im Laufe der Zeit, sondern bleibt gleich oder wird sogar geringer. Mit anderen Worten, der PUF-Generierungsmechanismus wird dadurch robust für die Zukunft.
  • Ein Beispiel zur Veranschaulichung: Sei A der wahre PUF-Wert. Es werden 10 neue PUF-Generierungen gefahren. Wir erhalten dabei die Bitfolgen B1, B2, ..., B10. Der jeweilige generierte PUF-Wert B wird mittels Codierungstheorie bearbeitet. Man erhält dadurch einen zugehörigen Fehlervektor E. Die bitweise XOR-Summe von B und E ergibt den wahren PUF-Wert A.
  • Nun wird parallel zu dieser Vorgangsweise ein Alterungsvektor H produziert (Der Vektor H dokumentiert im gewissen Sinne den Alterungsprozeß). Der Alterungsvektor H steht am Ende einer Folge von Hilfsvektoren H1, H2, ..., H10. Die Hilfsvektoren H werden mit Hilfe der Fehlervektoren E rekursiv berechnet: Hj+i = Ej+i & H für j = 0, 1, 2, ... .
  • Dabei steht & für die gliedweise Verundung der Vektoren. (Algebraisch gesehen ist & also die binäre Multiplikation. D. h. 0&0 = 0&1 = 1&0 = 0 und 1&1 = 1.)
  • Die Initialisierung ist der Alles-Eins-Vektor:
    H0 = 1111...1111.
  • Für die Zwecke des Beispiels wird eine Länge der PUF-Werte A und B von 16 Bit angenommen.
    Wahrer PUF-Wert sei A = 1010 1110 0100 0110
    Initialisierung: H0 = 1111 1111 1111 1111
    B1 = 1010 0111 0100 0111
    E1 = 0000 1001 0000 0001
    H1 = 0000 1001 0000 0001
    B2 = 1010 0110 0100 1111
    E2 = 0000 1000 0000 1001
    H2 = 0000 1000 0000 0001
    B3 = 0000 0110 0100 0110
    E3 = 1010 1000 0000 0000
    H3 = 0000 1000 0000 0000
    B4 = 1010 0110 1100 0010
    E4 = 0000 1000 1000 0100
    H4 = 0000 1000 0000 0000
    B5 = 1010 0010 0100 0100
    E5 = 0000 1100 0000 0010
    H5 = 0000 1000 0000 0000
    B6 = 1110 0110 0100 0110
    E6 = 0100 1000 0000 0000
    H6 = 0000 1000 0000 0000
    B7 = 1011 0110 0100 0111
    E7 = 0001 1000 0000 0001
    H7 = 0001 1000 0000 0001
    B8 = 0010 0110 0101 0110
    E8 = 1000 1000 0001 0000
    H8 = 0000 1000 0000 0000
    B9 = 1010 0110 0101 0110
    E9 = 0000 1000 0001 0000
    H9 = 0000 1000 0000 0000
    B10 = 1010 0110 0110 0110
    E10 = 0000 1000 0010 0000
    H10 = 0000 1000 0000 0000
  • Man erhält den Alterungsvektor
    H = H10 = 0000 1000 0000 0000
  • Der Alterungsvektor H wird zusammen mit der Redundanz R (aus der Codierungstheorie) abgespeichert. Der Alterungsvektor H erleichtert die Rekonstruktion des wahren PUF-Werts A aus einem zukünftig generierten PUF-Wert B wir folgt:
    Ersetze B durch B' = B + H
    wobei das + hier für die bitweise XORierung der Bits des Vektors B und des Vektors H steht.
  • Im Vektor B' werden hierdurch die Alterungsfehler bereinigt. In dem konkreten Beispiel liegt ein Alterungsfehler an der fünften Position von links vor. Der Vektor B' ist bereits eine bessere Annäherung an den wahren PUF-Wert A als der Vektor B es war.
  • Nun wird unter Verwendung der Redundanz R mit Methoden der Codierungstheorie aus B' der wahre PUF-Wert A rekonstruiert.
  • 2 zeigt ein schematisches Blockschaltbild, das eine mögliche Anwendung einer physikalischen Hashfunktion zur Verschlüsselung von Nutzdaten veranschaulicht. 2 zeigt den Kodierungs- bzw. Verschlüsselungsfall, während die weiter unten beschriebene 3 den entsprechenden Dekodierungs- bzw. Entschlüsselungsfall zeigt.
  • Beim in 2 dargestellten Kodierungs- bzw. Verschlüsselungsfall werden aus der PUF-Quelle 10 physikalische Parameter zum Beispiel mittels einer Messfunktion bestimmt, die für die jeweilige PUF-Quelle 10, also das physikalische Objekt, möglichst eindeutig charakteristisch sind. Eine physikalische Hashfunktion, hier als PUF-Generator 32 bezeichnet, empfängt die physikalischen Parameter an einem Eingang und generiert daraus den wahren PUF-Wert A bzw. 12. Von einem Ausgang der physikalischen Hashfunktion 32 wird der wahre PUF-Wert A an einen Eingang eines Encodierers 34 übermittelt. Der Encoder 34 verarbeitet den wahren PUF-Wert A und berechnet insbesondere eine Redundanz R bzw. 16 für den wahren PUF-Wert A. Die Redundanz 16 wird in einem nicht flüchtigen Speicher (engl.: non-volatile memory „NVM”) 11 gespeichert. Der nicht flüchtige Speicher 11 kann zum Beispiel als PROM (programmable read only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory) oder als Flashspeicher implementiert sein. Es ist prinzipiell aber auch möglich, dass die Redundanz 16 beispielsweise direkt auf das physikalische Objekt 10 in optisch lesbarer Form gedruckt wird, wo ein späterer Benutzer im Dekodierungsfall sie lesen und über eine entsprechende Eingabeschnittstelle (Tastatur, Strichcodeleser, usw.) eingeben kann.
  • Der wahre PUF-Wert A wird in der Regel unverändert durch den Encoder 34 gereicht und steht somit an einem Ausgang des Encoders 34 zur Verfügung. Alternativ kann der wahre PUF-Wert A auch direkt an dem entsprechenden Eingang des Encodierers 34 abgegriffen werden. Der wahre PUF-Wert A wird einem Schlüsselgenerator 36 zugeführt, der aus dem wahren PUF-Wert A einen kryptographischen Schlüssel 38 erstellt. Diese Schlüsselgenerierung kann zum Beispiel in der Form erfolgen, dass der physikalische PUF-Wert A in Blöcke von jeweils n-Bits unterteilt wird. Die in einem der n Blöcke enthaltenen Bits werden dann mittels einer vorgegebenen logischen Funktion verknüpft (beispielsweise XOR-verknüpft), woraus sich der Schlüssel 38 ergibt, der gegenüber der den wahren PUF-Wert A darstellenden Bitfolge eine komprimierte Länge hat. Zum Beispiel kann ein 1024 Bit langer wahrer PUF-Wert A durch Unterteilung in Blöcke zu je 8 Bit in einem 128 Bit langen Schlüssel 38 komprimiert werden.
  • Der Schlüssel 38 wird an eine Verschlüsselungseinheit 42 übermittelt, die an einem anderen Eingang unverschlüsselte Nutzdaten 40 empfängt. Mittels des Schlüssels 38 kann die Verschlüsselungseinheit 42 die unverschlüsselten Nutzdaten 40 in verschlüsselte Nutzdaten umwandeln, die an einem Speicherplatz für verschlüsselte Nutzdaten 44 des nicht flüchtigen Speichers 11 gespeichert werden können. Auf diese Weise sind die verschlüsselten Nutzdaten indirekt mittels der PUF-Quelle 10, also dem physikalischen Objekt, verschlüsselt.
  • Der wahre PUF-Wert A wird in der Regel verworfen, nachdem die Schlüsselgenerierung durch den Schlüsselgenerator 36 durchgeführt wurde. Somit muss bei einer späteren Entschlüsselung der Schlüssel 38 erneut auf der Grundlage der PUF-Quelle 10 erzeugt werden, was in der Regel das Vorhandensein des jeweiligen physikalischen Objekts erfordert.
  • 3 stellt als schematisches Blockschaltbild den Dekodierungs- bzw. Entschlüsselungsfall dar, der dem in 2 dargestellten Kodierungs- bzw. Verschlüsselungsfall entspricht. Das Ziel ist, die in dem nicht flüchtigen Speicher 11 gespeicherten verschlüsselten Nutzdaten wieder zu entschlüsseln. Dazu werden erneut die physikalischen Parameter der PUF-Quelle 10 ermittelt und der physikalischen Hashfunktion 32 zugeführt. Da die physikalischen Parameter einer gewissen statistischen Streuung unterliegen, erzeugt die physikalische Hashfunktion 32 in der Regel einen neuen PUF-Wert B bzw. 22, der von dem wahren PUF-Wert A bzw. 12 etwas abweicht. Diese Abweichungen können, sofern sie nicht zu gravierend sind, mittels eines Decodierers 54 und einer XOR-Verknüpfung 56 korrigiert werden. Dazu liest der Decodierer 54 die zuvor im nicht flüchtigen Speicher 11 gespeicherte Redundanz 16 ein und berechnet aus dieser und dem neuen Wert PUF-Wert B einen Fehlervektor E bzw. 24. Der Fehlervektor E wird dann mit dem neuen PUF-Wert B bitweise XOR-verknüpft, was durch das bitweise XOR 56 erfolgt. Am Ausgang des bitweisen XORs 56 liegt ein korrigiertes Bitmuster BKORR an, für das gilt: B = A, wenn die Dekodierung erfolgreich war. Das korrigierte Bitmuster BKORR kann dann in analoger Weise wie in 2 von dem Schlüsselgenerator 36 verwendet werden, um den Schlüssel 38 zu erstellen. Der Schlüssel 38 geht dann an einen Eingang einer Entschlüsselung 52, die an einem anderen Eingang die verschlüsselten Nutzdaten 44 empfängt. An einem Ausgang der Entschlüsselung 53 werden dann unverschlüsselte Nutzdaten 50 bereitgestellt, die im Wesentlichen mit den unverschlüsselten Nutzdaten 40 aus 2 übereinstimmen.
  • Der Dekodierer 54 kann entweder das komplette Bitmuster B in einem Stück mittels einer entsprechend großen Redundanz dekodieren. Alternativ ist es auch möglich, dass das nicht korrigierte Bitmuster B und die Redundanz R jeweils in mehrere Blöcke aufgeteilt werden und die Dekodierung blockweise geschieht. Zum Beispiel kann das nicht korrigierte Bitmuster B in Blöcke von 16 Bit unterteilt werden und die dazugehörigen Redundanzblöcke können z. B. 4, 5 oder 6 Bit lang sein.
  • Wie oben erklärt, hängt der Erfolg der Dekodierung durch den Decodierer 54 und das bitweise XOR 56 davon ab, ob die Redundanz 16 groß genug ist, um die in dem nicht korrigierten Bitmuster B enthaltenen Bitfehler erfolgreich zu korrigieren. Da die PUF-Quelle 10 mit der Zeit altert, kommen zu zufälligen Bitfehlern (Typ b), die sich in der Regel nicht vermeiden lassen, noch altersbedingte bzw. systematische Bitfehler hinzu. Übersteigt die Anzahl der zufälligen Fehler und der alterungsbedingten Fehler die Anzahl der maximal von der Redundanz 16 korrigierbaren Bits, so stimmt das korrigierte Bitmuster BKORR nicht mehr mit dem wahren PUF-Wert A überein, und die Schlüsselgenerierung 36 liefert einen falschen Schlüssel. Mit einem falschen Schlüssel wird aber auch die Entschlüsselung 52 in der Regel fehlschlagen. Die verschlüsselten Nutzdaten ließen sich somit nicht mehr auf diese Weise entschlüsseln und wären unter Umständen unbrauchbar für zukünftige Nutzungen.
  • Da der Alterungsbitmusterbestimmer 134 rekursiv arbeitet, wird eine Initialisierung des Alterungsbitmusters H vorgenommen. Das zur Initialisierung des Alterungsbitmusters H verwendete Bitmuster kann zum Beispiel ein Bitmuster sein, in dem alle Bits den Wert 1 (Alles-Eins-Bitmuster) oder den Wert 0 (Alles-Null-Bitmuster) haben. Diese gleichförmigen Initialisierungsbitmuster zeigen an, dass zum Initialisierungszeitpunkt davon ausgegangen werden kann, dass prinzipiell alle Bits der nichtkorrigierten Bitmuster von alterungsbedingten Effekten betroffen sein können. Erst nach und nach kristallisiert sich heraus, welche Bits tatsächlich entweder stabil und falsch sind oder stabil und gut sind.
  • Da alterungsbedingte Effekte allerdings unter Umständen erst nach Jahren auftreten können, kann es vorkommen, dass durch zwischenzeitliche Iterationen des Alterungsbitmusterbestimmers 134 ein eigentlich von dem Alterungseffekt betroffenes Bit nicht mehr in dem Alterungsbitmuster H angezeigt wird. Ein möglicher Grund ist der, dass sich das betroffene Bit in einer ersten Phase des Lebenszyklus des physikalischen Objekts wie ein zufälliges Bit (Typ B) verhalten hat. Dies kann den Alterungsbitmusterbestimmer 134 nach einigen Iterationen (im Extremfall bereits nach einer einzigen Iteration) dazu veranlassen, das entsprechende Bit aus dem Alterungsbitmuster H zu streichen, d. h. das entsprechende Bit wird danach nicht mehr wie ein Bit behandelt, das alterungsbedingten Effekten unterliegt. Selbst wenn sich das entsprechende Bit zu einem späteren Zeitpunkt wieder als stabiles Bit (Typ A oder Typ C) verhalten würde, würde es keine Aufnahme in das Alterungsbitmuster H mehr finden. Dies kann zum Beispiel dadurch verhindert werden, dass zu bestimmten Zeitpunkten eine Neuinitialisierung stattfindet. Die Neuinitialisierung kann beispielsweise auch nur teilweise erfolgen, so dass nicht das gesamte Alterungsbitmuster H auf einmal neu initialisiert wird, sondern nur ein Teil (z. B. zunächst alle ungeradzahligen Bits, danach alle geradzahligen Bits, oder auch: sukzessives Neuinitialisieren vom niedrigstwertigen Bit (LSB) bis zum höchstwertigen Bit (MSB)). Auf diese Weise wird ein Teil der in dem Alterungsbitmuster H gespeicherten Bits beibehalten, die ja zum größten Teil korrekte Annahmen über die in dem nicht korrigierten Bitmuster enthaltenen altersbedingten Bitfehler machen. Es kann empfehlenswert sein, den Bitmustermodifizierer 102 für eine oder mehrere Iterationen nach einer (Neu)initialisierung zu umgehen bzw. den Einfluss des neuinitialisierten Bitmusters H auf den Bitmustermodifizierer 102 zu deaktivieren, um zu verhindern, dass der Bitmustermodifizierer aufgrund des Initialisationsbitmusters H0 zu viele Bits verändert, die eigentlich korrekt waren.
  • Eine Neuinitialisierung kann auch ereignisgesteuert ausgelöst werden, zum Beispiel wenn eine redundanz-basierte Bitfehlerkorrektur, die auf dem modifizierten Bitmuster B' ausgeführt wird, wiederholt fehlschlägt.
  • 4 zeigt ein schematisches Blockschaltbild eines Bitfehlerkorrektors 100 gemäß einem Ausführungsbeispiel der hierin offenbarten technischen Lehre. Der Bitfehlerkorrektor ist konfiguriert, um ein nicht korrigiertes Bitmuster B an einem Eingang zu empfangen. Das nicht korrigierte Bitmuster B wird einem Bitmustermodifizierer 102 und auch einem Bitmustervergleicher 104 zugeführt. Der Bitmustermodifizierer 102 umfasst auch einen zweiten Eingang für ein Alterungsbitmuster H. Unter Verwendung des nicht korrigierten Bitmusters B und des Alterungsbitmusters H erzeugt der Bitmustermodifizierer 102 ein modifiziertes Bitmuster B'. Mittels eines optionalen Elements 112, das nicht unbedingt zum Bitfehlerkorrektor 100 gehören muss, kann das modifizierte Bitmuster B' noch in ein korrigiertes Bitmuster BKORR umgewandelt werden. Es ist aber auch möglich, dass das modifizierte Bitmuster B' bereits dem korrigierten Bitmuster BKORR entspricht, dass also keine weitere Umwandlung mehr notwendig ist.
  • Neben dem nicht korrigierten Bitmuster B wird auch das korrigierte Bitmuster BKORR dem Bitmustervergleicher 104 zugeführt. Der Bitmustervergleicher 104 kann zum Beispiel durch bitweise XOR-Verknüpfung von B und BKORR ein Vergleichsbitmuster V ermitteln. Dieses Vergleichsbitmuster V gibt an, an welchen Stellen B und BKORR übereinstimmen bzw. voneinander abweichen. Das Vergleichsbitmuster V wird an einen Alterungsbitmusterbestimmer 134 übergeben, der auf rekursive Weise ein neues Alterungsbitmuster HNEU aus dem Vergleichsbitmuster V und zumindest einem zuvor abgespeicherten Alterungsbitmuster bestimmt. Das zuvor gespeicherte Alterungsbitmuster kann beispielsweise aus dem nicht flüchtigen Speicher 111 gelesen werden, bevor es durch das neue Alterungsbitmuster HNEU überschrieben wird.
  • 5 zeigt ein schematisches Blockschaltbild zur Veranschaulichung der Entschlüsselung bzw. Dekodierung von verschlüsselten Nutzdaten mittels eines aus einem PUF-Wert erzeugten kryptographischen Schlüssels 38. Insbesondere stellt 5 dar, wie mittels eines Bitfehlerkorrektors gemäß zumindest eines Ausführungsbeispiels der hierin offenbarten technischen Lehre stabile, falsche Bits (Typ C) identifiziert und entsprechend korrigiert werden können. Im Rahmen der Entschlüsselung wird ein Bitfehlerkorrektor 500 gemäß zumindest einem Ausführungsbeispiel der hierin offenbarten technischen Lehre verwendet. Der Bitfehlerkorrektor 500 empfängt das nicht korrigierte Bitmuster B von der physikalischen Hashfunktion 32, ähnlich wie in dem in 3 dargestellten Blockschaltbild. Ein Bitmustermodifizierer 502 führt ein bitweises XOR zwischen dem nicht korrigierten Bitmuster B und einem Alterungsbitmuster H durch, wodurch Bitfehler, die auf alterungsbedingten Effekten beruhen und als in dem nicht korrigierten Bitmuster vorhanden angenommen werden, korrigiert werden. Am Ausgang des Bitmustermodifizierers 502 liegt dann ein entsprechend modifiziertes Bitmuster B' an. In der Regel ist das modifizierte Bitmuster B' eine bessere Annäherung an den wahren PUF-Wert A als das nicht korrigierte Bitmuster B. Das modifizierte Bitmuster B' wird an einen Decodierer 554 weitergeleitet, der mit Hilfe einer Redundanz 16, die in dem nicht flüchtigen Speicher 111 gespeichert ist, einen Fehlervektor E berechnet. Durch XOR-Verknüpfung des modifizierten Bitmusters B' mit dem Fehlervektor E durch das bitweise XOR 556 kann ein korrigiertes Bitmuster BKORR erstellt werden, bei dem mit hoher Wahrscheinlichkeit davon ausgegangen werden kann, dass es mit einem den wahren PUF-Wert A repräsentierenden Bitmuster übereinstimmt. Nach Übergabe des korrigierten Bitmusters BKORR an den Schlüsselgenerator 36 kann die Entschlüsselung im Wesentlichen wie in 3 dargestellt fortgesetzt werden.
  • Das von dem Bitmustermodifizierer 502 verwendete Alterungsbitmuster H ist in dem nicht flüchtigen Speicher 111 an einem Speicherplatz 536 gespeichert und kann für die Zwecke der Bitmustermodifizierung aus diesem ausgelesen werden. Jede neue PUF-Generierung eines neuen PUF-Werts bzw. nicht korrigierten Bitmusters B eröffnet die Möglichkeit, das Alterungsbitmuster H zu aktualisieren, indem die in dem nicht korrigierten Bitmuster B enthaltenen Informationen über eventuelle alterungsbedingte Effekte verwertet werden. Zu diesem Zweck wird zum einen das nicht korrigierte Bitmuster B und zum anderen das korrigierte Bitmuster BKORR an den entsprechenden Stellen abgegriffen und einer rekursiven Alterungsbitmuster- bzw. Alterungsvektorbestimmung 534 zugeführt.
  • Als weiteren Alterungsparameter empfängt die rekursive Alterungsbitmusterbestimmung 534 das Alterungsbitmuster H, das aus dem nicht flüchtigen Speicher 111 bzw. dem Speicherplatz 536 für das Alterungsbitmuster H gelesen werden kann. Mit diesen Informationen kann die rekursive Alterungsbitmusterbestimmung 534 nun ein neues Alterungsbitmuster HNEU bestimmen und zurück an den Speicherplatz 536 in dem nicht flüchtigen Speicher 111 schreiben. Von dort kann das neue Alterungsbitmuster HNEU im Rahmen einer nachfolgenden Iteration oder auch mehrerer nachfolgender Iterationen, bei der/denen jeweils neue nicht korrigierte Bitmuster B mittels der physikalischen Hashfunktion 32 bestimmt werden.
  • 6 zeigt ein schematisches Blockschaltbild zur Veranschaulichung der Entschlüsselung von verschlüsselten Nutzdaten unter Verwendung eines Bitfehlerkorrektors 600 gemäß einer Implementierung, die alternativ oder ergänzend zu der hierin offenbarten technischen Lehre ist. Im Gegensatz zu dem in 5 dargestellten Bitfehlerkorrektor 500 identifiziert der Bitfehlerkorrektor 600 stabile, gute Bits (Typ A) anstelle von stabilen, falschen Bits (Typ C). Der Bitfehlerkorrektor 600 unterscheidet sich daher insbesondere im Bereich des Bitmustermodifizierers 602 von dem Bitfehlerkorrektor 500. Der Bitmustermodifizierer 602 umfasst einen Decodierer, der das nicht korrigierte Bitmuster B, das Alterungsbitmuster H und die Redundanz 16 an entsprechenden Eingängen des Bitmustermodifizierers 602 empfängt. Das Alterungsbitmuster H und die Redundanz 16 können von entsprechenden Speicherplätzen innerhalb des nicht flüchtigen Speichers 111 gelesen werden, wobei das Alterungsbitmuster an einem Speicherplatz 636 gespeichert ist. Der Bitmustermodifizierer verwendet diese Informationen, um den Fehlervektor E zu berechnen. Da dem Decodierer neben der Redundanz 16 auch das Alterungsbitmuster H zur Verfügung steht, in dem die mit hoher Wahrscheinlichkeit richtigen Bits identifiziert sind, reduziert sich der Aufwand für den Decodierer. Gleichzeitig steigen die Chancen, dass das Fehlerbitmuster E geeignet ist, sämtliche Fehler in dem nicht korrigierten Bitmuster B zu korrigieren. Durch bitweises XOR-Verknüpfen des nicht korrigierten Bitmusters B mit dem Fehlerbitmuster E innerhalb des bitweisen XORs kann ein korrigiertes Bitmuster BKORR ermittelt werden, das wiederum an den Schlüsselgenerator 36 zur weiteren Verarbeitung übermittelt werden kann.
  • Auch hier umfasst der Bitfehlerkorrektor 600 eine rekursive Alterungsvektor- bzw. Alterungsbitmusterbestimmung 634, die das nicht korrigierte Bitmuster B und das korrigierte Bitmuster BKORR als Eingänge empfängt. An einem anderen Eingang liegt das derzeit von dem Bitmustermodifizierer 602 verwendete Alterungsbitmuster H an. Das rekursive neue Alterungsbitmuster HNEU kann dann wieder an den Speicherplatz 636 in den nicht flüchtigen Speicher 111 geschrieben werden.
  • 7 zeigt ein schematisches Blockschaltbild einer Dekodierung bzw. einer Entschlüsselung unter Verwendung eines Bitfehlerkorrektors 700 gemäß zumindest einem Ausführungsbeispiel der hierin offenbarten technischen Lehre. Der Bitfehlerkorrektor 700 kann im Wesentlichen als eine Kombination der Bitfehlerkorrektoren 500 und 600 aus den 5 und 6 angesehen werden. Dementsprechend nutzt der Bitfehlerkorrektor 700 sowohl stabile falsche Bits (Typ C) als auch stabile gute Bits (Typ A). Der Bitfehlerkorrektor 700 umfasst den aus 5 bekannten Bitmustermodifizierer 502 als ersten Bitmustermodifizierer und den aus 6 bekannten Bitmustermodifizierer 602 als zweiten Bitmustermodifizierer. Der erste Bitmustermodifizierer 502 empfängt das nicht korrigierte Bitmuster B und einen Teil HF des Alterungsbitmusters H, wobei sich dieser Teil HF auf die Bits in der Folge der nicht korrigierten Bitmuster B bezieht, die mit hoher Wahrscheinlichkeit stabil und falsch sind (Typ C). In analoger Weise wie in dem Ausführungsbeispiel von 5 gibt der erste Bitmustermodifizierer 502 ein modifiziertes Bitmuster B' an seinem Ausgang aus. Das modifizierte Bitmuster B' wird an einem Eingang des zweiten Bitmustermodifizierers 602 empfangen, der insbesondere einen Decodierer umfasst, der eine Redundanzbasierte Fehlerkorrektur des modifizierten Bitmuster B' unter Verwendung eines zweiten Teils HG des Alterungsbitmusters H durchführen kann, d. h. dafür ausgelegt ist.
  • Die beiden Teile HF und HG sind in einem Speicherbereich 736 des nicht flüchtigen Speichers 111 gespeichert, wobei der Speicherplatz 736 nochmals unterteilt ist in einen Speicherplatz 736-1 für den Teil HF, der die stabilen, falschen Bits anzeigt, und einen Speicherplatz 736-2 für den Teil HG, der die stabilen, guten Bits markiert. Der erste und zweite Bitmustermodifizierer 502, 602 können konfiguriert sein, auf die entsprechenden Speicherplätze 736-1 und 736-2 zuzugreifen, um die für sie relevanten Teile des Alterungsbitmusters H einzulesen.
  • Am Ausgang des zweiten Bitmustermodifizierers 602 liegt das Fehlerbitmuster E an, das an das bitweise XOR 656 übergeben wird, um das modifizierte Bitmuster B' hinsichtlich der noch verbleibenden Bitfehler (zumeist zufällige Bitfehler) zu korrigieren. Das sich am Ausgang des bitweisen XORs 656 ergebende korrigierte Bitmuster BKORR wird wiederum an den Schlüsselgenerator 36 zur weiteren Verwendung übergeben.
  • Der Bitfehlerkorrektor 700 umfasst weiterhin eine rekursive Alterungsbitmuster- bzw. Alterungsvektorbestimmung 734. Die rekursive Alterungsbitmusterbestimmung 734 umfasst vier Eingänge für das nicht korrigierte Bitmuster B, das korrigierte Bitmuster BKORR, den die stabilen, falschen Bits anzeigenden Teil HF des Alterungsbitmusters H bzw. den die stabilen, guten Bits anzeigenden Teil HG des Alterungsbitmusters H. Die rekursive Alterungsbitmusterbestimmung bzw. der rekursive Alterungsbitmusterbestimmer 734 ist konfiguriert, aus diesen Eingangsinformationen neue Werte für die zwei Teile HF,NEU und HG,NEU des Alterungsbitmusters H zu ermitteln und an die entsprechenden Speicherplätze 736-1 bzw. 736-2 zu schreiben.
  • In den 5, 6 und 7 umfassen die jeweiligen Bitfehlerkorrektoren 500, 600 und 700 jeweils einen Teil des nicht flüchtigen Speichers 111, in den insbesondere die Redundanz R bzw. 16 und das Alterungsbitmuster H gespeichert sind. In Abwandlung von dieser Konfiguration ist es auch möglich, dass der Bitfehlerkorrektor 500, 600, 700 einen eigenen nicht flüchtigen Speicher umfasst, der speziell für die Speicherung der Redundanz und des Alterungsbitmusters vorgesehen ist. Insbesondere könnten der PUF-Generator 32, der Bitfehlerkorrektor 500, 600, 700, der Schlüsselgenerator 36 und die Entschlüsselung 52 in einem physikalisch und/oder logisch relativ stark geschützten Bereich eines Chips implementiert sein, um ein Auslesen der internen Daten, wie zum Beispiel des Schlüssels 38, weitgehend zu verhindern oder zumindest stark zu erschweren.
  • 8 zeigt ein schematisches Flussdiagramm eines Bitfehlerkorrekturverfahrens gemäß zumindest einem Ausführungsbeispiel der hierin offenbarten technischen Lehre. Ein aktuelles, nicht korrigiertes Bitmuster wird im Rahmen einer Aktion 802 des Bitfehlerkorrekturverfahrens empfangen. Das aktuelle, nicht korrigierte Bitmuster B gehört zu einer Folge von nicht korrigierten Bitmustern, die typischerweise auf die gleiche Weise erzeugt werden, nichtsdestotrotz jedoch häufig voneinander abweichen. Dementsprechend kann die Folge von nicht korrigierten Bitmustern beispielsweise von einer physikalischen Hashfunktion stammen, die aufgrund der statistischen Streuung der als Eingang für die physikalische Hashfunktion dienenden physikalischen Eigenschaften eines physikalischen Objekts zu den genannten Abweichungen zwischen den nicht korrigierten Bitmustern B führt.
  • Im Rahmen einer Aktion 804 wird zumindest ein Alterungsbitmuster H bereitgestellt, das alterungsbedingte Effekte innerhalb der Folge von nicht korrigierten Bitmustern wiedergibt bzw. anzeigt. Alterungsbedingte Effekte können zum Beispiel dadurch erkannt werden, dass einzelne Bits ausgehend von einer anfänglichen statistischen Verteilung einem Trend folgen, der in Richtung einer deterministischen Variable für die Ausprägungen dieses Bits geht. Beispielsweise kann das Bit eine anfängliche Wahrscheinlichkeitsverteilung aufweisen, wonach das entsprechende Bit zu 80% in dem nicht korrigierten Bitmuster B und dem wahren Bitmuster A übereinstimmt und zu 20% nicht übereinstimmt. Kommt es nun aufgrund alterungsbedingter Effekte dazu, dass das Bit in dem nicht korrigierten Bitmuster B immer häufiger nicht mit dem entsprechenden Bit in dem wahren Bitmuster A übereinstimmt, so wird man ab einem bestimmten Schwellenwert davon sprechen können, dass das anfänglich zufällige Bit im Laufe der Zeit zu einem stabilen, falschen Bit geworden ist. Dieser Schwellenwert kann beispielsweise so gewählt werden, dass er bei einer Wahrscheinlichkeit von 90% liegt für den Fall, dass das Bit falsch ist (in nur noch 10% der Fälle wäre es somit richtig). Alternativ können auch andere Schwellenwerte verwendet werden, zum Beispiel eine Bitfehlerwahrscheinlichkeit von 50%, 60%, 75%, 80%, 85%, 95%, 98% oder 99%.
  • Es kann auch sein, dass ein Bit im Laufe der Zeit zu einem stabilen, guten Bit wird. Ein Bit kann als stabiles, gutes Bit angesehen werden, wenn es mit sehr hoher Wahrscheinlichkeit den richtigen Wert liefert, beispielsweise mit 99%-iger Wahrscheinlichkeit, 99,5%-iger Wahrscheinlichkeit oder sogar 99,9%-iger Wahrscheinlichkeit.
  • Das aktuelle, nicht korrigierte Bitmuster wird dann mittels des zumindest einen Alterungsbitmusters modifiziert, um ein modifiziertes Bitmuster zu erzeugen, wie im Rahmen der Aktion 806 des Bitfehlerkorrekturverfahrens angedeutet. Anschließend wird ein korrigiertes Bitmuster erzeugt, das auf dem modifizierten Bitmuster B' basiert, wobei auch der Fall eingeschlossen sei, dass das korrigierte Bitmuster BKORR aus dem modifizierten Bitmuster B' hervorgeht. Bei 808 wird dann das aktuelle, nicht korrigierte Bitmuster B mit dem korrigierten Bitmuster BKORR verglichen. Das korrigierte Bitmuster BKORR stellt in der Regel die Ausgabe des Bitfehlerkorrekturverfahrens dar.
  • Um für nachfolgende nicht korrigierte Bitmuster Bi+1 ein aktualisiertes Alterungsbitmuster H zur Verfügung zu haben, wird bei 810 ein neues Alterungsbitmuster auf rekursive Weise bestimmt. Die rekursive Bestimmung erfolgt auf der Grundlage des zumindest einen Alterungsbitmusters H und des Vergleichsbitmusters.
  • Im Rahmen einer Aktion 812 wird das neue Alterungsbitmuster Hi+1 zur Verwendung beim späteren Modifizieren eines nachfolgenden, nicht korrigierten Bitmusters Bi+1 gespeichert. Das Bitfehlerkorrekturverfahren wird dann beginnend mit der Aktion 802 erneut ausgeführt.
  • Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle der Verfahrensschritte können durch einen Hardware-Apparat (oder unter Verwendung eines Hardware-Apparats), wie zum Beispiel einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung ausgeführt werden. Bei einigen Ausführungsbeispielen können einige oder mehrere der wichtigsten Verfahrensschritte durch einen solchen Apparat ausgeführt werden.
  • Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein.
  • Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft.
  • Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.
  • Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
  • Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
  • Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
  • Ein weiteres Ausführungsbeispiel gemäß der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das ausgelegt ist, um ein Computerprogramm zur Durchführung zumindest eines der hierin beschriebenen Verfahren zu einem Empfänger zu übertragen. Die Übertragung kann beispielsweise elektronisch oder optisch erfolgen. Der Empfänger kann beispielsweise ein Computer, ein Mobilgerät, ein Speichergerät oder eine ähnliche Vorrichtung sein. Die Vorrichtung oder das System kann beispielsweise einen Datei-Server zur Übertragung des Computerprogramms zu dem Empfänger umfassen.
  • Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
  • Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.

Claims (16)

  1. Bitfehlerkorrektor, umfassend: einen Alterungsbitmusterspeicher (111) zum Speichern zumindest eines Alterungsbitmusters (H), das alterungsbedingte Effekte innerhalb einer Folge von nicht korrigierten Bitmustern wiedergibt; einen Bitmustermodifizierer (102; 502; 602) zum Modifizieren eines aktuellen, nicht korrigierten Bitmusters (B) mittels des zumindest einen Alterungsbitmusters (H), wobei der Bitmustermodifizierer (102; 502; 602) ein modifiziertes Bitmuster (B') erzeugt, wobei die altersbedingten Effekte sich auf Bits einer Gruppe in den nicht korrigierten Bitmustern (B) beziehen, die mit hoher Wahrscheinlichkeit falsch sind, und wobei der Bitmustermodifizierer (102; 502) einen Invertierer umfasst zum Invertieren von Bits der Gruppe des nicht korrigierten Bitmusters und zum Erzeugen des modifzierten Bitmusters (B'); einen Bitmustervergleicher (104) zum Vergleichen des aktuellen, nicht korrigierten Bitmusters (B) mit einem korrigierten Bitmuster (BKORR), das auf dem modifizierten Bitmuster (B') basiert, und zum Bestimmen eines entsprechenden Vergleichsbitmusters (V); und einen Alterungsbitmusterbestimmer (134) zum rekursiven Bestimmen eines neuen Alterungsbitmusters (HNEU) auf der Grundlage des zumindest einen Alterungsbitmusters (H) und des Vergleichsbitmusters (V), und zum Speichern des neuen Alterungsbitmusters (HNEU) in dem Alterungsbitmusterspeicher (111) zur Verwendung beim Modifizieren eines nachfolgenden nicht korrigierten Bitmusters durch den Bitmustermodifizierer (102; 502; 602), wobei die rekursive Bestimmung des neuen Alterungsbitmusters gemäß der Formel Hj+1 = Ej+1 & H erfolgt, wobei Hj+1 das neue Alterungsbitmuster, Hj das Alterungsbitmuster, Ej+1 das Vergleichsbitmuster ist, und das Symbol & ein bitweises logisches UND darstellt.
  2. Bitfehlerkorrektor nach Anspruch 1, der weiterhin einen Eingang für die Folge von nicht korrigierten Bitmustern umfasst, der konfiguriert ist, mit einem Ausgang eines Generators für ein auf einer physikalischen, unklonbaren Funktion (32) basierenden Bitmuster verbunden zu werden, wobei die alterungsbedingten Effekte im Wesentlichen auf die physikalische, unklonbare Funktion zurückzuführen sind.
  3. Bitfehlerkorrektor nach Anspruch 1 oder 2, der weiterhin einen Initialisierer umfasst zum Rücksetzen des zumindest einen Alterungsbitmusters (H), das in dem Alterungsbitmusterspeicher (111) gespeichert ist, auf einen Anfangswert.
  4. Bitfehlerkorrektor nach einem der Ansprüche 1 bis 3, wobei der Alterungsbitmusterspeicher (111) konfiguriert ist, weiterhin zumindest ein weiteres Alterungsbitmuster zu speichern, das sich auf vorhergehende Rekursionen bezieht, und wobei der Alterungsbitmusterbestimmer (134) konfiguriert ist, eine Tendenz für die alterungsbedingten Effekte anhand von zumindest einem von dem Alterungsbitmuster (H) und dem zumindest einen weiteren Alterungsbitmuster zu identifizieren und für das rekursive Bestimmen des neuen Alterungsbitmusters (HNEU) heranzuziehen.
  5. Bitfehlerkorrektor nach Anspruch 4, wobei der Alterungsbitmusterbestimmer (134) einen Zähler umfasst, der konfiguriert ist, in dem Vergleichsbitmuster (V), dem Alterungsbitmuster (H) und dem zumindest einen weiteren Alterungsbitmuster eine Ausprägung eines alterungsbedingten Effekts auf zumindest ein Bit der nicht korrigierten Bitmuster (B) zu zählen, und wobei der Alterungsbitmusterbestimmer (134) konfiguriert ist, ein entsprechendes Zählergebnis bei dem rekursiven Bestimmen des zumindest einen Bits des neuen Alterungsbitmusters (HNEU) zu berücksichtigen.
  6. Bitfehlerkorrektor nach Anspruch 4, wobei der Alterungsbitmusterbestimmer (134) ein Filter umfasst, das konfiguriert ist, zumindest ein Bit in dem Vergleichsbitmuster (V) und in zumindest einem von dem Alterungsbitmuster (H) und dem zumindest einen weiteren Alterungsbitmuster zu filtern und ein entsprechendes Filterergebnis bei dem rekursiven Bestimmen des zumindest einen Bits des neuen Alterungsbitmusters (HNEU) zu berücksichtigen.
  7. Bitfehlerkorrektor nach einem der Ansprüche 1 bis 6, weiterhin umfassend: einen Redundanzspeicher zum Speichern einer Redundanzinformation (16); eine redundanz-basierte Fehlerkorrektureinheit (554, 556; 602, 656) zum Korrigieren von Bitfehlern in dem nicht korrigierten Bitmuster (B) oder dem modifizierten Bitmuster (B') mittels der Redundanzinformation (16).
  8. Bitfehlerkorrektor nach Anspruch 7, wobei die altersbedingten Effekte sich auf zumindest ein Bit in den nicht korrigierten Bitmustern (B) beziehen, das mit hoher Wahrscheinlichkeit falsch ist, wobei der Bitmustermodifizierer (102; 502; 602) einen steuerbaren Invertierer umfasst zum Invertieren des zumindest einen, mit hoher Wahrscheinlichkeit falschen Bits des nicht korrigierten Bitmusters, und wobei die redundanz-basierte Fehlerkorrektureinheit (554, 556; 602, 656) konfiguriert ist, verbleibende Bitfehler in dem von dem Bitmustermodifizierer (102; 502; 602) erzeugten modifizierten Bitmuster (B') zu korrigieren.
  9. Bitfehlerkorrektor nach Anspruch 7, wobei die altersbedingten Effekte sich auf zumindest ein Bit in den nicht korrigierten Bitmustern (B) beziehen, das mit hoher Wahrscheinlichkeit richtig ist, und wobei die redundanz-basierte Fehlerkorrektureinheit (554, 556; 602, 656) konfiguriert ist, Bitfehler in dem aktuellen, nicht korrigierten Bitmuster (B) unter Verwendung des Alterungsbitmusters (H) und der Redundanzinformation (16) zu korrigieren.
  10. Bitfehlerkorrektor nach Anspruch 9, wobei die redundanzbasierte Fehlerkorrektureinheit (554, 556; 602, 656) konfiguriert ist, das mit hoher Wahrscheinlichkeit richtige Bit als a priori bekanntes Bit in das korrigierte Bitmuster zu übernehmen, um die redundanz-basierte Fehlerkorrektureinheit (554, 556; 602, 656) zu unterstützen.
  11. Bitfehlerkorrektor nach Anspruch 7, wobei die altersbedingten Effekte sich auch auf Bits einer zweiten Gruppe beziehen, die mit hoher Wahrscheinlichkeit richtig sind, wobei die redundanz-basierte Fehlerkorrektureinheit (554, 556; 602, 656) konfiguriert ist, Fehler in dem modifizierten Bitmuster unter Verwendung der Redundanzinformation (16) und von Teilen des Alterungsbitmusters (H), die sich auf die Bits der zweiten Gruppe beziehen, zu korrigieren.
  12. Bitfehlerkorrektor nach einem der Ansprüche 1 bis 11, weiterhin umfassend einen Bitmuster-Generator (32) zum Erzeugen des nicht korrigierten Bitmusters durch Digitalisieren von physikalischen Eigenschaften eines Objekts.
  13. Bitfehlerkorrektor nach einem der Ansprüche 1 bis 12, weiterhin umfassend: einen Schlüsselgenerator zum Erzeugen eines kryptografischen Schlüssels anhand des korrigierten Bitmusters; und einen Dekodierer zum Entschlüsseln von verschlüsselten Daten unter Verwendung des kryptografischen Schlüssels.
  14. Bitfehlerkorrektor, umfassend: einen Alterungsbitmusterspeicher (111) zum Speichern zumindest eines Alterungsbitmusters (H), das wiedergibt, welches zumindest eine Bit innerhalb eines nicht korrigierten Bitmusters (B) aus einer Folge von nicht korrigierten Bitmustern mit hoher Wahrscheinlichkeit falsch ist; einen Bitinvertierer (102; 502) zum Invertieren des zumindest einen, mit hoher Wahrscheinlichkeit falschen Bits in dem nicht korrigierten Bitmuster (B); eine redundanz-basierte Fehlerkorrektureinheit (554, 556) zum Korrigieren von Bitfehlern in dem modifizierten Bitmuster mittels einer Redundanzinformation und zum Bestimmen eines entsprechenden korrigierten Bitmusters; einen Bitmustervergleicher (104) zum Vergleichen des aktuellen, nicht korrigierten Bitmusters (B) mit dem entsprechenden korrigierten Bitmuster (BKORR) und zum Bestimmen eines entsprechenden Vergleichsbitmusters (V); und einen Alterungsbitmusterbestimmer (134) zum rekursiven Bestimmen eines neuen Alterungsbitmusters (HNEU) auf der Grundlage des zumindest einen Alterungsbitmusters (H) und des Vergleichsbitmusters (V) und zum Speichern des neuen Alterungsbitmusters (HNEU) in dem Alterungsbitmusterspeicher (111) zur Verwendung als Steuerinformation für den Bitinvertierer (102; 502) beim Invertieren des zumindest einen, mit hoher Wahrscheinlichkeit falschen Bits in einem nachfolgenden nicht korrigierten Bitmuster, wobei die rekursive Bestimmung des zumindest einen neuen Alterungsbitmusters (HNEU) gemäß der Formel Hj+1 = Ej+1 & H erfolgt, wobei Hj+1 das neue Alterungsbitmuster, Hj das Alterungsbitmuster, Ej+1 das Vergleichsbitmuster ist, und das Symbol & ein bitweises logisches UND darstellt.
  15. Bitfehlerkorrekturverfahren, umfassend: Empfangen (802) eines aktuellen, nicht korrigierten Bitmusters (B), das zu einer Folge von nicht korrigierten Bitmustern gehört; Bereitstellen (804) zumindest eines Alterungsbitmusters (H), das alterungsbedingte Effekte innerhalb der Folge von nicht korrigierten Bitmustern wiedergibt, wobei die alterungsbedingten Effekte sich auf Bits einer Gruppe in den nicht korrigierten Bitmustern beziehen, die mit hoher Wahrscheinlichkeit falsch sind; Modifizieren (806) des aktuellen, nicht korrigierten Bitmusters (B) mittels des zumindest einen Alterungsbitmusters (H) zur Erzeugung eines modifizierten Bitmusters (B'), wobei das Modifizieren durch Invertieren von Bits der Gruppe des aktuellen, nicht korrigierten Bitmusters erfolgt; Vergleichen (808) des aktuellen, nicht korrigierten Bitmusters (B) mit einem korrigierten Bitmuster (BKORR), das auf dem modifizierten Bitmuster (B') basiert, resultierend in einem Vergleichsbitmuster (V); Bestimmen (810) eines neuen Alterungsbitmusters (HNEU) auf rekursive Weise auf der Grundlage des zumindest einen Alterungsbitmusters (H) und des Vergleichsbitmusters (V), wobei die rekursive Bestimmung des neuen Alterungsbitmusters gemäß der Formel Hj+1 = Ej+1 & Hj erfolgt, wobei Hj+1 das neue Alterungsbitmuster, Hj das Alterungsbitmuster, Ej+1 das Vergleichsbitmuster ist, und das Symbol & ein bitweises logisches UND darstellt; und Speichern (812) des neuen Alterungsbitmusters zur Verwendung beim Modifizieren eines nachfolgenden, nicht korrigierten Bitmusters.
  16. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 15, wenn das Computerprogramm auf einem Computer, einem Mikrokontroller oder einem Mikroprozessor läuft.
DE102011079259A 2011-07-15 2011-07-15 Bitfehlerkorrektur zur Beseitigung von altersbedingten Fehlern in einem Bitmuster Active DE102011079259B9 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102011079259A DE102011079259B9 (de) 2011-07-15 2011-07-15 Bitfehlerkorrektur zur Beseitigung von altersbedingten Fehlern in einem Bitmuster
US13/548,462 US8726123B2 (en) 2011-07-15 2012-07-13 Bit error correction for removing age related errors in a bit pattern
CN201210242382.XA CN102880061B (zh) 2011-07-15 2012-07-13 用于清除位模式中的时效引起的误差的位误差校正

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011079259A DE102011079259B9 (de) 2011-07-15 2011-07-15 Bitfehlerkorrektur zur Beseitigung von altersbedingten Fehlern in einem Bitmuster

Publications (3)

Publication Number Publication Date
DE102011079259A1 DE102011079259A1 (de) 2013-01-17
DE102011079259B4 true DE102011079259B4 (de) 2013-05-08
DE102011079259B9 DE102011079259B9 (de) 2013-11-28

Family

ID=47425507

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011079259A Active DE102011079259B9 (de) 2011-07-15 2011-07-15 Bitfehlerkorrektur zur Beseitigung von altersbedingten Fehlern in einem Bitmuster

Country Status (3)

Country Link
US (1) US8726123B2 (de)
CN (1) CN102880061B (de)
DE (1) DE102011079259B9 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025500B (zh) 2011-12-29 2017-07-25 英特尔公司 使用在物理上不可克隆的函数的安全密钥存储
US9742563B2 (en) * 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
US9093128B2 (en) * 2012-11-05 2015-07-28 Infineon Technologies Ag Electronic device with a plurality of memory cells and with physically unclonable function
US8938792B2 (en) 2012-12-28 2015-01-20 Intel Corporation Device authentication using a physically unclonable functions based key generation system
US10129036B2 (en) * 2014-09-18 2018-11-13 Intel Corporation Post-processing mechanism for physically unclonable functions
US9501664B1 (en) * 2014-12-15 2016-11-22 Sandia Corporation Method, apparatus and system to compensate for drift by physically unclonable function circuitry
US9817908B2 (en) * 2014-12-29 2017-11-14 Raytheon Company Systems and methods for news event organization
WO2016203631A1 (ja) * 2015-06-19 2016-12-22 株式会社日立製作所 フラッシュメモリデバイス
DE102016102590B4 (de) * 2016-02-15 2018-10-04 Infineon Technologies Ag Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
US10614906B2 (en) * 2016-09-21 2020-04-07 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices
CN109428721B (zh) * 2017-08-28 2023-06-30 恩智浦有限公司 用于确定物理不可克隆功能电路的健康状况的方法或装置
JP2022090362A (ja) * 2020-12-07 2022-06-17 キオクシア株式会社 メモリシステム、コントローラおよび制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100354175B1 (ko) * 1998-11-20 2002-09-28 엘지전자 주식회사 데이터 변/복조방법과 이를 이용한 변/복조 장치 및 그 기록매체
JP4112186B2 (ja) * 2001-02-13 2008-07-02 川崎重工業株式会社 制御装置および制御装置のプログラム処理方法
US7092464B2 (en) * 2002-01-23 2006-08-15 Bae Systems Information And Electronic Systems Integration Inc. Multiuser detection with targeted error correction coding
US7386771B2 (en) * 2006-01-06 2008-06-10 International Business Machines Corporation Repair of memory hard failures during normal operation, using ECC and a hard fail identifier circuit
JP5214422B2 (ja) * 2008-02-15 2013-06-19 株式会社東芝 データ記憶システム
JP2009277298A (ja) * 2008-05-15 2009-11-26 Renesas Technology Corp ディジタル信号再生装置及び方法並びにディジタル信号記録装置及び方法
CN101298284B (zh) * 2008-06-04 2011-10-12 徐国栋 一种时变计算机及其实现方法
US8413016B2 (en) * 2009-04-28 2013-04-02 Panasonic Corporation Nonvolatile memory device and controller for judging a normal or anomalous condition of an error-corrected bit pattern
US8700970B2 (en) * 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YU, M.-D. u.a.: Secure and Robust Error Correction for Physical Unclonable Functions. IN: IEEE Design & Test of Computers, Vol. 27, Nr. 1, 2010, S. 48-65 *

Also Published As

Publication number Publication date
CN102880061A (zh) 2013-01-16
US8726123B2 (en) 2014-05-13
US20130185611A1 (en) 2013-07-18
DE102011079259B9 (de) 2013-11-28
DE102011079259A1 (de) 2013-01-17
CN102880061B (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
DE102011079259B4 (de) Bitfehlerkorrektur zur Beseitigung von altersbedingten Fehlern in einem Bitmuster
DE102012102254B4 (de) Vorrichtung und Verfahren zur Rekonstruktion einer Bitfolge unter Vorkorrektur
DE102011054410B4 (de) Vorrichtung und Verfahren zur Erzeugung einer Bitfolge
DE102012200197B4 (de) Vorrichtung und Verfahren zur Fehlerkorrektur und zum Schutz vor Datenverfälschung
DE102016102590B4 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
EP2940924A1 (de) PUF basierende Ableitung eines gerätespezifischen Wertes
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102011085602A1 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE102018125786A1 (de) Verschlüsselte Systemspeicherverwaltung
DE112019001438T5 (de) Kryptographisches asic mit kombinierten funktionen
DE102011087634B4 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102013109315B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE102014007820A1 (de) Datenrahmen für geschützte Datenübertragungen
DE102012213040B4 (de) Decoder für physikalisch nicht klonbare Funktionen mittels Schwellendekodierung und entsprechendes Verfahren
EP2191408A1 (de) Verfahren und vorrichtung zum codieren von datenworten
DE102005031611A1 (de) Nachweis einer Veränderung der Daten eines Datensatzes
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102010045580A1 (de) Schaltungsanordnung und Verfahren zum Betreiben einer Schaltungsanordnung
DE102014118531B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Ermitteln eines Fehlervektors in einem Datenwort
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102011080659B4 (de) Vorrichtung und verfahren zum testen einer zu testenden schaltung
DE102018208851A1 (de) Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
DE102019003673B3 (de) Seitenkanalsichere Implementierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130809

R082 Change of representative