DE102018123103A1 - Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels - Google Patents

Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels Download PDF

Info

Publication number
DE102018123103A1
DE102018123103A1 DE102018123103.2A DE102018123103A DE102018123103A1 DE 102018123103 A1 DE102018123103 A1 DE 102018123103A1 DE 102018123103 A DE102018123103 A DE 102018123103A DE 102018123103 A1 DE102018123103 A1 DE 102018123103A1
Authority
DE
Germany
Prior art keywords
bits
unit
mask
bit
data
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.)
Pending
Application number
DE102018123103.2A
Other languages
English (en)
Inventor
YongSoo Kim
Mijung Noh
Bohdan Karpinskyy
Kyoung Moon AHN
Yong Ki Lee
Yunhyeok Choi
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020180057964A external-priority patent/KR102516190B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018123103A1 publication Critical patent/DE102018123103A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • 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/73Protecting 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 by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Eine Halbleitervorrichtung umfasst ein PUF-Zellenfeld (physikalische nicht klonbare Funktion), das PUF-Zellen enthält, die erste Bits ausgeben; einen nichtflüchtigen Speicher, der Markierungsbits speichert, die anzeigen, ob die ersten Bits gültig sind, erste Maskenbits, die durch Maskieren zweiter Bits abhängig von der Parität der zweiten Bits erzeugt werden, und zweite Maskenbits, die durch Maskieren von Hilfsbits der zweiten Bits erzeugt werden, wobei die zweiten Bits aus den ersten Bits gültige Bits sind; eine Extraktionseinheit, die die zweiten Bits unter Verwendung der Markierungsbits aus den ersten Bits extrahiert; eine Demaskierungseinheit, die die zweiten Bits unter Verwendung der ersten Maskenbits demaskiert, während die zweiten Bits empfangen werden, um die dritten Bits bereitzustellen; eine Bitdecodierungseinheit, die die dritten Bits zu vierten Bits komprimiert, während sie die dritten Bits empfängt; und eine Blockdecodierungseinheit, die einen Sicherheitsschlüssel durch Decodieren der vierten Bits und der zweiten Maskenbits erzeugt.

Description

  • VERWEIS AUF VERWANDTE ANMELDUNGEN
  • Ein Anspruch auf Priorität bezieht sich auf die koreanische Patentanmeldung Nr. 10-2017-0133540 , eingereicht am 13. Oktober 2017, und die koreanische Patentanmeldung Nr. 10-2018-0057964 , eingereicht am 21. Mai 2018, beim koreanischen Amt für geistiges Eigentum, deren gesamter Inhalt hiermit durch Bezugnahme aufgenommen wird.
  • HINTERGRUND
  • Die vorliegenden erfinderischen Konzepte betreffen Halbleitervorrichtungen, die einen Sicherheitsschlüssel erzeugen, ein Verfahren zum Erzeugen des Sicherheitsschlüssels und ein Verfahren zum Registrieren des Sicherheitsschlüssels.
  • Technologien, die sich auf Sicherheit und Verschlüsselung beziehen, sind in Bezug auf Kommunikation und mobile Geräte immer wichtiger geworden. Da durch Software-Schemata erzeugte Schlüssel durch Hackerangriffe verloren gehen können oder gestohlen werden können, werden derzeit hardwarebasierte Sicherheitsschemata entwickelt. Insbesondere werden Halbleitervorrichtungen mit einer physikalisch nicht klonbaren Funktion (PUF) entwickelt.
  • Halbleitervorrichtungen mit einer PUF können einen eindeutigen Schlüssel basierend auf einer Prozessvariation zufällig erzeugen. Es kann verhindert werden, dass der durch solche Halbleitervorrichtungen erzeugte Schlüssel geklont wird, weil die Prozessvariation verwendet wird. Die von solchen Halbleitervorrichtungen ausgegebenen Daten können jedoch einen Fehler aufgrund der Prozessvariation enthalten. Eine Fehlerkorrekturoperation kann verwendet werden, um eine Bitfehlerrate (BER) der Ausgangsdaten zu reduzieren. Da Sicherheit und Verschlüsselung immer wichtiger geworden sind, hat die Größe oder Menge der von Halbleitervorrichtungen ausgegebenen Daten gegenwärtig zugenommen, und somit hat sich die zur Durchführung von Fehlerkorrekturoperationen erforderliche Zeit erhöht. Dementsprechend besteht die Notwendigkeit, die Fläche und die Betriebszeit der Halbleitervorrichtung zu reduzieren.
  • ZUSAMMENFASSUNG
  • Ausführungsformen der erfinderischen Konzepte stellen eine Halbleitervorrichtung bereit, die einen Sicherheitsschlüssel erzeugt, ein Verfahren zum Erzeugen des Sicherheitsschlüssels und ein Verfahren zum Registrieren des Sicherheitsschlüssels.
  • Ausführungsformen der erfinderischen Konzepte stellen eine Halbleitervorrichtung bereit, die ein Zellenfeld mit physikalisch nicht klonbarer Funktion (PUF) enthält, das PUF-Zellen enthält, die erste Bits ausgeben; einen nichtflüchtigen Speicher, der Maskenbits speichert, die anzeigen, ob die ersten Bits gültig sind, erste Maskenbits, die durch Maskieren zweiter Bits abhängig von einer Parität der zweiten Bits erzeugt werden, und zweite Maskenbits, die durch Maskieren von Hilfsbits erzeugt werden, die den zweiten Bits zugeordnet sind, wobei die zweiten Bits gültige Bits aus den ersten Bits sind; eine Extraktionseinheit, die die zweiten Bits unter Verwendung der Maskenbits aus den ersten Bits extrahiert; eine Demaskierungseinheit, die die zweiten Bits unter Verwendung der ersten Maskenbits demaskiert, während die zweiten Bits empfangen werden, um dritte Bits bereitzustellen; eine Bitdecodierungseinheit, die die dritten Bits komprimiert, um vierte Bits bereitzustellen, während sie die dritten Bits empfängt; und eine Blockdecodierungseinheit, die einen Sicherheitsschlüssel durch Decodieren der vierten Bits und der zweiten Maskenbits erzeugt. Die Extraktionseinheit, die Demaskierungseinheit, die Bitdecodierungseinheit und die Blockdecodierungseinheit können in Reihe geschaltet sein und können gleichzeitig arbeiten.
  • Ausführungsformen der erfinderischen Konzepte stellen auch ein Sicherheitsschlüssel-Erzeugungsverfahren für eine Halbleitervorrichtung bereit, das ein Zellenfeld mit physikalisch nicht klonbarer Funktion (PUF), eine Extraktionseinheit, eine Demaskierungseinheit, eine Bitdecodierungseinheit und eine Blockdecodierungseinheit enthält, die in Reihe geschaltet sind. Das Sicherheitsschlüssel-Erzeugungsverfahren enthält das Extrahieren von zweiten Bits aus den ersten Bits durch die Extraktionseinheit, während die ersten Bits von dem PUF-Zellenfeld empfangen werden, und Empfangen von Maskenbits, die angeben, ob die ersten Bits gültig sind, von einem nichtflüchtigen Speicher, wobei die zweiten Bits gültige Bits aus den ersten Bits sind; Demaskieren der zweiten Bits durch die Demaskierungseinheit, um unmaskierte dritte Bits bereitzustellen, indem erste Maskenbits verwendet werden, während die zweiten Bits von der Extraktionseinheit empfangen werden und die ersten Maskenbits aus dem nichtflüchtigen Speicher empfangen werden; Komprimieren der unmaskierten dritten Bits durch die Bitdecodierungseinheit, um vierte Bits bereitzustellen, während die unmaskierten dritten Bits von der Demaskierungseinheit empfangen werden; und Erzeugen eines Sicherheitsschlüssels durch die Blockdecodierungseinheit durch Decodieren der vierten Bits und der zweiten Maskenbits, während die vierten Bits von der Bitdecodierungseinheit und die zweiten Maskenbits vom nichtflüchtigen Speicher empfangen werden.
  • Ausführungsformen der erfinderischen Konzepte stellen ferner ein Sicherheitsschlüssel-Registrierungsverfahren für eine Halbleitervorrichtung bereit, das ein Zellenfeld mit physikalisch nicht klonbarer Funktion (PUF), eine Extraktionseinheit, eine Bitcodierungseinheit und eine Blockcodierungseinheit enthält, die in Reihe geschaltet sind. Das Sicherheitsschlüssel-Registrierungsverfahren enthält das Übertragen von Maskenbits durch die Extraktionseinheit, die zweite Bits aus den ersten Bits anzeigen, zu einem nichtflüchtigen Speicher, während die ersten Bits von dem PUF-Zellenfeld empfangen werden, wobei die zweiten Bits gültige Bits aus den ersten Bits sind; Erzeugen von ersten Maskenbits durch die Bitcodierungseinheit durch Codieren der zweiten Bits in Abhängigkeit von einer Parität der zweiten Bits, während die zweiten Bits von der Extraktionseinheit empfangen werden, und Übertragen der ersten Maskenbits an den nichtflüchtigen Speicher; Erzeugen von dritten Bits durch die Bitcodierungseinheit durch Komprimieren der zweiten Bits; und Erzeugen von Hilfsbits durch die Blockcodierungseinheit durch Codieren der dritten Bits, Erzeugen von zweiten Maskenbits durch Maskieren der Hilfsbits unter Verwendung der dritten Bits und Übertragen der zweiten Maskenbits zu dem nichtflüchtigen Speicher, während die dritten Bits von der Bitcodierungseinheit empfangen werden.
  • Ausführungsformen der erfinderischen Konzepte stellen ferner ein elektronisches System bereit, das einen Host enthält; und ein Speichergerät, das eine Vorrichtung mit physikalisch nicht klonbarer Funktion (PUF) enthält. Die PUF-Vorrichtung enthält ein PUF-Zellenfeld mit PUF-Zellen, die erste Bits ausgeben, und eine Schlüsselerzeugungseinheit, die so konfiguriert ist, dass sie zweite Bits aus den ersten Bits extrahiert, während sie Maskenbits von einem nichtflüchtigen Speicher empfängt und die angeben, ob die ersten Bits gültig sind, wobei die zweiten Bits gültige Bits aus den ersten Bits sind, Demaskieren der zweiten Bits, um unmaskierte dritte Bits bereitzustellen, indem aus dem nichtflüchtigen Speicher empfangene erste Maskenbits verwendet werden, Komprimieren der unmaskierten dritten Bits, um vierte Bits bereitzustellen, und Erzeugen eines Sicherheitsschlüssels durch Decodieren der vierten Bits und der zweiten Maskenbits, die von dem nichtflüchtigen Speicher empfangen werden. Der Host ist so konfiguriert, dass er basierend auf dem Sicherheitsschlüssel ein Authentifizierungsverfahren für den Zugriff auf das Speichergerät ausführt.
  • Figurenliste
  • Die obigen und andere Aufgaben und Merkmale der erfinderischen Konzepte werden im Hinblick auf die folgende ausführliche Beschreibung von beispielhaften Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen deutlich.
    • 1 veranschaulicht ein Blockschaltbild einer Halbleitervorrichtung gemäß Ausführungsformen der erfinderischen Konzepte.
    • 2 veranschaulicht ein Blockschaltbild einer Schlüsselregistrierungseinheit von 1 im Detail.
    • 3 veranschaulicht ein Blockschaltbild einer Bitcodierungseinheit von 2 im Detail.
    • 4 veranschaulicht ein Blockschaltbild einer Blockcodierungseinheit von 2 im Detail.
    • 5 veranschaulicht ein Blockschaltbild einer Schlüsselerzeugungseinheit von 1 im Detail.
    • 6 veranschaulicht ein Blockschaltbild einer Demaskierungseinheit und einer Bitdecodierungseinheit von 5 im Detail, wobei kein Fehler an einem Ausgang des PUF-Zellenfelds vorliegt.
    • 7 veranschaulicht ein Blockschaltbild einer Demaskierungseinheit und einer Bitdecodierungseinheit von 5 im Detail, wobei ein Fehler in einer Ausgabe des PUF-Zellenfelds vorliegt.
    • 8 veranschaulicht ein Blockschaltbild einer Blockdecodierungseinheit von 5 im Detail.
    • 9 veranschaulicht ein Diagramm, wie Daten in einer Schlüsselerzeugungseinheit von 1 verarbeitet werden.
    • 10 veranschaulicht ein Flussdiagramm eines Schlüsselregistrierungsprozesses gemäß Ausführungsformen der erfinderischen Konzepte.
    • 11 veranschaulicht ein Flussdiagramm eines Schlüsselerzeugungsprozesses gemäß Ausführungsformen der erfinderischen Konzepte.
    • 12 veranschaulicht ein Blockschaltbild eines elektronischen Systems, bei dem eine Halbleitervorrichtung gemäß Ausführungsformen der erfinderischen Konzepte angewendet wird.
    • 13 veranschaulicht ein Blockschaltbild einer elektronischen Vorrichtung, bei der eine Smartcard von 12 angewendet wird.
    • 14 veranschaulicht ein Blockschaltbild einer Rechenvorrichtung, bei der eine Halbleitervorrichtung gemäß Ausführungsformen der erfinderischen Konzepte angewendet wird.
  • DETAILLIERTE BESCHREIBUNG
  • Ausführungsformen der erfinderischen Konzepte werden im Folgenden detailliert und in einem solchen Umfang deutlich beschrieben, dass ein Fachmann die erfinderischen Konzepte leicht implementieren kann.
  • Wie es auf dem Gebiet der erfinderischen Konzepte traditionell ist, können Ausführungsformen in Form von Einheiten beschrieben und veranschaulicht werden, die eine oder mehrere der beschriebenen Funktionen ausführen. Diese Einheiten, die hierin als Blöcke oder Module oder dergleichen bezeichnet werden können, sind physikalisch durch analoge und/oder digitale Schaltungen wie Logikgatter, integrierte Schaltungen, Mikroprozessoren, Mikrocontroller, Speicherschaltungen, passive elektronische Komponenten, aktive elektronische Komponenten, optische Komponenten, festverdrahtete Schaltungen und dergleichen implementiert und können optional durch Firmware und/oder Software gesteuert werden. Die Schaltungen können zum Beispiel in einem oder mehreren Halbleiterchips oder auf Substratträgern wie Leiterplatten und dergleichen ausgeführt sein. Die eine Einheit bildenden Schaltungen können durch dedizierte Hardware oder durch einen Prozessor (z. B. einen oder mehrere programmierte Mikroprozessoren und zugehörige Schaltungen) oder durch eine Kombination aus dedizierter Hardware zum Ausführen einiger Funktionen der Einheit und eines Prozessors zum Ausführen anderer Funktionen der Einheit implementiert werden. Jede Einheit der Ausführungsformen kann physisch in zwei oder mehr miteinander in Wechselwirkung stehende und diskrete Einheiten getrennt sein, ohne vom Umfang der erfinderischen Konzepte abzuweichen. Ebenso können die Einheiten der Ausführungsformen physikalisch zu komplexeren Einheiten kombiniert werden, ohne vom Umfang der erfinderischen Konzepte abzuweichen.
  • 1 veranschaulicht ein Blockschaltbild einer Halbleitervorrichtung gemäß Ausführungsformen der erfinderischen Konzepte. Die Halbleitervorrichtung 100 enthält ein Zellenfeld 110 mit physikalisch nicht klonbarer Funktion (PUF), eine Schlüsselregistrierungseinheit 120, eine Schlüsselerzeugungseinheit 130 und einen nichtflüchtigen Speicher (im Folgenden als NVM bezeichnet) 140.
  • Das PUF-Zellenfeld 110 enthält PUF-Zellen. Das PUF-Zellenfeld 110 erzeugt eine eindeutige elektronische Signatur gemäß einer Prozessvariation, die während der Herstellung des PUF-Zellenfelds 110 auftritt. Aufgrund von Prozessvariationen können sich Daten, die von PUF-Zellenfeldern einer Vielzahl von Halbleitervorrichtungen ausgegeben werden, voneinander unterscheiden. Das heißt, dass jede der Halbleitervorrichtungen unter Verwendung des PUF-Zellenfelds 110 einen eindeutigen Sicherheitsschlüssel erzeugen kann.
  • Zum Beispiel kann das PUF-Zellenfeld 110 mindestens eine PUF-Zelle basierend auf einer Schwellenspannung eines Transistors enthalten, eine Arbiter-basierte PUF-Zelle (z. B. eine PUF-Vorwärtskopplungszelle, eine XOR-PUF-Zelle, in denen Arbiter-PUF-Zellen parallel angeordnet sind, oder eine leichte PUF-Zelle), eine PUF-Zelle auf Basis eines Ringoszillators, eine Speicher-basierende PUF-Zelle (z. B. eine statische Direktzugriffsspeicher- (SRAM) PUF-Zelle, eine Zwischenspeicher-PUF-Zelle, eine Flash-Speicher-PUF-Zelle oder eine Memistor-PUF-Zelle) und eine PUF-Zelle, die gemäß einem Laserstrahl oder einer thermischen Variation unter anderen Arten von PUF-Zellen rekonfigurierbar ist.
  • Eine Bitfehlerrate (BER) der PUF-Daten, die von dem PUF-Zellenfeld 110 ausgegeben werden, kann aufgrund der Prozessvariation hoch sein. Die Integrität eines Schlüssels sollte jedoch gewährleistet sein, wenn die PUF-Daten als Schlüssel für die Ver- und Entschlüsselung oder als Schlüssel wie beispielsweise ein Authentifizierungscode verwendet werden. Die Halbleitervorrichtung 100 enthält daher eine Schaltung, ein Modul oder eine Einheit zum Verbessern der BER der PUF-Daten.
  • Die Schlüsselregistrierungseinheit 120 erzeugt Daten zum Verbessern oder Verringern der BER der PUF-Daten. Die Schlüsselregistrierungseinheit 120 speichert Daten, die zum Korrigieren eines Fehlers der PUF-Daten verwendet werden, durch einen Schlüsselregistrierungsprozess in dem NVM 140.
  • Die Schlüsselregistrierungseinheit 120 empfängt die PUF-Daten von dem PUF-Zellenfeld 110 und erzeugt Markierungsdaten. Die Markierungsdaten können Maskenbits enthalten, die gültige Bits anzeigen, die von gültigen PUF-Zellen aller PUF-Zellen in dem PUF-Zellenfeld 110 ausgegeben werden. Die gültigen PUF-Zellen des PUF-Zellenfelds 110 können durch verschiedene Testprozesse einer Massenproduktionsstufe ausgewählt werden. Die ausgewählten gültigen PUF-Zellen können zum Registrieren und Erzeugen eines Schlüssels verwendet werden, und nicht ausgewählte PUF-Zellen können nicht zum Registrieren und Erzeugen eines Schlüssels verwendet werden. Die Schlüsselregistrierungseinheit 120 überträgt die Markierungsdaten an den NVM 140.
  • In einer Ausführungsform kann die Anzahl von Maskenbits der Markierungsdaten mit der Anzahl von PUF-Bits identisch sein, die die PUF-Daten konfigurieren. Ein gültiges Speicherabbild kann unter Verwendung der Maskenbits der Markierungsdaten erstellt werden, die angeben, ob die jeweiligen PUF-Zellen des PUF-Zellenfelds 110 gültig sind. Beispielsweise kann ein Maskenbit mit einem logischen Wert von „1“ ein gültiges PUF-Bit anzeigen, und ein Maskenbit mit einem logischen Wert von „0“ kann ein ungültiges PUF-Bit anzeigen. Im Gegensatz dazu und als ein anderes Beispiel kann ein Maskenbit mit einem logischen Wert von „0“ ein gültiges PUF-Bit anzeigen, und ein Maskenbit mit einem logischen Wert von „1“ kann ein ungültiges PUF-Bit anzeigen. Das heißt, das gültige Speicherabbild, das aus Maskenbits zusammengesetzt ist, deren Anzahl mit der Anzahl aller PUF-Zellen des PUF-Zellenfelds 110 identisch ist, kann im NVM 140 gespeichert werden.
  • Die Schlüsselregistrierungseinheit 120 kann Daten zum Korrigieren eines Fehlers der PUF-Daten erzeugen. Die Schlüsselregistrierungseinheit 120 kann die PUF-Daten von gültigen PUF-Zellen codieren. Die Schlüsselregistrierungseinheit 120 kann ein Codierungsergebnis an den NVM 140 übertragen. Das Codierungsergebnis kann basierend auf den PUF-Daten erzeugt werden. In dem Fall, in dem das Codierungsergebnis ohne Änderung im NVM 140 gespeichert wird, kann ein Angreifer die PUF-Daten unter Verwendung des im NVM 140 gespeicherten Codierungsergebnisses ableiten oder vorhersagen. Dementsprechend kann das Codierungsergebnis maskiert sein und das maskierte Codierungsergebnis kann an den NVM 140 übertragen werden.
  • Mit Bezug auf 1 kann das maskierte Codierungsergebnis erste Maskendaten und zweite Maskendaten enthalten. Zum Beispiel sind die ersten Maskendaten Daten, von denen Hilfsdaten maskiert sind, die zum Korrigieren eines Bitfehlers der PUF-Daten verwendet werden, und die zweiten Maskendaten sind Daten, von denen Hilfsdaten, die zum Korrigieren eines Blockfehlers der PUF-Daten verwendet werden, maskiert sind. Der Fehler der PUF-Daten kann in Biteinheiten oder in Blockeinheiten korrigiert werden. Ein 1-Bit-Fehler kann durch eine Bitfehlerkorrektur korrigiert werden, und ein Fehler einer Vielzahl von in einem Block enthaltenen Bits kann durch eine Blockfehlerkorrektur korrigiert werden. Die Größe oder Länge der Vielzahl von Bits, die in dem Block enthalten sind, kann abhängig von einem Fehlerkorrekturcode bestimmt werden.
  • In einer Ausführungsform kann die Schlüsselregistrierungseinheit 120 verwendet werden, um die Markierungsdaten und das maskierte Codierungsergebnis im NVM 140 zu speichern. Die Schlüsselregistrierung kann nur einmal von der Schlüsselregistrierungseinheit 120 in einem Massenproduktionsprozess durchgeführt werden (oder ein Testprozess). Das heißt, dass die Schlüsselregistrierungseinheit 120 in dem Massenproduktionsprozess zum Speichern der Markierungsdaten, der ersten Maskendaten und der zweiten Maskendaten in dem NVM 140 verwendet werden kann.
  • Die Schlüsselerzeugungseinheit 130 liest die Markierungsdaten, die ersten Maskendaten und die zweiten Maskendaten, die im NVM 140 gespeichert sind, nach dem Schlüsselregistrierungsprozess. Die Schlüsselerzeugungseinheit 130 decodiert die PUF-Daten unter Verwendung der Markierungsdaten, der ersten Maskendaten und der zweiten Maskendaten, korrigiert einen Fehler, der in den PUF-Daten enthalten sein kann, und erzeugt einen Sicherheitsschlüssel (d. h., Schlüssel). Aufgrund der Prozessvariation können sich die PUF-Daten des Schlüsselerzeugungsprozesses von den PUF-Daten des Schlüsselregistrierungsprozesses unterscheiden. Nichtsdestotrotz kann die Schlüsselerzeugungseinheit 130 einen Schlüssel durch Bitfehlerkorrektur und Blockfehlerkorrektur wiederherstellen.
  • Die Länge des Sicherheitsschlüssels kann abhängig von verschiedenen Anwendungen bestimmt werden, die die Halbleitervorrichtung 100 verwendet, wie beispielsweise einem Sicherheitsalgorithmus und einem Verschlüsselungsalgorithmus, und das PUF-Zellenfeld 110 kann die PUF-Daten mit einer Größe ausgeben die größer als die Länge des Sicherheitsschlüssels ist. Gemäß einer Ausführungsform der erfinderischen Konzepte können die Schlüsselregistrierungseinheit 120 und die Schlüsselerzeugungseinheit 130 keine PUF-Bits verarbeiten, nachdem alle zum Registrieren und Erzeugen eines Schlüssels erforderlichen PUF-Bits von dem PUF-Zellenfeld 110 ausgegeben wurden. Die Schlüsselregistrierungseinheit 120 und die Schlüsselerzeugungseinheit 130 können empfangene PUF-Bits verarbeiten, während sie die PUF-Bits von dem PUF-Zellenfeld 110 empfangen.
  • Der NVM 140 speichert die Markierungsdaten, die ersten Maskendaten und die zweiten Maskendaten. Mit Bezug auf 1 kann der NVM 140 als in der Halbleitervorrichtung 100 enthalten oder in der Halbleitervorrichtung 100 implementiert veranschaulicht sein. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt. Beispielsweise kann der NVM 140 in einigen Ausführungsformen der erfinderischen Konzepte eine Speichervorrichtung sein, die außerhalb der Halbleitervorrichtung 100 positioniert ist.
  • In einer Ausführungsform der erfinderischen Konzepte kann der NVM 140 zum Beispiel mindestens einen der folgenden enthalten: NAND-Flash-Speicher, NOR-Flash-Speicher, resistiver Direktzugriffsspeicher (RRAM), ferroelektrischer Direktzugriffsspeieher (FRAM) und Phasenwechsel-Direktzugriffsspeicher (PRAM), Thyristor-Direktzugriffsspeicher (TRAM), magnetischer Direktzugriffsspeicher (MRAM) und einmalig programmierbarer (OTP) Speicher oder dergleichen.
  • 2 veranschaulicht ein Blockschaltbild einer Schlüsselregistrierungseinheit von 1 im Detail. 2 wird unter Bezugnahme auf 1 beschrieben. Zum Zwecke der Vereinfachung ist die Darstellung der Schlüsselerzeugungseinheit 130 von 1 in 2 weggelassen.
  • Das PUF-Zellenfeld 110 überträgt erste Daten (Daten 1), die aus ersten Bits zusammengesetzt sind, an die Schlüsselregistrierungseinheit 120. Zum Beispiel kann das PUF-Zellenfeld 110 PUF-Zellen enthalten, deren Anzahl ein Vielfaches von 2 ist, wie z.B. 4096. Gemäß einer Ausführungsform der erfinderischen Konzepte kann das PUF-Zellenfeld 110 die ersten Bits, die von allen PUF-Zellen ausgegeben werden, möglicherweise nicht gleichzeitig zur Schlüsselregistrierungseinheit 120 übertragen. Stattdessen kann das PUF-Zellenfeld 110 die ersten Bits sequentiell zur Schlüsselregistrierungseinheit 120 übertragen, wodurch die ersten Bits eine Anzahl von Bits enthalten können, die einer Anzahl von PUF-Zellen entsprechen, die ein Sub-PUF-Zellenfeld konfigurieren. Beispielsweise kann das Sub-PUF-Zellenfeld ein PUF-Zellensatz sein, der aus einem Teil der PUF-Zellen des PUF-Zellenfelds 110 zusammengesetzt ist. Zum Beispiel kann das PUF-Zellenfeld 110 alle ersten Bits an die Schlüsselregistrierungseinheit 120 übertragen durch sequentielles Übertragen erster Bits an die Schlüsselregistrierungseinheit 120 in Einheiten der Größe eines Sub-PUF-Zellenfelds, wie beispielsweise 16 Bits oder 32 Bits.
  • Die Schlüsselregistrierungseinheit 120 enthält eine Extraktionseinheit 121, eine Bitcodierungseinheit 122 und eine Blockcodierungseinheit 123. Mit Bezug auf 2 können die Extraktionseinheit 121, die Bitcodierungseinheit 122 und die Blockcodierungseinheit 123 in Reihe geschaltet sein, um einen Pipeline-Betrieb zu ermöglichen. Die Schlüsselregistrierungseinheit 120 muss möglicherweise nicht warten, bis alle ersten Bits, die die ersten Daten konfigurieren, von dem PUF-Zellenfeld 110 empfangen werden. Beispielsweise während des Empfangens erster Bits von dem PUF-Zellenfeld 110, deren Anzahl der Anzahl der PUF-Zellen des Sub-PUF-Zellenfelds (oder in Einheiten eines Sub-PUF-Zellenfelds) entspricht, kann die Schlüsselregistrierungseinheit 120 die empfangenen ersten Bits entsprechend der Anzahl der PUF-Zellen des Sub-PUF-Zellenfelds verarbeiten.
  • Die Extraktionseinheit 121 empfängt die ersten Bits, die die ersten Daten konfigurieren, von dem PUF-Zellenfeld 110. Die Extraktionseinheit 121 erzeugt Maskenbits, die zweite Bits anzeigen, die gültig sind, aus den ersten Bits, während die ersten Bits empfangen werden. Die Extraktionseinheit 121 überträgt die Maskenbits (Markierungsdaten) an den NVM 140. Die Extraktionseinheit 121 überträgt zweite Daten (Daten 2), die aus den zweiten Bits zusammengesetzt sind, an die Bitcodierungseinheit 122. Hier können, wie oben beschrieben, die zweiten Bits gültige Bits aus den empfangenen ersten Bits sein.
  • Die Bitcodierungseinheit 122 codiert die zweiten Bits in Einheiten einer Bitcodierung, während sie die zweiten Bits empfängt, die die zweiten Daten von der Extraktionseinheit 121 konfigurieren. Beispielsweise kann die Bitcodierungseinheit 122 erste Maskenbits durch Codieren der zweiten Bits erzeugen, abhängig von der Parität der zweiten Bits, deren Größe der Einheit der Bitcodierung entspricht. Die ersten Maskenbits können die ersten Maskendaten konfigurieren, und die ersten Maskendaten können verwendet werden, um einen Fehler der zweiten Bits, der beim Schlüsselerzeugungsprozess auftreten kann, in Einheiten eines Bits zu korrigieren. Die Bitcodierungseinheit 122 überträgt die ersten Maskenbits (Maskendaten 1) an den NVM 140.
  • Die Bitcodierungseinheit 122 überträgt außerdem dritte Bits (Daten 3), die komprimierte zweite Bits sind, an die Blockcodierungseinheit 123. Jedes der dritten Bits kann einem Bit entsprechen, das eines der komprimierten zweiten Bits entsprechend der Einheit der Bitcodierung ist. Die dritten Bits können dritte Daten konfigurieren.
  • Die Blockcodierungseinheit 123 codiert die dritten Bits in Einheiten einer Blockcodierung, während sie die dritten Bits empfängt, die die dritten Daten von der Bitcodierungseinheit 122 konfigurieren. Zum Beispiel kann die Blockcodierungseinheit 123 zweite Maskenbits durch Codieren der dritten Bits, deren Größe der Einheit der Blockcodierung entspricht, zu einem Fehlerkorrekturcode (ECC) erzeugen. Die zweiten Maskenbits können die zweiten Maskendaten konfigurieren, und die zweiten Maskendaten können verwendet werden, um einen Fehler der zweiten Bits, der beim Schlüsselerzeugungsprozess auftreten kann, in Einheiten eines Blocks zu korrigieren. Die Blockcodierungseinheit 123 überträgt die zweiten Maskenbits (Maskendaten 2) an den NVM 140.
  • In einer Ausführungsform der erfinderischen Konzepte kann der Fehlerkorrekturcode mindestens eine von codierten Modulationen sein, wie etwa ein Code mit niedriger Dichte-Paritätsprüfung (LDPC), ein Bose-Chaudhuri-Hocquenghem-Code (BCH), ein Turbocode. ein Reed-Solomon-Code, ein Faltungscode, ein rekursiver systematischer Code (RSC), Trellis-codierte Modulation (TCM) und blockcodierte Modulation (BCM).
  • Wie oben beschrieben, können das PUF-Zellenfeld 110, die Extraktionseinheit 121, die Bitcodierungseinheit 122 und die Blockcodierungseinheit 123 in Reihe geschaltet sein. Die Extraktionseinheit 121 kann die zweiten Bits, die gültig sind, aus den ersten Bits, die von dem PUF-Zellenfeld 110 ausgegeben werden, an die Bitcodierungseinheit 122 übertragen. Die Bitcodierungseinheit 122 kann die zweiten Bits in Einheiten der Bitcodierung sammeln und codieren. Die Bitcodierungseinheit 122 kann die dritten Bits an die Blockcodierungseinheit 123 übertragen. Die Blockcodierungseinheit 123 kann die dritten Bits in Einheiten der Blockcodierung sammeln und codieren.
  • In einer Ausführungsform der erfinderischen Konzepte können die Extraktionseinheit 121, die Bitcodierungseinheit 122 und die Blockcodierungseinheit 123 basierend auf einem Takt arbeiten. Die zweiten Bits und die dritten Bits können synchron mit dem Takt übertragen werden. Zum Beispiel können die Extraktionseinheit 121 und die Bitcodierungseinheit 122 Bestätigungssignale ACK miteinander austauschen, um die zweiten Bits basierend auf dem Takt zu senden und zu empfangen. Die Bitcodierungseinheit 122 und die Blockcodierungseinheit 123 können Bestätigungssignale ACK miteinander austauschen, um die dritten Bits basierend auf dem Takt zu senden und zu empfangen.
  • Die Einheit der Bitcodierung kann in Abhängigkeit von einem Bitfehlerkorrekturcode oder einer Bitfehlerkorrekturoperation bestimmt werden und kann als „Einheit zum Codieren für den Bitfehlerkorrekturcode“ bezeichnet werden. Zum Beispiel kann der Bitfehlerkorrekturcode ein Wiederholungscode sein, der einer Mehrheitsabstimmungsoperation zugeordnet ist. Wie in der obigen Beschreibung kann die Einheit der Blockcodierung in Abhängigkeit von einem Blockfehlerkorrekturcode oder einer Blockfehlerkorrekturoperation bestimmt werden und als „Einheit zum Codieren für den Blockfehlerkorrekturcode“ bezeichnet werden. Beispielsweise kann der Blockfehlerkorrekturcode ein BCH-Code sein.
  • Bits können sequentiell zu der Extraktionseinheit 121, der Bitcodierungseinheit 122 und der Blockcodierungseinheit 123 übertragen werden, und jede der Extraktionseinheit 121, der Bitcodierungseinheit 122 und der Blockcodierungseinheit 123 kann ein empfangenes Bit verarbeiten, während sie ein Bit empfängt. Das heißt, die Extraktionseinheit 121, die Bitcodierungseinheit 122 und die Blockcodierungseinheit 123 können gleichzeitig arbeiten. Während das PUF-Zellenfeld 110 die ersten Bits ausgibt, kann die Extraktionseinheit 121 die ersten Bits verarbeiten, die zuerst von der PUF-Zellenanordnung 110 ausgegeben werden. Während die Extraktionseinheit 121 die zweiten Bits ausgibt, kann die Bitcodierungseinheit 122 die von der Extraktionseinheit 121 zuerst ausgegebenen zweiten Bits verarbeiten. Während die Bitcodierungseinheit 122 die dritten Bits ausgibt, kann die Blockcodierungseinheit 123 die von der Bitcodierungseinheit 122 zuerst ausgegebenen dritten Bits verarbeiten. Dementsprechend, während die PUF-Daten (d.h., die ersten Daten, die aus den ersten Bits zusammengesetzt sind) von dem PUF-Zellenfeld 110 ausgegeben werden, kann die zum Registrieren eines Schlüssels benötigte Zeit abnehmen, da die Markierungsdaten, die ersten Maskendaten und die zweiten Maskendaten, die in dem NVM 140 gespeichert werden sollen, erzeugt werden.
  • 3 veranschaulicht ein Blockschaltbild einer Bitcodierungseinheit von 2 im Detail. 3 wird mit Bezug auf 2 beschrieben. Die Bitcodierungseinheit 122 enthält einen ersten Puffer (Puffer 1) 122_1, einen zweiten Puffer (Puffer 2) 122_2 und einen Paritätsprüfer 122_3.
  • Der erste Puffer 122_1 empfängt und speichert die zweiten Bits der zweiten Daten von der Extraktionseinheit 121. Die im ersten Puffer 122_1 gespeicherten zweiten Bits können durch die Extraktionseinheit 121 aktualisiert werden. Die Anzahl der im ersten Puffer 122_1 gespeicherten zweiten Bits kann abhängig von einer Einheit der Bitcodierung bestimmt werden. In dem Fall, in dem die Bitcodierungseinheit 122 die zweiten Bits in Abhängigkeit von einem Wiederholungscode codiert, kann beispielsweise die Anzahl der in dem ersten Puffer 122_1 zu speichernden Bits eine ungerade Anzahl von mindestens 3 oder mehr sein. Ein Beispiel ist in 3 veranschaulicht, wobei drei Bits im ersten Puffer 122_1 gespeichert sind. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und gemäß einigen Ausführungsformen der erfinderischen Konzepte kann der erste Puffer 122_1 zweite Bits in Einheiten der Bitcodierung speichern, anstatt alle zweiten Bits zu speichern, die die zweiten Daten konfigurieren.
  • Der zweite Puffer 122_2 speichert erste Maskenbits der ersten Maskendaten, die ein Ergebnis einer bitweisen Operation der Bitcodierungseinheit 122 sind. Die Anzahl von Bits, die in dem zweiten Puffer 122_2 gespeichert werden sollen, kann auch abhängig von der Einheit der Bitcodierung bestimmt werden und kann identisch sein mit der Anzahl von Bits, die in dem ersten Puffer 122_1 gespeichert werden sollen. Der zweite Puffer 122_2 kann die ersten Maskenbits in Einheiten der Bitcodierung speichern, anstatt alle ersten Maskenbits zu speichern, die die ersten Maskendaten konfigurieren.
  • Der Paritätsprüfer 122_3 prüft die Parität der im ersten Puffer 122_1 gespeicherten zweiten Bits, d. h., die Anzahl der Einsen. Beispielsweise kann der Paritätsprüfer 122_3 ein Schlüsselbit „0“ ausgeben, wenn die Anzahl der Einsen gerade ist, und er kann ein Schlüsselbit „1“ ausgeben, wenn die Anzahl der Einsen ungerade ist. Hier kann das Schlüsselbit ein drittes Bit sein (d. h., Daten 3) und wird durch Komprimieren der im ersten Puffer 122_1 gespeicherten zweiten Bits durch die Paritätsprüfung erzeugt.
  • Die Bitcodierungseinheit 122 führt die bitweise Operation an den zweiten Bits aus, die in dem ersten Puffer 122_1 gespeichert sind, und erzeugt die ersten Maskenbits. Ein Beispiel ist in 3 veranschaulicht, bei dem die zweiten Bits von „101“ im ersten Puffer 122_1 gespeichert sind. Zum Beispiel kann die 122 eine Exklusiv-ODER (XOR) -Operation an „101“ und „000“ durchführen und kann die ersten Maskenbits erzeugen. Die Bitcodierungseinheit 122 kann zusätzlich zu der XOR-Operation verschiedene Operationen bitweise ausführen, beispielsweise eine XNOR-Operation. Hier können Bits „000“ und Bits „111“, die von dem Paritätsprüfer 122_3 ausgegeben werden, auf einem Überprüfungsergebnis des Paritätsprüfers 122_3 basieren. Wenn beispielsweise die Anzahl der Einsen der zweiten Bits, die im ersten Puffer 122_1 gespeichert sind, gerade ist, werden die Bits „000“ vom Paritätsprüfer 122_3 für die bitweise Operation ausgegeben. Wenn zum Beispiel die Anzahl der Einsen der zweiten Bits, die in dem ersten Puffer 122_1 gespeichert sind, ungerade ist, werden die Bits „111“ vom Paritätsprüfer 122_3 für die bitweise Operation ausgegeben.
  • Die folgende Tabelle 1 zeigt ein Operationsergebnis der Bitcodierungseinheit 122 gemäß Werten der zweiten Bits, die in dem ersten Puffer 122_1 gespeichert sind. [Tabelle 1]
    Daten 2 Anzahl von „1“ Bits Schlüsselbit Bitweise Operation Maskendaten 1
    000 Gerade 0 000 00
    001 Ungerade 1 110 10
    010 Ungerade 1 101 01
    011 Gerade 0 011 11
    100 Ungerade 1 011 11
    101 Gerade 0 101 01
    110 Gerade 0 110 10
    111 Ungerade 1 000 00
  • Wenn in der Tabelle 1 die Anzahl der Einsen gerade ist, kann ein Ergebnis der bitweisen Operation der Bitcodierungseinheit 122 mit einem im ersten Puffer 122_1 gespeicherten Wert identisch sein. Wenn die Anzahl der Einsen ungerade ist, kann das Ergebnis der bitweisen Operation der Bitcodierungseinheit 122 eine invertierte Version eines Werts sein, der im ersten Puffer 122_1 gespeichert ist. Eine Beschreibung wird unter Bezugnahme auf 3 und Tabelle 1 gegeben, während die Bitcodierungseinheit 122 eine Codierung basierend auf einer geraden Parität durchführt. In anderen Ausführungsformen der erfinderischen Konzepte kann die Bitcodierungseinheit 122 jedoch eine Codierung basierend auf einer ungeraden Parität durchführen.
  • Ein Ergebnis der bitweisen Operation kann ein Wert sein, der basierend auf den zweiten Bits von der Bitcodierungseinheit 122 erzeugt wird. In dem Fall, in dem das Ergebnis der bitweisen Operation ohne Modifikation in dem NVM 140 gespeichert wird, kann ein Angreifer daraus die PUF-Daten unter Verwendung des Ergebnisses der im NVM 140 gespeicherten bitweisen Operation ableiten oder vorhersagen. Um zu verhindern, dass die PUF-Daten abgeleitet oder vorhergesagt werden, kann das Ergebnis der bitweisen Operation maskiert sein.
  • In Tabelle 1 haben zwei Werte von zweiten Bits, die zueinander in umgekehrter Beziehung stehen, das gleiche Ergebnis der bitweisen Operation. Das heißt, in dem Fall, in dem die zweiten Bits „000“ oder „111“ sind (d. h., in umgekehrter Beziehung zueinander stehen), können die Ergebnisse der bitweisen Operationen identisch sein, d. h., „000“. In dem Fall, in dem die zweiten Bits „001“ oder „110“ sind, können die Ergebnisse der bitweisen Operationen identisch sein, d. h., „110“. In dem Fall, in dem die zweiten Bits „010“ oder „101“ sind, können die Ergebnisse der bitweisen Operationen identisch sein, d. h., „101“. In dem Fall, in dem die zweiten Bits „011“ oder „100“ sind, können die Ergebnisse der bitweisen Operationen identisch sein, d. h., „011“. Obwohl ein Bit aus dem Ergebnis der bitweisen Operation entfernt werden kann, kann das entfernte Bit entsprechend in Abhängigkeit von der geraden Parität und der ungeraden Parität wiederhergestellt werden, von der die Bitcodierungseinheit 122 abhängt.
  • Das heißt, das Ergebnis der bitweisen Operation kann maskiert werden, indem ein Bit aus dem Ergebnis der bitweisen Operation entfernt wird. Jedes Bit, das dem Ergebnis der bitweisen Operation entspricht, kann entfernt werden. Mit Bezug auf Tabelle 1 können beispielsweise die ersten Maskenbits durch Entfernen eines höchstwertigen Bits (MSB) aus dem Ergebnis der bitweisen Operation erzeugt werden. In anderen Ausführungsformen kann im Gegensatz zu Tabelle 1 zum Beispiel ein niederwertiges Bit (LSB) oder ein Zwischenbit aus dem Ergebnis der bitweisen Operation entfernt werden. Die Bitcodierungseinheit 122 überträgt die restlichen Bits (d. h., die ersten Maskenbits) der Bits, die in dem zweiten Puffer 122_2 außer dem entfernten Bit gespeichert sind, an den NVM 140.
  • In einer Ausführungsform der erfinderischen Konzepte kann die Bitcodierungseinheit 122 ferner einen Puffer zum Speichern eines Zwischenwerts, eines Endwerts usw., der durch Codieren der im ersten Puffer 122_1 gespeicherten zweiten Bits, Prüfen der Parität der zweiten Bits oder Durchführen einer bitweisen Operation an den zweiten Bits erzeugt wird, zusätzlich zu den ersten und zweiten Puffern 122_1 und 122_2 enthalten, die in 3 veranschaulicht sind. Außerdem ist in 3 eine Ausführungsform veranschaulicht, bei der die Bitcodierungseinheit 122 einen ersten Puffer 122_1 und einen zweiter Puffer 122_2 enthält. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, einen ersten Puffer 122_1 und einen zweiten Puffer 122_2 zu enthalten, und es kann eine beliebige Anzahl von Puffern enthalten sein.
  • 4 veranschaulicht ein Blockschaltbild einer Blockcodierungseinheit von 2 im Detail. 4 wird mit Bezug auf 2 beschrieben. Die Blockcodierungseinheit 123 enthält einen dritten Puffer (Puffer 3) 123_1, einen Blockcodierer 123_2 und einen vierten Puffer (Puffer 4) 123_3.
  • Der dritte Puffer 123_1 empfängt und speichert dritte Bits (Schlüsselbits) der dritten Daten von der Bitcodierungseinheit 122. Die im dritten Puffer 123_1 gespeicherten dritten Bits können durch die Bitcodierungseinheit 122 aktualisiert werden. Der dritte Puffer 123_1 kann die dritten Bits in Einheiten der Blockcodierung speichern. Der dritte Puffer 123_1 kann die dritten Bits in Einheiten der Blockcodierung speichern, anstatt alle die dritten Daten konfigurierenden dritten Bits zu speichern.
  • Der Blockcodierer 123_2 codiert die dritten Bits in Abhängigkeit von einem Blockfehlerkorrekturcode (z. B. einem BCH-Code) und erzeugt Hilfsbits. Die Hilfsbits können somit codierte Bits sein, die als Reaktion auf die dritten Bits erzeugt werden. Die Hilfsbits können Hilfsdaten konfigurieren, und die Hilfsdaten können verwendet werden, um einen Fehler der zweiten Daten (gültige Daten der PUF-Daten), die oben beschrieben wurden, zu korrigieren. Die Hilfsdaten können basierend auf den zweiten Daten erzeugt werden (das heißt, basierend auf den zweiten Bits der zweiten Daten, die die gültigen Bits der ersten Daten sind). In dem Fall, in dem die Hilfsdaten ohne Modifikation im NVM 140 gespeichert werden, kann ein Angreifer die PUF-Daten unter Verwendung der im NVM 140 gespeicherten Hilfsdaten ableiten oder vorhersagen. Um zu verhindern, dass auf die PUF-Daten geschlossen oder vorhergesagt wird, können die Hilfsdaten ebenso wie in den ersten Maskierungsdaten maskiert werden.
  • Zum Maskieren der Hilfsbits empfängt und speichert der dritte Puffer 123_1 ferner die dritten Bits von der Bitcodierungseinheit 122. Das heißt, mit Bezug auf 4 kann der dritte Puffer 123_1 zusätzlich zu dritten Bits, die der Einheit der Codierung der Blockfehlerkorrekturoperation entsprechen, dritte Bits zum Maskieren speichern. Die Blockcodierungseinheit 123 kann eine bitweise Operation (z. B. eine XOR-Operation) an den Hilfsbits und den dritten Bits zum Maskieren (Bit 3 für Maskierung) durchführen und kann zweite Maskenbits erzeugen. Die zweiten Maskenbits können die zweiten Maskendaten (Maskendaten 2) konfigurieren.
  • Der vierte Puffer 123_3 speichert die zweiten Maskenbits der zweiten Maskendaten, die ein Ergebnis der bitweisen Operation der Blockcodierungseinheit 123 sind. Der vierte Puffer 123_3 kann die zweiten Maskenbits speichern, die den maskierten Hilfsbits entsprechen (d.h., Hilfsbits, die der Einheit der Blockfehlerkorrekturoperation entsprechen), die durch die Blockcodierung erzeugt werden, anstatt alle zweiten Maskenbits zu speichern, die die zweiten Maskendaten konfigurieren. Wenn alle zweiten Maskenbits der zweiten Maskendaten vollständig vom vierten Puffer 123_3 zum NVM 140 übertragen sind, endet der Schlüsselregistrierungsprozess.
  • In einer Ausführungsform der erfinderischen Konzepte kann die Blockcodierungseinheit 123 ferner einen Puffer zum Speichern eines Zwischenwerts, eines Endwerts usw., der durch Codieren von dritten Bits, die in dem dritten Puffer 123_1 gespeichert sind oder durch Ausführen einer bitweisen Operation an den dritten Bits erzeugt wird, zusätzlich zu den dritten und vierten Puffern 123_1 und 123_3 enthalten, die in Bild 4 veranschaulicht sind. Außerdem ist eine Ausführungsform in 4 veranschaulicht, bei der die Blockcodierungseinheit 123 einen dritten Puffer 123_1 und einen vierten Puffer 123_3 enthält. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, einen dritten Puffer 123_1 und einen vierten Puffer 123_3 zu enthalten, und es kann eine beliebige Anzahl von Puffern enthalten sein.
  • 5 veranschaulicht ein Blockschaltbild einer Schlüsselerzeugungseinheit der Halbleitervorrichtung 100 von 1 im Detail. Vor der Beschreibung von 5 sind die ersten bis dritten Daten (d. h., Daten 1, Daten 2 und Daten 3), die in 2 veranschaulicht sind, Daten, die in dem Schlüsselregistrierungsprozess erzeugt werden, und die ersten bis vierten Daten, die in 5 veranschaulicht sind, sind Daten, die in dem Schlüsselerzeugungsprozess erzeugt werden. Dementsprechend unterscheiden sich die ersten bis dritten Daten, die in 2 veranschaulicht sind, von den ersten bis vierten Daten, die in 5 veranschaulicht sind. Außerdem ist zum Zwecke der Vereinfachung die Schlüsselregistrierungseinheit 120 von 1 nicht in 5 gezeigt.
  • Wie bei der Übertragung erster Daten an die Schlüsselregistrierungseinheit 120 sendet das PUF-Zellenfeld 110, wie in 5 gezeigt, erste Daten (Daten 1) an die Schlüsselerzeugungseinheit 130. Die Schlüsselerzeugungseinheit 130 empfängt die ersten Daten von dem PUF-Zellenfeld 110 abhängig von einer Aufforderung einer Anwendung, die die Halbleitervorrichtung 100 verwendet (oder basierend auf einer Aufforderung eines Benutzers oder einer Authentifizierungsaufforderung), und stellt einen Sicherheitsschlüssel wieder her unter Verwendung der Markierungsdaten (Markierungsdaten), der ersten Maskendaten (Maskendaten 1) und der zweiten Maskendaten (Maskendaten 2), die die Schlüsselregistrierungseinheit 120 im NVM 140 speichert.
  • Die Schlüsselerzeugungseinheit 130 enthält die Extraktionseinheit 121, eine Demaskierungseinheit 132, eine Bitdecodierungseinheit 133 und eine Blockdecodierungseinheit 134. Das PUF-Zellenfeld 110, die Extraktionseinheit 121, die Demaskierungseinheit 132 und die Bitdecodierungseinheit 133, und die Blockdecodierungseinheit 134 kann in Reihe geschaltet sein, um eine Pipelineoperation zu ermöglichen. Wie in der Schlüsselregistrierungseinheit 120 muss die Schlüsselerzeugungseinheit 130 möglicherweise nicht warten, bis alle ersten Bits, die die ersten Daten konfigurieren, von dem PUF-Zellenfeld 110 empfangen werden, um die Verarbeitung zu beginnen. Während die ersten Bits von dem PUF-Zellenfeld 110 durch eine Einheit des Sub-PUF-Zellenfelds empfangen werden, kann die Schlüsselerzeugungseinheit 130 die empfangenen ersten Bits verarbeiten.
  • Die Extraktionseinheit 121 kann identisch sein mit der Extraktionseinheit 121, die in der Schlüsselregistrierungseinheit 120 von 1 enthalten ist. Die Extraktionseinheit 121 empfängt die ersten Daten (Daten 1) von dem PUF-Zellenfeld 110 in dem Schlüsselerzeugungsprozess. Wie oben beschrieben, können aufgrund eines Merkmals des PUF-Zellenfelds 110 die ersten Daten, die in dem Schlüsselregistrierungsprozess erzeugt werden, mit den ersten Daten, die in dem Schlüsselerzeugungsprozess erzeugt werden, identisch sein oder sich von diesen unterscheiden.
  • Die Extraktionseinheit 121 empfängt die ersten Bits, die die ersten Daten konfigurieren, von dem PUF-Zellenfeld 110 und empfängt die Maskenbits, die die Markierungsdaten konfigurieren, von dem NVM 140. Das heißt, die Extraktionseinheit 121 sendet die Markierungsdaten an den NVM 140 in dem Schlüsselregistrierungsprozess und empfängt die Markierungsdaten von dem NVM 140 in dem Schlüsselerzeugungsprozess.
  • Die Extraktionseinheit 121 extrahiert zweite Bits, die gültig sind, aus den ersten Bits unter Verwendung der Maskenbits. Wie oben beschrieben, können die Maskenbits die gültige Speicherabbildung konfigurieren, die anzeigt, ob die ersten Bits gültig sind. Dementsprechend kann die Extraktionseinheit 121 abhängig von einem logischen Wert („0“ oder „1“) eines Maskenbits bestimmen, ob ein empfangenes erstes Bit als ein zweites Bit ausgegeben werden soll. Die Extraktionseinheit 121 extrahiert nur gültige Bits der ersten Bits. Die Extraktionseinheit 121 überträgt die zweiten Bits, die die zweiten Daten konfigurieren, an die Demaskierungseinheit 132.
  • Die Demaskierungseinheit 132 empfängt die zweiten Bits, die die zweiten Daten (Daten 2) konfigurieren, von der Extraktionseinheit 121 der Schlüsselerzeugungseinheit 130 und empfängt die ersten Maskenbits, die die ersten Maskendaten konfigurieren, vom NVM 140. Die Demaskierungseinheit 132 kann die zweiten Bits demaskieren, unter Verwendung der ersten Maskenbits, die die ersten Maskendaten konfigurieren, und kann dritte Bits erzeugen, die unmaskiert sind, während die zweiten Bits empfangen werden, die die zweiten Daten konfigurieren. Hier können die dritten Bits dritte Daten (Daten 3) konfigurieren, und die zweiten Daten können zur Bitfehlerkorrektur durch die Demaskierungsoperation in die dritten Daten umgewandelt werden. Die Demaskierungseinheit 132 überträgt die dritten Bits, die die dritten Daten konfigurieren, an die Bitdecodierungseinheit 133.
  • Die Bitdecodierungseinheit 133 decodiert die dritten Bits für eine Bitfehlerkorrekturoperation, während sie die dritten Bits empfängt, die die dritten Daten von der Demaskierungseinheit 132 konfigurieren. Zum Beispiel kann die Bitdecodierungseinheit 133 eine Majoritätsabstimmungsoperation an den dritten Bits durchführen und kann einen Bitfehler der zweiten Bits korrigieren. Die Bitdecodierungseinheit 133 komprimiert die dritten Bits zu vierten Bits (Schlüsselbits) und überträgt die vierten Bits zur Blockdecodierungseinheit 134. Die vierten Bits können vierte Daten (Daten 4) konfigurieren.
  • Die Blockdecodierungseinheit 134 decodiert die vierten Bits, während sie die vierten Bits empfängt, die die vierten Daten von der Bitdecodierungseinheit 133 konfigurieren. Die Einheit der Decodierung der Blockdecodierungseinheit 134 kann ein Block sein, und die Blockdecodierungseinheit 134 kann die vierten Bits sammeln und Blöcke erzeugen. Die Blockdecodierungseinheit 134 empfängt die zweiten Maskenbits, die die zweiten Maskendaten konfigurieren, von dem NVM 140 und demaskiert die zweiten Maskenbits für die oben beschriebenen Hilfsbits (d. h., die Hilfsbits der Hilfsdaten von 4). Die Blockdecodierungseinheit 134 kann einen Fehler der zweiten Bits abhängig von einem Fehlerkorrekturcode korrigieren. Das heißt, die Blockdecodierungseinheit 134 kann einen Fehler durch Decodieren der vierten Bits und der zweiten Maskenbits korrigieren und kann einen endgültigen Schlüssel (oder einen Sicherheitsschlüssel) erzeugen.
  • 6 veranschaulicht ein Blockschaltbild einer Demaskierungseinheit und einer Bitdecodierungseinheit von 5 im Detail, wobei kein Fehler an einem Ausgang des PUF-Zellenfelds vorliegt. 7 veranschaulicht ein Blockschaltbild einer Demaskierungseinheit und einer Bitdecodierungseinheit von 5 im Detail, wobei ein Fehler in einer Ausgabe des PUF-Zellenfelds vorliegt. Die Demaskierungseinheit 132 enthält einen fünften Puffer (Puffer 5) 132_1 und einen sechsten Puffer (Puffer 6) 132_2.
  • Der fünfte Puffer 132_1 empfängt und speichert die zweiten Bits der zweiten Daten von der Extraktionseinheit 121 der Schlüsselerzeugungseinheit 130. Die im fünften Puffer 132_1 gespeicherten zweiten Bits können durch die Extraktionseinheit 121 aktualisiert werden. Die Anzahl der in dem fünften Puffer 132_1 zu speichernden Bits können in Einheiten der Bitcodierung bestimmt werden, die mit den Einheiten der Bitfehlerkorrektur oder den Einheiten der Bitcodierung identisch sein können. In dem Fall, in dem die Bitdecodierungseinheit 133 dritte Bits abhängig von dem Wiederholungscode decodiert, kann beispielsweise die Anzahl der in dem fünften Puffer 132_1 zu speichernden Bits eine ungerade Anzahl von mindestens 3 oder mehr sein.
  • Ein Beispiel ist in den 6 und 7 dargestellt, wo drei Bits im fünften Puffer 132_1 gespeichert sind. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und in einigen Ausführungsformen kann der fünfte Puffer 132_1 die zweiten Bits in Einheiten der Bitdecodierung der Bitdecodierungseinheit 133 speichern, anstatt alle zweiten Bits zu speichern, die die zweiten Daten konfigurieren.
  • In noch weiteren Ausführungsformen der erfinderischen Konzepte kann der fünfte Puffer 132_1 anders als in 6 gezeigt, die zweiten Bits nicht in Einheiten der Bitdecodierung speichern. Der fünfte Puffer 132_1 kann stattdessen mindestens ein zweites Bit speichern. In diesem Fall kann das im fünften Puffer 132_1 gespeicherte zweite Bit für eine bitweise Operation bereitgestellt werden, und dann kann ein neues zweites Bit im fünften Puffer 132_1 gespeichert werden.
  • Der sechste Puffer 132_2 empfängt und speichert die ersten Maskenbits, die die ersten Maskendaten konfigurieren, von dem NVM 140. Die Anzahl der im sechsten Puffer 132_2 zu speichernden Bits kann abhängig von der Einheit der Bitdecodierung bestimmt werden und kann mit der Anzahl von Bits, die im fünften Puffer 132_1 gespeichert werden sollen, identisch sein. Der sechste Puffer 132_2 kann die ersten Maskenbits in Einheiten der Bitdecodierung speichern, anstatt alle ersten Maskenbits zu speichern, die die ersten Maskendaten konfigurieren.
  • In einigen Ausführungsformen der erfinderischen Konzepte kann anders als in 6 gezeigt der sechste Puffer 132_2 die ersten Maskenbits nicht in Einheiten der Bitdecodierung speichern. Der sechste Puffer 132_2 kann stattdessen mindestens ein erstes Maskenbit speichern. In diesem Fall kann ein erstes im sechsten Puffer 132_2 gespeichertes Maskenbit für eine bitweise Operation bereitgestellt werden, und dann kann ein neues erstes Maskenbit im sechsten Puffer 132_2 gespeichert werden.
  • Die Demaskierungseinheit 132 empfängt die ersten Maskenbits, die die ersten Maskendaten konfigurieren, von dem NVM 140 und stellt ein beliebiges in einem Codierungsprozess entferntes Bit wieder her, abhängig von der geraden Parität und der ungeraden Parität, von der die Bitcodierungseinheit 122 abhängt. Beispielsweise wird in der mit Bezug auf 6 beschriebenen Ausführungsform angenommen, dass die Bitcodierungseinheit 122 basierend auf der geraden Parität arbeitet und der NVM 140 die ersten Maskenbits von „01“ überträgt. Wie in 6 veranschaulicht, kann die Demaskierungseinheit 132 das entfernte Bit von „1“ abhängig von der geraden Parität wiederherstellen, und „101“ kann im sechsten Puffer 132_2 gespeichert werden. Im Gegensatz zu dem oben beschriebenen Beispiel kann bei anderen Ausführungsbeispielen der erfinderischen Konzepte, bei denen die Bitcodierungseinheit 122 auf der Grundlage der ungeraden Parität arbeitet, die Demaskierungseinheit 132 das entfernte Bit in Abhängigkeit von der ungeraden Parität wiederherstellen.
  • Die Demaskierungseinheit 132 führt eine bitweise Operation an den zweiten Bits aus, die im fünften Puffer 132_1 gespeichert sind, und den ersten Maskenbits, die im sechsten Puffer 132_2 gespeichert sind, und erzeugt dritte Bits (Daten 3). Die zweiten Bits können durch die bitweise Operation der Demaskierungseinheit 132 für die dritten Bits demaskiert werden. Hier kann die bitweise Operation eine XOR-Operation, eine XNOR-Operation oder eine andere logische Operation sein.
  • Die Bitdecodierungseinheit 133 enthält einen siebten Puffer (Puffer 7) 133_1. Der siebte Puffer 133_1 empfängt und speichert die unmaskierten dritten Bits der dritten Daten von der Demaskierungseinheit 132. Die Anzahl der dritten Bits, die in dem siebten Puffer 133_1 gespeichert werden sollen, kann abhängig von der Einheit der Bitdecodierung bestimmt werden und kann mit der Anzahl der Bits, die in jedem der fünften und sechsten Puffer 132_1 und 132_2 gespeichert werden sollen, identisch sein. Der siebte Puffer 133_1 kann die dritten Bits in Einheiten der Bitdecodierung speichern, anstatt alle dritten Bits zu speichern, die die dritten Daten konfigurieren. Zum Beispiel kann der siebte Puffer 133_1 die dritten Bits in Einheiten der Mehrheitsentscheidungsoperation speichern.
  • Die Bitdecodierungseinheit 133 kann die Mehrheitsentscheidungsoperation an den dritten Bits durchführen, die im siebten Puffer 133_1 gespeichert sind. Beispielsweise kann die Bitdecodierungseinheit 133 die im siebten Puffer 133_1 gespeicherten dritten Bits auf ein Schlüsselbit (ein viertes Bit) komprimieren.
  • Die folgende Tabelle 2 zeigt Operationsergebnisse der Demaskierungseinheit 132 und der Bitdecodierungseinheit 133 gemäß Werten der zweiten Bits, die in dem fünften Puffer 132_1 gespeichert sind. [Tabelle 2]
    Daten 2 Maskendaten 1 Wiederhergestellte Maskendaten 1 Bitweise Operation Schlüsselbit
    000 00 000 000 0
    001 10 110 111 1
    010 01 101 111 1
    011 11 011 000 0
    100 11 011 111 1
    101 01 101 000 0
    110 10 110 000 0
    111 00 000 111 1
  • In Tabelle 2 werden die ersten Maskenbits von dem NVM 140 übertragen und können mit den ersten Maskenbits in Tabelle 1 identisch sein. In Tabelle 2 werden wiederhergestellte erste Maskenbits im sechsten Puffer 132_2 gespeichert. In Tabelle 2 können die wiederhergestellten ersten Maskenbits von der Demaskierungseinheit 132 basierend auf der geraden Parität erzeugt werden. Wenn bei den zweiten Bits kein Fehler vorliegt, können die als Ergebnis der bitweisen Operation erhaltenen Bits den gleichen logischen Wert von „0“ oder „1“ haben. Das heißt, die Bitcodierungseinheit 122 kann die ersten Maskenbits in dem Schlüsselregistrierungsprozess erzeugen, so dass Bits, die als Ergebnis der bitweisen Operation der Demaskierungseinheit 132 erzeugt werden (z. B. die als XOR-Operation in 6 gezeigte bitweise Operation) zueinander identisch sind (z. B. 000). Nachfolgend wird ein Beispiel, in dem ein 2-Bit-Fehler korrigiert wird, ausführlich beschrieben.
  • 6 veranschaulicht den Fall, in dem kein Fehler an einer Ausgabe des PUF-Zellenfelds 110 vorliegt. Die zweiten Bits, die von der in 2 gezeigten Extraktionseinheit 121 während des Schlüsselregistrierungsprozesses in Reaktion auf die ersten Daten ausgegeben werden, die von der PUF-Zellenanordnung 110 ausgegeben werden, können mit den zweiten Bits identisch sein, die von der in 5 gezeigten Extraktionseinheit 121, während des Schlüsselerzeugungsprozesses in Reaktion auf die ersten Daten ausgegeben werden, die von dem PUF-Zellenfeld 110 ausgegeben werden. Das heißt, wie in dem Fall, in dem „101“ im ersten Puffer 122_1 in Bild 3 gespeichert werden kann, kann „101“ im fünften Puffer 132_1 von 6 gespeichert werden.
  • 7 veranschaulicht den Fall, in dem ein Fehler in der Ausgabe des PUF-Zellenfelds 110 vorliegt. Die zweiten Bits, die von der in 2 gezeigten Extraktionseinheit 121 während des Schlüsselregistrierungsprozesses in Reaktion auf die ersten Daten ausgegeben werden, die von dem PUF-Zellenfeld 110 ausgegeben werden, können sich von den zweiten Bits unterscheiden, die von der in 5 gezeigten Extraktionseinheit 121, während des Schlüsselerzeugungsprozesses in Reaktion auf die ersten Daten ausgegeben werden, die von der PUF-Zellenanordnung 110 ausgegeben werden. Das ist anders als in dem Fall, in dem „101“ in dem in 3 Fig. gezeigten ersten Puffer 122_1 gespeichert werden kann, können zweite Bits, von denen eines umgedreht wird, beispielsweise „001“, in dem fünften Puffer 132_1 von 7 gespeichert werden.
  • Die ersten Maskenbits werden von dem NVM 140 übertragen. Dementsprechend können die ersten Maskenbits von „101“ identisch in dem sechsten Puffer 132_2 von 6 und dem sechsten Puffer 132_2 von 7 gespeichert werden.
  • Mit Bezug auf 6 führt die Demaskierungseinheit 132 eine XOR-Operation an „101“ und „101“ aus und erzeugt die dritten Bits „000“. Die Bitdecodierungseinheit 133 prüft die Anzahl von Nullen und die Anzahl von Einsen von den dritten Bits „000“. Da „0“ -Bits nur im siebten Puffer 133_1 von 6 gespeichert werden, gibt die Bitdecodierungseinheit 133 ein Schlüsselbit von „0“ aus.
  • Mit Bezug auf 7 führt die Demaskierungseinheit 132 eine XOR-Operation an „001“ und „101“ aus und erzeugt die dritten Bits von „100“. Die Bitdecodierungseinheit 133 prüft die Anzahl von Nullen und die Anzahl von Einsen von den dritten Bits „100“. Da ein „1“ -Bit und zwei „0“ -Bits im siebten Puffer 133_1 von 7 gespeichert sind, gibt die Bitdecodierungseinheit 133 ein Schlüsselbit „0“ aus. Das heißt, der Fehler der zweiten Bits kann durch die Mehrheitsentscheidungsoperation korrigiert werden. Ein Beispiel ist in 7 veranschaulicht, in dem ein MSB der zweiten Bits, die in dem fünften Puffer 132_1 von 7 gespeichert sind, fehlerhaft ist. Wenn der Fehler jedoch in einem anderen Bit als dem MSB vorliegt, kann der Fehler durch den Mehrheitsabstimmungsvorgang korrigiert werden.
  • In einer Ausführungsform der erfinderischen Konzepte kann die Demaskierungseinheit 132 ferner einen Puffer zum Speichern eines Zwischenwerts, eines Endwerts usw., der durch Demaskieren zweiter in dem fünften Puffer 132_1 gespeicherter Bits, Wiederherstellen eines entfernten ersten Maskenbits oder Durchführen einer bitweisen Operation an den zweiten Bits und den ersten Maskenbits erzeugt wird, zusätzlich zu den fünften und sechsten Puffern 132_1 und 132_2 enthalten, die in den 6 und 7 veranschaulicht sind. Eine Ausführungsform der erfinderischen Konzepte ist auch in den 6 und 7 veranschaulicht, wo die Demaskierungseinheit 132 einen fünften Puffer 132_1 und einen sechsten Puffer 132_2 enthält. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, einen fünften Puffer 132_1 und einen sechsten Puffer 132_3 zu enthalten, und es kann eine beliebige Anzahl von Puffern enthalten sein.
  • Wie in den 6 und 7 gezeigt, kann die Bitdecodierungseinheit 133 zusätzlich zu dem siebten Puffer 133_1 einen Puffer zum Speichern eines Zwischenwerts, eines Endwerts usw. enthalten, der durch Korrektur eines Bitfehlers erzeugt wird. Eine Ausführungsform ist auch in den 6 und 7 veranschaulicht, in der die Bitdecodierungseinheit 133 einen siebten Puffer 133_1 enthält. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, einen siebten Puffer 133_1 zu enthalten, und es kann eine beliebige Anzahl von Puffern enthalten sein.
  • 8 veranschaulicht ein Blockschaltbild einer Blockdecodierungseinheit von 5 im Detail. 8 wird unter Bezugnahme auf die 5 bis 7 beschrieben. Die Blockdecodierungseinheit 134 enthält einen achten Puffer (Puffer 8) 134_1, einen neunten Puffer (Puffer 9) 134_2 und einen Blockdecodierer 134_3.
  • Der achte Puffer 134_1 empfängt und speichert vierte Bits (Schlüsselbits) der vierten Daten von der Bitdecodierungseinheit 133. Die im achten Puffer 134_1 gespeicherten vierten Bits können durch die Bitdecodierungseinheit 133 aktualisiert werden. Der achte Puffer 134_1 kann Bits in Einheiten der Blockdecodierung speichern, die die Einheit der Blockfehlerkorrektur oder die Einheit der Blockcodierung sein können. Der achte Puffer 134_1 kann die vierten Bits in Einheiten der Blockdecodierung speichern, anstatt alle die vierten Daten konfigurierenden vierten Bits zu speichern. Außerdem empfängt und speichert der achte Puffer 134_1 vierte Bits von der Bitdecodierungseinheit 133 zum Demaskieren der zweiten Maskenbits, die die zweiten Maskendaten konfigurieren, zusätzlich zu den vierten Bits, die der Einheit zur Blockdecodierung entsprechen.
  • Der neunte Puffer 134_2 empfängt und speichert die zweiten Maskenbits von dem NVM 140. Der neunte Puffer 134_2 kann die zweiten Maskenbits zum Demaskieren von Hilfsdaten speichern, die für eine Blockfehlerkorrekturoperation erforderlich sind, anstatt alle zweiten Maskenbits zu speichern, die die zweiten Maskendaten konfigurieren.
  • Die Blockdecodierungseinheit 134 demaskiert die zweiten Maskenbits, die im neunten Puffer 134_2 gespeichert sind, unter Verwendung der vierten Bits zum Demaskieren, die im achten Puffer 134_1 gespeichert sind. Die Blockdecodierungseinheit 134 führt eine bitweise Operation (z. B. eine XOR-Operation) an den vierten Bits zum Demaskieren, die in dem achten Puffer 134_1 und den zweiten Maskenbits, die in dem neunten Puffer 134_2 gespeichert sind, aus und erzeugt Hilfsbits, die die Hilfsdaten konfigurieren.
  • Der Blockdecodierer 134_3 decodiert Blockdaten, die aus den vierten Bits zusammengesetzt sind und die Hilfsdaten, die aus den Hilfsbits zusammengesetzt sind, abhängig von einem Fehlerkorrekturcode, und korrigiert einen Fehler und stellt das Ergebnis als den endgültigen Schlüssel bereit (d. h., den Sicherheitsschlüssel). Der Blockfehlerkorrekturcode kann ein BCH-Code sein. Der Blockdecodierer 134_3 decodiert nicht alle Bits der Daten auf einmal, so dass der Bitfehler aller dieser decodierten Bits dann korrigiert werden kann. Stattdessen teilt der Blockdecodierer 134_3 alle vierten Bits in eine Vielzahl von Blöcken auf und führt eine Fehlerkorrekturoperation in Einheiten eines Blocks aus. Außerdem können alle Hilfsbits der Hilfsdaten geteilt werden. Bezug nehmend auf 8 decodiert der Blockdecodierer 134_3 die vierten Bits, die vom achten Puffer 134_1 in den Einheiten eines Blocks bereitgestellt werden und die Hilfsbits, die als Ergebnis der bitweisen Operation erhalten werden, und korrigiert einen Fehler in einem Block.
  • In einer Ausführungsform der erfinderischen Konzepte kann die Blockdecodierungseinheit 134 ferner einen Puffer zum Speichern eines Zwischenwerts, eines Endwerts usw., der durch Decodieren von vierten Bits, die in dem achten Puffer 134_1 gespeichert sind, oder durch Ausführen einer bitweisen Operation erzeugt wird, die die vierten Bits zum Demaskieren und die zweiten Maskenbits enthalten, zusätzlich zu den achten und neunten Puffern 134_1 und 134_2, die in 8 veranschaulicht sind. Eine Ausführungsform ist in 8 veranschaulicht, bei der die Blockdecodierungseinheit 134 einen achten Puffer 134_1 und einen neunten Puffer 134_2 enthält. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, einen achten Puffer 134_1 und einen neunten Puffer 134_2 zu enthalten, und es kann eine beliebige Anzahl von Puffern enthalten sein.
  • In einer Ausführungsform kann jeder der oben beschriebenen Puffer 122_1, 122_2, 123_1, 123_2, 132_1, 132_2, 133_1, 134_1 und 134_2 unter Verwendung von mindestens einem Zwischenspeicher, einem Register und einem SRAM implementiert werden. Außerdem kann jeder der Puffer 122_1, 122_2, 123_1, 123_2, 132_1, 132_2, 133_1, 134_1 und 134_2 basierend auf dem Takt und dem Bestätigungssignal ACK, die zuvor beschrieben wurden, Bits empfangen oder senden. Zum Beispiel kann jeder der Puffer 122_1, 122_2, 123_1, 123_2, 132_1, 132_2, 133_1, 134_1 und 134_2 unter Verwendung eines Schieberegisters implementiert werden, das die empfangenen Bits sequentiell speichert.
  • 9 veranschaulicht in einem Diagramm, wie Daten in einer Schlüsselerzeugungseinheit von 1 verarbeitet werden. 9 wird unter Bezugnahme auf die 5 bis 8 beschrieben.
  • Die Extraktionseinheit 121, die Demaskierungseinheit 132, die Bitdecodierungseinheit 133 und die Blockdecodierungseinheit 134 sind in Reihe geschaltet. Bezugnehmend auf 9 überträgt die Extraktionseinheit 121 zweite Bits (z. B. wie in Daten 2) an die Demaskierungseinheit 132. Die Demaskierungseinheit 132 sendet unmaskierte dritte Bits (z. B. wie in Daten 3) an die Bitdecodierungseinheit 133. Die Bitdecodierungseinheit 133 sammelt und decodiert die dritten Bits in Einheiten der Bitdecodierung. Die Einheit der Bitdecodierung kann als „Einheit der Decodierung eines Bitfehlerkorrekturcodes (z. B. eines Wiederholungscodes)“ bezeichnet werden. Die Bitdecodierungseinheit 133 überträgt vierte Bits (z. B. Daten 4) an die Blockdecodierungseinheit 134. Ein viertes Bit kann durch Komprimieren von mindestens drei dritten Bits erzeugt werden. Die Blockdecodierungseinheit 134 sammelt und decodiert die vierten Bits in Einheiten der Blockdecodierung. Die Einheit der Blockdecodierung kann als „Einheit der Decodierung eines Blockfehlerkorrekturcodes (z. B. eines BCH-Codes)“ bezeichnet werden.
  • In einer Ausführungsform können die Extraktionseinheit 121, die Demaskierungseinheit 132, die Bitdecodierungseinheit 133 und die Blockdecodierungseinheit 134 basierend auf einem Takt arbeiten. Die zweiten Bits, die dritten Bits und die vierten Bits können synchron mit dem Takt übertragen werden. Zum Beispiel können die Extraktionseinheit 121 und die Demaskierungseinheit 132 Bestätigungssignale miteinander austauschen, um die zweiten Bits basierend auf dem Takt zu senden und zu empfangen. Die Demaskierungseinheit 132 und die Bitdecodierungseinheit 133 können Bestätigungssignale miteinander austauschen, um die dritten Bits basierend auf dem Takt zu senden und zu empfangen. Die Bitdecodierungseinheit 133 und die Blockdecodierungseinheit 134 können Bestätigungssignale miteinander austauschen, um die vierten Bits basierend auf dem Takt zu senden und zu empfangen.
  • Mit Bezug auf 9 können Bits sequentiell zu der Extraktionseinheit 121, der Demaskierungseinheit 132, der Bitdecodierungseinheit 133 und der Blockdecodierungseinheit 134 und jeder der Extraktionseinheit 121, der Demaskierungseinheit 132, der Bitdecodierungseinheit 133 übertragen werden, und die Blockdecodierungseinheit 134 kann empfangene Bits verarbeiten, während sie Bits empfängt. Das heißt, die Extraktionseinheit 121, die Demaskierungseinheit 132, die Bitdecodierungseinheit 133 und die Blockdecodierungseinheit 134 können zur gleichen Zeit arbeiten (d. h., zugleich und gleichzeitig). Während das PUF-Zellenfeld 110 die ersten Bits ausgibt, kann die Extraktionseinheit 121 die erste Ausgabe des ersten Bits von dem PUF-Zellenfeld 110 verarbeiten. Während die Extraktionseinheit 121 die zweiten Bits ausgibt, kann die Demaskierungseinheit 132 die erste Ausgabe der zweiten Bits von der Extraktionseinheit 121 verarbeiten. Während die Demaskierungseinheit 132 die dritten Bits ausgibt, kann die Bitdecodierungseinheit 133 die von der Demaskierungseinheit 132 zuerst ausgegebenen dritten Bits verarbeiten. Während die Bitdecodierungseinheit 133 die vierten Bits ausgibt, kann die Blockdecodierungseinheit 134 die von der Bitdecodierungseinheit 133 zuerst ausgegebenen vierten Bits verarbeiten. Dementsprechend kann eine Zeit zum Erzeugen eines Schlüssels reduziert werden.
  • 10 veranschaulicht ein Flussdiagramm eines Schlüsselregistrierungsprozesses gemäß einer Ausführungsform der erfinderischen Konzepte. 10 wird unter Bezugnahme auf 2 beschrieben.
  • In Operation S110 erzeugt das PUF-Zellenfeld 110 PUF-Daten (erste Daten). PUF-Bits der PUF-Daten werden möglicherweise nicht gleichzeitig ausgegeben. Zum Beispiel können die PUF-Bits wiederholt in Einheiten von 16 Bits oder 32 Bits ausgegeben werden, die der Größe eines Sub-PUF-Zellenfeldes entsprechen.
  • In Operation S121 erzeugt die Extraktionseinheit 121 Markierungsdaten, die gültige Daten der PUF-Daten angeben. Die Extraktionseinheit 121 überträgt die Markierungsdaten an den NVM 140. Im Detail kann die Extraktionseinheit 121 Maskenbits von den ersten Bits, die zweite Bits anzeigen, die gültig sind, an den NVM 140 übertragen, während sie erste Bits empfängt, die die ersten Daten von dem PUF-Zellenfeld 110 konfigurieren. In Operation S121 speichert der NVM 140 die von der Extraktionseinheit 121 ausgegebenen Markierungsdaten. In Operation S122 überträgt die Extraktionseinheit 121 gültige Daten (zweite Daten) an die Bitcodierungseinheit 122. In einer Ausführungsform können die Operation S121 und Vorgang S122 durchgeführt werden, während die PUF-Daten des Vorgangs S110 übertragen werden.
  • In Operation S131 überprüft die Bitcodierungseinheit 122 die Parität der gültigen Daten. Die Bitcodierungseinheit 122 erzeugt einen Wert, der für eine bitweise Operation der gültigen Daten abhängig von der Parität der gültigen Daten zu verwenden ist. In der Operation S132 erzeugt die Bitcodierungseinheit 122 die ersten Maskendaten in Abhängigkeit von der Parität der gültigen Daten und überträgt die ersten Maskendaten an den NVM 140. Während im Detail die zweiten Bits von der Extraktionseinheit 121 empfangen werden, kann die Bitcodierungseinheit 122 die ersten Maskenbits durch Codieren der zweiten Bits in Abhängigkeit von der Parität der zweiten Bits erzeugen und die ersten Maskenbits an den NVM 140 übertragen. In Operation S132 speichert der NVM 140 die ersten Markierungsdaten, die von der Bitcodierungseinheit 122ausgegeben werden.
  • In Operation S133 erzeugt die Bitcodierungseinheit 122 Kompressionsdaten (dritte Daten) der gültigen Daten in Abhängigkeit von der Parität der gültigen Daten (d. h., der Parität der zweiten Bits). Die Bitcodierungseinheit 122 überträgt die Kompressionsdaten an die Blockcodierungseinheit 123. In einer Ausführungsform der erfinderischen Konzepte können die Operation S131, die Operation S132 und die Operation S133 durchgeführt werden, während die PUF-Daten der Operation S110 übertragen werden und während die gültigen Daten von Operation S121 und Operation S122 übertragen werden.
  • In der Operation S141 codiert die Blockcodierungseinheit 123 die Kompressionsdaten und erzeugt die Hilfsdaten. Die Blockcodierungseinheit 123 maskiert die Hilfsdaten und stellt die maskierten Hilfsdaten als zweite Maskendaten bereit. Während im Detail die dritten Bits empfangen werden, die die zweiten Bits sind, die durch die Bitcodierungseinheit 122 komprimiert werden, kann die Blockcodierungseinheit 123 die Hilfsbits durch Codieren der dritten Bits erzeugen und die Hilfsbits maskieren, unter Verwendung der dritten Bits zum Maskieren.
  • In Operation S142 überträgt die Blockcodierungseinheit 123 die zweiten Maskendaten an den NVM 140. In Operation S142 speichert der NVM 140 die von der Blockcodierungseinheit 123 ausgegebenen zweiten Maskendaten. In einer Ausführungsform der erfinderischen Konzepte können die Operation S141 und die Operation S142 durchgeführt werden, während die PUF-Daten der Operation S110 übertragen werden, während die gültigen Daten der Operation S121 und der Operation S122 übertragen werden, und während die ersten Maskendaten der Operation S131 und der Operation S132 übertragen werden.
  • 11 veranschaulicht ein Flussdiagramm eines Schlüsselerzeugungsprozesses gemäß einer Ausführungsform der erfinderischen Konzepte. 11 wird mit Bezug auf 5 beschrieben.
  • In Operation S210 erzeugt das PUF-Zellenfeld 110 PUF-Daten (erste Daten). Die Operation S210 kann der Operation S110 ähnlich sein. Die in der Operation S210 erzeugten PUF-Daten können mit den in der Operation S110 erzeugten PUF-Daten identisch sein oder sich davon unterscheiden (wenn ein Fehler vorliegt).
  • In der Operation S220 überträgt der NVM 140 die in der Operation S121 gespeicherten Markierungsdaten an die in 5 gezeigte Extraktionseinheit 121. In der Operation S220 empfängt die Extraktionseinheit 121 die von dem NVM 140 ausgegebenen Markierungsdaten. Die Extraktionseinheit 121 extrahiert gültige Daten (zweite Daten) der PUF-Daten unter Verwendung der Markierungsdaten. Die Extraktionseinheit 121 überträgt die gültigen Daten an die Demaskierungseinheit 132. Im Detail kann die Extraktionseinheit 121 aus den ersten Bits zweite Bits extrahieren, die gültig sind, während sie die ersten Bits, die die ersten Daten konfigurieren, von dem PUF-Zellenfeld 110 empfängt und die Maskenbits empfängt, die die Markierungsdaten von dem NVM 140 konfigurieren. In einer Ausführungsform kann die Operation S220 ausgeführt werden, während die PUF-Daten der Operation S210 übertragen werden.
  • In Schritt S230 überträgt der NVM 140 die in Schritt S132 gespeicherten ersten Maskendaten an die Demaskierungseinheit 132. Die Demaskierungseinheit 132 empfängt die ersten Maskendaten von dem NVM 140. Die Demaskierungseinheit 132 demaskiert gültige Daten unter Verwendung der ersten Maskendaten. Die Demaskierungseinheit 132 überträgt unmaskierte Daten (dritte Daten) an die Bitdecodierungseinheit 133. Im Detail kann die Demaskierungseinheit 132 die zweiten Bits unter Verwendung der ersten Maskenbits demaskieren, während sie die zweiten Bits von der Extraktionseinheit 121 empfängt und die ersten maskierenden Bits empfängt, die die ersten Maskendaten von dem NVM 140 konfigurieren. In einer Ausführungsform kann die Operation S230 ausgeführt werden, während die PUF-Daten der Operation S210 gesendet werden und während die gültigen Daten der Operation S220 übertragen werden.
  • In Operation S240 führt die Bitdecodierungseinheit 133 eine Bitfehlerkorrekturoperation an den unmaskierten Daten durch. Das heißt, die Bitfehlerkorrekturoperation wird an den gültigen Daten durchgeführt. Zum Beispiel kann die Bitfehlerkorrekturoperation die Mehrheitswahloperation sein. Die Bitdecodierungseinheit 133 überträgt Schlüsselbits (vierte Daten), die als Ergebnis der Mehrheitsentscheidungsoperation erzeugt werden, an die Blockdecodierungseinheit 134. Im Detail kann die Bitdecodierungseinheit 133 die dritten Bits zu den vierten Bits komprimieren, während sie die dritten Bits, die die dritten Daten konfigurieren, von der Demaskierungseinheit 132 empfängt. In einer Ausführungsform kann die Operation S240 durchgeführt werden, während die PUF-Daten der Operation S210 übertragen werden, während die gültigen Daten der Operation S220 übertragen werden und während die unmaskierten Daten der Operation S230 übertragen werden.
  • In Operation S251 überträgt der NVM 140 die in Operation S142 gespeicherten zweiten Maskendaten an die Blockdecodierungseinheit 134. Die Blockdecodierungseinheit 134 empfängt die zweiten Maskendaten von dem NVM 140. Die Blockdecodierungseinheit 134 demaskiert die zweiten Maskendaten mithilfe der Schlüsselbits und erzeugt die Hilfsdaten. In der Operation S252 decodiert die Blockdecodierungseinheit 134 die Schlüsselbits in Einheiten der Blockdecodierung unter Verwendung der Hilfsdaten und korrigiert einen Fehler in Einheiten der Blockdecodierung unter Verwendung eines Blockfehlerkorrekturcodes. In der Operation S253 erzeugt die Blockdecodierungseinheit 134 einen endgültigen Schlüssel (oder einen Sicherheitsschlüssel). Im Detail kann die Blockdecodierungseinheit 134 einen Schlüssel durch Decodieren der vierten Bits und der zweiten Maskenbits erzeugen, während die vierten Bits von der Bitdecodierungseinheit 133 empfangen werden und die zweiten Maskenbits von dem NVM 140 empfangen werden. In einer Ausführungsform der erfinderischen Konzepte entsprechen die dritten Bits zum Maskieren, wie sie im dritten Puffer 123_1 in der Blockcodierungseinheit 123 gespeichert sind, und die vierten Bits zum Demaskieren, wie sie im achten Puffer 134_1 der Blockdecodierungseinheit 134 gespeichert sind, Ausgangsbits aus einem gleichen Satz von PUF-Zellen innerhalb des PUF-Zellenfeld 110. In einer Ausführungsform kann die Operation S251 bis S253 durchgeführt werden, während die PUF-Daten der Operation S210 übertragen werden, während die gültigen Daten der Operation S220 übertragen werden, während die unmaskierten Daten der Operation S230 übertragen werden, und während die Schlüsselbits der Operation S240 übertragen werden.
  • In der Halbleitervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts können die Vorgänge S210 bis S253 zur gleichen Zeit durchgeführt werden. Obwohl die Anzahl der PUF-Zellen, die Größe der PUF-Daten oder die Größe eines Sicherheitsschlüssels zunimmt, können dementsprechend die Größen der oben beschriebenen Puffer 122_1, 122_2, 122_3, 123_1, 123_2, 132 1, 132_2, 133_1, 134_1 und 134_2 einheitlich beibehalten werden. Außerdem kann die Zeit zum Erzeugen eines Schlüssels durch Verarbeiten der PUF-Daten verringert werden.
  • 12 veranschaulicht ein Blockschaltbild eines elektronischen Systems, bei dem eine Halbleitervorrichtung gemäß Ausführungsformen der erfinderischen Konzepte angewendet wird. Das elektronische System 1000 enthält eine Smartcard 1100 und einen Host 1200.
  • Die Smartcard 1100 ist eine Karte mit einer oder mehreren integrierten Schaltungen. Die Smartcard 1100 kann als „IC-Karte“ oder „Chipkarte“ bezeichnet werden. Zur Sicherheit kann die Smartcard 1100 eine PUF-Vorrichtung 1110 gemäß Ausführungsformen der erfinderischen Konzepte enthalten. Die PUF-Vorrichtung 1110 kann die Halbleitervorrichtung 100 sein, die unter Bezugnahme auf die 1 bis 11 beschrieben ist. Die Smartcard 1100 kann eine Authentifizierungsprozedur mit dem Host 1200 unter Verwendung eines Sicherheitsschlüssels durchführen, der von der PUF-Vorrichtung 1110 ausgegeben wird. Obwohl in 12 nicht veranschaulicht, kann die Smartcard 1100 ferner einen Speicher zum Speichern von Daten, einen Prozessor zur Verarbeitung von Daten und andere verschiedene Komponenten enthalten.
  • In einer Ausführungsform kann die PUF-Vorrichtung 1110 als verschiedene Halbleiterpakete gepackt sein. Ein integrierter Schaltkreis kann auf der Smartcard 1100 unter Verwendung von Gehäusetechnologien montiert werden, wie zum Beispiel: Package-on-Package (PoP), Ball Grid Arrays (BGAs), Chip-Scale-Packages (CSPs), Plastic-Leaded-Chip-Carrier (PLCC), Plastic-Dual-In-Line Package (PDIP), Die in WaflelpACK, Die-In-Wafer-Form, Chip-on-Board (COB), Ceramik-In-Line-Package (CERDIP), Metric-Quad-Flat-Pack (MQFP), Thin-Quad-Flat-Pack (TQFP), Small-Outline-Integrated Circuit (SOIC), Shrink-Small-Outline-Package (SSOP), Thin-Small-Outline-Package (TSOP), System-In Package (SIP), Multi-Chip-Package (MCP), Wafer-Level-Fabricated-Package (WFP) oder Wafer-Level-Stack-Package (WSP).
  • Der Host 1200 kann die Authentifizierungsprozedur mit der Smartcard 1100 unter Verwendung der Sicherheitsschlüsselausgabe von der PUF-Vorrichtung 1110 durchführen. Nachdem die Authentifizierungsprozedur ausgeführt wurde, kann der Host 1200 Daten auf der Smartcard 1100 speichern oder Daten von der Smartcard 1100 lesen. Der Host 1200 kann ein Computergerät mit einem oder mehreren Prozessoren, eine tragbare elektronische Vorrichtung mit einem Anwendungsprozessor (AP) oder ein Server sein.
  • 13 veranschaulicht ein Blockschaltbild einer elektronischen Vorrichtung, bei der eine Smartcard von 12 angewendet wird. Die elektronische Vorrichtung 2000 kann eine Datenverarbeitungsvorrichtung sein, die zum Beispiel Schnittstellen verwenden oder unterstützen kann, die von der MIPI®-Allianz (Mobile Industry Processor Interface) oder anderen Schnittstellenstandards vorgeschlagen werden. Die elektronische Vorrichtung 2000 kann zum Beispiel ein tragbares Kommunikationsendgerät, ein persönlicher digitaler Assistent (PDA), ein tragbarer Multimedia-Player (PMP), ein Smartphone oder eine tragbare Vorrichtung oder ein beliebiger Typ eines tragbaren Geräts sein.
  • Die elektronische Vorrichtung 2000 der in 13 gezeigten Ausführungsform enthält einen Anwendungsprozessor 2100, eine Anzeige 2200 und einen Bildsensor 2300. Der Anwendungsprozessor 2100 enthält einen DigRFSM -Master 2110, einen seriellen Displayschnittstellen- (DSI) -Host 2120, einen seriellen Kameraschnittstellen- (CSI) - Host 2130 und eine physikalische Schicht 2140.
  • Der DSI-Host 2120 kann über die DSI mit einer DSI-Vorrichtung 2210 der Anzeige 2200 kommunizieren. Beispielsweise kann ein optischer Serialisierer SER in dem DSI-Host 2120 implementiert sein, und ein optischer Deserialisierer DES kann in der DSI-Vorrichtung 2210 implementiert sein.
  • Der CSI-Host 2130 kann über die CSI mit einer CSI-Vorrichtung 2310 des Bildsensors 2300 kommunizieren. Zum Beispiel kann ein optischer Deserialisierer DES im CSI-Host 2130 implementiert sein, und ein optischer Serialisierer SER kann in der CSI-Vorrichtung 2310 implementiert sein.
  • Die elektronische Vorrichtung 2000 kann ferner einen Hochfrequenz- (RF) -Chip 2400 enthalten, der mit dem Anwendungsprozessor 2100 kommuniziert. Der RF-Chip 2400 kann eine physikalische Schicht (PHY) 2410, einen DigRFSM -Slave 2420 und eine Antenne 2430 enthalten. Beispielsweise können die physikalische Schicht 2410 des RF-Chips 2400 und die physikalische Schicht 2140 des Anwendungsprozessors 2100 über eine DigRFSM -Schnittstelle, die von der MIPI®-Allianz unterstützt wird, Daten miteinander austauschen.
  • Die elektronische Vorrichtung 2000 kann ferner einen Kartenspeicher 2500 enthalten. Der Kartenspeicher 2500 kann die Smartcard 1100 von 12 sein. Nachdem eine Authentifizierungsprozedur durchgeführt wurde, kann die Smartcard 1100 Daten mit dem Anwendungsprozessor 2100 in einem Zustand austauschen, in dem die Sicherheit aufrechterhalten wird.
  • Die elektronische Vorrichtung 2000 kann mit einem externen System durch weltweite Interoperabilität für den Mikrowellenzugriff (WiMAX) 2610, einem drahtlosen lokalen Netzwerk (WLAN) 2620, einem Ultrabreitband (UWB) 2630 unter anderen drahtlosen Verbreitungsverfahren kommunizieren. Die elektronische Vorrichtung 2000 kann ferner eine GPS-Vorrichtung (Global Positioning System) 2640 zum Verarbeiten von Positionsinformationen enthalten. Die elektronische Vorrichtung 2000 kann ferner einen Brückenchip 2650 zum Verwalten der Verbindung mit Peripherievorrichtungen enthalten.
  • 14 veranschaulicht ein Blockschaltbild einer Rechenvorrichtung, bei der eine Halbleitervorrichtung gemäß Ausführungsformen der erfinderischen Konzepte angewendet wird. Die Rechenvorrichtung 3000 enthält einen Prozessor 3100, einen Arbeitsspeicher 3200, eine PUF-Vorrichtung 3300, einen Krypto-Prozessor 3400, eine NVM-Schnittstelle 3500, einen NVM 3600 und eine Benutzerschnittstelle 3700, die alle durch den Bus 3800 miteinander verbunden sind.
  • Der Prozessor 3100 kann allumfassend Operationen der Rechenvorrichtung 3000 steuern. Der Prozessor 3100, der eine zentrale Verarbeitungseinheit ist, kann verschiedene Arten von Operationen ausführen. Zum Beispiel kann der Prozessor 3100 einen oder mehrere Prozessorkerne enthalten.
  • Der Arbeitsspeicher 3200 kann Daten mit dem Prozessor 3100 austauschen. Der Arbeitsspeicher 3200 kann vorübergehend Daten speichern, die für einen Betrieb der Rechenvorrichtung 3000 verwendet werden. Beispielsweise kann der Arbeitsspeicher 3200 zum Beispiel einen Hochgeschwindigkeitsspeicher wie ein DRAM oder ein SRAM enthalten.
  • Die PUF-Vorrichtung 3300 kann die Halbleitervorrichtung 100 sein, die unter Bezugnahme auf die 1 bis 11 beschrieben ist. Die PUF-Vorrichtung 3300 kann einen für die Sicherheit notwendigen Schlüssel erzeugen. Die PUF-Vorrichtung 3300 kann mit Hardware, Software oder Firmware implementiert sein. Der Krypto-Prozessor 3400 kann Verschlüsselungs- und Entschlüsselungsoperationen unter Verwendung einer Schlüsselausgabe von der PUF-Vorrichtung 3300 durchführen.
  • Die NVM-Schnittstelle 3500 kann Daten mit dem NVM 3600 unter Steuerung des Prozessors 3100, der PUF-Vorrichtung 3300 oder des Krypto-Prozessors 3400 austauschen. Der NVM 3600 kann Daten speichern, die unabhängig von einer Stromversorgung aufbewahrt werden müssen. In einer Ausführungsform können die Markierungsdaten, die ersten Maskendaten und die zweiten Maskendaten, die unter Bezugnahme auf 1 beschrieben werden, im NVM 3600 gespeichert werden, und die PUF-Vorrichtung 3300 enthält möglicherweise keinen NVM darin.
  • Die Benutzerschnittstelle 3700 kann eine Kommunikationsvermittlung zwischen einem Benutzer und der Rechenvorrichtung 3000 unter Steuerung des Prozessors 3100 durchführen. In einer Ausführungsform kann die Benutzerschnittstelle 3700 Eingabeschnittstellen enthalten, wie beispielsweise eine Tastatur, ein Tastenfeld, eine Taste, ein Berührungsfeld, einen Berührungsbildschirm, ein Touchpad, einen Berührungsball, eine Kamera, ein Mikrofon, einen Gyroskopsensor und einen Vibrationssensor unter verschiedenen anderen möglichen Eingabeschnittstellen. Des Weiteren kann die Benutzerschnittstelle 3700 eine Ausgabeschnittstelle wie beispielsweise eine Flüssigkristallanzeigevorrichtung (LCD), eine Leuchtdioden (LED) -Anzeigevorrichtung, eine organische LED (OLED) -Anzeigevorrichtung, eine Aktivmatrix-OLED (AMOLED) -Anzeigevorrichtung, einen Lautsprecher, einen Motor oder dergleichen enthalten.
  • Der Bus 3800 kann einen Kommunikationspfad zwischen den Komponenten der Rechenvorrichtung 3000 bereitstellen. Die Komponenten der Rechenvorrichtung 3000 können in Übereinstimmung mit einem Busformat Daten miteinander austauschen. In einer Ausführungsform kann das Busformat beispielsweise enthalten: ein USB-Format (Universal Serial Bus), ein SCSI-Format (Small Computer System Interface), ein PCIe-Busformat (Peripheral Component Interconnect Express) und ein ATA-Busformat (Advanced Technology Attachment), ein paralleles ATA (PATA) -Busformat, ein serielles ATA (SATA) -Busformat, ein seriell angeschlossenes SCSI (SAS) -Busformat und ein integriertes Laufwerkselektronik (IDE) -Busformat oder dergleichen.
  • Es wird beschrieben, dass die Halbleitervorrichtung 100 Einheiten enthält. Die verschiedenen beschriebenen Einheiten oder Blöcke können mit Hardware, Software oder Firmware oder einer Kombination von Hardware, Software und Firmware implementiert werden. Zum Beispiel können in einigen Ausführungsformen die Schlüsselregistrierungseinheit 120, die die Extraktionseinheit 121, die Bitcodierungseinheit 122 und die Blockcodierungseinheit 123 enthält und die Schlüsselerzeugungseinheit 130, die die Extraktionseinheit 121, die Demaskierungseinheit 132, die Bitdecodierungseinheit 133 und die Blockdecodierungseinheit 134 enthält, Hardware sein, wie etwa Logikgatter, integrierte Schaltungen, passive und aktive elektronische Komponenten und/oder festverdrahtete Schaltungen. Die Einheiten können Schaltungen sein. Die Hardware kann optional von Firmware und/oder Software gesteuert werden. In anderen Ausführungsformen können die Schlüsselregistrierungseinheit 120 und die Schlüsselerzeugungseinheit 130 durch einen oder mehrere programmierte Mikroprozessoren implementiert werden. In noch weiteren Ausführungsformen können die Schlüsselregistrierungseinheit 120 und die Schlüsselerzeugungseinheit 130 durch eine Kombination aus dedizierter Hardware zum Ausführen einiger Funktionen und eines oder mehrerer Prozessoren zum Ausführen anderer Funktionen implementiert werden.
  • In einer Halbleitervorrichtung gemäß Ausführungsformen der erfinderischen Konzepte können PUF-Daten unter Verwendung einer Pipeline-Operation verarbeitet werden. Obwohl die Anzahl der PUF-Zellen, die Größe der PUF-Daten oder die Größe eines Sicherheitsschlüssels zunimmt, kann die Größe eines Puffers, der Daten speichert, die während der Verarbeitung erzeugt werden, während ein Schlüssel aus den PUF-Daten erzeugt wird, einheitlich beibehalten werden. Außerdem kann die Zeit zum Erzeugen eines Schlüssels durch Verarbeiten der PUF-Daten verringert werden.
  • Während die erfinderischen Konzepte unter Bezugnahme auf beispielhafte Ausführungsformen davon beschrieben worden sind, ist es für den Durchschnittsfachmann offensichtlich, dass verschiedene Änderungen und Modifikationen daran vorgenommen werden können, ohne von der Idee und dem Umfang der erfinderischen Konzepte abzuweichen, wie sie in den folgenden Ansprüchen dargelegt sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 1020170133540 [0001]
    • KR 1020180057964 [0001]

Claims (25)

  1. Halbleitervorrichtung, umfassend: ein physikalisch nicht klonbares Funktionsfeld (PUF) mit PUF-Zellen, die erste Bits ausgeben; einen nichtflüchtigen Speicher, der zum Speichern von Markierungsbits konfiguriert ist, die angeben, ob die ersten Bits gültig sind, erste Maskenbits, die durch Maskieren zweiter Bits abhängig von einer Parität der zweiten Bits erzeugt werden, und zweite Maskenbits, die durch Maskieren von Hilfsbits erzeugt werden, die den zweiten Bits zugeordnet sind wobei die zweiten Bits gültige Bits aus den ersten Bits sind; eine Extraktionseinheit, die konfiguriert ist, um die zweiten Bits aus den ersten Bits unter Verwendung der Markierungsbits zu extrahieren; eine Demaskierungseinheit, die konfiguriert ist, um die zweiten Bits unter Verwendung der ersten Maskenbits zu demaskieren, während die zweiten Bits empfangen werden, um dritte Bits bereitzustellen; eine Bitdecodierungseinheit, die zum Komprimieren der dritten Bits konfiguriert ist, um vierte Bits bereitzustellen, während die dritten Bits empfangen werden; und eine Blockdecodierungseinheit, die konfiguriert ist, um einen Sicherheitsschlüssel durch Decodieren der vierten Bits und der zweiten Maskenbits zu erzeugen, wobei die Extraktionseinheit, die Demaskierungseinheit, die Bitdecodierungseinheit und die Blockdecodierungseinheit in Reihe geschaltet sind und gleichzeitig arbeiten.
  2. Halbleitervorrichtung nach Anspruch 1, wobei die Demaskierungseinheit konfiguriert ist, um eine bitweise Operation an den zweiten Bits und den ersten Maskenbits auszuführen, um die dritten Bits bereitzustellen.
  3. Halbleitervorrichtung nach Anspruch 2, wobei die Demaskierungseinheit umfasst: einen ersten Puffer, der zum Speichern von mindestens einem Bit der zweiten Bits konfiguriert ist; und einen zweiten Puffer, der konfiguriert ist, um mindestens ein Bit der ersten Maskenbits zu speichern, und wobei die Demaskierungseinheit ferner konfiguriert ist, um die bitweise Operation an Bits durchzuführen, die in den ersten und zweiten Puffern gespeichert sind.
  4. Halbleitervorrichtung nach Anspruch 2, wobei die bitweise Operation eine Exklusiv-ODER-Operation (XOR-Operation) ist.
  5. Halbleitervorrichtung nach Anspruch 1, wobei die Bitdecodierungseinheit ferner konfiguriert ist, um einen Fehler der zweiten Bits durch Ausführen einer Mehrheitsentscheidungsoperation an den dritten Bits zu korrigieren, und wobei die Blockdecodierungseinheit ferner konfiguriert ist, um einen Fehler der zweiten Bits durch Decodieren der vierten Bits und der zweiten Maskenbits in Abhängigkeit von einem Blockfehlerkorrekturcode zu korrigieren.
  6. Halbleitervorrichtung nach Anspruch 5, wobei die Bitdecodierungseinheit einen Puffer umfasst, der zum Speichern von Bits konfiguriert ist, von denen eine Anzahl einer Einheit der Decodierung der Mehrheitsentscheidungsoperation aus den dritten Bits entspricht, und wobei die Bitdecodierungseinheit ferner dazu konfiguriert ist, die Majoritätsabstim - mungsoperation an den im Puffer gespeicherten Bits durchzuführen.
  7. Halbleitervorrichtung nach Anspruch 5, wobei die Blockdecodierungseinheit einen Puffer umfasst, der zum Speichern von Bits konfiguriert ist, von denen eine Anzahl einer Einheit der Decodierung des Blockfehlerkorrekturcodes aus den vierten Bits entspricht, und wobei die Blockdecodierungseinheit ferner dazu konfiguriert ist, die in dem Puffer gespeicherten Bits zu decodieren.
  8. Halbleitervorrichtung nach Anspruch 7, wobei die Blockdecodierungseinheit ferner konfiguriert ist, um die Hilfsbits durch Ausführen einer bitweisen Operation an den zweiten Maskenbits und Bits unter den vierten Bits, die den zweiten Maskenbits entsprechen, zu erzeugen und die Fehler der zweiten Bits unter Verwendung der Hilfsbits zu korrigieren.
  9. Halbleitervorrichtung nach Anspruch 5, wobei der Blockfehlerkorrekturcode einen Bose-Chaudhuri-Hocquenghem (BCH)-Code umfasst.
  10. Halbleitervorrichtung nach Anspruch 1, wobei die Extraktionseinheit dazu konfiguriert ist, die zweiten Bits an die Demaskierungseinheit zu senden, und die Demaskierungseinheit konfiguriert ist, um die dritten Bits synchron zu einem Takt zur Bitdecodierungseinheit zu übertragen.
  11. Sicherheitsschlüssel-Erzeugungsverfahren für eine Halbleitervorrichtung, umfassend ein PUF-Zellenfeld, eine Extraktionseinheit, eine Demaskierungseinheit, eine Bitdecodierungseinheit und eine Blockdecodierungseinheit, die in Reihe geschaltet sind, wobei das Verfahren umfasst: Extrahieren von zweiten Bits aus den ersten Bits durch die Extraktionseinheit, während die ersten Bits von dem PUF-Zellenfeld empfangen werden, und Empfangen von Markierungsbits, die angeben, ob die ersten Bits gültig sind, von einem nichtflüchtigen Speicher, wobei die zweiten Bits gültige Bits aus den ersten Bits sind; Demaskieren der zweiten Bits durch die Demaskierungseinheit, um unmaskierte dritte Bits bereitzustellen, indem erste Maskenbits verwendet werden, während die zweiten Bits von der Extraktionseinheit empfangen werden und die ersten Maskenbits aus dem nichtflüchtigen Speicher empfangen werden; Komprimieren der unmaskierten dritten Bits durch die Bitdecodierungseinheit, um vierte Bits bereitzustellen, während die unmaskierten dritten Bits von der Demaskierungseinheit empfangen werden; und Erzeugen eines Sicherheitsschlüssels durch die Blockdecodierungseinheit durch Decodieren der vierten Bits und der zweiten Maskenbits, während die vierten Bits von der Bitdecodierungseinheit und die zweiten Maskenbits vom nichtflüchtigen Speicher empfangen werden.
  12. Verfahren nach Anspruch 11, wobei das Extrahieren der zweiten Bits das Bestimmen umfasst, ob die ersten Bits in Abhängigkeit von logischen Werten der Markierungsbits gültig sind.
  13. Verfahren nach Anspruch 11, wobei das Demaskieren der zweiten Bits das Durchführen einer bitweisen Operation an den zweiten Bits und den ersten Maskenbits umfasst.
  14. Verfahren nach Anspruch 11, wobei das Komprimieren der unmaskierten dritten Bits das Durchführen einer Mehrheitsentscheidungsoperation an den unmaskierten dritten Bits umfasst.
  15. Verfahren nach Anspruch 11, wobei das Erzeugen des Sicherheitsschlüssels umfasst: Erzeugen von Hilfsbits durch Ausführen einer bitweisen Operation an den zweiten Maskenbits und Bits aus den vierten Bits, die den zweiten Maskenbits entsprechen; und Decodieren der vierten Bits unter Verwendung der Hilfsbits abhängig von einem Blockfehlerkorrekturcode.
  16. Sicherheitsschlüssel-Registrierungsverfahren für eine Halbleitervorrichtung, die ein PUF-Zellenfeld, eine Extraktionseinheit, eine Bitcodierungseinheit und eine Blockcodierungseinheit umfasst, die in Reihe geschaltet sind, wobei das Verfahren umfasst: Übertragen von Markierungsbits, die zweite Bits aus den ersten anzeigen Bits, durch die Extraktionseinheit an einen nichtflüchtigen Speicher, während die ersten Bits von dem PUF-Zellenfeld empfangen werden, wobei die zweiten Bits gültige Bits aus den ersten Bits sind; Erzeugen von ersten Maskenbits durch die Bitcodierungseinheit durch Codieren der zweiten Bits in Abhängigkeit von einer Parität der zweiten Bits, während die zweiten Bits von der Extraktionseinheit empfangen werden, und Übertragen der ersten Maskenbits an den nichtflüchtigen Speicher; Erzeugen von dritten Bits durch die Bitcodierungseinheit durch Komprimieren der zweiten Bits; und Erzeugen von Hilfsbits durch die Blockcodierungseinheit durch Codieren der dritten Bits, Erzeugen von zweiten Maskenbits durch Maskieren der Hilfsbits unter Verwendung der dritten Bits und Übertragen der zweiten Maskenbits zu dem nichtflüchtigen Speicher, während die dritten Bits von der Bitcodierungseinheit empfangen werden.
  17. Verfahren nach Anspruch 16, wobei das Übertragen der ersten Maskenbits an den nichtflüchtigen Speicher das Durchführen einer bitweisen Operation an den zweiten Bits in Abhängigkeit von der Parität der zweiten Bits umfasst.
  18. Verfahren nach Anspruch 17, wobei das Erzeugen der dritten Bits das Komprimieren der zweiten Bits in Abhängigkeit von der Parität der zweiten Bits umfasst.
  19. Verfahren nach Anspruch 16, wobei das Erzeugen der Hilfsbits das Erzeugen der Hilfsbits durch Decodieren der dritten Bits in Abhängigkeit von einem Blockfehlerkorrekturcode umfasst.
  20. Verfahren nach Anspruch 19, wobei das Übertragen der zweiten Maskenbits an den nichtflüchtigen Speicher ferner das Maskieren der Hilfsbits durch Ausführen einer bitweisen Operation an den Hilfsbits und den dritten Bits umfasst.
  21. Elektronisches System, umfassend: einen Host; und eine Speichervorrichtung, die eine physikalisch nicht klonbare Funktionsvorrichtung (PUF-Vorrichtung) umfasst, wobei die PUF-Vorrichtung umfasst: ein PUF-Zellenfeld, das PUF-Zellen umfasst, die erste Bits ausgeben, und eine Schlüsselerzeugungseinheit, die konfiguriert ist zum: Extrahieren zweiter Bits aus den ersten Bits, während Markierungsbits von einem nichtflüchtigen Speicher empfangen werden und die anzeigen, ob die ersten Bits gültig sind, wobei die zweiten Bits gültige Bits aus den ersten Bits sind, Demaskieren der zweiten Bits, um unmaskierte dritte Bits bereitzustellen, indem aus dem nichtflüchtigen Speicher empfangene erste Maskenbits verwendet werden, Komprimieren der unmaskierten dritten Bits, um vierte Bits bereitzustellen, und Erzeugen eines Sicherheitsschlüssels durch Decodieren der vierten Bits und der zweiten Maskenbits, die aus dem nichtflüchtigen Speicher empfangen werden, wobei der Host konfiguriert ist, um eine Authentifizierungsprozedur für den Zugriff auf die Speichervorrichtung basierend auf dem Sicherheitsschlüssel durchzuführen.
  22. Elektronisches System nach Anspruch 21, wobei die Schlüsselerzeugungseinheit konfiguriert ist, um eine bitweise Operation an den zweiten Bits und den ersten Maskenbits auszuführen, um die unmaskierten dritten Bits bereitzustellen.
  23. Elektronisches System nach Anspruch 22, wobei die bitweise Operation eine Exklusiv-ODER-Operation (XOR-Operation) ist.
  24. Elektronisches System nach Anspruch 21, wobei die Schlüsselerzeugungseinheit ferner konfiguriert ist, um einen Fehler der zweiten Bits zu korrigieren, indem eine Mehrheitswahloperation an den unmaskierten dritten Bits durchgeführt wird und indem die vierten Bits und die zweiten Maskenbits abhängig von einem Blockfehlerkorrekturcode decodiert werden.
  25. Elektronisches System nach Anspruch 21, wobei die Schlüsselerzeugungseinheit konfiguriert ist, Hilfsbits durch Ausführen einer bitweisen Operation an den zweiten Maskenbits und Bits unter den vierten Bits, die den zweiten Maskenbits entsprechen, zu erzeugen und die vierten Bits zu decodieren durch Verwenden der Hilfsbits abhängig von einem Blockfehlerkorrekturcode.
DE102018123103.2A 2017-10-13 2018-09-20 Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels Pending DE102018123103A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2017-0133540 2017-10-13
KR20170133540 2017-10-13
KR10-2018-0057964 2018-05-21
KR1020180057964A KR102516190B1 (ko) 2017-10-13 2018-05-21 보안 키를 생성하는 반도체 장치, 보안 키 생성 방법, 및 보안 키 등록 방법

Publications (1)

Publication Number Publication Date
DE102018123103A1 true DE102018123103A1 (de) 2019-04-18

Family

ID=65910312

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018123103.2A Pending DE102018123103A1 (de) 2017-10-13 2018-09-20 Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels

Country Status (3)

Country Link
US (1) US10476681B2 (de)
CN (1) CN109670346B (de)
DE (1) DE102018123103A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018183572A1 (en) * 2017-03-29 2018-10-04 Board Of Regents, The University Of Texas System Reducing amount of helper data in silicon physical unclonable functions via lossy compression without production-time error characterization
EP3435586B1 (de) * 2017-07-25 2019-08-07 Intrinsic ID B.V. Verfahren zur verringerung der alterung eines cache-speichers
KR102468721B1 (ko) * 2017-12-20 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US10770146B2 (en) * 2018-06-08 2020-09-08 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for PUF generator characterization
US11108572B2 (en) * 2018-10-11 2021-08-31 Taiwan Semiconductor Manufacturing Company, Ltd. Physically unclonable function device with a load circuit to generate bias to sense amplifier
US11321459B2 (en) * 2018-12-27 2022-05-03 Intel Corporation Method, system and apparatus for error correction coding embedded in physically unclonable function arrays
KR20200142337A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 물리적 복제 방지 기능 셀들을 포함하는 보안 장치 및 그것의 동작 방법
US11354455B2 (en) 2019-09-11 2022-06-07 International Business Machines Corporation Maintenance of access for security enablement on a host system
US11188658B2 (en) 2019-09-11 2021-11-30 International Business Machines Corporation Concurrent enablement of encryption on an operational path at a storage port
US11308243B2 (en) 2019-09-11 2022-04-19 International Business Machines Corporation Maintenance of access for security enablement in a storage device
US11206144B2 (en) 2019-09-11 2021-12-21 International Business Machines Corporation Establishing a security association and authentication to secure communication between an initiator and a responder
US11188659B2 (en) 2019-09-11 2021-11-30 International Business Machines Corporation Concurrent enablement of encryption on an operational path at a host port
US11201749B2 (en) 2019-09-11 2021-12-14 International Business Machines Corporation Establishing a security association and authentication to secure communication between an initiator and a responder
US11245521B2 (en) 2019-09-25 2022-02-08 International Business Machines Corporation Reverting from a new security association to a previous security association in response to an error during a rekey operation
US11303441B2 (en) 2019-09-25 2022-04-12 International Business Machines Corporation Reverting from a new security association to a previous security association in response to an error during a rekey operation
KR20210053029A (ko) 2019-11-01 2021-05-11 삼성전자주식회사 물리적 복제 방지 기능 셀들을 포함하는 보안 장치, 보안 장치의 동작 방법 및 물리적 복제 방지 기능 셀 장치의 동작 방법
KR20210095460A (ko) 2020-01-23 2021-08-02 삼성전자주식회사 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법
US11374774B2 (en) * 2020-04-28 2022-06-28 Regents Of The University Of Minnesota Feed-forward XOR physical unclonable functions
DE102021105402A1 (de) * 2021-03-05 2022-09-08 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus
EP4195582A1 (de) * 2021-12-08 2023-06-14 Thales Dis France SAS Verfahren zur korrektur eines fehlerhaften fuzzy-datenschlüssels

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133540A (ko) 2016-05-25 2017-12-06 (주)엘지하우시스 보강 복합재 및 이를 포함하는 물품
KR20180057964A (ko) 2016-11-23 2018-05-31 호서대학교 산학협력단 분리수거장치 및 분리수거방법

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5548218B2 (ja) 2009-03-06 2014-07-16 イントリンシツク・イー・デー・ベー・ベー 物理的システムに依存する暗号鍵を確立するためのシステム
KR101727130B1 (ko) 2010-01-20 2017-04-14 인트린직 아이디 비브이 암호화 키를 획득하기 위한 디바이스 및 방법
GB2469393C (en) * 2010-04-22 2014-08-06 Cen Jung Tjhai Public encryption system using deliberatily corrupted codewords from an error correcting code
FR2964278A1 (fr) * 2010-08-31 2012-03-02 St Microelectronics Rousset Extraction de cle dans un circuit integre
KR101118826B1 (ko) * 2011-02-15 2012-04-20 한양대학교 산학협력단 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
CN104521177B (zh) * 2011-12-06 2018-03-06 本质Id有限责任公司 使用单次注册用于基于存储器的puf的软判决误差校正
US8750502B2 (en) * 2012-03-22 2014-06-10 Purdue Research Foundation System on chip and method for cryptography using a physically unclonable function
US9088278B2 (en) 2013-05-03 2015-07-21 International Business Machines Corporation Physical unclonable function generation and management
CN105530097B (zh) * 2014-09-30 2018-09-28 中国科学院数据与通信保护研究教育中心 一种基于sram puf的密钥提取方法及系统
US9548113B2 (en) 2014-11-21 2017-01-17 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device
US9584329B1 (en) 2014-11-25 2017-02-28 Xilinx, Inc. Physically unclonable function and helper data indicating unstable bits
US9489999B2 (en) 2014-11-26 2016-11-08 Qualcomm Incorporated Magnetic tunnel junction resistance comparison based physical unclonable function
KR102201642B1 (ko) * 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US9703989B1 (en) * 2014-12-23 2017-07-11 Altera Corporation Secure physically unclonable function (PUF) error correction
CN107251475B (zh) 2014-12-24 2020-07-28 本质Id有限责任公司 来自物理不可克隆功能的加密密钥产品
KR20160109891A (ko) 2015-03-13 2016-09-21 한국전자통신연구원 Puf 기반 암호키 생성 방법 및 장치
JP6617924B2 (ja) 2015-06-18 2019-12-11 パナソニックIpマネジメント株式会社 耐タンパ性を有する不揮発性メモリ装置および集積回路カード、不揮発性メモリ装置の認証方法、個体識別情報生成方法
CN105007285B (zh) * 2015-08-19 2018-07-24 南京万道电子技术有限公司 一种基于物理不可克隆函数的密钥保护方法和安全芯片
CN106301786B (zh) * 2016-08-10 2019-04-02 南京航空航天大学 一种基于sram型存储器的物理不可克隆函数响应纠错电路
CN107194285B (zh) * 2017-04-29 2020-05-12 苏州芯动科技有限公司 一种基于puf的密钥生成方法及数据存储方法
US10243749B2 (en) * 2017-05-16 2019-03-26 Samsung Electronics Co., Ltd. Physically unclonable function circuit, and system and integrated circuit including the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133540A (ko) 2016-05-25 2017-12-06 (주)엘지하우시스 보강 복합재 및 이를 포함하는 물품
KR20180057964A (ko) 2016-11-23 2018-05-31 호서대학교 산학협력단 분리수거장치 및 분리수거방법

Also Published As

Publication number Publication date
US20190116052A1 (en) 2019-04-18
CN109670346B (zh) 2023-06-16
CN109670346A (zh) 2019-04-23
US10476681B2 (en) 2019-11-12

Similar Documents

Publication Publication Date Title
DE102018123103A1 (de) Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels
US11544371B2 (en) Secure hardware signature and related methods and applications
US10802910B2 (en) System for identifying and correcting data errors
US20220229727A1 (en) Encoding and storage node repairing method for minimum storage regenerating codes for distributed storage systems
KR102201642B1 (ko) Puf 회로 및 그것의 키 등록 방법
KR101306645B1 (ko) 시행착오에 의한 에러 보정 디코딩
Hiller et al. Cherry-picking reliable PUF bits with differential sequence coding
CN103312504B (zh) 用于在进行预校正的前提下重构比特串的装置和方法
DE102005028221A1 (de) Vorrichtung und Verfahren zum Schutz der Integrität von Daten
DE102011054410B4 (de) Vorrichtung und Verfahren zur Erzeugung einer Bitfolge
DE112012006153T5 (de) Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals
US10164663B2 (en) Method of operating decoder for reducing computational complexity and method of operating data storage device including the decoder
DE102018125786A1 (de) Verschlüsselte Systemspeicherverwaltung
US10469270B2 (en) Data processing devices and methods for reconstructing a PUF value
US10141952B2 (en) Memory system and operating method thereof
DE102019110501A1 (de) Fehlerkorrekturcode-speichersicherheit
US11899942B2 (en) Memory systems and devices including examples of accessing memory and generating access codes using an authenticated stream cipher
US20230099564A1 (en) Interface for Revision-Limited Memory
US20220303117A1 (en) Encoder and decoder using physically unclonable functions
DE102018105848B4 (de) CPU-Fehlerkorrektur während Erasure-Code-Codierung
CN106531224B (zh) 一种基于sram型fpga的ram数据可靠性加固装置及方法
US11818243B2 (en) Scenario-based encryption device and operating method thereof
DE102022112400A1 (de) Vertrauenswürdige systeme zur dezentralisierten datenspeicherung
KR102516190B1 (ko) 보안 키를 생성하는 반도체 장치, 보안 키 생성 방법, 및 보안 키 등록 방법
US20070230695A1 (en) Apparatus and method for generating a number with random distribution

Legal Events

Date Code Title Description
R012 Request for examination validly filed