DE112018001887T5 - Zufallszahlengenerator mit physikalisch nicht klonbaren schaltungen - Google Patents

Zufallszahlengenerator mit physikalisch nicht klonbaren schaltungen Download PDF

Info

Publication number
DE112018001887T5
DE112018001887T5 DE112018001887.3T DE112018001887T DE112018001887T5 DE 112018001887 T5 DE112018001887 T5 DE 112018001887T5 DE 112018001887 T DE112018001887 T DE 112018001887T DE 112018001887 T5 DE112018001887 T5 DE 112018001887T5
Authority
DE
Germany
Prior art keywords
circuits
random number
number generator
circuit
physically
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
DE112018001887.3T
Other languages
English (en)
Inventor
Vikram B. Suresh
Sanu K. Mathew
Sudhir K. Satpathy
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112018001887T5 publication Critical patent/DE112018001887T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

Es wird eine Vorrichtung beschrieben. Die Vorrichtung weist mehrere physikalisch nicht klonbare Schaltungen auf. Die Vorrichtung weist einen Schaltkreis zur Erfassung, welche der physikalisch nicht klonbaren Schaltungen instabil sind, auf. Die Vorrichtung weist auch einen Schaltkreis zur Kopplung der instabilen physikalisch nicht klonbaren Schaltungen mit einer Zufallszahlengeneratorschaltung auf.

Description

  • Prioritätsanspruch
  • Diese Anmeldung beansprucht die Priorität gemäß 35 U.S.C. § 365(c) der am 5. April 2017 eingereichten US-Anmeldung Nr. 15/479,424 mit der Bezeichnung „RAN-DOM NUMBER GENERATOR THAT INCLUDES PHYSICALLY UNCLONABLE“, die hiermit durch Nennung zur Gänze aufgenommen wird.
  • Das Gebiet der Erfindung betrifft im Allgemeinen die Halbleitertechnik, und genauer einen Zufallszahlengenerator, der physikalisch nicht klonbare Schaltungen aufweist.
  • Allgemeiner Stand der Technik
  • Die Fähigkeit, eine zufällige Information zu erzeugen, ist eine wichtige Funktion für, z.B. die Verschlüsselung und andere Sicherheitsanwendungen. Dabei ist die Verschlüsslung oder die andere Sicherheitsaufgabe, die bewerkstelligt werden kann, umso besser, je perfekter oder wirklich zufälliger die erzeugte Information ist. Somit sind Entwickler angespornt, Schaltungen zu entwickeln, die in der Lage sind, eine sehr zufällige Information zu erzeugen.
  • Figurenliste
  • Ein besseres Verständnis der vorliegenden Erfindung kann aus der folgenden ausführlichen Beschreibung in Verbindung mit den folgenden Zeichnungen erhalten werden, wobei
    • 1 eine Ausführungsform einer PUF-Schaltung zeigt;
    • 2 eine Ausführungsform einer Schaltung, die eine Schaltungsdegradation detektiert, zeigt;
    • 3 eine andere Ausführungsform einer PUF-Schaltung mit Schaltkreisen zur Bestimmung, ob die PUF-Schaltung instabil ist oder nicht, zeigt;
    • 4 eine Änderungsdetektionsschaltung zeigt;
    • 5 eine Zufallszahlengeneratorkernschaltung zeigt;
    • 6 eine Zufallszahlengeneratorschaltung zeigt;
    • 7 ein Rechensystem zeigt.
  • Ausführliche Beschreibung
  • Schaltungen sind im Allgemeinen so gestaltet, dass sie gegenüber Herstellungstoleranzen unempfindlich sind (soweit praktisch umsetzbar). Es kann jedoch eine Klasse von Schaltungen gestaltet werden, die gezielt gegenüber Herstellungstoleranzen empfindlich sind (sogenannte „physikalisch nicht klonbare Schaltungen (physically unclonable circuits“ oder PUFs). Zum Beispiel kann eine Schaltung, die auf einem Halbleiterchip ausgeführt wird, so gestaltet werden, dass sie eine messbare oder bestimmbare Eigenschaft aufweist, die gegenüber dem Schwellenwert und/oder der Verstärkung der Transistoren, die sie bilden, sehr empfindlich ist.
  • Durch die deutliche Empfindlichkeit gegenüber bestimmten Parametern, und durch den Umstand, dass der zugrundeliegende Herstellungsprozess inhärente Abweichungen in Bezug auf diese gleichen Parameter aufweist, können identisch gestaltete Exemplare der Schaltungen selbst dann, wenn sie auf dem gleichen Halbleiterchip hergestellt sind, unterschiedliche Eigenschaften zeigen. 1 zeigt ein Beispiel für eine PUF-Schaltung 100, die bei Ausführung auf einem Halbleiterchip Eigenschaften aufweisen wird, die gegenüber dem Schwellenwert und der Verstärkung der Transistoren, die sie bilden, empfindlich sind.
  • Wie in 1 ersichtlich ist, weist die PUF-Schaltung 100 ein Paar von Invertern 101, 102 auf, wobei der jeweilige Ausgang beider Inverter mit dem jeweiligen Ausgang des anderen Inverters gekoppelt ist. Durchschnittsfachleute werden erkennen, dass die kreuzgekoppelten Inverter 101, 102 eine Latch-Schaltung ausführen, die inhärent von selbst stabil ist (eine 0 an dem Eingang eines ersten Inverters liefert eine 1 an dem Eingang des zweiten Inverters, was erneut erzwingt, dass die 0 an den ersten Inverter angelegt wird). Hier arbeitet die Schaltung 100 gemäß diesem stabilen Modus, wenn beide Transistoren Q1 und Q2 abgeschaltet ist, was stattfindet, wenn der Steuermodus 103 auf eine logische 0 gesetzt ist.
  • Doch wenn der Steuermodus 103 zu einer logischen 1 wechselt, versucht die Schaltung 100, beide Transistoren Q1 und Q2 einzuschalten, was die Schaltung anfangs in einen instabilen Zustand bringt. Der instabile Zustand wird rasch zu einem stabilen Zustand zurückkehren, wenn genügend Herstellungsschwankungen zwischen den verschiedenen Transistoren der Inverter 101, 102, den Transistoren Q1 und Q2, und/oder den Zwischenverbindungswiderständen dazwischen vorhanden sind. Das heißt, obwohl die Schaltung 100 als symmetrisch oder ausgeglichen gestaltet ist, kann es sein, dass sie wie tatsächlich hergestellt aufgrund von Herstellungstoleranzen eigentlich nicht symmetrisch oder ausgeglichen ist. Wenn die Schaltung 100 ausreichend unausgeglichen ist, wird die Schaltung kurz nach dem Einschalten der Transistoren Q1 und Q2 von Natur aus in einen stabilen Zustand „schnappen“, der durch das Ungleichgewicht hervorgerufen wird.
  • Wenn die Transistoren Q1 und Q2 zum Beispiel unterschiedliche Ansprechzeiten aufweisen, beginnt sich bei der Abgabe der Vorladung durch das Steuerungssignal jener Latch-Knoten 104/105, der an dem schnelleren Vorladetransistor angebracht ist, früher als der andere Knoten zu entladen, und wird er schließlich eine höhere Wahrscheinlichkeit der Stabilisierung zu einer „null“ aufweisen. Der an dem Knoten 105 gehaltene Wert wird letztendlich in einem Flipflop 106 aufgefangen, das im Wesentlichen speichert, in welchen bestimmten der beiden möglichen Zustände der Knoten 105 geschnappt ist.
  • Doch selbst wenn die Transistoren Q1 und Q2 identisch hergestellt sind, kann die Schaltung 100 immer noch in einen stabilen Zustand schnappen, wenn genügend Herstellungsunterschiede vorhanden sind, die mit den Invertern 101, 102 selbst verbunden sind. Wie in der Technik bekannt ist, kann eine Transistorverstärkungsschwankung oder eine Transistorschwellenwertschwankung die Zeit beeinflussen, zu der ein Inverter einen Empfangsinverter dazu bringen wird, sein Ausgangsbit umzudrehen. Insbesondere werden eine niedrigere Antriebsinverterverstärkung und ein höherer Empfangsinverterschwellenwert verursachen, dass der Empfangsinverter sein Ausgangsbit zeitlich später umdrehen wird. Im Gegensatz dazu werden eine höhere Antriebsinverterverstärkung und ein niedrigerer Empfangsinverterschwellenwert verursachen, dass der Empfangsinverter sein Ausgangsbit zeitlich früher umdrehen wird. Zur Einfachheit wurden nur die Transistorverstärkung und der Schwellenwert genannt. Doch das Timing einer wie oben beschriebenen Inverterschleife kann durch andere herstellungsbezogene Eigenschaften (den Zwischenverbindungswiderstand (die Zwischenverbindungswiderstände), den Kontaktwiderstand (die Kontaktwiderstände), eine Schwankung der Transistorabmessung(en), zufällige Dotierstoffschwankungen usw.) beeinflusst werden.
  • Hier wird selbst dann, wenn beide Latch-Knoten 104, 105 gleichzeitig auf eine logische 1 gezogen werden, wenn der Steuerknoten zu einer logischen 1 wechselt (da die Transistoren Q1 und Q2 identisch sind), einer der Latch-Knoten 104, 105 vor dem anderen der Latch-Knoten 104, 105 damit beginnen, auf eine logische 0 getrieben zu werden (erneut aufgrund von, z.B., Herstellungsunterschieden bei den Transistoren in den Invertern 101, 102). Sobald einer der Latch-Knoten 104, 105 vor dem anderen der Latch-Knoten 104, 105 damit beginnt, auf eine logische 0 getrieben zu werden, wird die Schaltung 100 rasch zu einem stabilen Zustand schnappen, der den Latch-Knoten, der zuerst auf eine logische 0 getrieben wurde, bei einer logischen 0 hält, und den anderen Latch-Knoten bei einer logischen 1 hält. Erneut wird jener Wert, zu dem der Knoten 105 schnappt, in dem Flipflop 106 gespeichert.
  • 2 zeigt eine Schaltung mit N Exemplaren 201_1 bis 201_N einer Schaltung wie etwa der gerade im Vorhergehenden beschriebenen PUF-Schaltung, die sich selbst abhängig von ihrer bestimmten Kombination von Herstellungsschwankungen auf eine 1 oder eine 0 setzt. Bei einer Ausführungsform sind die Schaltungen 201_1 bis 201_N auf einem gleichen Halbleiterchip integriert (während die Schaltungen bei anderen Ausführungsformen auf einer gleichen gedruckten Leiterplatte integriert sein können). Zur Bequemlichkeit wird als Beispiel meist auf ein Halbleiterdie Bezug genommen.
  • Bei einer Ausführungsform, die z.B. für jede der PUF-Schaltungen 201_1 bis 201_N die oben genannte PUF-Schaltung 100 von 1 verwendet, wechselt der Steuerknoten 103 während der Endproduktprüfung zu einer 1, um jede der N Schaltungen dazu zu bringen, zu ihrem jeweiligen stabilen Bitwert zu schnappen, der dann in dem jeweiligen Flipflop 201_1 bis 201_N jeder Schaltung gespeichert wird. Jeder der jeweiligen stabilen Bitwerte, die in den Flipflops 201_1 bis 202_N gehalten werden, kann kombiniert werden, um z.B. eine sichere Kennung oder einen Schlüssel für den Halbleiterchip zu bilden, die bzw. der verwendet wird, um mit einem Sicherheitsschaltkreis 205, der auf dem Halbleiterchip integriert ist, verschiedene Sicherheitsfunktionen (z.B. eine Verschlüsselung/Entschlüsselung) durchzuführen. Im Allgemeinen wird verhindert, dass die Kennung/der Schlüssel den Chip oder ein sicheres System, das mit dem Chip ausgeführt ist, verlässt. Der Sicherheitsschaltkreis 205 kann sich auf ECC-Helferdaten, die in einem nichtflüchtigen Speicher 203 gespeichert sind, stützen, um z.B. Bitfehler, die im Lauf der Zeit in dem Schlüssel/der Kennung entstehen können, zu korrigieren. Die ECC-Helferdaten werden ebenfalls nicht enthüllt oder können auch nicht anderweitig Informationen über den Schlüssel/die Kennung, der bzw. die durch die PUF-Schaltungen 201_1 bis 201_N bereitgestellt wird, durchsickern lassen.
  • Wie in der Technik bekannt ist, werden sich elektronische Schaltungen im Lauf der Zeit und Verwendung so verschlechtern, dass sich wenigstens eine ihrer herstellungsbezogenen Eigenschaften ändern wird. Als Folge beginnen die N PUF-Schaltungen 201_1 bis 201_N, eine Veränderung in ihrem Verhalten zu zeigen. Somit kann sich die jeweilige N-Bit-Signatur im Lauf der Zeit verändern. Im Fall eines Verlässlichkeitsproblems oder eines Herstellungsfehlers, das bzw. der einem ernsten Degradationsproblem entspricht, wird sich die Signatur um irgendein beträchtliches Ausmaß verändern, das daraufhin als Früherkennungswarnung markiert werden kann, dass der elektronische Chip oder die Leiterplatte zu einem bevorstehenden Ausfall neigt. Daher kann eine Korrekturmaßnahme getroffen werden, bevor ein ernsterer fataler „harter“ Ausfall auftritt.
  • Die obige Besprechung unter Bezugnahme auf 1 und 2 hat angenommen, dass jede der PUF-Schaltungen 201_1 bis 201_N zu einem stabilen Wert schnappen wird. Es kann jedoch Fälle geben, in denen eine wie hergestellte PUF-Schaltung so symmetrisch oder ausgeglichen ist, dass sie nicht in einen stabilen Zustand schnappt, wenn der Steuerknoten zu einer logischen 1 wechselt. Wenn zum Beispiel die Transistoren Q1 und Q2 identisch hergestellt sind und beide Inverter identisch hergestellt sind, kann es sein, dass die oben beschriebenen Mechanismen, die die PUF-Schaltung in einen stabilen Zustand schnappen lassen, nicht auftreten. Somit schnappt die PUF-Schaltung nicht unverzüglich in einen stabilen Zustand, sondern bleibt sie statt dessen für eine längeren Zeitraum in einem instabilen Zustand und/oder wird die PUF-Schaltung auf Basis zeitlicher Bedingungen wie etwa einem thermischen Rauschen, einem Spannungsabfall, einer Kopplung von anderen Schaltungen usw. in einen Zustand schnappen. Hier besteht eine große Wahrscheinlichkeit, dass sie sich bei einer mehrmaligen Bewertung für unterschiedliche Zustände entscheidet.
  • Mit der Erkenntnis, dass das Flipflop 106 dazu gestaltet ist, den Wert des Knotens 105 kurz nach dem Setzen des Steuerwerts auf eine logische 1 (z.B. beim Zurückwechseln des Steuerknotens 103 zu einer logischen 0 kurz, nachdem der Steuerknoten 103 zu einer logischen 1 gewechselt hat) aufzuzeichnen, wird das Flipflop 106 entweder eine 1 oder eine 0 latchen, da die PUF-Schaltung 100 nicht in einen stabilen Zustand geschnappt hat, bevor das Flipflop 106 seinen Eingangswert gelatcht hat.
  • Schaltungen, die sich auf diese Weise verhalten (sich nicht stets für einen Zustand entscheiden), sind instabil. Bei einer Ausführungsform werden unter Bezugnahme auf 2 instabile PUF-Schaltungen identifiziert und ihre entsprechenden gelatchten Bits, die aus ihren jeweiligen Flipflops gelesen werden, idealerweise nicht für den Signaturcode der Schaltung, der verwendet wird, um Chipdegradationsprobleme zu detektieren, verwendet. Somit ist das tatsächlich verwendete Signaturwort kürzer als N Bits. Hier werden die Bits von instabilen PUF-Schaltungen als „dunkle Bits“ markiert. Ein Dunkle-Bits-Maskenvektor (nachstehend eine „Dunkle-Bits-Maske“), der identifiziert, welche der N Bits von N PUF-Schaltungen von einer instabilen PUF-Schaltung stammen, kann z.B. in einem nichtflüchtigen Speicher (wie etwa dem nichtflüchtigen Speicher 203) gespeichert werden. Die Dunkle-Bits-Maske wird verwendet, um die von den instabilen PUF-Schaltungen erzeugten Bits zu ignorieren, wenn der Signaturschlüssel/die Kennung für die Schaltung bestimmt wird.
  • 3 zeigt eine PUF-Schaltung 300, die eingebaute Schaltkreise 307, 308 aufweist, um zu prüfen, ob die PUF-Schaltung 300 instabil ist oder nicht. Wie in 3 ersichtlich ist, ist hier eine Zählerschaltung 307 so gekoppelt, dass sie den Ausgang eines Flipflop 306 erhält. Anstatt nur eine Abtastung zu nehmen (d.h., den Steuerwert 103 einmal pro Ablesung der PUF-Schaltung 300 zu einem Wert von 1 wechseln zu lassen, wie oben unter Bezugnahme auf 1 beschrieben wurde), werden mehrere Abtastungen der Schaltung 300 genommen und wird der Ausgang des Flipflop 306 in die Zählerschaltung 307 eingegeben.
  • Hier werden mehrere Abtastungen genommen, indem der Steuerknoten 303 mit einem Taktsignal (CLK) angetrieben wird, wenn ein Bewertungseingang 312 ein logisches H ist. Jedes Mal, wenn der Takt zu einem logischen H wechselt, wird die Schaltung 300 erneut versuchen, zu einem stabilen Wert zu schnappen. Bei jeder Abtastung (d.h., jedem Taktwechsel zu einem logischen H) wird der Zählerschaltung 307 der durch das Flipflop 306 gelatchte Wert bereitgestellt. Wenn der Q-Ausgang des Flipflop 306 ein logisches H ist, wird die Zählerschaltung 307 als Reaktion ihren Zählwert erhöhen.
  • Nach einer Anzahl von solchen Abtastungen (z.B. 15) wird der Wert in dem Zähler 307 durch eine Vergleichsschaltung 308 mit dem höchstmöglichen Zählerwert (der aus der Bitbreite des Zählers bestimmt wird) verglichen. Wenn der Wert in dem Zähler 307 größer als die Hälfte des höchstmöglichen Zählerwerts ist, wird der PUF-Schaltungs-Ausgang als 1 angesehen. Andernfalls wird der PUF-Schaltungs-Ausgang als 0 angesehen. Durchschnittsfachleute werden erkennen, dass die Verwendung des Ausgangs des Zählers 307 und der Vergleichsschaltung 308 auf diese Weise einer zeitlichen Mehrheitsentscheidungstechnik entspricht, die Sparse-Fehler in der PUF-Schaltungssignatur verringert.
  • Unter kurzer erneuter Bezugnahme auf 2 ist zu beachten, dass die jeweiligen Flipflops 202_1 bis 202_N der PUF-Schaltungen 201_1 bis 201_N, die jeweils dem Flipflop 306 entsprechen, tatsächlich einen jeweiligen Zähler 307 und eine Vergleichslogikschaltung 308, die den PUF-Schaltungs-Ausgang bereitstellt, speisen. Unter erneuter Bezugnahme auf 3 zeichnet eine Änderungsdetektionsschaltung 309 die wie durch die Vergleichsschaltung 308 bestimmte Signatur der PUF-Schaltung 300 auf.
  • Dann wird erneut eine zweite Runde von (z.B. 15) Abtastungen genommen, was einen unterschiedlichen Wert in dem Zähler 307 erzeugen kann. Bei instabilen Schaltungen kann der Ausgang der Vergleichsschaltung 308 so wie zwischen den beiden Sätzen von Abtastungen unterschiedlich sein (d.h., die PUF-Schaltung 300 erzeugte über die beiden Sätze von Abtastungen unterschiedliche Signaturen). Die Änderungsdetektionsschaltung 309 vergleicht die gespeicherte (vorherige) Signatur mit dem gegenwärtigen Ausgang von der Vergleichsschaltung 308. Wenn die beiden unterschiedlich sind, wird die PUF-Schaltung 300 als instabil erachtet. Bei einer weiteren Ausführungsform wird eine Anzahl von Sätzen von (z.B. 15) Abtastungen genommen und wird die PUF-Schaltung als instabil erachtet (d.h., als „dunkel“ identifiziert), wenn die PUF-Schaltung über beliebige zwei aufeinanderfolgende Abtastungen unterschiedliche Signaturen erzeugt.
  • 4 zeigt eine Ausführungsform 409 der Änderungsdetektionsschaltung 309 von 3. Der Ausgang 404 gibt an, ob die PUF-Schaltung instabil ist oder nicht. Der Ausgang wird aktiviert, wenn das Bewertungssteuersignal 313, 412 ein logisches H ist. Der Q-Eingang 401 des Flipflop ist mit dem Ausgang der Vergleichsschaltung 308 von 3 gekoppelt. Mit jedem neuen Satz von Abtastungen erzeugt die PUF-Schaltung aus dem Ausgang der Vergleichsschaltung 308 eine nächste PUF-Signatur (die der PUF-Signatur, die aus dem vorhergehenden Satz von Abtastungen erzeugt wurde, gleich oder davon verschieden sein kann). Der Ausgang der Vergleichsschaltung 308 wird zu dem Eingang 401 gerichtet und in einem ersten Flipflop 401 gelatcht. Und mit jedem neuen Satz von Abtastungen wird die vorhergehende PUF-Schaltungssignatur von dem Flipflop 401 in einem Flipflop 402 gelatcht. Daher hält das Flipflop 401 die neue PUF-Schaltungssignatur und hält das Flipflop 402 die unmittelbar vorhergehende PUF-Schaltungssignatur. Wenn sich die beiden Werte unterscheiden, liefert das XOR-Gatter 403 einen H-Wert, der von dem Ausgang 404 verbreitet wird, um anzugeben, dass die PUF-Schaltung instabil ist.
  • Wenn die PUF-Schaltung als dunkel identifiziert wird, wird die Identität der PUF-Schaltung in der Dunkle-Bits-Maske aufgezeichnet, damit sie z.B. nicht für Chipkennungs/schlüsselzwecke verwendet werden kann. Doch bei einer Ausführungsform werden die PUF-Schaltung und einige/alle anderen instabilen PUF-Schaltungen, die an der Dunkle-Bits-Maske identifiziert sind, statt dessen als die Kernquelle(n) für einen Zufallszahlengenerator verwendet.
  • 5 zeigt eine grundlegende Zufallszahlengeneratorkernschaltung 500, die die instabilen PUF-Zellen, welche durch die Dunkle-Bits-Maske als Quelle für eine zufällige Information identifiziert werden, verwendet. Hier zeigt die Kernschaltung 500 von 5 einen Multiplexierer 501, der Eingangskanäle aufweist, die mit jeder PUF-Schaltung („Zelle“), welche z.B. auf einer Halbleiterschaltung instanziiert wurde, gekoppelt sind. Bei verschiedenen Ausführungsformen sind einige der PUF-Schaltungen, die mit dem Multiplexierer 501 gekoppelt sind, stabil, weshalb sie für die Chipidentifikation (z.B. wie bei der Schaltung von 2) oder eine andere Verwendung benutzt, werden. Das heißt, nach verschiedenen Ausführungsformen sind die jeweiligen Ausgänge von mehreren PUF-Schaltungen, die auf einem Halbleiterchip ausgeführt sind, z.B. nicht nur mit einer Chipidentifikationsschaltung (wie in 2) gekoppelt, sondern auch mit einer Zufallszahlengeneratorschaltung 500 (wie in 5) gekoppelt. Die Ausgänge der PUF-Schaltungen, die als stabil erachtet werden, werden zu der Chipidentifikationsschaltung gerichtet, während die Ausgänge der PUF-Schaltungen, die als instabil erachtet werden, durch die Zufallszahlengeneratorschaltung 500 verwendet werden.
  • In der Kernschaltung 500 von 5 wird eine Information von der Dunkle-Bits-Maske verwendet, um den Kanalwahleingang des Multiplexierers 501 zu steuern, der wiederum verursacht, dass durch den Multiplexierer 501 nur die Ausgangswerte von instabilen PUF-Schaltungen gewählt werden. Bei einer Ausführungsform wird die Dunkle-Bits-Maske z.B. der Reihe nach, zufällig, oder pseudo-zufällig durchscrollt, um die jeweiligen Ausgangswerte einer Reihe von instabilen PUF-Schaltungen zu wählen. Hier werden dem Durchscrollen der PUF-Schaltungs-Identitäten an der Dunkle-Bits-Maske entsprechend zeitgleich Taktwerte in die instabilen PUF-Schaltungen eingegeben.
  • Wenn beispielsweise eine Ausführungsform angenommen wird, bei der die Dunkle-Bits-Maske der Reihe nach (z.B. von „oben“ nach „unten“) durchscrollt wird, wird anfänglich ein Taktimpuls in die instabilen PUF-Schaltungen eingegeben, um sie dazu zu bringen, in den jeweiligen Zustand, in den sie jeweils schnappen, zu schnappen. Dann wird die Dunkle-Bits-Maske so durchscrollt, dass jede instabile PUF-Schaltung einmal abgetastet und durch den Multiplexierer 501 gewählt wird. Nachdem die Dunkle-Bits-Maske vollständig durchscrollt wurde (das untere Ende erreicht wurde), wird der Prozess wiederholt. Das heißt, es wird ein anderer Taktimpuls in die instabilen PUF-Schaltungen eingegeben, damit sie in den jeweiligen Zustand, in den sie schnappen, schnappen können, und die Dunkle-Bits-Maske wird erneut durchscrollt (oder, z.B., von unten nach oben oder erneut von oben nach unten). Es ist zu beachten, dass sich der Ausgangszustand des Satzes von instabilen PUF-Schaltungen mit jedem Taktimpuls fortlaufend und zufällig ändern sollte.
  • Unter Bezugnahme auf den Kernzufallszahlengenerator 500 von 5 wird mit der Wahl der Ausgänge der instabilen PUF-Schaltungen durch Durchscrollen der Dunkle-Bits-Maske und Bereitstellen ihrer jeweiligen Identitäten für den Kanalwahleingang des Multiplexierers 501 an dem Ausgang des Multiplexierers 501 ein Bitstrom (in 5 als Bit 1 bezeichnet) erzeugt werden. Hier entspricht jedes nächste Bit des Bitstroms dem Ausgangsbit einer nächsten abgetasteten instabilen PUF-Schaltung. Jedes nächste Bit des Bitstroms Bit 1 wird in einem Latch 502 gelatcht und durch ein XOR-Gatter 503 mit seinem unmittelbaren Vorgänger (in 5 als Bit 2 bezeichnet) verglichen. Wenn sich die beiden Bits unterscheiden, wird der Ausgang eines Logikgatters 504 als gültig angesehen und gestattet, dass sein Ausgang in ein Schieberegister 505 gelangt, das die Ausgangsbits von der Kernschaltung 500 erhält. Das Logikgatter 504 weist zwei potenzielle unterschiedliche Ausgangszustände auf, die kennzeichnen, ob der Bitstrom der zwei Bits (Bit 1,Bit 2) (1,0) oder (0,1) lautet. Somit wird das Schieberegister 505 nur dann mit einer neuen Information geladen, wenn in dem Bitstrom von Bit 1 und Bit 2 ein Unterschied besteht, wodurch von dem Satz von instabilen PUF-Schaltungen mehr Zufälligkeit erlangt wird.
  • Wie in 6 ersichtlich ist, kann eine Reihe von Zufallszahlgeneratorkernen 600_2, 600_3, ... mit zunehmend kleinerer Eingangsbitbreite verkettet werden, um noch mehr Zufälligkeit in das erzeugte Bitmuster einzubringen und/oder die Ausgangsbitrate des Zufallszahlengenerators zu erhöhen. Hier ist unter erneuter kurzer Bezugnahme auf 5 zu beachten, dass die instabilen PUF-Schaltungen, die für den Eingang in den Multiplexierer 501 gewählt werden, als Eingangswort mit einer gewissen Breite angesehen werden können. Das heißt, wenn X instabile PUF-Schaltungen vorhanden sind, weist das Eingangswort in den Multiplexierer 501 eine Breite von X auf und wird der Bitstrom Bit 1 durch Wählen eines jeden der X Bits des X Bit breiten Eingangsworts erzeugt.
  • Hier kann das Schieberegister 505 unter Bezugnahme auf 5 und 6 so angesehen werden, dass es ein nächstes Wort mit einer Breite Y für eine nächste Kernzufallszahlengeneratorschaltung 600_2 wie die Kernschaltung 500 von 5 bereitstellt. Bei einer Ausführungsform weist der Ausgang des Schieberegisters 505 der ersten Kernschaltung 500 eine Breite auf, die die Hälfte der Anzahl von instabilen PUF-Schaltungen, die durch den in 5 gezeigten ersten Kernzufallszahlengenerator 500 verwendet werden, beträgt. Das heißt, bei einer Ausführungsform beträgt die Ausgangsbitbreite des Schieberegisters 505 X/2.
  • Unter Bezugnahme auf 5 und 6 wird eine nächste Zufallszahlengeneratorkernschaltung 600_2, die der Kernschaltung 500 von 5 ähnlich ist, von dem Schieberegister 505 mit dem Y = X/2 breiten Wort beliefert. Das Ausgangsschieberegister 605_2 des zweiten Zufallszahlengeneratorkerns 600_2 stellt jedoch nur ein Y/2 = X/4 breites Ausgangswort bereit. Eine nächste Zufallszahlengeneratorkernschaltung 600_3, die ebenfalls der Kernschaltung 500 von 5 ähnlich ist, erhält das Ausgangswort mit der Breite X/4 von dem Schieberegister 605_2 und liefert seine Zufallsbits in ein Ausgangsschieberegister 605_3, das Y/4 = X/8 Bits breit ist. Die Kette von Zufallszahlengeneratoren verringert die Bitbreite fortlaufend, bis an dem Ausgang 610 des gesamten Zufallszahlengenerators die Bitbreite der gewünschten Zufallszahl erreicht wird.
  • Es ist zu beachten, dass auch die Ausrichtung zur Wahl der Zufälligkeit durch die Kernschaltungen 500, 600_2, 600_3, usw. zufällige Entropie oder Zufälligkeit in den Endwert, der an dem Zufallszahlengeneratorausgang 610 bereitgestellt wird, einbringt. Die Einbringung einer solchen Zufälligkeit sollte dabei helfen, etwaige als instabil erachtete PUF-Schaltungen, die tatsächlich eine gewisse Stabilität aufweisen oder zu einem bestimmten Ausgangszustand neigen, zu kompensieren. Zum Beispiel zeigt eine instabile PUF-Schaltung, die wiederholt für 47 % ihrer Abtastungen zu einer 1 schnappt und für 53 % ihrer Abtastungen zu einer 0 schnappt, eine gewisse Neigung/Stabilität zu einem Wert von 1. Die erhöhte Entropie/Zufälligkeit, die durch die Zufallszahlengeneratorschaltungen 500, 600 von 5 und 6 eingebracht wird, sollte eine zusätzliche Entropie/Zufälligkeit hinzufügen, um jede solche Neigung/Stabilität in den ursprünglichen PUF-Schaltungen zu versetzen.
  • Das Kaskadieren mehrerer Zufallsgeneratoren mit abnehmender Bitbreite sollte auch die Bitrate des Zufallszahlengenerators erhöhen. Hier entspricht das Vorhandensein von mehreren Schieberegistern dem Festhalten an einer großen Vorgeschichte von sehr zufälligen Informationen durch die gesamte Schaltung. Das trichterförmige Verengen zu kleineren Wortgrößen extrahiert im Wesentlichen Informationen, die näher am reinen Zufall liegen, mit einer ausreichend hohen Bitrate aus der Vorgeschichte.
  • Bei alternativen Ausführungsformen kann die Reihenfolgen, in der die Bits von den instabilen PUF-Schaltungen kaskadiert werden, geändert/verändert werden (z.B. mit der Zeit). Das Kaskadieren kann auch zeitlich stattfinden, was bedeutet, dass mehrere Bits von der gleichen instabilen PUF-Zelle in den Kernzufallszahlengenerator 500 eingegeben werden können, um die Entropie des zufällig erstellten Ausgangs zu steigern. Die Ausführung des Kaskadenaufbaus und, welche Bits durch den wie hier gezeigten Kernzufallszahlengenerator verbraucht werden, ist lediglich beispielhaft (andere Ausführungsformen können unterschiedliche Ansätze verfolgen).
  • Der Ausgang des Zufallszahlengenerators kann z.B. mit einer Verschlüsselungs- und/oder Entschlüsselungsschaltung oder einer anderen Sicherheitsschaltung (z.B. zur Umsetzung eines Passworts oder einer anderen zufälligen Kennung) gekoppelt werden. Obwohl sich oben beschriebene Ausführungsformen auf Schaltkreise, die auf einem einzelnen Halbleiterchip ausgeführt sind, konzentriert haben, können alternative Ausführungsformen andere Systeme wie etwa Schaltungen, die auf einer Planarplatine (z.B. einer „PC“-Platine) angeordnet sind, aufweisen.
  • 7 zeigt eine Darstellung eines beispielhaften Rechensystems 700 wie etwa eines PC-Systems (z.B. Desktop oder Laptop) oder eines mobilen oder tragbaren Rechensystems wie etwa einer Tablet-Vorrichtung oder eines Smartphones, oder eines größeren Rechensystems wie etwa eines Serverrechensystems. Wie in 7 ersichtlich ist, kann das grundlegende Rechensystem eine zentrale Verarbeitungseinheit 701 (die z.B. mehrere Allzweck-Verarbeitungskerne und eine Hauptspeichersteuerung, die an einem Anwendungsprozessor oder einem Mehrkernprozessor angeordnet sind, aufweisen kann), einen Systemspeicher 702, eine Anzeige 703 (z.B. Touchscreen, Flachbildschirm), eine lokale verdrahtete Punkt-zu-Punkt-Verbindungs(z.B. USB)-Schnittstelle 704, verschiedene Netzwerk-E/A-Funktionen 705 (wie etwa eine Ethernet-Schnittstelle und/oder ein Zellularmodem-Subsystem), eine drahtlose lokale Netzwerk(z.B. WiFi)-Schnittstelle 706, eine drahtlose Punkt-zu-Punkt-Verbindungs(z.B. Bluetooth)-Schnittstelle 707 und eine Globales-Positionierungssystem-Schnittstelle 708, verschiedene Sensoren 709_1 bis 709_N (z.B. eines oder mehrere aus einem Gyroskop, einem Beschleunigungsmesser, einem Magnetometer, einem Temperatursensor, einem Drucksensor, einem Feuchtigkeitssensor, usw.), eine Kamera 710, eine Batterie 711, eine Leistungsverwaltungssteuereinheit 712, einen Lautsprecher und ein Mikrophon 713, und einen Audiocodierer/decodierer 714 aufweisen.
  • Ein Anwendungsprozessor oder Mehrkernprozessor 750 kann einen oder mehr Allzweck-Verarbeitungskerne 715 in seiner CPU 701, eine oder mehrere graphische Verarbeitungseinheiten 716, eine Speicherverwaltungsfunktion 717 (z.B. eine Speichersteuerung), und eine E/A-Steuerfunktion 718 aufweisen. Die Allzweck-Verarbeitungskerne 715 führen typischerweise das Betriebssystem und die Anwendungssoftware des Rechensystems aus. Die Grafikverarbeitungseinheiten 716 führen typischerweise grafikintensive Funktionen aus, um z.B. Grafikinformationen zu erzeugen, die an der Anzeige 703 gezeigt werden. Die Speichersteuerfunktion 717 ist mit dem Systemspeicher 702 gekoppelt. Der Systemspeicher 702 kann ein Mehrebenen-Systemspeicher mit unterschiedlichen Zwischenspeicherstrukturen in einer schnelleren Ebene des Systemspeichers sein.
  • Bei verschiedenen Ausführungsformen können physikalisch nicht klonbare Schaltungen in das Rechensystem integriert werden und mit einer Signaturschaltung und/oder einem oben ausführlich beschriebenen Zufallszahlengenerator gekoppelt werden.
  • Alle aus der Touchscreen-Anzeige 703, den Kommunikationsschnittstellen 704 bis 707, der GPS-Schnittstelle 708, den Sensoren 709, der Kamera 710, und dem Lautsprecher/Mikrophon-Codierer/Decodierer 713, 714 können als verschiedene Formen von E/A (Eingang und/oder Ausgang) in Bezug auf das gesamte Rechensystem einschließlich, gegebenenfalls, auch einer integrierten peripheren Vorrichtung (z.B. der Kamera) angesehen werden. Abhängig von der Ausführung können verschiedene dieser E/A-Komponenten an dem Anwendungsprozessor/Mehrkernprozessor 750 integriert sein oder sich abseits des Die oder außerhalb des Packages des Anwendungsprozessors/Mehrkernprozessors 750 befinden. Der Massenspeicher des Rechensystems kann mit einem nichtflüchtigen Speicher 720 ausgeführt sein, der mit der E/A-Steuerung 718 (die auch als peripherer Steuerhub bezeichnet werden kann) gekoppelt sein kann.
  • Ausführungsformen der Erfindung können verschiedene wie oben dargelegte Prozesse beinhalten. Die Prozesse können durch maschinenausführbare Befehle verkörpert werden. Die Befehle können verwendet werden, um einen Allzweck-Prozessor oder einen Prozessor mit besonderer Zweckbestimmung dazu zu bringen, verschiedene Prozesse durchzuführen. Alternativ können diese Prozesse durch bestimmte Hardwarekomponenten, die eine Festverdrahtungslogik zur Durchführung der Prozesse enthalten, oder durch jede beliebige Kombination von software- oder befehlsprogrammierten Computerkomponenten oder maßgeschneiderten Hardwarekomponenten wie etwa anwendungsspezifischen integrierten Schaltungen (ASIC), programmierbaren Logikvorrichtungen (PLD), programmierbaren Logikanordnungen (PLA), oder feldprogrammierbaren Gateanordnungen (PFGA) durchgeführt werden.
  • Elemente der vorliegenden Erfindung können auch als maschinenlesbares Medium zum Speichern der maschinenausführbaren Befehle bereitgestellt werden. Das maschinenlesbare Medium kann, jedoch ohne Beschränkung darauf, Floppy-Disketten, optische Platten, CD-ROMs, und magnetooptische Platten, FLASH-Speicher, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Ausbreitungsmedien oder eine andere Art von Medium/maschinenlesbarem Medium, das zur Speicherung von elektronischen Befehlen geeignet ist, beinhalten. Zum Beispiel kann die vorliegende Erfindung als Computerprogramm, das durch Datensignale, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium enthalten sind, über eine Kommunikationsverbindung (z.B. eine Modem- oder Netzwerkverbindung) von einem entfernten Computer (z.B. einem Server) zu einem anfordernden Computer (z.B. einem Client) übertragen wird, heruntergeladen werden.
  • In der obigen Beschreibung wurde die Erfindung unter Bezugnahme auf bestimmte beispielhafte Ausführungsformen davon beschrieben. Es wird jedoch offensichtlich sein, dass daran verschiedene Abwandlungen und Änderungen vorgenommen werden können, ohne von dem breiteren Geist und Umfang der Erfindung, der in den beiliegenden Ansprüchen dargelegt ist, abzuweichen. Die Beschreibung und die Zeichnungen sollen entsprechend in einem erläuternden anstatt in einem beschränkenden Sinn angesehen werden.
  • 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
    • US 15479424 [0001]

Claims (20)

  1. Vorrichtung, umfassend: mehrere physikalisch nicht klonbare Schaltungen; einen Schaltkreis zur Erfassung, welche der physikalisch nicht klonbaren Schaltungen instabil sind; einen Schaltkreis zur Kopplung der instabilen physikalisch nicht klonbaren Schaltungen mit einer Zufallszahlengeneratorschaltung.
  2. Vorrichtung nach Anspruch 1, wobei die Zufallszahlengeneratorschaltung eine Reihe von Zufallszahlengeneratorkernen umfasst.
  3. Vorrichtung nach Anspruch 2, wobei die Reihe von Zufallszahlengeneratorkernen progressiv an kleineren Bitbreiten von zufälligen Informationen arbeitet.
  4. Vorrichtung nach Anspruch 2, wobei der Zufallszahlengenerator zwischen den Zufallszahlengeneratorkernen Register umfasst, wobei die Register zwischen den Zufallszahlengeneratorkernen zufällige Informationen halten.
  5. Vorrichtung nach Anspruch 1, wobei die Zufallszahlengeneratorschaltung eine Schaltung umfasst, die gleiche Datenwerte von zwei aufeinanderfolgend abgetasteten instabilen physikalisch nicht klonbaren Schaltungen ungültig macht.
  6. Vorrichtung nach Anspruch 1, wobei die Zufallszahlengeneratorschaltung einen Multiplexierer umfasst, der gesonderte Eingangskanäle aufweist, die mit verschiedenen der physikalisch nicht klonbaren Schaltungen gekoppelt sind, wobei der Multiplexierer einen Kanalwahleingang umfasst, wobei der Kanalwahleingang durch Informationen von einer Dunkle-Bits-Maske, die jene physikalisch nicht klonbaren Schaltungen, die instabil sind, identifiziert, angetrieben wird.
  7. Vorrichtung nach Anspruch 1, wobei der Schaltkreis zur Erfassung, welche der physikalisch nicht klonbaren Schaltungen instabil sind, für jede der mehreren physikalisch nicht klonbaren Schaltungen eine Signaturänderungsdetektionsschaltung umfasst.
  8. Rechensystem, umfassend: mehrere Verarbeitungskerne; einen Systemspeicher; eine Speichersteuerung, die zwischen dem Systemspeicher und den mehreren Verarbeitungskernen gekoppelt ist; mehrere physikalisch nicht klonbare Schaltungen; einen Schaltkreis zur Erfassung, welche der physikalisch nicht klonbaren Schaltungen instabil sind; einen Schaltkreis zur Kopplung der instabilen physikalisch nicht klonbaren Schaltungen mit einer Zufallszahlengeneratorschaltung.
  9. Rechensystem nach Anspruch 7, wobei die Zufall szahlengeneratorschaltung eine Reihe von Zufallszahlengeneratorkernen umfasst.
  10. Rechensystem nach Anspruch 9, wobei die Reihe von Zufallszahlengeneratorkernen progressiv an kleineren Bitbreiten arbeitet.
  11. Rechensystem nach Anspruch 9, wobei der Zufallszahlengenerator zwischen den Zufallszahlengeneratorkernen Register umfasst, wobei die Register zwischen den Zufallszahlengeneratorkernen zufällige Informationen halten.
  12. Rechensystem nach Anspruch 8, wobei die Zufallszahlengeneratorschaltung eine Schaltung umfasst, die gleiche Datenwerte von zwei aufeinanderfolgend abgetasteten instabilen physikalisch nicht klonbaren Schaltungen ungültig macht.
  13. Rechensystem nach Anspruch 8, wobei die Zufallszahlengeneratorschaltung einen Multiplexierer umfasst, der gesonderte Eingangskanäle aufweist, die mit verschiedenen der physikalisch nicht klonbaren Schaltungen gekoppelt sind, wobei der Multiplexierer einen Kanalwahleingang umfasst, wobei der Kanalwahleingang durch Informationen von einer Dunkle-Bits-Maske, die jene physikalisch nicht klonbaren Schaltungen, die instabil sind, identifiziert, angetrieben wird.
  14. Rechensystem nach Anspruch 8, wobei der Schaltkreis zur Erfassung, welche der physikalisch nicht klonbaren Schaltungen instabil sind, für jede der mehreren physikalisch nicht klonbaren Schaltungen eine Signaturänderungsdetektionsschaltung umfasst.
  15. Vorrichtung, umfassend: mehrere physikalisch nicht klonbare Schaltungen; einen Schaltkreis zur Erfassung, welche der physikalisch nicht klonbaren Schaltungen instabil sind; einen Schaltkreis zur Kopplung der instabilen physikalisch nicht klonbaren Schaltungen mit einer Zufallszahlengeneratorschaltung; und einen Schaltkreis zur Kopplung von stabilen unter den physikalisch nicht klonbaren Schaltungen mit einer Chipsignaturschaltung.
  16. Vorrichtung nach Anspruch 14, wobei die Zufallszahlengeneratorschaltung eine Reihe von Zufallszahlengeneratorkernen umfasst.
  17. Vorrichtung nach Anspruch 16, wobei die Reihe von Zufallszahlengeneratorkernen progressiv an kleineren Bitbreiten arbeitet.
  18. Vorrichtung nach Anspruch 16, wobei der Zufallszahlengenerator zwischen den Zufallszahlengeneratorkernen Register umfasst, wobei die Register zwischen den Zufallszahlengeneratorkernen zufällige Informationen halten.
  19. Vorrichtung nach Anspruch 15, wobei die Zufallszahlengeneratorschaltung einen Multiplexierer umfasst, der gesonderte Eingangskanäle aufweist, die mit verschiedenen der physikalisch nicht klonbaren Schaltungen gekoppelt sind, wobei der Multiplexierer einen Kanalwahleingang umfasst, wobei der Kanalwahleingang durch Informationen von einer Dunkle-Bits-Maske, die jene physikalisch nicht klonbaren Schaltungen, die instabil sind, identifiziert, angetrieben wird.
  20. Vorrichtung nach Anspruch 15, wobei der Schaltkreis zur Erfassung, welche der physikalisch nicht klonbaren Schaltungen instabil sind, für jede der mehreren physikalisch nicht klonbaren Schaltungen eine Signaturänderungsdetektionsschaltung umfasst.
DE112018001887.3T 2017-04-05 2018-03-05 Zufallszahlengenerator mit physikalisch nicht klonbaren schaltungen Pending DE112018001887T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/479,424 2017-04-05
US15/479,424 US10579339B2 (en) 2017-04-05 2017-04-05 Random number generator that includes physically unclonable circuits
PCT/US2018/020977 WO2018186968A1 (en) 2017-04-05 2018-03-05 Random number generator that includes physically unclonable circuits

Publications (1)

Publication Number Publication Date
DE112018001887T5 true DE112018001887T5 (de) 2019-12-12

Family

ID=63710951

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018001887.3T Pending DE112018001887T5 (de) 2017-04-05 2018-03-05 Zufallszahlengenerator mit physikalisch nicht klonbaren schaltungen

Country Status (4)

Country Link
US (1) US10579339B2 (de)
CN (1) CN110366838B (de)
DE (1) DE112018001887T5 (de)
WO (1) WO2018186968A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190140851A1 (en) * 2017-11-09 2019-05-09 iMQ Technology Inc. Secure logic system with physically unclonable function
US11309018B2 (en) 2018-01-18 2022-04-19 Regents Of The University Of Minnesota Stable memory cell identification for hardware security
US11055065B2 (en) * 2018-04-18 2021-07-06 Ememory Technology Inc. PUF-based true random number generation system
US10958453B2 (en) * 2018-07-03 2021-03-23 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for noise injection for PUF generator characterization
KR20200082982A (ko) * 2018-12-31 2020-07-08 삼성전자주식회사 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치
US11301215B2 (en) 2020-01-27 2022-04-12 International Business Machines Corporation Real time configuration of multiple true random number generator sources for optimized entropy generation
TWI803351B (zh) * 2022-06-14 2023-05-21 新唐科技股份有限公司 具有物理不可仿製功能的金鑰產生單元、金鑰產生器與電路系統

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69914593T2 (de) * 1998-04-17 2004-12-16 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren und vorrichtung zur korrektur von falschen konturen
FR2802661B1 (fr) * 1999-12-21 2003-10-31 Bull Sa Generateur de nombres aleatoires haut debit
US7822797B2 (en) * 2002-07-29 2010-10-26 Broadcom Corporation System and method for generating initial vectors
DE602005023910D1 (de) * 2004-10-15 2010-11-11 Nxp Bv Integrierte Schaltung mit einem echten Zufallszahlengenerator
US8290150B2 (en) 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
US20110002461A1 (en) * 2007-05-11 2011-01-06 Validity Sensors, Inc. Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions
WO2009024913A2 (en) * 2007-08-22 2009-02-26 Intrinsic Id Bv Identification of devices using physically unclonable functions
US8415969B1 (en) * 2011-10-28 2013-04-09 International Business Machines Corporation Implementing screening for single FET compare of physically unclonable function (PUF)
KR101576408B1 (ko) * 2011-12-22 2015-12-09 미쓰비시덴키 가부시키가이샤 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법
CN103683356B (zh) * 2012-09-20 2015-10-21 伊顿制造(格拉斯哥)有限合伙莫尔日分支机构 在线式不间断电源拓扑
US9390291B2 (en) 2012-12-29 2016-07-12 Intel Corporation Secure key derivation and cryptography logic for integrated circuits
US9846568B2 (en) * 2013-05-23 2017-12-19 Synopsys, Inc. System and method for dynamic tuning feedback control for random number generator
US9588387B2 (en) * 2013-07-10 2017-03-07 Shenzhen China Star Optoelectronics Technology Co., Ltd Fast testing switch device and the corresponding TFT-LCD array substrate
US9992031B2 (en) 2013-09-27 2018-06-05 Intel Corporation Dark bits to reduce physically unclonable function error rates
JP6167876B2 (ja) * 2013-11-28 2017-07-26 富士通株式会社 電子回路、電子機器及び認証システム
KR101593166B1 (ko) 2014-06-02 2016-02-15 한국전자통신연구원 물리적 복제 방지 함수의 오류를 방지하는 장치 및 그 방법
JP5864684B1 (ja) * 2014-08-29 2016-02-17 株式会社日立製作所 半導体装置
US9891888B2 (en) * 2015-06-17 2018-02-13 Nxp B.V. Digital true random number generator based on S-boxes
EP3113409B1 (de) 2015-07-01 2024-09-18 Secure-IC SAS Eingebettete testschaltung für eine physisch unklonbare funktion
CN105809065B (zh) * 2016-03-09 2018-12-04 中国科学院计算技术研究所 模糊输入输出的强物理不可克隆函数
US9806719B1 (en) * 2016-09-29 2017-10-31 Intel Corporation Physically unclonable circuit having a programmable input for improved dark bit mask accuracy
US10439827B2 (en) * 2016-10-07 2019-10-08 Taiwan Semiconductor Manufacturing Co., Ltd. SRAM-based authentication circuit
JP6882666B2 (ja) * 2017-03-07 2021-06-02 富士通株式会社 鍵生成装置および鍵生成方法

Also Published As

Publication number Publication date
US20180293052A1 (en) 2018-10-11
CN110366838A (zh) 2019-10-22
CN110366838B (zh) 2024-06-28
WO2018186968A1 (en) 2018-10-11
US10579339B2 (en) 2020-03-03

Similar Documents

Publication Publication Date Title
DE112018001887T5 (de) Zufallszahlengenerator mit physikalisch nicht klonbaren schaltungen
US8065249B1 (en) GPSTP with enhanced aggregation functionality
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE102018126146A1 (de) Maschinenlernbasierte feststellung von programmcodeeigenschaften
US8427193B1 (en) Intellectual property core protection for integrated circuits
DE112016004368T5 (de) Verwaltung eines Fehlerzustands in einem Datenverarbeitungssystem
DE102010019486A1 (de) Verfahren zum Betreiben eines Programms in einer Speichervorrichtung und drahtlose Kommunikationsvorrichtung
DE102014002293B4 (de) Vorrichtung und System mit Detektoren für hohe Strahlendosen
DE112017005007T5 (de) Systemmonitor
DE112014006501T5 (de) Synchronisierung der Unterbrechungsverarbeitung zur Verringerung des Stromverbrauchs
DE112018003087T5 (de) On-chip-rauschunterdrückung oder -minderung der versorgungsspannung unter verwendung von lokalen detektionsschleifen in einem prozessorkern
DE102015105417A1 (de) Verfahren zum Herstellen einer Digitalschaltung und Digitalschaltung
DE102017126217A1 (de) PUF-Arbiter-Schaltung
DE112017007643T5 (de) Bitstromschlüssel-Authentifizierung umkonfigurierbarer Vorrichtungen
DE112017000633T5 (de) Sichere archivierung und wiederherstellung von multifaktor-authentifizierungsschablonen
DE102020121075A1 (de) Einrichtung und Verfahren zur Authentifizierung von Software
DE112016006672T5 (de) Polarisations-Gate-Stapel-SRAM
DE102020119888A1 (de) Hardware-basierte erkennung von fehlern bezüglich der erhaltung lokaler zustände
DE102015116036A1 (de) Dezentrale Realzeitrechenstruktur, die eine speicherinterne Verarbeitung verwendet
EP3057031A1 (de) Vorrichtung und verfahren zur erzeugung eines identifizierungsschlüssels
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
DE112016004301T5 (de) Vornehmen einer flüchtigen Fehleratomarität von Isolierungstransaktionen in einem nichtflüchtigen Speicher
DE112019004146T5 (de) Authentifizierung von dateien
DE102020103891A1 (de) Sicherheitsvorrichtung, Physical Unclonable Function-Zellen enthaltend, und Betriebsverfahren derselben
DE102013009364B4 (de) Verfahren und System zur Erkennung von latenten Fehlern in Mikrocontrollern