-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf Sicherheit, wie Berechtigung und Verschlüsselung, und insbesondere auf eine Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und ein Erzeugungsverfahren für vorrichtungsspezifische Informationen zum Erzeugen eines vorrichtungsspezifischen Identifizierers, der für Berechtigung, einen für Verschlüsselung benötigten Geheimschlüssel und dergleichen erforderlich ist.
-
Stand der Technik
-
Bei Halbleitervorrichtungen wie ASICs und FPGAs ist eine Erscheinung bekannt, bei der, selbst wenn dieselben Schaltungen an Vorrichtungen desselben Typs angebracht sind, Ausgangssignale, die von einer Vorrichtung zu einer anderen unterschiedlich sind, erhalten werden aufgrund der Unterschiede von Vorrichtungseigenschaften zwischen individuellen Vorrichtungen, wie eine Torverzögerung. Eine Schaltung, die eine derartige Erscheinung bewirkt, oder eine Technologie hierfür wird ”physisch nicht klonbare Funktion” oder ”physisch nicht klonende Technologie” genannt (in der folgenden Beschreibung wird diese Technologie als ”PUF” bezeichnet), und es erwartet, dass eine derartige Technologie für Berechtigung, Verschlüsselung und andere Verwendungen benutzt wird.
-
Als ein Beispiel für PUF ist eine verwandte Technik bekannt, die eine in einem Ausgangssignal einer Kombinationsschaltung erzeugte Störspitze (Glitch) verwendet (siehe beispielsweise Patentdokument 1). Die 13 sind ein Diagramm, das eine Grundkonfiguration einer PUF (nachfolgend als ”Glitch-PUF” bezeichnet), die im Patentdokument 1 offenbart ist, illustriert, und erläuternde Diagramme für spezifische Signalverarbeitung. Eine Glitch-PUF 1301, die in 13(a) illustriert ist, enthält eine Datenregistergruppe 1320, eine Störspitzen-Erzeugungsschaltung 1330 und eine Bitumwandlungsschaltung 1340.
-
Die hier verwendete Störspitze ist eine Erscheinung, bei der der Wert eines Signals mit Intensität wiederholt zwischen 0 und 1 geändert wird, die in einem Übergangszustand beobachtet wird, in welchem sich der Wert des Signals ändert. Eine in einer Signalwellenform erzeugte Spitze wird auch als ”Glitch” bezeichnet.
-
In 13(a) ändert sich, wenn der Wert eines Eingangssignals 1311 in die Störspitzen-Erzeugungsschaltung 1330, die von der Kombinationsschaltung gebildet wird, geändert wird, der Wert eines Ausgangssignals 1312 entsprechend. Die Störspitze wird in dem Übergangszustand erzeugt, der andauert, bis die Änderung vollendet ist. Ein die Störspitze enthaltendes Signal wird nachfolgend als ”Glitchsignal” bezeichnet.
-
Der Glitch ändert sich in Abhängigkeit von den Eigenschaften der individuellen Vorrichtung, auf der die Störspitzen-Erzeugungsschaltung 1330 befestigt ist. Mit anderen Worten, selbst wenn dieselbe Störspitzen-Erzeugungsschaltung 1330 verwendet wird, sind die durch die jeweiligen Vorrichtungen erzeugten Glitches von einer Vorrichtung zu der anderen unterschiedlich. Angesichts dessen können Bits, die von einer Vorrichtung zu einer anderen unterschiedlich sind, erzeugt werden durch Bestimmen des Werts 0 oder 1 gemäß der Form des Glitches. Der Wert kann beispielsweise durch das folgende Verfahren bestimmt werden. Insbesondere wird bei dem Verfahren der Wert als 0 bestimmt, wenn die Anzahl von in dem Glitch enthaltenen Spitzen gerade ist, und der Wert wird als 1 bestimmt, wenn die Anzahl von Spitzen ungerade ist.
-
13(b) illustriert den vorbeschriebenen Fluss der Biterzeugungsverarbeitung, der von der Glitch-PUF 1301 durchgeführt wird. 13(c) illustriert ein Befestigungsbeispiel der Verarbeitung der Umwandlung der Störspitzenform in ein Bit, die von der Bitumwandlungsschaltung 1340 durchgeführt wird. 13(c) illustriert die Bitumwandlungsschaltung 1340, die ein T-Flipflop (nachfolgend als ”Trigger-FF” bezeichnet) verwendet, und ein Zeitdiagramm ihrer Operation.
-
Das Trigger-FF ist eine Schaltung, in der, wenn ein ansteigendes Signal einmal eingegeben wird, ein Ausgangswert invertiert wird (in 0 geändert wird, wenn er 1 ist und in 0 geändert wird, wenn er 1 ist). Ob die Anzahl von Spitzen, die in dem Störsignal enthalten sind, eine gerade oder eine ungerade ist, entspricht bei diesem Prinzip auf einer Eins-zu-eins-Basis, ob die Anzahl von Malen der Umkehrung des Ausgangssignals gerade oder ungerade ist, und entspricht als ein Ergebnis auf einer Eins-zu-eins-Basis, ob der Bitwert 0 oder 1 ist.
-
Durch die in den 13 illustrierte Verarbeitungsreihe wird ein Bit so erzeugt, dass es jedem Eingangssignal 1311 entspricht. Eine Bitfolge mit mehreren Bits kann erzeugt werden, indem diese Verarbeitung mehrere Male durchgeführt wird, während variiert wird, wie das Eingangssignal 1311 geändert wird. Insbesondere kann, wenn das in die Störspitzen-Erzeugungsschaltung 1330 einzugebende Eingangssignal n Bits hat, die Bitfolge mit 2n – 1 Bits erzeugt werden durch 2n – 1-maliges Ändern des Eingangssignals, das heißt, 0 → 1,0 → 2, ..., 0 → 2n – 1.
-
Zitierungsliste
-
Patentliteratur
-
- [Patentdokument 1] WO 11/086688 A1
-
Zusammenfassung der Erfindung
-
Technische Probleme
-
Jedoch hat die Konfiguration der im Patentdokument 1 offenbarten Glitch-PUF 1301 die folgenden Probleme. Ein Leistungsvermögen, das gezeigt wird, wenn die Glitch-PUF 1301 auf der Vorrichtung, wie einer FPGA und einer ASIC, befestigt ist, ist nicht bekannt, bis die Vorrichtung tatsächlich hergestellt ist. Demgemäß kann einem gewünschten Leistungsvermögen nicht genügt werden, wenn die Vorrichtung tatsächlich hergestellt ist. Das Leistungsvermögen ist in diesem Fall beispielsweise eine Informationsmenge und eine Fehlerrate.
-
Darüber hinaus kann, selbst wenn einem gewünschten Leistungsvermögen in einer Anfangsstufe nach der Herstellung der Vorrichtung genügt wird, einem gewünschten Leistungsvermögen bei einer altersmäßigen Verschlechterung der Vorrichtung im Verlauf der Zeit nicht länger genügt werden. Eine Beschreibung wird somit gegeben, weshalb die Informationsmenge aufgrund der altersmäßigen Verschlechterung der Vorrichtung abnimmt. Der Glitch wird erzeugt auf der Grundlage einer Verzögerungscharakteristik eines die Störspitzen-Erzeugungsschaltung 1330 bildenden Gates (Tors). Diese Verzögerungscharakteristik ändert sich mit der altersmäßigen Verschlechterung der Vorrichtung, und daher ändert sich ein Ausgangsmuster des Glitches auch mit der altersmäßigen Verschlechterung der Vorrichtung.
-
14 ist ein erläuterndes Diagramm, das den Zustand einer zeitlichen Änderung der Störspitzen-Erzeugungsschaltung in der Glitch-PUF des verwandten Standes der Technik illustriert. Wie in 14 illustriert ist, tritt, wenn sich eine Störspitzen-Erzeugungsschaltung 1430 mit der Zeit ändert, eine Situation auf, in der weniger Glitches oder kein Glitch erzeugt werden. Als eine Folge nimmt die erzeugte Informationsmenge ab. Dies geschieht beispielsweise deswegen, weil bei dem vorgenannten Verfahren des Bestimmens des Bits in Abhängigkeit davon, ob die Anzahl von Spitzen des Glitches geradzahlig oder ungeradzahlig ist, das Bit zu allen Zeiten den Wert 0 hat, wenn kein Glitch an der ersten Stelle erzeugt wird (die Anzahl von Spitzen ist 0).
-
Wenn einer gewünschten Informationsmenge oder Fehlerrate nicht genügt wird, führt dies zu einem Versagen bei der Erzeugung eines Identifizierers oder eines Verschlüsselungsschlüssels mit einer gewünschten Bitlänge, um ein Problem zu bewirken, dass die hergestellte Vorrichtung nicht normal arbeitet.
-
Die vorliegende Erfindung wurde gemacht, um die vorbeschriebenen Probleme zu lösen, und sie hat die Aufgabe, eine Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und ein Erzeugungsverfahren für vorrichtungsspezifische Informationen anzugeben, die in der Lage sind, einen Glitch auszugeben, der einem gewünschten Leistungsvermögen genügt, ohne einem Einfluss zu der Zeit der Herstellung einer Vorrichtung oder einem Einfluss der altersmäßigen Verschlechterung der Vorrichtung unterworfen zu sein.
-
Lösung der Probleme
-
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist eine Erzeugungsvorrichtung für vorrichtungsspezifische Informationen vorgesehen, enthaltend eine Biterzeugungseinheit zum Erzeugen spezifischer Informationen über eine Halbleitervorrichtung in der Halbleitervorrichtung, welche Biterzeugungseinheit enthält: eine Störspitzen-Erzeugungsschaltung zum Ausgeben eines Glitches, der in einem Ausgangssignal einer Kombinationsschaltung erzeugt wird; und eine Bitumwandlungsschaltung zum Umwandeln einer Form des Glitches in ein Informationsbit. Die Störspitzen-Erzeugungsschaltung enthält mehrere der Kombinationsschaltungen, die darauf befestigt sind, um als eine oberste Störspitzen-Erzeugungsschaltung für die Ausgabe mehrerer unterschiedlicher Glitches ausgestaltet zu sein. Die Biterzeugungseinheit enthält weiterhin eine Auswahlvorrichtung zum Empfangen eines Auswahlsignals von außerhalb, um einen Glitch aus den mehreren unterschiedlichen von der Störspitzen-Erzeugungseinheit ausgegebenen Glitches auszuwählen, und zum Ausgeben des ausgewählten einen Glitches zu der Bitumwandlungsschaltung. Die Erzeugungsvorrichtung für vorrichtungsspezifische Informationen enthält weiterhin eine Leistungsvermögensbewertungs-/Steuereinheit zum Ausgeben des Auswahlsignals in der Weise, dass der eine Glitch aufeinanderfolgend ausgewählt wird aus den mehreren unterschiedlichen Glitches, um jeweilige Stücke von von der Bitumwandlungsschaltung umgewandelten Bitinformationen zu erhalten, um den mehreren unterschiedlichen Glitches zu entsprechen, zum Spezifizieren eines Glitches, der einem gewünschten Leistungsvermögen genügt, auf der Grundlage der jeweiligen Stücke von Bitinformationen, und zum Spezifizieren des Auswahlsignals derart, dass der spezifizierte Glitch als die spezifische Information über die Halbleitervorrichtung ausgegeben wird.
-
Weiterhin ist weiterhin ist gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung ein Erzeugungsverfahren für vorrichtungsspezifische Informationen vorgesehen, das auf eine Erzeugungsvorrichtung für vorrichtungsspezifische Informationen anzuwenden ist, zum Erzeugen spezifischer Informationen über eine Halbleitervorrichtung in der Halbleitervorrichtung, welche Erzeugungsvorrichtung für vorrichtungsspezifische Informationen enthält: eine Störspitzen-Erzeugungsschaltung zum Ausgeben eines Glitches, der in einem Ausgangssignal einer Kombinationsschaltung erzeugt ist; und eine Bitumwandlungsschaltung zum Umwandeln einer Form des Glitches in ein Informationsbit. Das Erzeugungsverfahren für vorrichtungsspezifische Informationen enthält: Ausgeben eines Auswahlsignals für das Auswählen eines Glitches aus mehreren unterschiedlichen Glitches, die von mehreren der Kombinationsschaltungen, die auf der Störspitzen-Erzeugungsschaltung befestigt sind, ausgegeben wurden, um den ausgewählten einen Glitch zu der Bitumwandlungsschaltung auszugeben; Ausgeben des Auswahlsignals derart, dass der eine Glitch aufeinanderfolgend aus den mehreren unterschiedlichen Glitches ausgewählt wird, um jeweilige Stücke von durch die Bitumwandlungsschaltung umgewandelten Bitinformationen so zu erhalten, dass sie den mehreren unterschiedlichen Glitches entsprechen, und Spezifizieren eines Glitches, der einem gewünschten Leistungsvermögen genügt, auf der Grundlage der jeweiligen Stücke aus Bitinformationen; und Spezifizieren des Auswahlsignals derart, dass der spezifizierte Glitch als die spezifische Information über die Halbleitervorrichtung ausgegeben wird.
-
Vorteilhafte Wirkungen der Erfindung
-
Gemäß der Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und dem Erzeugungsverfahren für vorrichtungsspezifische Informationen nach einem Ausführungsbeispiel der vorliegenden Erfindung ist es durch Befestigen der mehreren Störspitzen-Erzeugungsschaltungen und Ermöglichen der Auswahl einer Störspitzen-Erzeugungsschaltung mit einem Leistungsvermögen nahe einem gewünschten aus den mehreren Störspitzen-Erzeugungsschaltungen möglich, die Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und das Erzeugungsverfahren für vorrichtungsspezifische Informationen zu erhalten, die in der Lage sind, den Glitch auszugeben, der einem gewünschten Leistungsvermögen genügt, ohne dem Einfluss zu der Zeit der Herstellung der Vorrichtung oder dem Einfluss der altersgemäßen Verschlechterung der Vorrichtung unterworfen zu sein.
-
Kurzbeschreibung der Zeichnungen
-
1 ist ein Diagramm, das eine Grundidee für eine Störspitzen-Erzeugungsschaltung einer Erzeugungsvorrichtung für vorrichtungsspezifische Informationen gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert.
-
2 ist ein erläuterndes Diagramm der Stabilität eines Glitches gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung.
-
3 ist ein Diagramm, das ein erstes Konfigurationsbeispiel für die Erzeugungsvorrichtung für vorrichtungsspezifische Informationen gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert.
-
4 ist ein Diagramm, das ein zweites Konfigurationsbeispiel für die Erzeugungsvorrichtung für vorrichtungsspezifische Informationen gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert.
-
5 ist ein Diagramm, das ein Konfigurationsbeispiel für eine Fehlerraten-Auswertungsschaltung, die in einer Leistungsvermögensauswertungs-/Steuereinheit gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung enthalten ist, illustriert.
-
Die 6 sind ein Diagramm, das ein Konfigurationsbeispiel für eine Erzeugungsvorrichtung für vorrichtungsspezifische Informationen zum Auswerten einer Informationsmenge gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert, und ein Diagramm, das ein Konfigurationsbeispiel für eine in einer Leistungsvermögensauswertungs-/Steuereinheit gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung enthaltene Informationsmengen-Auswertungsschaltung illustriert.
-
7 ist ein Diagramm, das ein Konfigurationsbeispiel für ein System enthaltend die Erzeugungsvorrichtung für vorrichtungsspezifische Informationen gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert.
-
8 ist ein Flussdiagramm für anfängliche Einstellungen, die durch eine in 7 illustrierte Glitch-PUF durchgeführt werden, gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung.
-
9 ist ein Flussdiagramm für Neueinstellungen, die durch die in 7 illustrierte Glitch-PUF durchgeführt werden, gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung.
-
10 ist ein Konfigurationsdiagramm einer Leistungsvermögensauswertungs-/Steuereinheit in einem Fall des Erzeugens eines Schlüssels gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung.
-
11 ist ein Flussdiagramm für anfängliche Einstellungen, die durch eine in 10 illustrierte Glitch-PUF durchgeführt wurden, gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung.
-
12 ist ein Flussdiagramm für Wiedereinstellungen, die von der in 10 illustrierten Glitch-PUF durchgeführt wurden, gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung.
-
Die 13 sind ein Diagramm, das eine Grundkonfiguration einer im Patentdokument 1 offenbarten PUF illustriert, und ein erläuterndes Diagramm der spezifischen Signalverarbeitung.
-
14 ist ein erläuterndes Diagramm, das einen Zustand der zeitlichen Änderung einer Störspitzen-Erzeugungsschaltung in einer Glitch-PEF des verwandten Standes der Technik illustriert.
-
Beschreibung der Ausführungsbeispiele
-
Er werden nun eine Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und ein Erzeugungsverfahren für vorrichtungsspezifische Informationen gemäß den bevorzugten Ausführungsbeispielen der vorliegenden Erfindung mit Bezug auf die begleitenden Zeichnungen beschrieben.
-
Erstes Ausführungsbeispiel
-
Eine Grundidee der vorliegenden Erfindung besteht darin, mehrere Schaltungen mit unterschiedlichen Eigenschaften als Störspitzen-Erzeugungsschaltungen zu befestigen. Die Anzahl von erzeugten Störspitzen dient als eine Charakteristik, und eine große Anzahl von Störspitzen-Erzeugungsschaltungen enthaltend eine Störspitzen-Erzeugungsschaltung, die wenige Störspitzen erzeugt, und eine Störspitzen-Erzeugungsschaltung, die viele Störspitzen erzeugt, sind befestigt. Für diesen Zweck sind insbesondere als eine Grundkonfiguration einfache und kleine logische Schaltungen in Reihe verbunden, um die Komplexität der Logik stufenweise zu erhöhen, damit die Anzahl von zu erzeugenden Störspitzen allmählich zunimmt.
-
1 ist ein Diagramm, das die Grundidee für eine Störspitzen-Erzeugungsschaltung einer Erzeugungsvorrichtung für vorrichtungsspezifische Informationen gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert. Eine in 1 illustrierte Störspitzen-Erzeugungsschaltung 130 enthält dieselben vier logischen Schaltungen A (entsprechend logischen Schaltungen 131(1) bis 131(4)), die in Reihe geschaltet sind. Die logische Schaltung A kann eine lineare Schaltung sowie eine nichtlineare Schaltung sein.
-
Wenn das in die Störspitzen-Erzeugungsschaltung 130 eingegebene Signal geändert wird, werden Störspitzen in Ausgangssignalen der jeweiligen logischen Schaltungen 131(1) bis 131(4) erzeugt. Diese Ausgangssignale sind Ausgangssignale der ersten, zweiten, dritten und vierten Stufe der Störspitzen-Erzeugungsschaltung mit denselben logischen Schaltungen A, die in Reihe geschaltet sind, und die logische Schaltung in einer weiteren Stufe erzeugt mehr Störspitzen.
-
Hierdurch tritt beispielsweise die folgende Situation in dem Beispiel nach 1 auf. Insbesondere hat das Ausgangssignal der logischen Schaltung 131(1) in der ersten Stufe wenige Störspitzen und eine geringe Informationsmenge. Andererseits haben die Ausgangssignale der logischen Schaltung 131(3) in der dritten Stufe und der logischen Schaltung 131(4) in der vierten Stufe viele Störspitzen und sind instabil. Demgegenüber hat das Ausgangssignal der logischen Schaltung 131(2) in der zweiten Stufe ein angemessenes Gleichgewicht zwischen den Störspitzen und der Stabilität.
-
Die Stabilität wird nun mit Bezug auf 2 beschrieben. 2 ist ein erläuterndes Diagramm für die Stabilität des Glitches gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung. Insbesondere illustriert 2 eine Situation, in der Glitches, deren Muster von einer Operation zu einer anderen unterschiedlich sind, als Antwort auf dasselbe Eingangssignal erzeugt werden und das erzeugte Bit jedes Mal unterschiedlich ist. Eine derartige Situation wird als ”instabiler Zustand” bezeichnet. In dem instabilen Zustand gibt es keine Reproduzierbarkeit der Bits zwischen den Operationen, was bedeutet, dass das erzeugte Bit nicht als Information verwendet werden kann. Mit anderen Worten, die Informationsmenge, die als die PUF verwendet werden kann, ist reduziert.
-
Gemäß 1 wird, wenn mehr Störspitzen erzeugt werden (entsprechend dem Ausgangssignal der logischen Schaltung 131(3) in der dritten Stufe oder dem Ausgangssignal der logischen Schaltung 131(4) in der vierten Stufe), die Informationsmenge größer, aber gleichzeitig ist der Zustand, in welchem viele Störspitzen erzeugt werden, instabil. Demgemäß nimmt, wenn die Stufen der logischen Schaltung A erhöht werden, um die Anzahl der Störspitzen zu erhöhen, die als die PUF zu verwendende Informationsmenge zuerst zu, aber nach der Zunahme beginnt die Informationsmenge zu einem gewissen Zeitpunkt abzunehmen. Dies ist die Grenze zwischen der zweiten Stufe und der dritten Stufe. Angesichts dessen ist, um sowohl die Anzahl von Störspitzen und die Stabilität zu erhalten, in dem in 1 illustrierten Beispiel die logische Schaltung 131(2) in der zweiten Stufe optimal für die Verwendung als die PUF.
-
Zusätzlich kann das Ausgangssignal der logischen Schaltung 131(3) in der dritten Stufe optimal als die PUF nach ihrer altersmäßigen Verschlechterung sein. Mit anderen Worten, obgleich viele Störspitzen vorhanden sind und das Ausgangssignal somit zu einer gegenwärtigen Zeit instabil ist, kann, wenn die logische Schaltung 131(3) weniger Störspitzen mit der altersmäßigen Verschlechterung ausgibt, das Ausgangssignal der logischen Schaltung 131(3) in der dritten Stufe als die PUF optimal sein.
-
Darüber hinaus kann das Ausgangssignal der logischen Schaltung 131(4) in der vierten Stufe als ein Zufallszahlengenerator anstelle der PUF verwendet werden. Mit anderen Worten, das Ausgangssignal der logischen Schaltung 131(4) in der vierten Stufe hat eine beträchtlich große Anzahl von Störspitzen, und daher ändert sich das Ausgangssignal jedes Mal und ist somit instabil, wie in 2 illustriert ist. Obgleich das Ausgangssignal der logischen Schaltung 131(4) in der vierten Stufe somit nicht als die PUF verwendet werden kann, kann das Ausgangssignal stattdessen als eine Zufallszahl verwendet werden.
-
Angesichts des vorbeschriebenen Prinzips wird als Nächstes eine interne Konfiguration der Erzeugungsvorrichtung für vorrichtungsspezifische Informationen gemäß dem ersten Ausführungsbeispiel mit Bezug auf mehrere illustrierte spezifische Beispiele beschrieben. 3 ist ein Diagramm, das ein erstes Konfigurationsbeispiel der Erzeugungsvorrichtung für vorrichtungsspezifische Informationen gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert. Eine in 3 illustrierte Glitch-PUF 301, die der Erzeugungsvorrichtung für vorrichtungsspezifische Informationen entspricht, enthält eine Biterzeugungseinheit 310 und eine Leistungsvermögensauswertungs-/Steuereinheit 350.
-
Die Biterzeugungseinheit 310 hat eine Funktion des Erzeugens von Bits und enthält eine Datenregistergruppe 320, eine oberste Störspitzen-Erzeugungsschaltung 330 und eine Bitumwandlungsschaltung 340. Die Leistungsvermögensauswertungs-/Steuereinheit 350 hat eine Funktion des Auswertens eines Leistungsvermögens des von der Biterzeugungseinheit 310 erzeugten Bits und auch eine Funktion des Steuerns der Biterzeugungseinheit 310, so dass die Biterzeugungseinheit 310 eine Störspitze mit einem Leistungsvermögen nahe einem gewünschten erzeugt.
-
Als Nächstes wird eine interne Konfiguration der Biterzeugungseinheit 310 im Einzelnen beschrieben. Die Datenregistergruppe 320 der Biterzeugungseinheit 310 ist eine Registergruppe zum Speichern von in die oberste Störspitzen-Erzeugungsschaltung 330 einzugebenden Daten.
-
Die oberste Störspitzen-Erzeugungsschaltung 330 enthält logische Schaltungen 331(1) bis 331(N), enthaltend N Stufen der gleichen logischen Schaltungen A, die in Reihe geschaltet sind, und eine Auswahlvorrichtung 332. Die Arbeitsweise der logischen Schaltungen 331(1) bis 331(N) ist hier dieselbe wie die der Störspitzen-Erzeugungsschaltung 130, die vier Stufen der logischen Schaltungen enthält und vorstehend mit Bezug auf 1 beschrieben wurde.
-
Auf der Grundlage eines von der Leistungsvermögensauswertungs-/Steuereinheit 350 ausgegebenen Auswahlsignals wählt die Auswahlvorrichtung 320 eines der Ausgangssignale der Stufen der logischen Schaltungen 331(1) bis 331(N) aus, um zu der Bitumwandlungsschaltung 340 geliefert zu werden, und schaltet das Ausgangssignal zu dem ausgewählten um. Die oberste Störspitzen-Erzeugungsschaltung 330 hat in der oben erwähnten Konfiguration eine solche Konfiguration, dass die Anzahl von erzeugten Störspitzen stufenweise erhöht wird, und sie ermöglicht weiterhin die Auswahl eines Glitches aus N Glitches auf der Grundlage des von der Leistungsvermögensauswertungs-/Steuereinheit 350 ausgegebenen Auswahlsignals.
-
Es ist zu beachten, dass, wie vorstehend mit Bezug auf 1 beschrieben ist, die logische Schaltung A sowohl eine lineare Schaltung als auch eine nichtlineare Schaltung sein kann. Als ein Beispiel für das Entwurfsverfahren ist eine derartige Konfiguration gegeben, dass eine einfache und kleine logische Schaltung als jede der logischen Schaltungen für den Zweck verwendet wird, eine Zunahme der Größe der Befestigung zu verhindern, und die Anzahl von Stufen N wird erhöht, um die Komplexität der Logik allmählich zu erhöhen.
-
4 ist ein Diagramm, das ein zweites Konfigurationsbeispiel für die Erzeugungsvorrichtung für vorrichtungsspezifische Informationen gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert. Die in 4 illustrierte Glitch-PUF 401, die der Erzeugungsvorrichtung für vorrichtungsspezifische Informationen entspricht, enthält eine Biterzeugungseinheit 410 und eine Leistungsvermögensauswertungs-/Steuereinheit 450. Die Biterzeugungseinheit 410 enthält eine Datenregistergruppe 420, eine oberste Störspitzen-Erzeugungsschaltung 430 und eine Bitumwandlungsschaltung 440.
-
Wenn das in 4 illustrierte zweite Konfigurationsbeispiel und das in 3 illustrierte vorbeschriebene erste Konfigurationsbeispiel miteinander verglichen werden, haben diese Konfigurationsbeispiele dieselben Grundkonfigurationen, sind aber voneinander verschieden in der internen Konfiguration der obersten Störspitzen-Erzeugungsschaltung. Die Beschreibung wird daher hauptsächlich hinsichtlich dieses Unterschieds gegeben. Die oberste Störspitzen-Erzeugungsschaltung 330 nach dem in 3 illustrierten vorbeschriebenen ersten Konfigurationsbeispiel erzeugt insgesamt N Glitchsignale durch Verbinden von N Stufen der logischen Schaltungen A und Auswählen eines der Ausgangssignale der jeweiligen Stufen.
-
Demgegenüber enthält die oberste Störspitzen-Erzeugungsschaltung 430 nach dem in 4 illustrierten zweiten Konfigurationsbeispiel N Störspitzen-Erzeugungsschaltungen 431(1) bis 431(N), die voneinander völlig unterschiedlich sind, und eine Auswahlvorrichtung 432. Mit anderen Worten, die oberste Störspitzen-Erzeugungsschaltung 430 hat N darauf befestigte Störspitzen-Erzeugungsschaltungen, die völlig verschieden voneinander sind, um N Glitchsignale zu erzeugen.
-
Als ein Beispiel für die Störspitzen-Erzeugungsschaltungen 431(1) bis 431(N) mit der Konfiguration nach 4 ist eine S-Box für einen Verschlüsselungsalgorithmus gegeben. S-Boxen für verschiedene Verschlüsselungsalgorithmen, wie DES, AES, MISTY und Camellia, können verwendet werden, um verschiedene Störspitzen-Erzeugungsschaltungen zu befestigen.
-
Als Nächstes werden die Leistungsvermögensauswertungs-/Steuereinheit 350 nach 3 und die Leistungsvermögensauswertungs-/Steuereinheit 450 nach 4 beschrieben. Sowohl die Leistungsvermögensauswertungs-/Steuereinheit 350 als auch die Leistungsvermögensauswertungs-/Steuereinheit 450 haben dieselbe Funktion, und eine spezifische Beschreibung der Funktion der Leitungsvermögensauswertungs-/Steuereinheit 350 mit nachfolgend mit Bezug auf 3 gegeben.
-
Die Leistungsvermögensauswertungs-/Steuereinheit 350 steuert die Auswahlvorrichtung 332 derart, dass die Auswahlvorrichtung 332 N Glitchsignale einzeln auswählt. Hierdurch kann die Bitumwandlungsschaltung 340 die Glitchsignale entsprechend den jeweiligen Stufen in Bits umwandeln, um Bits entsprechend den jeweiligen Stufen zu erzeugen. Die Leistungsvermögensauswertungs-/Steuereinheit 350 steuert die Auswahlvorrichtung 332, um Bits von einer gegebenen Stufe in einer wiederholenden Weise (zum Beispiel einhundertmal) zu erzeugen, und wenn die Auswahlvorrichtung 332 in dieser Weise gesteuert wird, vergleicht sie, als die Ausgangssignale der Bitumwandlungsschaltung 340, einen beim ersten Mal erhaltenen Wert mit Werten, die beim zweiten und nachfolgenden Malen erhalten wurden. Die Leistungsvermögensauswertungs-/Steuereinheit 350 kann auf diese Weise eine Fehlerrate auswerten.
-
5 ist ein Diagramm, das ein Konfigurationsbeispiel für eine Fehlerraten-Auswertungsschaltung illustriert, die in der Leistungsvermögensauswertungs-/Steuereinheit gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung enthalten ist. Eine Fehlerraten-Auswertungsschaltung 560 enthält ein Register 561 zum Aufrechterhalten eines beim ersten Mal erhaltenen Bitwerts, einen Komparator 562 zum Vergleichen des beim ersten Mal erhaltenen Bitwerts mit den Bitwerten, die beim zweiten und den nachfolgenden Malen erhalten wurden, und ein Register 563 zum Zählen der Anzahl von Malen, für die das Vergleichsergebnis anzeigt, dass zwei Werte nicht identisch sind, um die gezählte Anzahl von Malen festzuhalten.
-
Wenn das Vergleichsergebnis anzeigt, dass zwei Werte nicht identisch sind, erzeugt der Komparator 562 ein Freigabesignal für das Register 563. Das Register 563 kann die Anzahl von Malen zählen, bei denen zwei Werte nicht identisch sind, durch Erhöhen des Wertes des Registers um eins als Antwort auf das Freigabesignal. Wenn beispielsweise der Wert des Registers 563 gleich zehn ist, nachdem der Vergleich einhundertmal durchgeführt wurde, bestimmt die Fehlerraten-Auswertungsschaltung 560, dass die Fehlerrate 10% beträgt.
-
Wie vorstehend beschrieben ist, kann die Fehlerrate ausgewertet werden durch beispielsweise einhundertmaliges Wiederholen der Erzeugung des Bits durch dieselbe Vorrichtung und durch Verwenden der erzeugten einhundert Bitwerte. Andererseits sind, um die Informationsmenge auszuwerten, die für eine Vielzahl, beispielsweise einhundert, von verschiedenen Vorrichtungen erzeugten einhundert Bitwerte erforderlich. Es ist daher erforderlich, eine Situation zu schaffen, in der eine Vielzahl von Vorrichtungen in derselben Vorrichtung in einer simulierten Weise existiert.
-
Die 6 sind ein Diagramm, das ein Konfigurationsbeispiel für die Erzeugungsvorrichtung für vorrichtungsspezifische Informationen zum Auswerten der Informationsmenge gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert, und ein Diagramm, das ein Konfigurationsbeispiel für eine Informationsmengen-Auswertungsschaltung, die in einer Leistungsvermögensauswertungs-/Steuereinheit gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung enthalten ist, illustriert. Eine in 6(a) illustrierte Glitch-PUF 601, die der Erzeugungsvorrichtung für vorrichtungsspezifische Informationen entspricht, enthält ein Datenregistergruppe 620, M Toplevel-Störspitzen-Erzeugungsschaltungen 630(1) bis 630(M), eine Auswahlvorrichtung 632, eine Bitumwandlungsschaltung 640 und eine Leistungsvermögensauswertungs-/Steuereinheit 650.
-
Die Datenregistergruppe 620, die Auswahlvorrichtung 632, die Bitumwandlungsschaltung 640 und die Leistungsvermögensauswertungs-/Steuereinheit 650 haben dieselben Funktionen wie diejenigen der vorgenannten Datenregistergruppe 320, Auswahlvorrichtung 332, Bitumwandlungsschaltung 340 bzw. Leistungsvermögensauswertungs-/Steuereinheit 350, die in 3 illustriert sind.
-
Die M Toplevel-Störspitzen-Erzeugungsschaltungen 630(1) bis 630(M) sind gebildet durch Befestigen von M Toplevel-Störspitzen-Erzeugungsschaltungen, die jeweils der vorgenannten Toplevel-Störspitzen-Erzeugungsschaltung 330 in 3 oder der vorgenannten Toplevel-Störspitzen-Erzeugungsschaltung 430 in 4 (das heißt, eine mit N Störspitzen-Erzeugungsschaltungen, um N Glitchsignale zu erzeugen) entsprechen, auf der Vorrichtung mit demselben Layout.
-
Die Leistungsvermögensauswertungs-/Steuereinheit 650 steuert die Auswahlvorrichtung 632, um die Auswahl eines Ausgangssignals aus den Ausgangssignalen der M Toplevel-Störspitzen-Erzeugungsschaltungen 630(1) bis 630(M) zu ermöglichen. Hierdurch dient die Glitch-PUF 601 in einer simulierten Weise als die Glitch-PUFs für M Vorrichtungen, um Bits für M Vorrichtungen in einer simulierten Weise zu erzeugen. Die Glitch-PUF 601 kann die Informationsmenge auswerten durch Steuern der Leistungsvermögensauswertungs-/Steuereinheit 650 derart, dass sie eine statistische Verarbeitung der in einer simulierten Weise erzeugten M Bitwerte durchführt.
-
Die Informationsmenge eines gegebenen Bits wird gemessen auf der Grundlage beispielsweise der Shannon-Entropie. Die Shannon-Entropie wird wie folgt definiert: –p × log2(p) – (1 – p) × log2(1 – p) (1), worin p eine Wahrscheinlichkeit, dass das Bit gleich 0 ist, darstellt (1 – p ist die Wahrscheinlichkeit, dass das Bit gleich 1 ist). Es ist zu beachten, dass ”log2” eine logarithmische Funktion mit der Basis 2 ist.
-
Es ist erwünscht, dass die Informationsmenge durch Verwendung nur des Wertes p ausgewertet wird, da die Baugröße zunimmt, wenn die logarithmische Funktion implementiert wird. Der vorstehende Ausdruck (1) ist eine symmetrische konvexe Funktion, die den maximalen Wert annimmt, wenn p = 0,5 ist, und daher kann durch Verwendung des Wertes p bestimmt werden, ob die Informationsmenge grob groß oder klein ist. Angesichts dessen wird unter Bezugnahme auf 6(b) eine Funktion einer Informationsmengen-Auswertungsschaltung 670 beschrieben, die in der Leistungsvermögensauswertungs-/Steuereinheit 650 enthalten ist.
-
Die in 6(b) illustrierte Informationsmengen-Auswertungsschaltung 670 enthält einen Komparator 671 und zwei Register 672 und 673. Der Komparator 671 bestimmt, ob der durch die Bitumwandlungsschaltung 640 erzeugte Bitwert gleich 0 ist oder nicht, und erzeugt Freigabesignale für das Register 672 und das Register 673 auf der Grundlage des Ergebnisses der Bestimmung.
-
Das eine der Freigabesignale für die beiden Register 672 und 673 ist die Umkehrung des anderen. Das Register 672 hat die Funktion eines Zählers, dessen Wert erhöht wird, wenn der Bitwert gleich 0 ist, und das Register 673 hat die Funktion eines Zählers, dessen Wert erhöht wird, wenn der Bitwert gleich 1 ist. Durch Verwendung der Informationsmengen-Auswertungsschaltung 670 für die vorgenannten, von der Glitch-PUF 601 erzeugten M Bitwerte als die Leistungsvermögensauswertungs-/Steuereinheit 650 kann die Anzahl von Nullen und die Anzahl von Einsen in M Bits berechnet werden. Als eine Folge ist es möglich, die Informationsmenge auszuwerten.
-
Diese Schaltung kann auch für den Zweck der Auswertung einer Frequenz von 0/1 des Bits oder dergleichen bei der Zufallszahlenprüfung, die in der in den USA veröffentlichten NIST SP800-22 definiert ist, verwendet werden.
-
Als Nächstes wird ein Beispiel, in welchem die vorbeschriebene Biterzeugungseinheit und Leistungsvermögensauswertungs-/Steuereinheit als ein System enthaltend eine CPU sowie einen Speicher ausgestaltet sind, beschrieben. 7 ist ein Diagramm, das ein Konfigurationsbeispiel für das System enthaltend die Erzeugungsvorrichtung für vorrichtungsspezifische Informationen nach dem ersten Ausführungsbeispiel der vorliegenden Erfindung illustriert. Eine in 7 illustrierte Glitch-PUF 701, die der Erzeugungsvorrichtung für vorrichtungsspezifische Informationen entspricht, enthält eine Biterzeugungseinheit 710 und eine Leistungsvermögensauswertungs-/Steuereinheit 750.
-
Die Biterzeugungseinheit 710 enthält eine Datenregistergruppe 720, M Toplevel-Störspitzen-Erzeugungsschaltungen 730(1) bis 730(M), eine Auswahlvorrichtung 732 und eine Bitumwandlungsschaltung 740. In derselben Weise wie in 6(a) enthält die Biterzeugungseinheit 710 die M Toplevel-Störspitzen-Erzeugungsschaltungen 730(1) bis 730(M), die auf der Vorrichtung mit demselben Layout befestigt sind. Eine von der Biterzeugungseinheit 710 erzeugte Bitfolge wird in die Leistungsvermögensauswertungs-/Steuereinheit 750 eingegeben.
-
Die Leistungsvermögensauswertungs-/Steuereinheit 750 enthält eine Fehlerkorrekturschaltung 751, eine OWHF-Schaltung 752, eine Vergleichs-/Bestimmungsschaltung 753, eine Leistungsvermögens-Auswertungsschaltung 754 und eine Steuerschaltung 755. Die Fehlerkorrekturschaltung 751 ist eine Schaltung zum Korrigieren eines in der in die Leistungsvermögensauswertungs-/Steuereinheit 750 eingegebenen Bitfolge enthaltenen Fehlers. Die OWHF-Schaltung 752 ist eine Schaltung zum Erhalten eines Hash-Wertes der Bitfolge, deren Fehler korrigiert wurde.
-
Die Vergleichs-/Bestimmungsschaltung 753 ist eine Schaltung zum Vergleichen des erzeugten Hash-Wertes mit einem vorher erzeugten Hash-Wert. Die Leistungsvermögens-Auswertungsschaltung 754 ist eine Schaltung zum Auswerten eines Leistungsvermögens der in die Leistungsvermögensauswertungs-/Steuereinheit 750 eingegebenen Bitfolge. Die Steuerschaltung 755 ist eine Schaltung zum Steuern der Biterzeugungseinheit 710 auf der Grundlage des von der Vergleichs-/Bestimmungsschaltung 753 erhaltenen Ergebnisses der Bestimmung und des von der Leistungsvermögens-Auswertungsschaltung 754 erhaltenen Ergebnisses der Auswertung.
-
Zusätzlich ist die in 7 illustrierte Glitch-PUF 701 über einen Systembus 780 mit einer CPU 781, einem Speicher 782 und einer Ein-/Ausgabeeinheit 783 verbunden.
-
Als Nächstes wird die Arbeitsweise der Glitch-PUF 701 mit der Konfiguration nach 7 mit Bezug auf ein Flussdiagramm im Einzelnen beschrieben. 8 ist ein Flussdiagramm für anfängliche Einstellungen, die von der in 7 illustrierten Glitch-PUF 701 gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung durchgeführt werden. Darüber hinaus ist 9 ein Flussdiagramm für Wiedereinstellungen, die von der in 7 illustrierten Glitch-PUF 701 gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung durchgeführt werden.
-
Zuerst wird mit Bezug auf 8 eine Reihe von Verarbeitungsschritten für die anfänglichen Einstellungen schrittweise beschrieben.
-
Schritt S801: ein Schritt des Erhaltens eines Bits b (1, 1, 1) bis zu einem Bit b (N, M, 2n – 1) durch die Steuerschaltung 755. Ein erster Index i von b (i, j, k) ist eine Nummer der Störspitzen-Erzeugungsschaltung (i = 1, ..., N). Mit anderen Worten entspricht der Index i in 3 einer Nummer zum Auswählen irgendeiner der logischen Schaltungen 331(1) bis 331(N) und in 4 einer Nummer zum Auswählen irgendeiner der Störspitzen-Erzeugungsschaltungen 431(1) bis 431(N).
-
Ein zweiter Index j entspricht einer Nummer zum Auswählen irgendeiner der M Toplevel-Störspitzen-Erzeugungsschaltungen 730(1) bis 730(M), die mit demselben Layout befestigt sind (j = 1, ..., M). Ein dritter Index k ist eine Nummer, die ein Änderungsmuster eines Eingangssignals in die Störspitzen-Erzeugungsschaltung darstellt, und entspricht der Bitfolge mit 2n – 1 Bits, wenn das Eingangssignal n Bits hat.
-
Schritt S802: ein Schritt zum Auswerten des jeweiligen Leistungsvermögens der Bits b (1, 1, 1), ..., b (N, M, 2n – 1) durch die Leistungsvermögens-Auswertungsschaltung 754. Auf der Grundlage des Ergebnisses der Auswertung wählt die Leistungsvermögens-Auswertungsschaltung 754 den Index i (i = 1, ..., N) aus, der einem gewünschten Leistungsvermögen genügt, und hält den Index i in dem Speicher 782.
-
Es ist festzustellen, dass der Index j ein Index ist, der die Vorrichtung darstellt, die durch Befestigen von M Vorrichtungen in einer simulierten Weise erhalten wurde, um die Informationsmenge auszuwerten, und daher nach der Auswertung nur ein Wert tatsächlich als j verwendet zu werden braucht. In der folgenden Beschreibung wird angenommen, dass j = 1 verwendet wird.
-
Schritt S803: ein Schritt des Erzeugens eines Syndroms s durch die Fehlerkorrekturschaltung 751, das zum Korrigieren eines Fehlers einer Bitfolge w(i) = (b (i, 1, 1), ..., b (i, 1, 2n – 1)) entsprechend dem Index i, der einem gewünschten Leistungsvermögen genügt, wenn angenommen wird, dass j = 1 ist, erforderlich ist, und des Haltens des erzeugten Syndroms s in dem Speicher 782.
-
Schritt S804: ein Schritt des Berechnens eines Hash-Wertes h der Bitfolge w(i) durch die OWHF-Schaltung 752, um den berechneten Hash-Wert h in dem Speicher 782 zu halten.
-
Das Flussdiagramm für die anfänglichen Einstellungen ist nun beschrieben. Durch die vorbeschriebene Reihe von Verarbeitungsschritten kann die Leistungsvermögensauswertungs-/Steuereinheit 750 anfängliche Einstellungen des Index i, der einem gewünschten Leistungsvermögen entspricht, des Syndroms s, das zum Korrigieren eines Fehlers der Bitfolge w(i) erforderlich ist, und des Hash-Wertes h der Bitfolge w(i) vornehmen.
-
Als Nächstes wird mit Bezug auf 9 eine Reihe von Verarbeitungsschritten für Neueinstellungen schrittweise beschrieben.
-
Schritt S901: ein Schritt des Initialisierens des Wertes eines Zählers cnt auf 0 durch die Steuerschaltung 755. Der Zähler cnt stellt einen Zählwert für das Versagen der Fehlerkorrektur im Schritt S903 dar.
-
Schritt S902: ein Schritt des Steuerns der Biterzeugungseinheit 710 durch die Steuerschaltung 755, um eine Bitfolge w(i) entsprechend dem durch die vorbeschriebenen anfänglichen Einstellungen bestimmten Index i zu erzeugen. Die Steuerschaltung 755 liest den Index i aus dem Speicher 782. Die Steuerschaltung 755 erzeugt dann das Auswahlsignal zum Auswählen der Störspitzen-Erzeugungsschaltung i, und das Auswahlsignal wird dann in die Auswahlvorrichtung der Toplevel-Störspitzen-Erzeugungsschaltung 730(i) in einer ersten Stufe (entsprechend j = 1) eingegeben. Die Bitfolge w(i)' kann auf diese Weise erzeugt werden. Es ist festzustellen, dass das Symbol ”'” zu der Bitfolge w(i)' hinzugefügt ist, da die Bitfolge w(i)' üblicherweise einen Fehler enthält und somit einen Wert hat, der von dem der bei den anfänglichen Einstellungen erzeugten w(i) verschieden ist.
-
Schritt S903: ein Schritt des Durchführens einer Fehlerkorrekturverarbeitung bei der Bitfolge w(i)' durch die Fehlerkorrekturschaltung 751, um eine Bitfolge w(i)'' zu erhalten. Die Fehlerkorrekturschaltung 751 liest das bei den anfänglichen Einstellungen erzeugte Syndrom s für die Fehlerkorrektur aus dem Speicher 782, um eine Fehlerkorrekturverarbeitung bei der Bitfolge w(i)' durchzuführen. Es wird erwartet, dass die Bitfolge w(i)'' nach der Fehlerkorrektur mit der bei den anfänglichen Einstellungen erzeugten Bitfolge w(i) identisch ist.
-
Schritt S904: ein Schritt des Berechnens eines Hash-Werts h'' der Bitfolge w(i)'' durch die OWHF-Schaltung 752.
-
Schritt S905: ein Schritt des Vergleichens des Hash-Werts h'' mit dem Hash-Wert h, der bei den anfänglichen Einstellungen erzeugt wurde, durch die Vergleichs-/Bestimmungsschaltung 753, um die Verarbeitung in Abhängigkeit von dem Ergebnis des Vergleichs zu verzweigen. Wenn einer Beziehung h = h'' genügt ist, bedeutet dies, dass die im Schritt S903 durchgeführte Fehlerkorrektur erfolgreich ist, und die in anfänglichen Einstellungen erzeugte Bitfolge w(i) kann regeneriert werden. Andererseits ist, wenn einer Beziehung h ≠ h'' genügt wird, die im Schritt S903 durchgeführte Fehlerkorrektur fehlerhaft, und die bei den anfänglichen Einstellungen erzeugte Bitfolge w(i) kann nicht regeneriert werden.
-
Schritt S906: ein Schritt des Erhöhens des Wertes des Zählers cnt, der die Anzahl der fehlerhaften Fehlerkorrekturen darstellt, um 1 durch die Steuerschaltung 755, wenn der Beziehung h ≠ h'' im Schritt S905 genügt wird, um zum nächsten Schritt S907 weiterzugehen.
-
Schritt S907: ein Schritt des Bestimmens, ob der Wert des Zählers cnt einen vorbestimmten Schwellenwert U überschreitet oder nicht, durch die Steuerschaltung 755. Wenn der Zähler cnt U nicht überschreitet, geht die Verarbeitung zum Schritt S902 zurück, und die Steuerschaltung 755 erzeugt wieder die Bitfolge und führt die Fehlerkorrektur durch.
-
Schritt S908: ein Schritt des Ausgebens einer Fehlermitteilung, wenn der Beziehung cnt > U im Schritt S907 genügt wird, durch die Steuerschaltung 755. Dies bedeutet, dass die Steuerschaltung 755 bestimmt, dass die Bitfolge w(i) nicht regeneriert werden kann, selbst wenn die Bitfolgenerzeugung und die Fehlerkorrektur weiter fortgesetzt werden.
-
Schritt S909: ein Schritt des Bestimmens, wenn der Hash-Wert der Beziehung h = h'' im Schritt S905 genügt und die Regenerierung der Bitfolge w(i) somit erfolgreich ist, durch die Steuerschaltung 755, ob der Wert des Zählers cnt einen gegebenen Schwellenwert V überschreitet oder nicht. Wenn cnt V nicht überschreitet, beendet die Steuerschaltung 755 die Neueinstellungsverarbeitung. Es ist festzustellen, dass eine Beziehung zwischen U und V U > V genügt.
-
Schritt S910: ein Schritt des Durchführens der Verarbeitung der anfänglichen Einstellungen, um einen neuen Index i' auszuwählen, durch die Leistungsvermögensauswertungs-/Steuereinheit 750, wenn der Beziehung cnt > V im Schritt S909 genügt wird. Dies bedeutet, dass die Leistungsvermögensauswertungs-/Steuereinheit 750 bestimmt, dass die Schaltungseigenschaften sich beträchtlich geändert haben, da die Regenerierung der Bitfolge w(i) immer wieder fehlerhaft war, und die anfänglichen Einstellungen wieder bewirkt, bevor die Bitfolge w(i) nicht länger regeneriert werden kann, um den neuen i' wieder auszuwählen.
-
Das Flussdiagramm der Neueinstellungen ist nun beschrieben. Durch die vorgenannte Reihe von Verarbeitungsschritten kann die Leistungsvermögensauswertungs-/Steuereinheit 750 sicherstellen, dass der Glitch, der einem gewünschten Leistungsvermögen genügt (wie der Informationsmenge und der Fehlerrate) ausgegeben wird, ohne durch die Vorrichtungsherstellung oder die altersmäßige Verschlechterung der Vorrichtung beeinflusst zu sein, und kann wieder die anfänglichen Einstellungen durchführen, wenn dies notwendig ist.
-
Wie vorstehend beschrieben ist, sind gemäß dem ersten Ausführungsbeispiel die mehreren Störspitzen-Erzeugungsschaltungen so angebracht, dass die Informationsmengen dieser Schaltungen ausgewertet werden können. Es ist daher möglich, eine Möglichkeit zu erhöhen, dass der Glitch einem gewünschten Leistungsvermögen genügt, indem eine Auswahl der zu verwendenden Störspitzen-Erzeugungsschaltung aus den mehreren Störspitzen-Erzeugungsschaltungen ermöglicht wird. Es ist auch möglich, die Störspitzen-Erzeugungsschaltung auszuwählen, die tatsächlich einem gewünschten Leistungsvermögen genügt, durch Einschließen der Leistungsvermögensauswertungs-/Steuereinheit.
-
Zusätzlich stellen diese Merkmale sicher, dass die Glitch-PUF einer gewünschten Informationsmenge zu der Zeit der Herstellung der Vorrichtung und nach der altersmäßigen Verschlechterung der Vorrichtung genügt. Als eine Folge ist es beispielsweise möglich, sicherzustellen, dass eine Funktion einer hergestellten Vorrichtung, die die Glitch-PUF verwendet, normal arbeitet oder eine Garantieperiode für die Funktion weiter verlängert wird.
-
Darüber hinaus sind die mehreren Störspitzen-Erzeugungsschaltungen, insbesondere die Störspitzen-Erzeugungsschaltung, die die Störspitze häufig erzeugt und somit das erzeugte Bit jedes Mal variieren kann (niedrige Reproduzierbarkeit hat), angebracht, und eine Frequenz von 0/1 des erzeugten Bits oder dergleichen kann ausgewertet werden, und damit kann die Glitch-PUF als der Zufallszahlengenerator verwendet werden.
-
Zweites Ausführungsbeispiel
-
Bei dem vorbeschriebenen ersten Ausführungsbeispiel wurden die anfänglichen Einstellungen des Auswählens der optimalen Störspitzen-Erzeugungsschaltung und die Wiedereinstellungen, die vorzunehmen sind, wenn die Eigenschaften der Störspitzen-Erzeugungsschaltung sich geändert haben, beschrieben. Zusätzlich hierzu wird bei einem zweiten Ausführungsbeispiel der vorliegenden Erfindung ein spezifisches Anwendungsbeispiel der Verwendung der Störspitzen-Erzeugungsschaltung beschrieben.
-
Die Erzeugung der Bitfolge durch die Glitch-PUF kann verwendet werden, um einen für einen Verschlüsselungsalgorithmus zu verwendenden Schlüssel zu erzeugen. 10 ist ein Konfigurationsdiagramm einer Leistungsvermögensauswertungs-/Steuereinheit gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung in einem Fall des Erzeugens des Schlüssels. Eine Leistungsvermögensauswertungs-/Steuereinheit 1050 gemäß dem zweiten Ausführungsbeispiel enthält eine Fehlerkorrekturschaltung 1051, eine OWHF-Schaltung 1052, eine Vergleichs-/Bestimmungsschaltung 1053, eine Leistungsvermögens-Auswertungsschaltung 1054, eine Steuerschaltung 1055 und eine HF-Schaltung 1056. Die Konfiguration in 10 gemäß dem zweiten Ausführungsbeispiel enthält weiterhin eine Verschlüsselungsschaltung 1090.
-
Im Vergleich zu der Konfiguration in 7 gemäß dem vorbeschriebenen ersten Ausführungsbeispiel ist die Leistungsvermögensauswertungs-/Steuereinheit 1050 nach 10 gemäß dem zweiten Ausführungsbeispiel dadurch unterschiedlich, dass sie eine Hash-Funktion (HF-Schaltung 1056) enthält, um die Bitfolge zufällig zu machen. Die Arbeitsweise der HF-Schaltung 1056 ermöglicht, dass die durch eine Glitch-PUF 1001 erzeugte Bitfolge als der Schlüssel für den Verschlüsselungsalgorithmus zu verwenden ist.
-
Als Nächstes wird die Arbeitsweise der Glitch-PUF 1001 mit der Konfiguration nach 10 mit Bezug auf ein Flussdiagramm beschrieben. 11 ist ein Flussdiagramm für die anfänglichen, von der in 10 illustrierten Glitch-PUF 1001 nach dem zweiten Ausführungsbeispiel der vorliegenden Erfindung durchgeführten Einstellungen. Darüber hinaus ist 12 ein Flussdiagramm für von der in 10 illustrierten Glitch-PUF nach dem zweiten Ausführungsbeispiel der vorliegenden Erfindung durchgeführten Neueinstellungen.
-
Zuerst wird mit Bezug auf 11 eine Reihen von Verarbeitungsschritten der anfänglichen Einstellungen schrittweise beschrieben. Es ist festzustellen, dass dieses Flussdiagramm nach 11 dasjenige ist, in welchem eine auf die Schlüsselerzeugung bezogene Verarbeitung zu dem Flussdiagramm gemäß 8 für das erste Ausführungsbeispiel hinzugefügt ist. Insbesondere sind die Schritte S1102 bis S1105 die gleichen wie die Schritte S801 bis S804, und die Schritte S1101 und S1105 bis S1108 entsprechen Schritten, die als die auf die Schlüsselerzeugung bezogene Verarbeitung neu hinzugefügt sind.
-
Schritt S1101: ein Schritt des Eingebens eines Hauptschlüssels mk von einer Ein-/Ausgabeeinheit 1082 durch eine Verschlüsselungsschaltung 1090, um den eingegebenen Hauptschlüssel mk in einem internen Register zu halten.
-
Schritt S1102: ein Schritt des Erhaltens eines Bits b (1, 1, 1) bis zu einem Bit b (N, M, 2n – 1) durch die Steuerschaltung 1055.
-
Schritt S1103: ein Schritt des Auswertens des jeweiligen Leistungsvermögens des Bits b (1, 1, 1), ..., b (N, M, 2n – 1) durch die Leistungsvermögens-Auswertungsschaltung 1054. Auf der Grundlage des Ergebnisses der Auswertung wählt die Leistungsvermögens-Auswertungsschaltung 1054 den Index i (i = 1, ..., N) aus, der einem gewünschten Leistungsvermögen genügt, und hält den Index i in dem Speicher 1082.
-
Schritt S1104: ein Schritt des Erzeugens eines Syndroms s, das zum Korrigieren eines Fehlers einer Bitfolge w(i) = (b (i, 1, 1), ..., b (i, 1, 2n – 1)) entsprechend dem Index i, der einem gewünschten Leistungsvermögen genügt, wenn angenommen ist, dass j = 1 ist, erforderlich ist, durch die Fehlerkorrekturschaltung 1051, und des Haltens des erzeugten Syndroms s in dem Speicher.
-
Schritt S1105: ein Schritt des Berechnens eines Hash-Wertes h der Bitfolge w(i) durch die OWHF-Schaltung 1052, um den berechneten Hash-Wert h in dem Speicher 1082 zu halten.
-
Schritt S1106: ein Schritt des Berechnens eines Hash-Wertes k der Bitfolge w(i) durch die HF-Schaltung 1056, um den berechneten Hash-Wert k in dem internen Register der Verschlüsselungsschaltung 1090 zu halten. Dieser Wert k entspricht einem Verschlüsselungsschlüssel, der durch Verwendung der Glitch-PUF 1001 erzeugt wurde.
-
Schritt S1107: ein Schritt des Verschlüsselns des Hauptschlüssels mk unter Verwendung des im Schritt S1106 erzeugten Verschlüsselungsschlüssels k durch die Verschlüsselungsschaltung 1090, um verschlüsselte Daten x zu erhalten. Die Verschlüsselungsschaltung 1090 hält die verschlüsselten Daten x in dem Speicher 1082.
-
Schritt S1108: ein Schritt des Löschens des Hauptschlüssels mk und des Verschlüsselungsschlüssels k, die in dem internen Register gehalten werden, durch die Verschlüsselungsschaltung 1090.
-
In dem vorbeschriebenen Flussdiagramm nach 11 gibt es zwei Typen von Verschlüsselungsschlüssel, das heißt, mk und k, aber der Hauptschlüssel mk ist ein Schlüssel zum tatsächlichen Verschlüsseln der Daten, und der durch die Glitch-PUF erzeugte Verschlüsselungsschlüssel k ist ein Schlüssel zum Verschlüsseln des Hauptschlüssels mk. Der Grund, weshalb der Verschlüsselungsschlüssel k nicht zum Verschlüsseln der Daten verwendet wird, besteht darin, dass sich das Ausgangssignal der Glitch-PUF 1001 bei einer altersgemäßen Verschlechterung der Vorrichtung ändert und es zu einem gewissen Zeitpunkt deshalb unmöglich wird, denselben Verschlüsselungsschlüssel k wie den bei den anfänglichen Einstellungen erzeugten zu regenerieren.
-
Das Flussdiagramm für die anfänglichen Einstellungen ist nun beschrieben. Durch die Reihe von vorbeschriebenen Verarbeitungsschritten kann die Leistungsvermögensauswertungs-/Steuereinheit 1050 die anfänglichen Einstellungen des einem gewünschten Leistungsvermögen genügenden Index i, des Syndroms s, das für die Korrektur eines Fehlers der Bitfolge w(i) erforderlich ist, und des Hash-Werts h der Bitfolge w(i) durchführen. Die Leistungsvermögensauswertungs-/Steuereinheit 1050 kann weiterhin den Hauptschlüssel mk erhalten, den Verschlüsselungsschlüssel k erzeugen und die verschlüsselten Daten x erzeugen.
-
Als Nächstes wird mit Bezug auf 12 eine Reihe von Verarbeitungsschritten für Neueinstellungen schrittweise beschrieben. Es ist zu beachten, dass das Flussdiagramm nach 12 ein solches ist, bei dem eine auf eine Schlüsselverwaltung bezogene Verarbeitung zu dem Flussdiagramm in 9 für das erste Ausführungsbeispiel hinzugefügt ist. Genauer gesagt, die Schritte S1201 bis S1208 sind die gleichen wie die Schritte S901 bis S908, der Schritt S1211 ist derselbe wie der Schritt S909, und die Schritte S1209, S1210 und S1212 entsprechen Schritten, die als die auf die Schlüsselverwaltung bezogene Verarbeitung neu hinzugefügt sind.
-
Schritt S1201: ein Schritt des Initialisierens des Wertes des Zählers cnt auf 0 durch die Steuerschaltung 1055.
-
Schritt S1202: ein Schritt des Steuerns der Biterzeugungseinheit 1010 zur Erzeugung einer Bitfolge w(i)' entsprechend dem bei den vorbeschriebenen anfänglichen Einstellungen bestimmten Index i durch die Steuerschaltung 1055.
-
Schritt S1203: ein Schritt des Durchführens der Fehlerkorrekturverarbeitung bei der Bitfolge w(i)' durch die Fehlerkorrekturschaltung 1051, um eine Bitfolge w(i)'' zu erhalten.
-
Schritt S1204: ein Schritt des Berechnens eines Hash-Wertes h'' der Bitfolge w(i)'' durch die OWHF-Schaltung 1052.
-
Schritt S1205: ein Schritt des Vergleichens des Hash-Wertes h'' mit dem bei den anfänglichen Einstellungen erzeugten Hash-Wert h durch die Vergleichs-/Bestimmungsschaltung 1053, um die Verarbeitung in Abhängigkeit von dem Ergebnis des Vergleichs zu verzweigen.
-
Schritt S1206: ein Schritt des Erhöhens des Wertes des Zählers cnt, der den Zählwert der fehlerhaften Korrekturen darstellt, um 1 durch die Steuerschaltung 1055, wenn der Beziehung h ≠ h'' im Schritt S1205 genügt wird, um zum nächsten Schritt S1207 weiterzugehen.
-
Schritt S1207: ein Schritt des Bestimmens, ob der Wert des Zählers cnt einen vorbestimmten Schwellenwert U überschreitet oder nicht, durch die Steuerschaltung 1055. Wenn der Zähler cnt U nicht überschreitet, geht die Verarbeitung zum Schritt S1202 zurück, und die Steuerschaltung 1055 erzeugt wieder die Bitfolge und führt die Fehlerkorrektur durch.
-
Schritt S1208: ein Schritt des Ausgebens einer Fehlermeldung durch die Steuerschaltung 1055, wenn der Beziehung cnt > U im Schritt S1207 genügt wird.
-
Schritt S1209: ein Schritt des Berechnens des Hash-Wertes k der Bitfolge w(i)'' durch die HF-Schaltung 1056. Der Beziehung h = h'' wird im Schritt S1205 genügt, und daher wird einer Beziehung w(i)'' = w(i) ebenfalls genügt. Der hier berechnete Hash-Wert k ist daher identisch mit dem Hash-Wert k von w(i). Dies bedeutet, dass die Regenerierung des bei den anfänglichen Einstellungen erzeugten Schlüssels erfolgreich ist. Die OWHF-Schaltung 1052 hält den berechneten Hash-Wert k als einen regenerierten Schlüssel k in dem internen Register der Verschlüsselungsschaltung 1090.
-
Schritt S1210: ein Schritt des Verwendens des regenerierten Schlüssels k zum Dekodieren der Daten x durch die Verschlüsselungsschaltung 1090, um hierdurch den Hauptschlüssel mk zu erhalten. Die Verschlüsselungsschaltung 1090 hält den Hauptschlüssel mk in dem internen Register.
-
Schritt S1211: ein Schritt des Bestimmens, ob der Wert des Zählers cnt den gegebenen Schwellenwert V überschreitet oder nicht, durch die Steuerschaltung 1055. Wenn cnt V nicht überschreitet, geht die Steuerschaltung 1055 zu S1212 weiter.
-
Schritt S1212: ein Schritt des Verwendens des Hauptschlüssels mk, um die Verschlüsselungsverarbeitung durchzuführen, durch die Verschlüsselungsschaltung 1090.
-
Schritt S1213: ein Schritt des Durchführens der Verarbeitung für die anfänglichen Einstellungen, um einen neuen Index i' auszuwählen und mk unter Verwendung eines neuen Schlüssels k' entsprechend dem neuen Index i' zu verschlüsseln, durch die Leistungsvermögensauswertungs-/Steuereinheit 1050, wenn der Beziehung cnt > V im Schritt S1211 genügt wird. Dies bedeutet, dass die Leistungsvermögensauswertungs-/Steuereinheit 1050 bestimmt, dass sich die Schaltungseigenschaften bemerkenswert geändert haben, da die Regenerierung der Bitfolge w(i) immer wieder fehlgeschlagen ist, und die anfänglichen Einstellungen wieder durchführt, bevor die Bitfolge w(i) nicht länger regeneriert werden kann (was bedeutet, dass k nicht länger regeneriert werden kann), um den neuen Index i' wieder auszuwählen.
-
Das Flussdiagramm für die Neueinstellungen ist nun beschrieben. Durch die Reihe von vorbeschriebenen Verarbeitungsschritten kann die Leistungsvermögensauswertungs-/Steuereinheit 1050 sicherstellen, dass der Glitch, der einem gewünschten Leistungsvermögen (wie der Informationsmenge und der Fehlerrate) genügt, ausgegeben wird, ohne durch die Vorrichtungsherstellung oder die altersgemäße Verschlechterung der Vorrichtung beeinflusst zu sein, und die anfänglichen Einstellungen wieder vornehmen, wenn dies benötigt wird. Es ist auch möglich, eine Anwendung der auf die Schlüsselverwaltung bezogenen Verarbeitung zu realisieren.
-
Wie vorstehend beschrieben ist, ist es nach dem zweiten Ausführungsbeispiel möglich, den für den Verschlüsselungsalgorithmus zu verwendenden Schlüssel unter Verwendung der Erzeugung der Bitfolge durch die Glitch-PUF mit den vorstehend in dem ersten Ausführungsbeispiel beschriebenen Wirkungen zu erzeugen. Es ist daher möglich, die Anwendung auf die Verschlüsselungsverarbeitung zu realisieren.