-
HINTERGRUND
-
Ein integrierter Schaltkreis stellt eine Zusammenstellung elektronischer Schaltungen dar, die auf einem Halbleitersubstrat, wie zum Beispiel einem Siliziumkristall, mittels eines Halbleiterfertigungsprozesses gebildet werden. Oft können Fertigungsschwankungen und/oder Fehlausrichtungstoleranzen, die in dem Halbleiterfertigungsprozess vorkommen, dazu führen, dass integrierte Schaltkreise, die mittels des Halbleiterfertigungsprozesses hergestellt werden, sich voneinander unterscheiden. Zum Beispiel können unkontrollierbare zufällige physikalische Prozesse in dem Halbleiterfertigungsprozess kleine Differenzen, wie zum Beispiel Differenzen bei den Dotierungskonzentrationen, Oxiddicken, Kanallängen, strukturellen Breiten und/oder Parasiten, in den integrierten Schaltkreisen verursachen. Diese kleinen Differenzen werden innerhalb der Prozessgrenzen des Halbleiterfertigungsprozesses gehalten und beeinflussen gewöhnlich nicht das korrekte Funktionieren der integrierten Schaltkreise. Jedoch bewirken diese kleinen Differenzen, dass jeder der integrierten Schaltkreise physikalisch einmalig ist, ohne dass zwei integrierte Schaltkreise identisch wären. Physikalische nicht-clonbare Funktionen (Physical Unclonable Functions, PUFs) nutzen diese physikalische Einmaligkeit, um integrierte Schaltkreise voneinander zu unterscheiden. Die PUFs stellen Challenge-Response-Mechanismen dar, bei denen die Abbildung zwischen Challenges und ihren entsprechenden Responses von der komplexen und variablen Natur des physikalischen Materials, das zur Fertigung der integrierten Schaltkreise verwendet wird, abhängig sind. Wenn die integrierten Schaltkreise mit den Challenges konfrontiert werden, so generieren die integrierten Schaltkreise Zufalls-Responses, die von den physikalischen Eigenschaften der integrierten Schaltkreise selbst abhängig sind. Wenn die integrierten Schaltkreise mehrfach mit der gleichen Challenge konfrontiert werden, so generieren sie ähnliche Responses, die sich nur durch kleine Fehler unterscheiden, die durch einen zweckmäßigen Fehlerkorrekturmechanismus korrigiert werden können.
-
-
Figurenliste
-
Aspekte der vorliegenden Offenbarung werden am besten anhand der folgenden detaillierten Beschreibung verstanden, wenn sie zusammen mit den begleitenden Figuren gelesen wird. Es ist anzumerken, dass gemäß der üblichen Praxis in der Industrie verschiedene Merkmale nicht maßstabsgetreu gezeichnet sind. Die Abmessungen der verschiedenen Merkmale können vielmehr beliebig vergrößert oder verkleinert werden, um die Besprechung besser verständlich zu machen.
- 1 ist ein Blockschaubild von Physical Unclonable Function (PUF)-Schaltungen gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung.
- 2 ist ein Blockschaubild eines beispielhaften Client-Server-Vorrichtungs-Kommunikationssystems gemäß einer Ausführungsform der vorliegenden Offenbarung.
- 3 ist ein Blockschaubild eines beispielhaften Verschlüsselungsprozessors, der in dem beispielhaften Client-Server-Vorrichtungs-Kommunikationssystem gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert werden kann.
- 4 ist ein Blockschaubild von beispielhaften Verschlüsselungsverarbeitungsschaltungen, die in dem beispielhaften Verschlüsselungsprozessor gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert werden können.
- 5 ist ein Blockschaubild eines beispielhaften Entschlüsselungsprozessors, der in dem beispielhaften Client-Server-Vorrichtungs-Kommunikationssystem gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert werden kann.
- 6 ist ein Blockschaubild von beispielhaften Entschlüsselungsverarbeitungsschaltungen, die in dem beispielhaften Entschlüsselungsprozessor gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert werden können.
- 7 ist ein Flussdiagramm eines beispielhaften Betriebssteuerungsflusses eines Registrierungsprozesses zum Registrieren einer oder mehreren Client-Vorrichtungen bei einer Server-Vorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung.
-
DETAILLIERTE BESCHREIBUNG
-
Die folgende Offenbarung stellt viele verschiedene Ausführungsformen oder Beispiele zum Implementieren verschiedener Merkmale des hier besprochenen Gegenstandes bereit. Im Folgenden werden konkrete Beispiele von Komponenten und Anordnungen beschrieben, um die vorliegende Offenbarung zu vereinfachen. Diese sind natürlich nur Beispiele und dienen nicht der Einschränkung. Zum Beispiel kann die Ausbildung eines ersten Strukturelements über oder auf einem zweiten Strukturelement in der folgenden Beschreibung Ausführungsformen enthalten, bei denen die ersten und zweiten Strukturelemente in direktem Kontakt ausgebildet sind, und können auch Ausführungsformen enthalten, bei denen zusätzliche Strukturelemente zwischen den ersten und zweiten Strukturelementen ausgebildet sein können, so dass die ersten und zweiten Strukturelemente nicht unbedingt in direktem Kontakt stehen. Darüber hinaus kann die vorliegende Offenbarung Bezugszahlen und/oder - buchstaben in den verschiedenen Beispielen wiederholen. Diese Wiederholung schafft nicht automatisch eine Beziehung zwischen den verschiedenen besprochenen Ausführungsformen und/oder Konfigurationen.
-
ÜBERSICHT
-
Eine Client-Vorrichtung wird mittels eines Halbleiterfertigungsprozesses hergestellt. Ein oder mehrere unkontrollierbare zufällige physikalische Prozesse in dem Halbleiterfertigungsprozess können kleine Differenzen zwischen der Client-Vorrichtung und anderen Client-Vorrichtungen verursachen. Wenn die Client-Vorrichtung mit einer Challenge von einer Server-Vorrichtung konfrontiert wird, so generiert die Client-Vorrichtung eine Zufalls-Response, die von ihren physikalischen Eigenschaften abhängig ist. Die Server-Vorrichtung speichert diese Zufalls-Response als ein Teil einer virtuellen PUF-Schaltungs-Speichervorrichtung, die andere Zufalls-Responses von anderen Client-Vorrichtungen aufweist. Die Server-Vorrichtung verwendet die Zufalls-Response der Client-Vorrichtung, die in der virtuellen PUF-Schaltungs-Speichervorrichtung gespeichert ist, für einen oder mehrere Verschlüsselungsalgorithmen zum Verschlüsseln von Informationen, die an die Client-Vorrichtung übermittelt werden sollen.
-
BEISPIELHAFTE PHYSICAL UNCLONABLE FUNCTION (PUF)-SCHALTUNGEN
-
1 ist ein Blockschaubild von Physical Unclonable Function (PUF)-Schaltungen gemäß einer Ausführungsform der vorliegenden Offenbarung. Eine elektronische Vorrichtung 100 kann durch einen Halbleiterfertigungsprozess hergestellt werden. Wie in 1 veranschaulicht, kann die elektronische Vorrichtung 100 ein Speicher-Array 102 einer Datenspeichervorrichtung enthalten. Oft können Fertigungsschwankungen und/oder Fehlausrichtungstoleranzen, die es in dem Halbleiterfertigungsprozess gibt, dazu führen, dass sich das Speicher-Array 102 von anderen Speicher-Arrays anderer elektronischer Schaltungen unterscheidet, die in ähnlicher Weise entworfen und durch die Halbleiterfertigung hergestellt werden. Zum Beispiel können unkontrollierbare zufällige physikalische Prozesse im Halbleiterfertigungsprozess kleine Differenzen, wie zum Beispiel Differenzen bei den Dotierungskonzentrationen, Oxiddicken, Kanallängen, strukturellen Breiten und/oder Parasiten, zwischen diesen Speicher-Arrays verursachen. Diese kleinen Differenzen werden innerhalb der Prozessgrenzen des Halbleiterfertigungsprozesses gehalten und beeinflussen gewöhnlich nicht das korrekte Funktionieren dieser Speicher-Arrays. Jedoch bewirken diese kleinen Differenzen, dass jedes dieser Speicher-Arrays physikalisch einmalig ist, wobei keine zwei Speicher-Arrays identisch sind. Physical Unclonable Functions (PUFs) nutzen diese physikalische Einmaligkeit, um die elektronische Vorrichtung 100 von anderen elektronischen Vorrichtungen zu unterscheiden, die in ähnlicher Weise entworfen und durch die Halbleiterfertigung hergestellt werden. Wie in 1 veranschaulicht, enthält die elektronische Vorrichtung 100 Speicher-Array 102 und PUF-Schaltungen 104.
-
Das Speicher-Array 102 enthält Speicherzellen 106.1.1 bis 106.m.n, die in einer Gruppierung von m Spalten von m Bits und n Reihen von n Wörtern angeordnet sind. In dieser beispielhaften Ausführungsform können die Speicherzellen 106.1.1 bis 106.m.n mittels sechs Transistor (6T) Static Random-Access Memory (SRAM)-Zellen implementiert werden, jedoch sind auch andere Implementierungen möglich, wie der einschlägig bewanderte Fachmann erkennt, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. Ein oder mehrere unkontrollierbare zufällige physikalische Prozesse im Halbleiterfertigungsprozess können kleinen Differenzen, wie zum Beispiel Differenzen bei den Dotierungskonzentrationen, Oxiddicken, Kanallängen, strukturellen Breiten und/oder Parasiten, zwischen Transistoren von Speicherzellen 106.1.1 bis 106.m.n verursachen. Zum Beispiel enthält jede der Speicherzellen 106.1.1 bis 106.m.n eine kreuzgekoppelte invertierende Schaltung, die eine erste invertierende Schaltung aufweist, die mit einer zweiten invertierenden Schaltung kreuzgekoppelt ist. In diesem Beispiel können diese kleinen Differenzen bewirken, dass die erste invertierende Schaltung einer ersten Gruppe von Speicherzellen unter der einen oder den mehreren Speicherzellen 106.1.1 bis 106.m.n eine stärkere Response als die zweite invertierende Schaltung der ersten Gruppe von Speicherzellen hat. In dieser Situation speichert die erste Gruppe von Speicherzellen, die diese stärkere erste invertierende Schaltung aufweist, einen ersten logischen Wert, wie zum Beispiel eine logische Eins, wenn die erste Gruppe von Speicherzellen in einem unprogrammierten Betriebsmodus arbeitet, wie zum Beispiel beim Einschalten. Alternativ oder zusätzlich dazu können diese kleinen Differenzen bewirken, dass die zweite invertierende Schaltung eine zweite Gruppe von Speicherzellen unter der einen oder den mehreren Speicherzellen 106.1.1 bis 106.m.n eine stärkere Response als die erste invertierende Schaltung der zweiten Gruppe von Speicherzellen hat. In dieser Situation speichert die zweite Gruppe von Speicherzellen, die diese stärkere zweite invertierende Schaltung aufweist, einen zweiten logischen Wert, wie zum Beispiel eine logische Null, wenn die zweite Gruppe von Speicherzellen in dem unprogrammierten Betriebsmodus arbeitet.
-
Es kann für PUF-Schaltungen 104 vorteilhaft sein, die physikalische Einmaligkeit von Speicherzellen 106.1.1 bis 106.m.n, die aus dem einen oder den mehreren unkontrollierbaren zufälligen physikalischen Prozessen im Halbleiterfertigungsprozess resultieren, zu speichern, um eine Physical Unclonable Function (PUF) zu implementieren, damit die elektronische Vorrichtung 100 von anderen elektronischen Vorrichtungen, die in ähnlicher Weise entworfen und durch die Halbleiterfertigung hergestellt werden, unterschieden werden kann. Wie in 1 veranschaulicht, kommunizieren die PUF-Schaltungen 104 mit dem Speicher-Array 102, um ein oder mehrere Bits von Informationen zu lesen, die in einer oder mehreren der Speicherzellen 106.1.1 bis 106.m.n des Speicher-Arrays 102 gespeichert sind, wenn die Speicherzellen 106.1.1 bis 106.m.n in dem unprogrammierten Betriebsmodus arbeiten. Danach Speichern der PUF-Schaltungen 104 das eine oder die mehreren Bits von Informationen als eine oder mehrere Listungen, eine oder mehrere Tabellen, eine oder mehrere Dateien, eine oder mehrere Datenbanken und/oder einen sonstigen anderen Speichertyp, der dem einschlägig bewanderten Fachmann offenkundig ist, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. In einer beispielhaften Ausführungsform verwenden die PUF-Schaltungen 104 das eine oder die mehreren Bits von Informationen zum Implementieren einer „starken“ PUF. Die „starke“ PUF meint eine PUF, die ein komplexes Challenge-Response-Verhalten mit vielen möglichen Challenges aufweist, während eine „schwache“ PUF eine PUF meint, die sehr wenige Challenges aufweist. Die „schwache“ PUF braucht im Extremfall nur eine einzige feste Challenge zu enthalten.
-
Die PUF-Schaltungen 104 verknüpfen verschiedene Gruppierungen des einen oder der mehrere Bits von Informationen mit verschiedenen Responses und weisen diese verschiedenen Responses verschiedenen Challenges zu. In einigen Situationen Speichern der PUF-Schaltungen 104 diese Responses zusammen mit ihren entsprechenden Challenges als Challenge-Response-Paare. Aufgrund der unkontrollierbaren zufälligen physikalischen Prozesse des Halbleiterfertigungsprozesses bei der Herstellung von Speicherzellen 106.1.1 bis 106.m.n unterscheiden sich die in den PUF-Schaltungen 104 gespeicherten Challenge-Response-Paare von anderen Challenge-Response-Paaren anderer PUF-Schaltungen anderer elektronischer Vorrichtungen, die auf ähnliche Weise mittels des Halbleiterfertigungsprozesses hergestellt werden. Infolge dessen kann das Challenge-Response-Paar dafür verwendet werden, die elektronische Vorrichtung 100 von anderen elektronischen Vorrichtungen zu unterscheiden, die in ähnlicher Weise entworfen und durch den Halbleiterfertigungsprozess hergestellt werden. Wie zum Beispiel in 1 veranschaulicht, geben die PUF-Schaltungen 104 eine Response 152, die Challenge 150 entspricht. In einigen Situationen rufen die PUF-Schaltungen 104 ein Challenge-Response-Paar ab, das Challenge 150 entspricht. In diesen Situationen geben die PUF-Schaltungen 104 die Response dieses Challenge-Response-Paares, die Challenge 150 entspricht, als Response 152. Aufgrund der unkontrollierbaren zufälligen physikalischen Prozesse des Halbleiterfertigungsprozesses bei der Herstellung von Speicherzellen 106.1.1 bis 106.m.n ist die Response 152, die Challenge 150 entspricht, von anderen Responses anderer elektronischer Vorrichtungen, die in ähnlicher Weise entworfen und durch den Halbleiterfertigungsprozess hergestellt werden, verschieden, wenn diese anderen elektronischen Vorrichtungen mit einer ähnlichen Challenge 150 konfrontiert werden.
-
KOMMUNIKATION MITTELS PUFS
-
2 ist ein Blockschaubild eines beispielhaften Client-Server-Vorrichtungs-Kommunikationssystems gemäß einer Ausführungsform der vorliegenden Offenbarung. Ein Client-Server-Vorrichtungs-Kommunikationssystem 200 stellt eine verteilte Anwendungsstruktur dar, die eine oder mehrere Aufgaben oder Arbeitslasten zwischen einem Anbieter einer Ressource oder eines Dienstes, der als eine Server-Vorrichtung 202 bezeichnet wird, und einem oder mehreren Dienstanfordernden, die als Client-Vorrichtungen 204.1 bis 204.n bezeichnet werden, aufteilt. In einer beispielhaften Ausführungsform kann das Client-Server-Vorrichtungs-Kommunikationssystem 200 ein Intra-Vorrichtungs-Kommunikationssystem darstellen, wie zum Beispiel zwischen einem Prozessor und einem Speicher, in dem die Server-Vorrichtung 202 und Client-Vorrichtungen 204.1 bis 204.n auf einem oder mehreren Chips und/oder einer oder mehreren Waferscheiben in einem einzelnen Package gebildet werden. In einer weiteren beispielhaften Ausführungsform kann das Client-Server-Vorrichtungs-Kommunikationssystem 200 ein Inter-Vorrichtungs-Kommunikationssystem darstellen, in dem sich die Server-Vorrichtung 202 und Client-Vorrichtungen 204.1 bis 204.n in mehrere Packages befinden, die durch einen oder mehrere Kommunikationskanäle getrennt sind, wie zum Beispiel einen oder mehrere leitungsgebundene Kommunikationskanäle und/oder einen oder mehrere Drahtlos-Kommunikationskanäle. In dieser anderen beispielhaften Ausführungsform stehen die Client-Vorrichtungen 204.1 bis 204.n für einen oder mehrere Personalcomputer, Datenendgerät-Ausrüstung, eine oder mehrere Telefonievorrichtungen, wie zum Beispiel ein oder mehrere Mobiltelefone oder eine oder mehrere mobile Computervorrichtungen, um nur einige Beispiele zu nennen, ein oder mehrere Breitbandmedienwiedergabegeräte, ein oder mehrere netzwerkgesteuerte Geräte, ein oder mehrere Set-Top-Boxen und/oder andere Vorrichtungen, die in der Lage sind, Video, Audio und/oder Daten zu senden und/oder zu empfangen, wie dem einschlägig bewanderten Fachmann offenkundig ist.
-
In der beispielhaften Ausführungsform von 2 ist das Client-Server-Vorrichtungs-Kommunikationssystem 200 als ein bidirektionales Kommunikationssystem implementiert, das eine Kommunikation von verschlüsselten Informationen, wie zum Beispiel Video, Audio und/oder Daten, zwischen der Server-Vorrichtung 202 und Client-Vorrichtungen 204.1 bis 204.n ermöglicht. Wie in 2 gezeigt, enthalten Client-Vorrichtungen 204.1 bis 204.n entsprechende PUF-Schaltungen, wie zum Beispiel PUF-Schaltungen 104, aus den PUF-Schaltungen 208.1 bis 208.n. Obgleich die Client-Vorrichtungen 204.1 bis 204.n mittels des gleichen Halbleiterfertigungsprozesses hergestellt werden können, können unkontrollierbare zufällige physikalische Prozesse des Halbleiterfertigungsprozesses kleine Differenzen, wie zum Beispiel Differenzen bei den Dotierungskonzentrationen, Oxiddicken, Kanallängen, strukturellen Breiten und/oder Parasiten, zwischen den Client-Vorrichtungen 204.1 bis 204.n bewirken. Die physikalische Einmaligkeit der PUF-Schaltungen 208.1 bis 208.n, die aus dem einen oder den mehreren unkontrollierbaren zufälligen physikalischen Prozessen im Halbleiterfertigungsprozess resultiert, kann dafür verwendet werden, Physical Unclonable Functions (PUFs) zu implementieren, damit die Server-Vorrichtung 202 zwischen Client-Vorrichtungen 204.1 bis 204.n unterscheiden kann. Zum Beispiel in einer ähnlichen Weise, wie in 1 oben besprochen, geben die Client-Vorrichtungen 204.1 bis 204.n eindeutige Responses in Reaktion auf eine Challenge, die die Server-Vorrichtung 202 ausgibt. Wie unten besprochen, können die Server-Vorrichtung 202 und/oder Client-Vorrichtungen 204.1 bis 204.n diese Responses zum Verschlüsseln und/oder Entschlüsseln von Informationen verwenden.
-
Die Server-Vorrichtung 202 enthält eine virtuelle Abbildung der Responses der PUF-Schaltungen 208.1 bis 208.n auf verschiedene Challenges. Bevor verschlüsselte Kommunikationen zwischen der Server-Vorrichtung 202 und Client-Vorrichtungen 204.1 bis 204.n stattfinden können, durchlaufen die Client-Vorrichtungen 204.1 bis 204.n einen Registrierungsprozess zum Registrieren ihrer entsprechenden PUF-Schaltungen 208.1 bis 208.n bei der Server-Vorrichtung 202. Als Teil dieses Registrierungsprozess gibt die Server-Vorrichtung 202 eine Challenge an eine oder mehrere der Client-Vorrichtungen 204.1 bis 204.n aus. In einer beispielhaften Ausführungsform kann die Challenge eine Anforderung darstellen, auf ein oder mehrere Challenge-Response-Paare unter Challenge-Response-Paaren zuzugreifen, die in den PUF-Schaltungen 208.1 bis 208.n gespeichert sind. Wenn die eine oder die mehreren Client-Vorrichtungen 204.1 bis 204.n mit dieser Challenge konfrontiert werden, so generieren ihre entsprechenden PUF-Schaltungen 208.1 bis 208.n Zufalls-Responses, die von den physikalischen Eigenschaften der PUF-Schaltungen 208.1 bis 208.n selbst abhängig sind. Danach katalogisiert die Server-Vorrichtung 202 diese Responses, um die PUF-Schaltungen 208.1 bis 208.n virtuell abzubilden. Wie in 2 gezeigt, kann die Server-Vorrichtung 202 diese Responses in der Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 als eine oder mehrere Listungen, eine oder mehrere Tabellen, eine oder mehrere Dateien, eine oder mehrere Datenbanken und/oder einen sonstigen weiteren allgemein bekannten Speichertyp speichern, der dem einschlägig bewanderten Fachmann offenkundig ist, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. In einigen Situationen speichert die Server-Vorrichtung 202 diese Responses zusammen mit ihren entsprechenden Challenges als Challenge-Response-Paare in der Virtuelle-PUF-Schaltungs-Speichervorrichtung 206. In der beispielhaften Ausführungsform von 2 kann die Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 in virtuelle PUF-Schaltungen 210.1 bis 210.n entsprechend den PUF-Schaltungen 208.1 bis 208.n unterteilt werden.
-
Während des Betriebes fragt die Server-Vorrichtung 202 die Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 mit einer Zufalls- oder Pseudo-Zufalls-Challenge ab, um auf eine oder mehrere Responses unter den virtuellen PUF-Schaltungen 210.1 bis 210.n zuzugreifen, die einer ersten Client-Vorrichtung, wie zum Beispiel Client-Vorrichtung 204.1, Client-Vorrichtung 204.2 oder Client-Vorrichtung 204.n, unter der einen oder den mehreren Client-Vorrichtungen 204.1 bis 204.n entsprechen. Diese Challenge an die Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 kann eine Abfrage an die Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 nach der einen oder den mehreren Responses, oder einen Teil davon, von den virtuellen PUF-Schaltungen 210.1 bis 210.n, die der ersten Client-Vorrichtung entsprechen, darstellen. Danach antwortet die Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 auf die Challenge mit einer Response, die der eindeutigen Response, oder einem Teil davon, der ersten Client-Vorrichtung entspricht, die in den virtuellen PUF-Schaltungen 210.1 bis 210.n gespeichert ist, die der ersten Client-Vorrichtung entsprechen. Als Nächstes verwendet die Server-Vorrichtung 202 die durch die Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 gegebene Response für einen oder mehrere Verschlüsselungsalgorithmen zum Verschlüsseln von Informationen, die an die erste Client-Vorrichtung übermittelt werden sollen. Der eine oder die mehreren Verschlüsselungsalgorithmen können einen asymmetrischen Verschlüsselungsalgorithmus, eine kryptografische Hash-Funktion, einen Pseudo-Zufallszahl-Generator, einen Schlüsselaustauschalgorithmus, eine Schlüsselableitungsfunktion, einen geheimen Weitergabealgorithmus, eine symmetrische Verschlüsselung und/oder oder einen sonstigen anderen zweckmäßigen Verschlüsselungsalgorithmus oder Kombinationen von Verschlüsselungsalgorithmen enthalten, wie dem einschlägig bewanderten Fachmann offenkundig ist, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. Zum Beispiel verwendet die Server-Vorrichtung 202 die von der Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 gegebene Response als einen Keim für den einen oder die mehreren Verschlüsselungsalgorithmen. Danach übermittelt die Server-Vorrichtung 202 die verschlüsselten Informationen und die an die Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 ausgegebene Challenge an die erste Client-Vorrichtung.
-
Nach dem Empfang der verschlüsselten Informationen und der Challenge von der Server-Vorrichtung 202 fragt die erste Client-Vorrichtung ihre entsprechenden PUF-Schaltungen unter den PUF-Schaltungen 208.1 bis 208.n unter Verwendung der von der Server-Vorrichtung 202 empfangenen Challenge ab. Anschließend antworten diese PUF-Schaltungen auf die von der Server-Vorrichtung 202 empfangene Challenge mit einer Response, die mit der Response von der Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 übereinstimmt, was es der ersten Client-Vorrichtung ermöglicht, die von der Server-Vorrichtung 202 empfangenen verschlüsselten Informationen zu entschlüsseln. Als Nächstes verwendet die erste Client-Vorrichtung diese von ihren PUF-Schaltungen gegebene Response für einen oder mehrere Entschlüsselungsalgorithmen zum Entschlüsseln der von der Server-Vorrichtung 202 empfangenen verschlüsselten Informationen. Der eine oder die mehreren Entschlüsselungsalgorithmen können einen asymmetrischen Verschlüsselungsalgorithmus, eine kryptografische Hash-Funktion, einen Pseudo-Zufallszahl-Generator, einen Schlüsselaustauschalgorithmus, eine Schlüsselableitungsfunktion, einen geheimen Weitergabealgorithmus, eine symmetrische Verschlüsselung und/oder oder einen sonstigen anderen zweckmäßigen Entschlüsselungsalgorithmus oder Kombinationen von Entschlüsselungsalgorithmen enthalten, wie dem einschlägig bewanderten Fachmann offenkundig ist, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen.
-
Der Verschlüsselungs-/Entschlüsselungsprozess, wie oben beschrieben, verhindert einen unbefugten Zugriff auf die verschlüsselten Informationen, die von der Server-Vorrichtung 202 zu der ersten Client-Vorrichtung gesendet werden. Wie oben beschrieben, enthalten die PUF-Schaltungen 208.1 bis 208.n untereinander kleine Differenzen, wie zum Beispiel Differenzen bei den Dotierungskonzentrationen, Oxiddicken, Kanallängen, strukturellen Breiten und/oder Parasiten. Sollte also eine unbefugte, zweite Client-Vorrichtung unter der einen oder den mehreren Client-Vorrichtungen 204.1 bis 204.n ihre entsprechenden PUF-Schaltungen unter den PUF-Schaltungen 208.1 bis 208.n mit der von der Server-Vorrichtung 202 empfangenen Challenge, die der ersten Client-Vorrichtung entspricht, abfragen, so würde sich die durch ihre entsprechenden PUF-Schaltungen gegebene Response von der Response der Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 unterscheiden. Darum wäre die zweite Client-Vorrichtung nicht in der Lage, zu die von der Server-Vorrichtung 202 empfangenen Informationen entschlüsseln, sollte die zweite Client-Vorrichtung die Response ihrer entsprechenden PUF-Schaltungen auf die von der Server-Vorrichtung 202 empfangene Challenge verwenden.
-
BEISPIELHAFTER VERSCHLÜSSELUNGSPROZESSOR
-
3 ist ein Blockschaubild eines beispielhaften Verschlüsselungsprozessors, der in dem beispielhaften Client-Server-Vorrichtungs-Kommunikationssystem gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert werden kann. Ein Verschlüsselungsprozessor 300 verschlüsselt Informationen 350 gemäß einem des einen oder der mehreren Verschlüsselungsalgorithmen, wie oben in 1 besprochen, um verschlüsselte Informationen 352 bereitzustellen. Der Verschlüsselungsprozessor 300 kann in einer Server-Vorrichtung implementiert werden, wie zum Beispiel der Server-Vorrichtung 202, und/oder einer Client-Vorrichtung, wie zum Beispiel einer oder mehreren der Client-Vorrichtungen 204.1 bis 204.n. In der beispielhaften Ausführungsform, die in 3 veranschaulicht ist, enthält der Verschlüsselungsprozessor 300 Verschlüsselungsschaltungen 302 und PUF-Schaltungen 304.
-
Wie in 3 veranschaulicht, fragen die Verschlüsselungsschaltungen 302 die PUF-Schaltungen 304 mit einer Challenge 354 ab und empfangen eine Response 356 in Reaktion auf die Challenge 354. Wenn der Verschlüsselungsprozessor 300 in der Client-Vorrichtung implementiert ist, so generieren die PUF-Schaltungen 304 die Response 356, die eine eindeutige Reaktion der Client-Vorrichtung darstellt, die von den physikalischen Eigenschaften der Client-Vorrichtung abhängig ist, in Reaktion auf die Challenge 354. Wenn der Verschlüsselungsprozessor 300 hingegen in der Server-Vorrichtung implementiert ist, so nehmen die PUF-Schaltungen 304 eine virtuelle Abbildung einer oder mehreren der PUF-Schaltungen, oder von Teilen davon, einer Client-Vorrichtung unter Client-Vorrichtungen, die bei der Server-Vorrichtung registriert sind, wie zum Beispiel einer oder mehreren der PUF-Schaltungen 208.1 bis 208.n der Client-Vorrichtungen 204.1 bis 204.n, als Response 356 vor. Danach verwenden die Verschlüsselungsschaltungen 302 die Response 356 für einen oder mehrere der Verschlüsselungsalgorithmen zum Verschlüsseln von Informationen 350, um die verschlüsselten Informationen 352 bereitzustellen.
-
In einer beispielhaften Ausführungsform können die PUF-Schaltungen 304 eine beispielhafte Ausführungsform einer oder mehreren der PUF-Schaltungen 208.1 bis 208.n darstellen, wenn der Verschlüsselungsprozessor 300 in der Client-Vorrichtung implementiert ist. Alternativ oder zusätzlich stellen die PUF-Schaltungen 304 eine virtuelle Abbildung der Responses der bei der Server-Vorrichtung registrierten Client-Vorrichtungen auf verschiedene Challenges dar, wenn der Verschlüsselungsprozessor 300 in der Server-Vorrichtung implementiert ist. In einer weiteren beispielhaften Ausführungsform können die PUF-Schaltungen 304 ein Speichermedium enthalten, wie zum Beispiel flüchtigen Speicher, wie zum Beispiel Direktzugriffsspeicher (RAM), und/oder nicht-flüchtigen Speicher, wie zum Beispiel Nurlesespeicher (ROM). Der RAM kann zum Beispiel in einer dynamischen Direktzugriffsspeicher (DRAM)-, einer statischen Direktzugriffsspeicher (SRAM)- und/oder einer nicht-flüchtigen Speicher (NVM)-Konfiguration implementiert werden. Die PUF-Schaltungen 304 können diese Responses als eine oder mehrere Listungen, eine oder mehrere Tabellen, eine oder mehrere Dateien, eine oder mehrere Datenbanken und/oder einen sonstigen weiteren allgemein bekannten Speichertyp, der dem einschlägig bewanderten Fachmann offenkundig ist, speichern, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. In einigen Situationen Speichern der PUF-Schaltungen 304 diese Responses zusammen mit ihren entsprechenden Challenges als Challenge-Response-Paare. In einer weiteren beispielhaften Ausführungsform können die PUF-Schaltungen 304 eine beispielhafte Ausführungsform der Virtuelle-PUF-Schaltungs-Speichervorrichtung 206 darstellen, wenn der Verschlüsselungsprozessor 300 in der Server-Vorrichtung implementiert ist.
-
BEISPIELHAFTE VERSCHLÜSSELUNGSVERARBEITUNGSSCHALTUNGEN, DIE IN DEM VERSCHLÜSSELUNGSPROZESSOR IMPLEMENTIERT WERDEN KÖNNEN
-
4 ist ein Blockschaubild von beispielhaften Verschlüsselungsverarbeitungsschaltungen, die in dem beispielhaften Verschlüsselungsprozessor gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert werden können. Die Verschlüsselungsverarbeitungsschaltungen 400 verschlüsseln Informationen 450 unter Verwendung von Responses 452, um verschlüsselte Informationen 454 bereitzustellen. Wie in 4 veranschaulicht, enthalten die Verschlüsselungsverarbeitungsschaltungen 400 logische exklusive OR-Gatter 402.1 bis 402.L und Zählschaltungen 404. Die Verschlüsselungsverarbeitungsschaltungen 400 können eine beispielhafte Ausführungsform von Verschlüsselungsschaltungen 302 darstellen.
-
In der beispielhaften Ausführungsform von 4 können Informationen 450 einen seriellen Stream von Video, Audio und/oder Daten enthalten. Wie in 4 gezeigt, kann dieser serielle Stream von Video, Audio und/oder Daten logisch in Meldungen M1 bis ML getrennt sein. Die Meldungen M1 durch ML können eine ähnliche oder eine unterschiedliche Anzahl von Bits und/oder Bytes enthalten, auch als Bit-Länge bezeichnet.
-
Die logischen exklusiven OR-Gatter 402.1 bis 402.L vollführen eine logische exklusive OR-Operation zwischen den Meldungen M1 bis ML und Responses 452, um die verschlüsselten Informationen 454 bereitzustellen. Jedoch erkennt der einschlägig bewanderte Fachmann, dass die Verschlüsselungsverarbeitungsschaltungen 400 und/oder die Entschlüsselungsverarbeitungsschaltungen 600, die weiter unten noch ausführlicher zu besprechen sind, auch mittels eines oder mehreren anderer Logik-Gatter implementiert werden können, wie zum Beispiel logischer exklusiver NOR-Gatter, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. Allgemein ausgedrückt, sind dieses eine oder diese mehreren Logik-Gatter dadurch gekennzeichnet, dass sie eine im Wesentlichen gleiche Wahrscheinlichkeit aufweisen, einen ersten logischen Wert, wie zum Beispiel eine logische eins, oder einen zweiten logischen Wert, wie zum Beispiel eine logische Null, bereitzustellen. Wie in 4 veranschaulicht, enthalten die Responses 452 Responses R(chj + aO) bis R(chj + aL). In einer beispielhaften Ausführungsform sind die Responses R(chj + aO) bis R(chj + aL) eindeutige Responses einer Client-Vorrichtung, wie zum Beispiel einer der Client-Vorrichtungen 204.1 bis 204.n, die von den physikalischen Eigenschaften der Client-Vorrichtung abhängig sind, wie oben besprochen, in Reaktion auf die Challenges ch[j] bis ch[j] + aL. Zum Beispiel sind die Response R(chj + aO) und die Response R(chj + aL) eine eindeutige Response der Client-Vorrichtung in Reaktion auf die Challenge ch[j] + aO und die Challenge ch[j] + aL. In einer weiteren beispielhaften Ausführungsform sind die Responses R(chj + aO) bis R(chj + aL) eindeutige Responses einer Server-Vorrichtung, die als eine virtuelle Abbildung einer oder mehreren PUF-Schaltungen, oder von Teilen davon, einer Client-Vorrichtung unter Client-Vorrichtungen, die bei der Server-Vorrichtung registriert sind, wie zum Beispiel einer oder mehreren der PUF-Schaltungen 208.1 bis 208.n der Client-Vorrichtungen 204.1 bis 204.n, gespeichert werden.
-
Während des Betriebes generieren die Server-Vorrichtung und/oder die Client-Vorrichtung nach dem Zufallsprinzip die Challenge ch[j] + a0, um die Response R(chj + a0), die eine ähnliche Bit-Länge hat, auf die Meldung M1 bereitzustellen. Danach generieren die Server-Vorrichtung und/oder die Client-Vorrichtung eine Sequenz von Challenges ch[j] + a1 bis ch[j] + aL durch Erhöhen und/oder Verringern der Challenge ch[j] + a0 um Challenge-Koeffizienten a1 bis aL. In einer beispielhaften Ausführungsform verkörpern die Challenge-Koeffizienten a1 bis aL Werte, die in den Zählschaltungen 404 gespeichert sind, die für jede Challenge unter den Challenges ch[j] + a1 bis ch[j] + aL erhöht und/oder verringert werden. Jedoch erkennt der einschlägig bewanderte Fachmann, dass auch andere Challenge-Koeffizienten a1 bis aL möglich sind, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. Zum Beispiel können diese anderen Challenge-Koeffizienten a1 bis aL Koeffizienten eines mathematischen Polynoms darstellen, wie zum Beispiel a1 × xL + a2 × X(L-1)... aL, oder können mit Hilfe eines Zufalls- oder Pseudo-Zufallszahl-Generators generiert werden. Und schließlich führen die logischen exklusiven OR-Gatter 402.1 bis 402.L die logischen exklusiven OR-Operation zwischen den Meldungen M1 bis ML und ihren entsprechenden Responses R(chj + a0) bis R(chj + aL) aus, um ihre entsprechenden verschlüsselten Informationen C1 bis CL als verschlüsselte Informationen 454 bereitzustellen. Jedoch erkennt der einschlägig bewanderte Fachmann, dass jede beliebige Kombination aus einem oder mehreren logischen OR-Gattern, einem oder mehreren logischen AND-Gattern und einem oder mehreren logischen INVERTER-Gattern alternativ oder zusätzlich zu den logischen exklusiven OR-Gatter 402.1 bis 402.L verwendet werden kann, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. Der einschlägig bewanderte Fachmann erkennt, dass diese Kombination aus Logik-Gattern eine im Wesentlichen ähnliche Funktion ausführt wie die logischen exklusiven OR-Gatter 402.1 bis 402.L, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen.
-
BEISPIELHAFTER ENTSCHLÜSSELUNGSPROZESSOR
-
5 ist ein Blockschaubild eines beispielhaften Entschlüsselungsprozessors, der in dem beispielhaften Client-Server-Vorrichtungs-Kommunikationssystem gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert werden kann. Ein Entschlüsselungsprozessor 500 entschlüsselt verschlüsselte Informationen 550 gemäß einem des einen oder der mehreren Entschlüsselungsalgorithmen, wie oben in 1 besprochen, um die Informationen 552 bereitzustellen. Der Entschlüsselungsprozessor 500 kann in einer Server-Vorrichtung, wie zum Beispiel der Server-Vorrichtung 202, und/oder einer Client-Vorrichtung, wie zum Beispiel einer oder mehreren der Client-Vorrichtungen 204.1 bis 204.n, implementiert werden. In der in 5 veranschaulichten beispielhaften Ausführungsform enthält der Entschlüsselungsprozessor 500 PUF-Schaltungen 304 und Entschlüsselungsschaltungen 502.
-
Wir wenden uns 5 zu. Die Entschlüsselungsschaltungen 502 fragen die PUF-Schaltungen 304 mit einer Challenge 554 ab und empfangen eine Response 556 in Reaktion auf die Challenge 554. Wenn der Entschlüsselungsprozessor 500 in der Client-Vorrichtung implementiert ist, so generieren die PUF-Schaltungen 304 eine Response 556, die eine eindeutige Response der Client-Vorrichtung darstellt, die von den physikalischen Eigenschaften der PUF-Schaltungen 304 abhängig ist, in Reaktion auf die Challenge 554. Wenn hingegen der Entschlüsselungsprozessor 500 in der Server-Vorrichtung implementiert ist, so erzeugen die PUF-Schaltungen 304 eine virtuelle Abbildung einer oder mehreren PUF-Schaltungen, oder von Teilen davon, einer Client-Vorrichtung unter Client-Vorrichtungen, die bei der Server-Vorrichtung registriert sind, wie zum Beispiel einer oder mehreren PUF-Schaltungen 208.1 bis 208.n der Client-Vorrichtungen 204.1 bis 204.n, als Response 556. Danach verwenden die Entschlüsselungsschaltungen 502 die Response 556 für eine oder mehrere der Entschlüsselungsalgorithmen zum Entschlüsseln verschlüsselter Informationen 550, um die Informationen 552 bereitzustellen.
-
BEISPIELHAFTE VERSCHLÜSSELUNGSVERARBEITUNGSSCHALTUNGEN, DIE IN DEM VERSCHLÜSSELUNGSPROZESSOR IMPLEMENTIERT WERDEN KÖNNEN
-
6 ist ein Blockschaubild von beispielhaften Entschlüsselungsverarbeitungsschaltungen, die in dem beispielhaften Entschlüsselungsprozessor gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert werden können. Die Entschlüsselungsverarbeitungsschaltungen 600 entschlüsseln verschlüsselte Informationen 650 unter Verwendung von Responses 452, um die entschlüsselten Informationen 654 bereitzustellen. Die Entschlüsselungsverarbeitungsschaltungen 600 enthalten logische exklusive OR-Gatter 402.1 bis 402.L und Zählschaltungen 404. Die Entschlüsselungsverarbeitungsschaltungen 600 können eine beispielhafte Ausführungsform der Entschlüsselungsschaltungen 502 darstellen.
-
Die Entschlüsselungsverarbeitungsschaltungen 600 arbeiten in einer im Wesentlichen ähnlichen Weise wie die oben in 4 beschriebenen Verschlüsselungsverarbeitungsschaltungen 400. Darum werden nur die Unterschiede zwischen den Entschlüsselungsverarbeitungsschaltungen 600 und den Verschlüsselungsverarbeitungsschaltungen 400 ausführlicher besprochen. In der beispielhaften Ausführungsform von 6 können die verschlüsselten Informationen 650 einen verschlüsselten seriellen Stream von Video, Audio und/oder Daten enthalten. Wie in 6 veranschaulicht, kann dieser verschlüsselte serielle Stream von Video, Audio und/oder Daten logisch in Meldungen M1 bis ML getrennt sein. Die Meldungen M1 durch ML können eine einander ähnliche oder eine voneinander unterschiedliche Anzahl von Bits und/oder Bytes enthalten, auch als Bit-Länge bezeichnet. Die logischen exklusiven OR-Gatter 402.1 bis 402.L vollführen die logische exklusive OR-Operation zwischen den Meldungen M1 bis ML und Responses 452, um die entschlüsselten Informationen 652 bereitzustellen, in einer im Wesentlichen ähnlichen Weise, wie in 4 beschrieben.
-
BEISPIELHAFTER REGISTRIERUNGSPROZESS FÜR CLIENT-VORRICHTUNGEN IN DEM BEISPIELHAFTEN CLIENT-SERVER-VORRICHTUNGS-KOMMUNIKATIONSSYSTEM
-
7 ist ein Flussdiagramm eines beispielhaften Betriebssteuerungsflusses eines Registrierungsprozesses zum Registrieren einer oder mehreren Client-Vorrichtungen bei einer Server-Vorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Die Offenbarung ist nicht auf diesen Betriebssteuerungsfluss beschränkt. Vielmehr ist dem einschlägig bewanderten Fachmann klar, dass auch andere Betriebssteuerungsflüsse im Schutzumfang und Wesen der vorliegenden Offenbarung liegen. Unten wird ein beispielhafter Betriebssteuerungsfluss 700 eines Registrierungsprozesses einer Server-Vorrichtung, wie zum Beispiel der Server-Vorrichtung 202, zum Registrieren einer Client-Vorrichtung, wie zum Beispiel einer der Client-Vorrichtungen 204.1 bis 204.n, in einem Client-Server-Vorrichtungs-Kommunikationssystem, wie zum Beispiel dem Client-Server-Vorrichtungs-Kommunikationssystem 200, beschriebenen.
-
Bei Operation 702 detektiert der Betriebssteuerungsfluss 700 die Client-Vorrichtung, die in das Client-Server-Vorrichtungs-Kommunikationssystem eintritt. Zum Beispiel kann der Betriebssteuerungsfluss 700 eine Anforderung von der Client-Vorrichtung empfangen, die Client-Vorrichtung mit der Server-Vorrichtung zu verknüpfen. In einer beispielhaften Ausführungsform kann die Anforderung enthalten, Informationen der Client-Vorrichtung zu identifizieren, wie zum Beispiel eine Media Access Control (MAC)-Adresse der Client-Vorrichtung oder eine Gerätekennung (ID), die eine eindeutige Zahl darstellt, die der Client-Vorrichtung zugeordnet ist, die durch den Betriebssteuerungsfluss 700 zum Identifizieren der Vorrichtung verwendet wird.
-
Bei Operation 704 sendet der Betriebssteuerungsfluss 700 eine Challenge an die Client-Vorrichtung von Operation 702. Die Challenge kann eine Anforderung darstellen, auf Informationen zuzugreifen, die in einer der PUF-Schaltungen, wie zum Beispiel einer der PUF-Schaltungen 208.1 bis 208.n, der Client-Vorrichtung von Operation 702 gespeichert sind. Die Challenge kann alle oder einige der in den PUF-Schaltungen gespeicherten Informationen anfordern.
-
Bei Operation 706 empfängt der Betriebssteuerungsfluss 700 eine Response von der Client-Vorrichtung von Operation 702 in Reaktion auf die Challenge von 702. Die Client-Vorrichtung von Operation 702 fragt die PUF-Schaltungen mittels der Challenge von Operation 702 ab. Wenn die PUF-Schaltungen mit der Challenge von Operation 702 konfrontiert werden, so generieren die PUF-Schaltungen eine Zufalls-Response, die von den physikalischen Eigenschaften der PUF-Schaltungen abhängig ist. Der Betriebssteuerungsfluss 700 empfängt diese Zufalls-Response als die Response der Client-Vorrichtung von Operation 702.
-
Bei Operation 708 speichert der Betriebssteuerungsfluss 700 die Response von Operation 706. Der Betriebssteuerungsfluss 700 katalogisiert die Response von Operation 706 zusammen mit anderen Responses von anderen Client-Vorrichtungen, um ihre PUF-Schaltungen virtuell abzubilden, um eine Virtuelle-PUF-Schaltungs-Speichervorrichtung zu generieren, wie oben in 2 beschrieben. Der Betriebssteuerungsfluss 700 kann diese Responses in der Virtuelle-PUF-Schaltungs-Speichervorrichtung als eine oder mehrere Listungen, eine oder mehrere Tabellen, eine oder mehrere Dateien, eine oder mehrere Datenbanken und/oder einen sonstigen weiteren allgemein bekannten Speichertyp, der dem einschlägig bewanderten Fachmann offenkundig ist, speichern, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen. In einigen Situationen speichert der Betriebssteuerungsfluss 700 diese Responses zusammen mit ihren entsprechenden Challenges als Challenge-Response-Paare in der Virtuelle-PUF-Schaltungs-Speichervorrichtung. Diese in der Virtuelle-PUF-Schaltungs-Speichervorrichtung gespeicherten Challenge-Response-Paare können zu den Identifizierungsinformationen von Operation 702 indexiert werden.
-
SCHLUSSFOLGERUNG
-
Die obige Detaillierte Beschreibung offenbart eine Server-Vorrichtung in einem Client-Server-Vorrichtungs-Kommunikationssystem. Die Server-Vorrichtung enthält PUF-Schaltungen und Verschlüsselungsschaltungen. Die PUF-Schaltungen Speichern einer virtuellen Abbildung mehrerer PUF-Schaltungen von mehreren Client-Vorrichtungen in dem Client-Server-Vorrichtungs-Kommunikationssystem. Die Verschlüsselungsschaltungen fragen die PUF-Schaltungen mit einer ersten Challenge nach einer ersten Response aus der virtuellen Abbildung, die einer Client-Vorrichtung unter den mehreren Client-Vorrichtungen entspricht, ab, generieren eine zweite Challenge durch Erhöhen oder Verringern der ersten Challenge um einen Challenge-Koeffizienten, und fragen die PUF-Schaltungen mit der zweiten Challenge nach einer zweiten Response aus der virtuellen Abbildung, die der Client-Vorrichtung entspricht, ab. Die Verschlüsselungsschaltungen enthalten ein erstes Logik-Gatter, das dafür konfiguriert ist, eine Logik-Operation zwischen einer ersten Meldung unter mehreren Meldungen und der ersten Response auszuführen, um eine erste verschlüsselte Meldung bereitzustellen, und ein zweites Logik-Gatter, das die Logik-Operation zwischen einer zweiten Meldung unter den mehreren Meldungen und der zweiten Response ausführt, um eine zweite verschlüsselte Meldung bereitzustellen.
-
Die obige Detaillierte Beschreibung offenbart außerdem ein Verfahren zum Betreiben einer Server-Vorrichtung in einem Client-Server-Vorrichtungs-Kommunikationssystem. Das Verfahren enthält Folgendes: Speichern einer virtuellen Abbildung mehrerer PUF-Schaltungen von mehreren Client-Vorrichtungen in dem Client-Server-Vorrichtungs-Kommunikationssystem, Abfragen der PUF-Schaltungen mit einer ersten Challenge nach einer ersten Response aus der virtuellen Abbildung, die einer Client-Vorrichtung unter den mehreren Client-Vorrichtungen entspricht, Generieren einer zweiten Challenge durch Erhöhen oder Verringern der ersten Challenge um einen Challenge-Koeffizienten, Abfragen der PUF-Schaltungen mit der zweiten Challenge nach einer zweiten Response aus der virtuellen Abbildung, die der Client-Vorrichtung entspricht, und Ausführen einer Logik-Operation zwischen einer ersten Meldung unter mehreren Meldungen und der ersten Response, um eine erste verschlüsselte Meldung bereitzustellen, und zwischen einer zweiten Meldung unter den mehreren Meldungen und der zweiten Response, um eine zweite verschlüsselte Meldung bereitzustellen.
-
Die obige Detaillierte Beschreibung offenbart des Weiteren eine weitere Server-Vorrichtung eines Client-Server-Vorrichtungs-Kommunikationssystems. Die weitere Server-Vorrichtung enthält PUF-Schaltungen und Verschlüsselungsschaltungen. Die PUF-Schaltungen speichern mehrere Responses, die von mehreren Client-Vorrichtungen kommend empfangen werden, wobei jede der mehreren Responses in Reaktion auf eine erste Challenge empfangen wird, die durch die Server-Vorrichtung ausgegeben wird, um mehrere PUF-Schaltungen der mehreren Client-Vorrichtungen zu lesen. Die Verschlüsselungsschaltungen fragen die PUF-Schaltungen mit einer zweiten Challenge nach einer ersten Response unter den mehreren Responses, die einer Client-Vorrichtung unter den mehreren Client-Vorrichtungen entspricht, ab, generieren eine dritte Challenge durch Erhöhen oder Verringern der zweiten Challenge um einen Challenge-Koeffizienten, fragen die PUF-Schaltungen mit der dritten Challenge nach einer zweiten Response unter den mehreren Responses, die der Client-Vorrichtung entspricht, ab, verwenden die erste Response als einen ersten Keim für einen Verschlüsselungsalgorithmus zum Verschlüsseln einer ersten Meldung unter mehreren Meldungen, und verwenden die zweite Response als einen zweiten Keim für den Verschlüsselungsalgorithmus zum Verschlüsseln einer zweiten Meldung unter den mehreren Meldungen.