-
Gebiet der Technik
-
Die vorliegende Erfindung bezieht sich auf eine Sicheres-Rechnen-Einrichtung, die sicheres Rechnen durchführt, und eine Client-Einrichtung, die sicheres Rechnen anfordert.
-
Allgemeiner technischer Hintergrund
-
<Sicheres Rechnen>
-
Sicheres Rechnen ist eine Technik zur Durchführung von Operationen mit einer spezifizierten Funktion unter Wahrung der Vertraulichkeit von Daten. Zum Beispiel offenbart die Patentliteratur 1 eine Sicheres-Rechnen-Steuerungseinrichtung unter Verwendung von homomorpher Verschlüsselung, die nicht auf bestimmte Operationen beschränkt ist.
-
<Cloud-FPGA>
-
Die Bereitstellung einer mit einem Field Programmable Gate Array (FPGA) ausgestatteten Recheninstanz hat sich als ein Cloud-Service durchgesetzt. Zum Beispiel kann auf Amazon EC2 F1 hingewiesen werden. Bei diesem Cloud-Service wird ein FPGA dynamisch von einer Anwendung rekonfiguriert und eine Operation, die in der Anwendung zu einem Engpass wird, auf das FPGA ausgelagert, so dass Verarbeitung beschleunigt werden kann.
-
<PUF>
-
Eine physikalisch nicht klonbare Funktion (PUF) ist eine Technik zum Generieren einer einmaligen ID für eine Einrichtung, die Variationen bei der Herstellung von Large Scale Integration (LSI) nutzt. Beispielsweise offenbart die Patentliteratur 2 eine ID-Generierungstechnik, die die Tatsache nutzt, dass transiente Übergänge von Ausgaben in Abhängigkeit von Fertigungsvariationen selbst für die gleiche Logikschaltung variieren. Im Allgemeinen enthalten solche IDs, die Fertigungsvariationen nutzen, jedes Mal Fehler, wenn eine ID generiert wird. Als eine Technik zum Korrigieren dieser Fehler und Vornehmen von Anpassungen für diese Fehler, um jedes Mal die gleiche ID zu generieren, gibt es einen Fuzzy-Extraktor aus Nicht-Patentliteratur 1.
-
Liste der Entgegenhaltungen
-
Patentliteratur
-
- Patentdokument 1: JP 2016-136190 A
- Patentdokument 2: WO 2011/086688 A1
-
Nicht-Patent-Literatur
-
Nicht-Patent-Literatur 1: Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data, Eurocrypt 2004, S. 523-540
-
Kurzfassung der Erfindung
-
Technische Aufgabe
-
Bisheriges sicheres Rechnen beinhaltet Operationen mit hohem Rechenaufwand, wie homomorphe Verschlüsselung. Daher ist ein Fall, in dem sicheres Rechnen auf leichte Verarbeitungen wie Addition, Subtraktion und Vergleichen angewendet wird, realisierbar. Bisherige Techniken eignen sich jedoch nicht für sicheres Rechnen für Verarbeitungen mit hohem Rechenaufwand wie Erkennungsverarbeitung auf Bildern, flexible Datenbankdurchsuchung oder Komprimierung.
-
Es ist eine Aufgabe der vorliegenden Erfindung, eine Einrichtung bereitzustellen, die Verarbeitungen mit hohem Rechenaufwand durch Hardware-Verarbeitung beschleunigt und außerdem sicheres Rechnen realisiert.
-
Lösung der Aufgabe
-
Eine Sicheres-Rechnen-Einrichtung gemäß der vorliegenden Erfindung umfasst:
- eine Host-Recheneinheit; und eine Logikschaltungseinrichtung, in der eine Schaltungskonfiguration einer Logikschaltung durch Schaltungsinformationen geändert werden kann,
- wobei die Host-Recheneinheit eine Vielzahl von Logikschaltungen in der Logikschaltungseinrichtung bildet, unter Verwendung der einer Anwendung zugeordneten Schaltungsinformationen, und
- wobei die Logikschaltungseinrichtung, in der die Vielzahl von Logikschaltungen gebildet sind, aufweist:
- eine Schlüssel-Rechenschaltung, um ein Paar aus einem öffentlichen Schlüssel und einem geheimen Schlüssel unter Verwendung eines Initialwerts zu generieren, einen mit dem öffentlichen Schlüssel verschlüsselten Benutzer-Geheimschlüssel zu erwerben, und den verschlüsselten Benutzer-Geheimschlüssel mit dem geheimen Schlüssel zu entschlüsseln;
- eine Entschlüsselungsoperationsschaltung, um mit dem Benutzer-Geheimschlüssel verschlüsselten Inhalt zu erwerben, und den verschlüsselten Inhalt mit dem entschlüsselten Benutzer-Geheimschlüssel zu entschlüsseln;
- eine Inhaltsoperationsschaltung, um Verarbeitung, die der Anwendung zugeordnet ist, auf den entschlüsselten Inhalt durchzuführen, um verarbeiteten Inhalt zu generieren, der ein Verarbeitungsergebnis des Inhalts ist;
- eine Verschlüsselungsoperationsschaltung, um den verarbeiteten Inhalt mit dem Benutzer-Geheimschlüssel zu verschlüsseln; und
- eine Ausgabeschaltung, um den verschlüsselten verarbeiteten Inhalt auszugeben.
-
Vorteilhafte Wirkungen der Erfindung
-
Eine Sicheres-Rechnen-Einrichtung der vorliegenden Erfindung umfasst eine Host-Recheneinheit und eine Logikschaltungseinrichtung, so dass es möglich ist, eine Einrichtung bereitzustellen, die Verarbeitung mit hohem Rechenaufwand durch Hardware-Verarbeitung beschleunigt und außerdem sicheres Rechnen realisiert.
-
Figurenliste
-
- 1 ist ein Diagramm einer ersten Ausführungsform und zeigt eine Gesamtkonfiguration einer Sicheres-Rechnen-Einrichtung 1;
- 2 ist ein Diagramm der ersten Ausführungsform und zeigt eine Hardware-Konfiguration der Sicheres-Rechnen-Einrichtung 1;
- 3 ist ein Diagramm der ersten Ausführungsform und zeigt eine spezifische Hardware-Konfiguration eines Host-Rechners 401;
- 4 ist ein Diagramm der ersten Ausführungsform und zeigt eine Hardware-Konfiguration einer Client-Einrichtung 406;
- 5 ist ein Diagramm der ersten Ausführungsform und zeigt einen Gesamtverarbeitungsablauf von sicherem Rechnen in einem Client-Server-Modell;
- 6 ist ein Diagramm der ersten Ausführungsform und zeigt eine Hardware-Konfiguration einer Hochgeschwindigkeitsrechenschaltung 20, die in einem FPGA 405 gebildet ist;
- 7 ist ein Diagramm der ersten Ausführungsform und zeigt eine Hardware-Konfiguration einer Schlüssel-Rechenschaltung 222;
- 8 ist ein Diagramm der ersten Ausführungsform und zeigt eine Schlüssel-Speicherschaltung 223, wenn eine Anwendung eine Vielzahl von geheimen Schlüsseln mk verwaltet;
- 9 ist ein Diagramm der ersten Ausführungsform und zeigt die Hochgeschwindigkeitsrechenschaltung 20 einer ersten Variante;
- 10 ist ein Diagramm der ersten Ausführungsform und zeigt Host-Rechner 401a und 401b der ersten Variante;
- 11 ist ein Diagramm der ersten Ausführungsform und zeigt eine Hardware-Konfiguration des Host-Rechners 401a der ersten Variante;
- 12 ist ein Diagramm der ersten Ausführungsform und zeigt eine Hardware-Konfiguration einer VM-Verwaltungseinrichtung 700 der ersten Variante;
- 13 ist ein Diagramm der ersten Ausführungsform und zeigt einen Verarbeitungsablauf einer zweiten Variante; und
- 14 ist ein Diagramm der ersten Ausführungsform und zeigt einen Verarbeitungsablauf einer dritten Variante.
-
Beschreibung von Ausführungsformen
-
<Bezeichnungen>
-
Die in einer ersten Ausführungsform zu verwendenden Bezeichnungen werden im Folgenden erläutert.
Die Formel 101 ist Verarbeitung unter Verwendung des PUF, Fuzzy-Extraktoren und einem Schlüsselalgorithmus der Public-Key-Kryptografie. Formel 101 zeigt Verarbeitung an, um Hilfsdaten HD, einen öffentlichen Schlüssel
Kp und einen geheimen Schlüssel
Ks unter Verwendung eines Initialwertes IV zu generieren.
-
PRF: Bezeichnet eine Pseudozufallsfunktion, zum Beispiel SHA-256.
Zn: Restklassengruppe
x: Elliptische Skalarmultiplikation
+: Punktaddition auf einer elliptischen Kurve
-
Formel 102 bezeichnet Verschlüsselung eines geheimen Schlüssels mk mit Public-Key-Kryptographie kp.
-
Formel 103 zeigt Verarbeitung an, um einen geheimen Schlüssel
Ks zu generieren, unter Verwendung des PUF, der Fuzzy-Extraktoren und des Schlüsselalgorithmus der Public-Key-Kryptografie. Formel 103 bedeutet Durchführung von erneuter-Generierung-Verarbeitung durch die PUF und Fuzzy-Extraktoren, unter Verwendung eines Initialwerts IV und Hilfsdaten HD, um Ks zu generieren.
-
Formel 104 gibt Verarbeitung an, um Cmk mit dem geheimen Schlüssel
Ks zu entschlüsseln.
-
Formel 105 gibt Verarbeitung an, um
P mit dem geheimen Schlüssel mk in der Common-Key-Kryptographie zu verschlüsseln.
-
Formel 106 gibt Verarbeitung an, um Ca mit dem geheimen Schlüssel mk in der Common-Key-Kryptographie zu entschlüsseln.
-
Erste Ausführungsform
-
*** Beschreibung der Konfiguration ***
-
Unter Bezugnahme auf 1 bis 12 wird eine Sicheres-Rechnen-Einrichtung 1 erläutert.
1 ist ein Diagramm, darstellend eine Gesamtkonfiguration der Sicheres-Rechnen-Einrichtung 1. Die Sicheres-Rechnen-Einrichtung 1 umfasst eine Host-Recheneinheit 10, eine Host-Speichereinheit 10M, eine Hochgeschwindigkeitsrechenschaltung 20 und eine lokale Speichereinrichtung 20M. Die Hochgeschwindigkeitsrechenschaltung 20 umfasst eine feste Verarbeitungsschaltung 21 und eine dynamische Verarbeitungsschaltung 22. Die feste Verarbeitungsschaltung 21 greift auf die lokale Speichereinrichtung 20M zu.
-
2 zeigt eine Hardware-Konfiguration der Sicheres-Rechnen-Einrichtung 1 von 1. Die Host-Recheneinheit 10 und eine Logikschaltungseinrichtung, in der die Schaltungskonfiguration einer Logikschaltung durch Schaltungsinformationen 12 geändert werden kann, sind enthalten. Ein FPGA 405 ist die Logikschaltungseinrichtung. Die Host-Recheneinheit 10 ist durch Ausführung eines Binärs 402 von einer Anwendung durch eine CPU 404 realisiert. Die Host-Recheneinheit 10 bildet eine Vielzahl von Logikschaltungen in dem FPGA 405, der die Logikschaltungseinrichtung ist, unter Verwendung der der Anwendung zugeordneten Schaltungsinformationen 12. Die Schaltungsinformationen 12 werden von einer Client-Einrichtung 406 in dem später zu beschreibenden Schritt S11 von 5 übertragen. Das Binär 402 von der Anwendung wird in der zentralen Verarbeitungseinheit (CPU) 404 eines Host-Rechners 401 verarbeitet. Das Binär 402 von der Anwendung wird von der Host-Recheneinheit 10 in 1 verarbeitet.
-
Die Hochgeschwindigkeitsrechenschaltung 20 ist durch den FPGA 405 des Host-Rechners 401 realisiert. Die CPU 404, die das Binär 402 von der Anwendung verarbeitet, lädt ein für jede Anwendung unterschiedliches Binär 403 des FPGA 405 in den FPGA 405, um Schaltungen zu ändern, die in dem FPGA konfiguriert sind. Die Operationen werden pro Anwendung durch die im FPGA 405 konfigurierten Schaltungen beschleunigt.
-
Die feste Verarbeitungsschaltung 21 und die dynamische Verarbeitungsschaltung 22, die in der Hochgeschwindigkeitsrechenschaltung 20 von 1 enthalten sind, werden erläutert. Die feste Verarbeitungsschaltung 21 verarbeitet Funktionen, wie Speicherzugriffe, die nicht von Operationen abhängig sind, für welche Verarbeitungen beschleunigt werden soll. Die Hochgeschwindigkeitsrechenschaltung 20 ist durch den FPGA 405 realisiert. Die feste Verarbeitungsschaltung 21 in der Hochgeschwindigkeitsrechenschaltung 20 wird jedoch nicht dynamisch rekonfiguriert und ist mit einer festen Schaltung konfiguriert.
Die dynamische Verarbeitungsschaltung 22 ist eine Schaltung für zu beschleunigende Operationen und die Schaltungskonfiguration ändert sich für jede Anwendung. Das heißt, in der dynamischen Verarbeitungsschaltung 22 variieren die zu beschleunigenden Operationen mit der durch die Host-Recheneinheit 10 auszuführenden Anwendung. Als Verarbeitung F kann auf Komprimierungsverarbeitung, Suchabfrageverarbeitung und Erkennungsverarbeitung in einem neuronalen Netz hingewiesen sein.
-
3 zeigt eine bestimmte Hardware-Konfiguration eines Host-Rechners 401. In 5, die später beschrieben wird, wird ein Client-Server-Modell beschrieben. Die Sicheres-Rechnen-Einrichtung 1 ist der Host-Rechner 401 und auch ein Server 407. Der Host-Rechner 401 enthält als Hardware die CPU 404, eine Hauptspeichereinrichtung 408, eine Hilfsspeichereinrichtung 409, die lokale Speichereinrichtung 20M, eine Kommunikationsschnittstelle 410 und das FPGA 405. Die CPU 404 ist ein Schaltkreis. Der FPGA 405 ist mit der lokalen Speichereinrichtung 20M verbunden. Die Hauptspeichereinrichtung 408 ist die Host-Speichereinheit 10M. Alternativ ist die Hilfsspeichereinrichtung 409 die Host-Speichereinheit 10M. In der folgenden Beschreibung ist die Hauptspeichereinrichtung 408 die Host-Speichereinheit 10M. Der Host-Rechner 401 weist die Host-Recheneinheit 10 als ein funktionales Element auf. Die Host-Recheneinheit 10 ist durch Ausführung eines Host-Rechenprogramms 412 durch die CPU 404 realisiert. Das Host-Rechenprogramm 412 ist in der Hilfsspeichereinrichtung 409 gespeichert. Die Host-Recheneinheit 10 kommuniziert mit der Client-Einrichtung 406 über die Kommunikationsschnittstelle 410.
-
4 zeigt eine Hardware-Konfiguration der Client-Einrichtung 406, die in der Beschreibung von 5 erscheint. Die Client-Einrichtung 406 umfasst als Hardware eine CPU 501, eine Hauptspeichereinrichtung 502, eine Hilfsspeichereinrichtung 503 und eine Kommunikationsschnittstelle 504. Der Host-Rechner 401 weist als funktionale Elemente eine Übertragungssteuerungseinheit 501a, eine Verschlüsselungssteuerungseinheit 501b und eine Entschlüsselungssteuerungseinheit 501c auf. Die Funktionen der Übertragungssteuerungseinheit 501a, der Verschlüsselungssteuerungseinheit 501b und der Entschlüsselungssteuerungseinheit 501c sind durch Ausführung eines von der CPU 501 gespeicherten Steuerungsprogramms 501d realisiert. Das Steuerungsprogramm 501d und die Schaltungsinformationen 12 sind in der Hilfsspeichereinrichtung 503 gespeichert. Die CPU 501 kommuniziert mit dem Server 407 über die Kommunikationsschnittstelle 504.
-
*** Beschreibung der Betriebsweise***
-
Die Betriebsweise der Sicheres-Rechnen-Einrichtung 1 von 1 wird erläutert. Die Host-Recheneinheit 10 führt Verarbeitung, beinhaltend Lese- und Schreibzugriffe, auf die Host-Speichereinheit 10M durch. Im Folgenden werden Lese- und Schreibzugriffe als R/W bezeichnet. Verarbeitungen mit einer hohen Verarbeitungslast werden durch die Hochgeschwindigkeitsrechenschaltung 20 anstelle der Host-Recheneinheit 10 verarbeitet. Diese Verarbeitungen sind in Formel 9 angegebene Verarbeitungen Func, die später beschrieben wird. Im Folgenden wird dies als Beschleunigung bezeichnet. Die detaillierte Funktionsweise der Beschleunigung wird im Folgenden beschrieben. Die Host-Recheneinheit 10 überträgt von der Hochgeschwindigkeitsrechenschaltung 20 zu verarbeitende Daten über die feste Verarbeitungsschaltung 21 an die lokale Speichereinrichtung 20M.
Im Allgemeinen wird diese Übertragung mittels direktem Speicherzugriff (DMA) durchgeführt. Die an die lokale Speichereinrichtung 20M übertragenen Daten werden über die feste Verarbeitungsschaltung 21 in festgelegten Einheiten an die dynamische Verarbeitungsschaltung 22 übertragen. Die dynamische Verarbeitungsschaltung 22 führt spezifizierte Verarbeitungen Func mit hoher Geschwindigkeit aus und überträgt ein Verarbeitungsergebnis über die feste Verarbeitungsschaltung 21 an die lokale Speichereinrichtung 20M. Abschließend wird ein Operationsergebnis von der lokalen Speichereinrichtung 20M unter Verwendung von DMA an die Host-Speichereinheit 10M übertragen.
-
Die erste Ausführungsform stellt Mittel zum Realisieren von sicherem Rechnen bei Beschleunigung bereit.
5 zeigt einen allgemeinen Verarbeitungsablauf von sicherem Rechnen in dem Client-Server-Modell. Es wird davon ausgegangen, dass das allgemeine sichere Rechnen Verarbeitung unter Verwendung des Client-Server-Modells ist. Bei dem allgemeinen sicheren Rechnen wird davon ausgegangen, dass der Server 407 auf eine Operationsanforderung von der Client-Einrichtung 406 antwortet, festgelegte Verarbeitungen ausführt und ein Verarbeitungsergebnis an die Client-Einrichtung 406 zurückgibt. Die erste Ausführungsform zielt darauf ab, zu verhindern, dass Eingabedaten, Ausgabedaten und ihre Zwischenwerte von einer Operation, auf die sicheres Rechnen angewendet werden soll, in einem nicht-sicheren Bereich auf der Serverseite in dem Client-Server-Modell in Klartext offengelegt werden. In 1 ist der nicht-sichere Bereich die Host-Recheneinheit 10, die Host-Speichereinheit 10M, die lokale Speichereinrichtung 20M und ein Bereich in der Hochgeschwindigkeitsrechenschaltung 20, zu dem und von dem aus R/W von der Host-Recheneinheit 10 durchgeführt werden kann. Ein sicherer Bereich ist ein Bereich in der Hochgeschwindigkeitsrechenschaltung 20, auf den von der Host-Recheneinheit 10 aus nicht direkt zugegriffen werden kann. In der Hardwarekonfiguration von 2 ist der sichere Bereich die Hochgeschwindigkeitsrechenschaltung 20 des FPGA 405, zu dem und von dem aus R/W nicht direkt von der CPU 404 durchgeführt werden kann.
-
Es wird der Verarbeitungsablauf von 5 beschrieben. Bevor jedoch 5 beschrieben wird, soll kurz eine Schaltungskonfiguration der in 6 dargestellten Hochgeschwindigkeitsrechenschaltung 20 und einer in 7 dargestellten Schlüssel-Rechenschaltung 222 beschrieben werden. Die 6 und 7 werden später im Detail beschrieben.
6 zeigt die Schaltungskonfiguration der in dem FPGA 405 gebildeten Hochgeschwindigkeitsrechenschaltung 20. Die Hochgeschwindigkeitsrechenschaltung 20 umfasst die feste Verarbeitungsschaltung 21 und die dynamische Verarbeitungsschaltung 22. Die dynamische Verarbeitungsschaltung 22 umfasst eine Eingabeschaltung 221, die Schlüssel-Rechenschaltung 222, eine Schlüssel-Speicherschaltung 223, eine Entschlüsselungsoperationsschaltung 224, eine Hochgeschwindigkeitsoperationsschaltung 225, eine Verschlüsselungsoperationsschaltung 226 und eine Ausgabeschaltung 227. Die Hochgeschwindigkeitsoperationsschaltung 225 ist eine Inhaltsoperationsschaltung.
7 zeigt eine Schaltungskonfiguration der Schlüssel-Rechenschaltung 222 in 6. Die Schlüssel-Rechenschaltung 222 generiert ein Paar aus einem öffentlichen Schlüssel Kp und einem geheimen Schlüssel Ks unter Verwendung eines Initialwertes IV. Die Schlüssel-Rechenschaltung 222 erwirbt einen Benutzer-Geheimschlüssel, der mit dem öffentlichen Schlüssel Kp verschlüsselt ist, und entschlüsselt den verschlüsselten Benutzer-Geheimschlüssel mit dem geheimen Schlüssel Ks.
Konkret sieht das wie folgt aus: Die Schlüssel-Rechenschaltung 222 umfasst eine Eingabeschaltung 222a, eine PUF-Schaltung 222b, einen Fuzzy-Extraktor 222c, eine Schlüsselpaar-Verarbeitungsschaltung 222d und eine Ausgabeschaltung 222e. Es ist zu beachten, dass PUF eine Funktion ist, die im Allgemeinen als eine physikalisch nicht klonbare Funktion bezeichnet wird. 5 wird nachfolgend erläutert.
-
In 5 zeigt der Abschnitt oberhalb der gestrichelten Linie eine Registrierungsphase an und der Abschnitt unterhalb der gestrichelten Linie zeigt eine Operationsphase an. Der Verarbeitungsablauf setzt sich aus zwei Phasen zusammen, der Registrierungsphase und der Operationsphase. In der Registrierungsphase registriert die dynamische Verarbeitungsschaltung 22 verschlüsselte Daten Cmk, die aus der Verschlüsselung eines geheimen Schlüssels mk der Client-Einrichtung 406 resultieren, in der Sicheres-Rechnen-Einrichtung 1. Der geheime Schlüssel mk ist ein geheimer Benutzerschlüssel. Der geheime Schlüssel Ks ist ein erster geheimer Schlüssel und der geheime Schlüssel mk ist ein zweiter geheimer Schlüssel. In der Operationsphase führt die dynamische Verarbeitungsschaltung 22 sicheres Rechnen, beinhaltend Beschleunigung, unter Verwendung des geheimen Schlüssels mk durch.
-
<Schritt S11>
-
Die Registrierungsphase wird erläutert. Die Übertragungssteuerungseinheit 501a der Client-Einrichtung 406 überträgt Schaltungsinformationen 12 und einen Initialwert IV an den Server 407, der die Sicheres-Rechnen-Einrichtung 1 ist.
- (1) Die Schaltungsinformationen 12 sind Informationen, die zur Generierung des Binärs 403 von dem FPGA 405 genutzt werden. Die Schaltungsinformationen 12 sind Entwurfsinformationen vor Platzierung und Verdrahtung. Wie in der Beschreibung von 2 erwähnt, ist die Schaltung des FPGA 405 durch das Binär 403 von dem FPGA 405 dynamisch konfiguriert.
- (2) Der Initialwert IV ist ein Wert, der zur Generierung eines Schlüsselpaares der Public-Key-Kryptographie genutzt wird.
-
Eine Server-Anwendung konfiguriert die Schaltkreise der dynamischen Verarbeitungsschaltung 22 in dem FPGA 405, wie in 6 dargestellt, auf Grundlage der Schaltungsinformationen 12. Die durch die Server-Anwendung konfigurierte dynamische Verarbeitungsschaltung 22 verfügt über die in 7 dargestellte Schlüssel-Rechenschaltung 222. Durch Konfigurieren der Schlüssel-Rechenschaltung 222 in dem FPGA 405 speichert die Client-Einrichtung 406 den geheimen Schlüssel mk sicher in dem Server 407, durch Erwerben des öffentlichen Schlüssels Kp von dem Server 407, wie unten beschrieben wird.
-
Ein Schlüsselpaar der Public-Key-Kryptografie wird wie unten beschrieben generiert. Die Übertragungssteuerungseinheit
501a der Client-Einrichtung
406 überträgt den Initialwert IV zusammen mit den Schaltungsinformationen 12 an den Server
407. Die Schlüssel-Rechenschaltung
222 der dynamischen Verarbeitungsschaltung
22 empfängt den Initialwert IV über die Host-Recheneinheit
10 und generiert ein Schlüsselpaar der Public-Key-Kryptographie unter Verwendung des Initialwertes IV.
Das heißt, die Schlüssel-Rechenschaltung
222 errechnet Formel 1.
In Formel 1 bezeichnet HD Hilfsdaten, die für erneutes Generieren einer Identifizierer-ID unter Verwendung der PUF-Funktion erforderlich sind, wie ein Fuzzy-Extraktor, und Kp und Ks bezeichnen jeweils einen öffentlichen Schlüssel und einen geheimen Schlüssel in der Public-Key-Kryptografie.
-
Die Generierung eines geheimen Schlüssels
Ks und eines öffentlichen Schlüssels
Kp bei elliptischer ElGamal-Verschlüsselung wird im Folgenden als ein Beispiel beschrieben.
Die PUF-Schaltung
222b und der Fuzzy-Extraktor
222c der Schlüssel-Rechenschaltung
222 nehmen als Eingabe einen Initialwert IV und geben eine Identifizierer-ID und Hilfsdaten HD aus, die für eine erneute Generierung erforderlich sind.
Dann komprimiert die Schlüsselpaar-Verarbeitungsschaltung
222d die Identifizierer-ID durch eine Pseudozufallsfunktion PRF, um einen geheimen Schlüssel
Ks zu generieren. Das heißt, die Schlüssel-Rechenschaltung
222d errechnet Formel 2.
Es ist zu beachten, dass E(K) eine elliptische Kurve auf einem Feld K bezeichnet, G∈E(K) einen Basispunkt bezeichnet und n eine Ordnung von G bezeichnet. Die Schlüsselpaar-Verarbeitungsschaltung
222d generiert einen öffentlichen Schlüssel
Kp auf Grundlage der folgenden Formel 3.
Das Schlüsselgenerierungsverfahren ist nicht auf das oben beschriebene Verfahren beschränkt. Jedes Verfahren, das Kp und Ks unter Verwendung der Identifizierer-ID einmalig generiert, kann genutzt werden.
-
<Schritt S12>
-
Die Host-Recheneinheit 10 des Servers 407 überträgt den öffentlichen Schlüssel Kp und die Hilfsdaten HD oder die Identifizierer-ID über die Kommunikationsschnittstelle 410 an die Client-Einrichtung 406. In 5 überträgt der Server 407 die Identifizierer-ID. Die Hilfsdaten HD und die Identifizierer-ID sind einander zugeordnet. Der FPGA 405 kann die Identifizierer-ID aus den Hilfsdaten HD identifizieren und die Hilfsdaten HD aus der Identifizierer-ID identifizieren. Daher kann der Server 407 entweder die Hilfsdaten HD oder die Identifizierer-ID übertragen. In dem später zu beschreibenden Schritt S13 überträgt die Client-Einrichtung 406 die Identifizierer-ID an den Server 407. Wenn die Identifizierer-ID von der Client-Einrichtung 406 empfangen wird, kann der Server 407 den geheimen Schlüssel Ks, wie in der später zu beschreibenden Formel 5 angegeben, unter Verwendung der der Identifizierer-ID zugeordneten Hilfsdaten HD neu generieren.
-
<Schritt S13>
-
Die Verschlüsselungssteuerungseinheit
501b erwirbt den öffentlichen Schlüssel
Kp von der Sicheres-Rechnen-Einrichtung 1 (Schritt S12), verschlüsselt einen geheimen Schlüssel mk mit dem öffentlichen Schlüssel
Kp und überträgt verschlüsselte Daten Cmk, die den verschlüsselten geheimen Schlüssel mk darstellen, an die Sicheres-Rechnen-Einrichtung 1. Das heißt, die Verschlüsselungssteuerungseinheit
501b der Client-Einrichtung 406 überträgt die verschlüsselten Daten Cmk, die aus der Verschlüsselung des geheimen Schlüssels mk, der für sicheres Rechnen genutzt wird, mit dem öffentlichen Schlüssel
Kp resultieren, an den Server
407.
Dies wird ausgedrückt als Cmk = Enc(Kp, mk).
Die verschlüsselten Daten Cmk in dem Beispiel der elliptischen EIGamal-Verschlüsselung sind wie unten beschrieben.
Der geheime Schlüssel mk sei eine x-Koordinate, und MK sei eine Nachricht, die sich aus dem Erhalt einer korrespondierenden y-Koordinate und der Umwandlung der Koordinaten in einen Punkt auf einer elliptischen Kurve ergibt.
Es ist zu beachten, dass r ∈Zn eine Zufallszahl ist. Die Übertragungssteuerungseinheit
501a der Client-Einrichtung
406 überträgt die Hilfsdaten HD (oder die Identifizierer-ID) und Cmk an den Server
407. Die Bearbeitung bis zu dieser Stelle hier ist die Regestrierungsphase.
-
Die Operationsphase wird nun beschrieben.
-
<Schritt S21>
-
Die Client-Einrichtung 406 stellt eine Anfrage für eine sichere Operation an den Server 407. Die Übertragungssteuerungseinheit 501a der Client-Einrichtung 406 überträgt die in Schritt S12 empfangene Identifizierer-ID an den Server 407 als die Anfage für eine sichere Operation . Als die Anfage für eine sichere Operation fordert die Client-Einrichtung 406 den Server 407 auf, dass die in Schritt S13 in der Registrierungsphase übertragenen verschlüsselten Daten Cmk von der Hochgeschwindigkeitsrechenschaltung 20 bereitgestellt werden.
-
<Schritt S22>
-
Die Host-Recheneinheit
10 des Servers
407 lädt den Initialwert IV und die Hilfsdaten HD, die der Identifizierer-ID zugeordnet sind, in die Schlüssel-Rechenschaltung
222 der Hochgeschwindigkeitsrechenschaltung
20. Die Schlüssel-Rechenschaltung
222 generiert die Identifizierer-ID neu. Der geheime Schlüssel
Ks wird aus der generierten Identifizierer-ID neu generiert. Das heißt, die Schlüssel-Rechenschaltung
222 errechnet Formel 5.
Die Schlüssel-Rechenschaltung
222 entschlüsselt Cmk unter Verwendung des geheimen Schlüssels
Ks, um den geheimen Schlüssel mk zu erwerben, und stellt den geheimen Schlüssel mk in einem Speicherbereich der Entschlüsselungsoperationsschaltung
224 bereit. Das heißt, die Schlüssel-Rechenschaltung
222 errechnet Formel 6, um den geheimen Schlüssel mk in dem Speicherbereich der Entschlüsselungsoperationsschaltung
224 bereitzustellen.
Es ist zu beachten, dass der Bereich in der Entschlüsselungsoperationsschaltung
224, in dem der geheime Schlüssel mk gespeichert ist, ausgelegt ist, so konfiguriert zu sein, dass der Bereich nicht direkt von der Host-Recheneinheit
10 aus zugänglich ist. Sie ist dieser zum Beispiel in einem Register in dem FPGA
405 gespeichert, aus dem nicht gelesen werden kann.
-
Die Host-Recheneinheit 10 des Servers 407 benachrichtigt die Client-Einrichtung 406 über den Abschluss des Bereitstellens des geheimen Schlüssels mk. Das heißt, der Server 407 benachrichtigt die Client-Einrichtung 406 über den Abschluss der Vorbereitung für die Operation.
-
<Schritt S23>
-
Die Verschlüsselungssteuerungseinheit
501b verschlüsselt Inhalt
P mit dem geheimen Schlüssel mk und überträgt verschlüsselte Daten Ca, die den verschlüsselten Inhalt
P darstellen, an die Sicheres-Rechnen-Einrichtung 1. Das heißt, das Verschlüsselungssteuerungseinheit
501b überträgt die verschlüsselten Daten Ca, die aus der Verschlüsselung des zu bearbeitenden Inhalts
P mit dem gemeinsamen Schlüssel
Kp resultieren, an den Server
407. Die Verschlüsselungssteuerungseinrichtung
501b der Client-Einrichtung 406 errechnet Formel 7.
Die Schlüssel-Rechenschaltung
222 erwirbt den mit dem geheimen Schlüssel mk verschlüsselten Inhalt und entschlüsselt den verschlüsselten Inhalt mit dem entschlüsselten geheimen Schlüssel mk. Konkret sieht dies wie folgt aus: Die Entschlüsselungsoperationsschaltung
224 entschlüsselt Ca mit dem geheimen Schlüssel mk, um den Inhalt
P zu erwerben.
Das heißt, die Entschlüsselungsoperationsschaltung
224 errechnet Formel 8.
Dann führt die Hochgeschwindigkeitsoperationsschaltung
225, die die Inhaltsoperationsschaltung ist, der Anwendung zugeordnete Verarbeitungen Func auf den entschlüsselten Inhalt durch, um verarbeiteten Inhalt zu generieren, der ein Verarbeitungsergebnis des Inhalts
P ist. Im Einzelnen läuft dies wie unten beschrieben ab.
Im Folgenden ist ein Verarbeitungsergebnis
Q der verarbeitete Inhalt. Die Hochgeschwindigkeitsoperationsschaltung
225 führt die Verarbeitungen Func, auf die Beschleunigung und sicheres Rechnen anzuwenden sind, auf den Inhalt
P aus, um das Verarbeitungsergebnis Qzu erhalten. Das heißt, die Hochgeschwindigkeitsoperationsschaltung
225 errechnet Formel 9.
Die Verschlüsselungsoperationsschaltung
226 verschlüsselt das Verarbeitungsergebnis
Q mit dem geheimen Schlüssel mk, um verschlüsselte Daten Cb zu erhalten. Das heißt, die Entschlüsselungsoperationsschaltung
226 errechnet Formel 10.
-
<Schritt S24>
-
Die Verschlüsselungsoperationsschaltung 226 überträgt die verschlüsselten Daten Cb über die Host-Recheneinheit 10 an die Client-Einrichtung 406.
-
<Schritt S25>
-
Die Entschlüsselungssteuerungseinheit
501c erwirbt den verschlüsselten verarbeiteten Inhalt von der Sicheres-Rechnen-Einrichtung und entschlüsselt den verschlüsselten verarbeiteten Inhalt mit dem Benutzer-Geheimschlüssel. Konkret entschlüsselt die Entschlüsselungssteuerungseinheit
501c der Client-Einrichtung
406 die verschlüsselten Daten Cb unter Verwendung des geheimen Schlüssels mk, um das Verarbeitungsergebnis
Q zu erhalten. Das heißt, die Entschlüsselungssteuerungseinheit
501c errechnet Formel 11.
-
In dieser Operationsphase wird der Inhalt
P als von der Client-Einrichtung
406 übertragene Information behandelt. Es kann jedoch so konfiguriert sein, dass Informationen, die aus der Verschlüsselung eines Teils des Inhalts
P mit dem geheimen Schlüssel mk resultieren, aus der Host-Speichereinheit
10M in die Entschlüsselungsoperationsschaltung
224 geladen werden
Zum Beispiel wird eine Durchsuchung in einer Datenbank angenommen. Es wird davon ausgegangen, dass sich in der Host-Speichereinheit
10M eine Vielzahl von einzelnen Informationen befinden, die mit dem geheimen Schlüssel mk verschlüsselt sind. Dieser kann so konfiguriert sein, dass der Server
407 eine mit dem geheimen Schlüssel mk verschlüsselte Abfrage von der Client-Einrichtung 406 empfängt und Verarbeitung durch die Abfrage ausgelöst wird. Diese Abfrage entspricht den verschlüsselten Daten Ca aus Schritt S23. Die Schlüssel-Rechenschaltung
222 erwirbt mit dem geheimen Schlüssel mk verschlüsselten Inhalt von einer verschlüsselter-Inhalt-Speichereinrichtung, um mit dem geheimen Schlüssel mk verschlüsselten Inhalt zu speichern.
Im Einzelnen läuft dies wie unten beschrieben ab.
Die Beschreibung erfolgt unter Bezugnahme auf
3. Die Hauptspeichereinrichtung
408 von
3 speichert Datenbankinformationen 413. Die Hauptspeichereinrichtung
408 ist die verschlüsselter-Inhalt-Speichereinrichtung.
Die Hauptspeichereinrichtung
408 entspricht der Host-Speichereinheit
10M. Es wird angenommen, dass der Inhalt
P in eine Vielzahl von Subinhalt P1 bis Subinhalt Pn unterteilt werden kann. P1 bis Pn sind durch die obige Formel 7 in Ca1 bis Can verschlüsselt.
wobei Ca1 bis Can in der Hauptspeichereinrichtung
408 als die Datenbankinformationen 413 gespeichert sind. Ca1 bis Can sind verschlüsselter Inhalt.
Die Schlüssel-Rechenschaltung
222 des Servers
407 kann Ca1 bis Can mit dem durch die obige Formel 6 erhaltenen geheimen Schlüssel mk entschlüsseln.
-
<Konkretes Beispiel für die Operationsphase>
-
Als ein konkreteres Beispiel wird die Operationsphase anhand eines Beispiels erläutert, in dem Beschleunigung auf den Smith-Waterman-Algorithmus angewandt wird, der Punktzahlen für zwei Zeichenketten berechnet, um lokale Alignments zu errechnen. Die lokalen Alignments der Basensequenzen TGTTACGG und GGTTGACTA sind GTT-AC beziehungsweise GTTGAC. In der Operationsphase, die unter Bezugnahme auf 5 beschrieben ist, wird diese Verarbeitung wie unten beschrieben durchgeführt.
-
Die Client-Einrichtung 406 verschlüsselt TGTTACGG und GGTTGACTA mit dem geheimen Schlüssel mk und überträgt diese als verschlüsselte Daten Ca an den Server 407. Dies entspricht Schritt S23. Die Hochgeschwindigkeit-Operationsschaltung 225 zur Ausführung der Verarbeitung Func führt den Smith-Waterman-Algorithmus als die Verarbeitung Func aus. Dies wird wie unten erläutert verarbeitet. Die folgende Verarbeitung entspricht der Verarbeitung durch die Entschlüsselungsoperationsschaltung 224 und die Hochgeschwindigkeit-Operationsschaltung 225 von 6. Die Entschlüsselungsoperationsschaltung 224 entschlüsselt die verschlüsselten Daten Ca, um TGTTACGG und GGTTGACTA zu erhalten.
Dann führt die Hochgeschwindigkeitsoperationsschaltung 225 Matrix-Punktzahl-Berechnung in dem Smith-Waterman-Algorithmus als die Verarbeitung Func durch und erhält GTT-AC und GTTGAC als lokale Alignments. Die Verschlüsselungsoperationsschaltung 226 verschlüsselt GTT-AC und GTTGAC, die dem Verarbeitungsergebnis Q entsprechen, mit dem geheimen Schlüssel mk, um verschlüsselte Daten Cb zu generieren, und überträgt die verschlüsselten Daten Cb an die Client-Einrichtung 406. Diese Übertragung entspricht Schritt S24.
-
Die Client-Einrichtung 406 entschlüsselt die verschlüsselten Daten Cb mit dem geheimen Schlüssel mk, um GTT-AC und GTTGAC zu erhalten, die das Verarbeitungsergebnis Q sind. Diese Verarbeitung entspricht Schritt S25.
In dem oben beschriebenen Beispiel der Operationsphase werden die Basensequenzen TGTTACGG und GGTTGACTA und die lokalen Alignment-Ergebnisse GTT-AC und GTTGAC nicht auf dem Host-Rechner 401 preisgegeben.
-
6 ist ein detailliertes Einrichtungskonfigurationsdiagramm der dynamischen Verarbeitungsschaltung 22 von 1 zur Realisierung der Verarbeitung von 5.
-
Die Entsprechung zwischen 6 und der Verarbeitung von 5 wird beschrieben.
- (1) Die Eingabeschaltung 221 empfängt Daten, die von der Host-Recheneinheit 10 des Host-Rechners 401 über die feste Verarbeitungsschaltung 21 übertragen werden, und überträgt die Daten an eine geeignete Schaltung in der dynamischen Verarbeitungsschaltung 22.
- (2) Die Schlüssel-Rechenschaltung 222 umfasst die PUF, die Schlüsselgenerierung und die Entschlüsselungsverarbeitung bei elliptischer EIGamal-Verschlüsselung und Verarbeitung der Pseudozufallsfunktion PRF und führt die folgende Verarbeitung in 5 durch.
PUF_KeyGen(IV) → (HD, Kp, Ks)
PUF_KeyRep (IV, HD) → Ks
Dec(Ks, Cmk) → mk
- (3) Die Schlüssel-Speicherschaltung 223 hält und speichert mk und Ks, die von der Schlüssel-Rechenschaltung 222 ausgegeben werden. Die Schlüssel-Speicherschaltung 223 kann als Teil der Schlüssel-Rechenschaltung 222 implementiert sein. Die geheimen Schlüssel mk und Ks werden nicht über die feste Verarbeitungsschaltung 21 nach außerhalb des FPGA gegeben und werden nur in der dynamischen Verarbeitungsschaltung 22 genutzt.
- (4) Die Entschlüsselungsoperationsschaltung 224 führt die folgende Verarbeitung in 5 durch.
D(mk, Ca) → P
Als ein Beispiel für einen Algorithmus von D und E kann auf AES-GCM hingewiesen sein.
- (5) Die Hochgeschwindigkeitsoperationsschaltung 225 ist eine Operationseinheit zur Beschleunigung von Verarbeitung mit hoher Last in der Anwendung und führt die folgende Verarbeitung in 5 durch.
Func(P) → Q
In dem oben beschriebenen Beispiel zeigt dies die Matrix-Punktzahl-Berechnung in dem Smith-Waterman-Algorithmus an.
- (6) Die Entschlüsselungsoperationsschaltung 226 führt die folgende Verarbeitung in 5 durch.
E(mk, Q) → Cb
Wie in dem Fall der Entschlüsselungsoperationsschaltung 224 kann als ein Beispiel für den Verschlüsselungsalgorithmus E auf AES-GCM hingewiesen sein.
- (7) Die Ausgabeschaltung 227 überträgt einen Teil der Schlüssel-Rechenschaltung 222 und eine Ausgabe der Verschlüsselungsoperationsschaltung 226 an die feste Verarbeitungsschaltung 21. Konkret werden die Hilfsdaten HD und der öffentliche Schlüssel Kp der Schlüssel-Rechenschaltung 222 und die durch die Verschlüsselungsoperationsschaltung 226 berechneten verschlüsselten Daten Cb übertragen.
-
Die Operation der in 7 dargestellten Schlüssel-Rechenschaltung 222 wird nun beschrieben. In der Registrierungsphase von 5 empfängt die PUF-Schaltung 222b den Initialwert IV über die Eingabeschaltung 221, gibt Informationen unter Nutzung von Fertigungsvariationen aus und generiert die Identifizierer-ID durch Verschlüsselung mit dem Fuzzy-Extraktor 222c und Informationskomprimierung durch eine Hash-Funktion. Die an der Kodierung beteiligten Hilfsdaten HD werden von der Ausgabeschaltung 222e nach außerhalb der Schlüssel-Rechenschaltung 222 ausgegeben. Bei der Generierung eines Schlüsselpaares generiert die Schlüsselpaarverarbeitungsschaltung 222d aus der Identifizierer-ID einen geheimen Schlüssel Ks, wie in der Beschreibung von Formel 2 erwähnt. Die Schlüsselpaar-Verarbeitungsschaltung 222d generiert einen öffentlichen Schlüssel Kp aus dem geheimen Schlüssel Ks gemäß dem Schlüsselpaar-Generierungsalgorithmus eines Public-Key-Kryptographie-Schemas. Die Ausgabeschaltung 222e gibt den generierten öffentlichen Schlüssel Kp und den geheimen Schlüssel Ks nach außerhalb der Schlüssel-Rechenschaltung 222 aus.
-
In der Operationsphase von 5 empfängt die PUF-Schaltung 222b den Initialwert IV über die Eingabeschaltung 222a und gibt Informationen aus, die Fertigungsvariationen nutzen. Der Fuzzy-Extraktor 222c führt an dieser Ausgabe Korrekturverarbeitung durch, unter Verwendung von Hilfsdaten HD, um die gleiche Identifizierer-ID wie in der Registrierungsphase zu generieren.
Die Schlüsselpaar-Verarbeitungsschaltung 222d generiert aus der Identifizierer-ID den geheimen Schlüssel Ks. Die Schlüsselpaar-Verarbeitungsschaltung 222d speichert den geheimen Schlüssel Ks über die Ausgabeschaltung 222e in der Schlüssel-Speicherschaltung 223.
-
Die Entschlüsselung von Cmk wird nun beschrieben. Die Schlüsselpaar-Verarbeitungsschaltung 222d entschlüsselt Cmk unter Verwendung von Ks, das von der Schlüssel-Speicherschaltung 223 eingegeben wird, um den geheimen Schlüssel mk wiederherzustellen. Der geheime Schlüssel mk ist über die Ausgabeschaltung 222e in der Schlüssel-Speicherschaltung 223 gespeichert.
-
8 zeigt die Schlüssel-Speicherschaltung 223, wenn die Anwendung eine Vielzahl von geheimen Schlüsseln mk verwaltet. Wie in 8 dargestellt, kann die Anwendung eine Vielzahl von geheimen Schlüsseln mk verwalten. In dem oben beschriebenen Beispiel der Datenbankdurchsuchung wird angenommen, dass eine Abfrage unter Verwendung von mk1 zum Schutz der Datenbank verarbeitet wird. In diesem Fall können mk2 und mk3 für verschiedene Benutzer genutzt werden. Dies ermöglicht eine Kontrolle, so dass Suchergebnisse von Benutzern, aufweisend mk2 und mk3, nicht entschlüsselt werden können.
-
<Erste Variante>
-
Ein Anliegen bei der oben beschriebenen ersten Ausführungsform ist die Authentizität des öffentlichen Schlüssels Kp. In 5 überträgt der Server 407 an die Client-Einrichtung 406 den öffentlichen Schlüssel Kp, der dem von der Client-Einrichtung 406 übertragenen Initialwert IV entspricht. In 5 gibt es kein Mittel zum überprüfen, ob der öffentliche Schlüssel Kp innerhalb des FPGA 405 in dem Server 407 generiert wurde.
9 zeigt die Hochgeschwindigkeitsrechenschaltung 20 einer ersten Variante. In der in 9 dargestellten ersten Variante ist die Schlüssel-Rechenschaltung 222 aus 7 in der festen Verarbeitungsschaltung 21 anstelle der dynamischen Verarbeitungsschaltung 22 implementiert. Die Schlüssel-Rechenschaltung, die in der festen Verarbeitungsschaltung 21 implementiert ist, wird als Schlüssel-Rechenschaltung 222-1 bezeichnet. Das heißt, der FPGA 405, der die Logikschaltung ist, hat einen festen Bereich, in dem eine Logikschaltung gebildet ist, deren Schaltungskonfiguration sich nicht ändert. Dieser feste Bereich ist der Bereich in der festen Verarbeitungsschaltung 21, und die Schlüssel-Rechenschaltung 222-1 ist in der festen Verarbeitungsschaltung 21 gebildet, die der feste Bereich ist, wie in 9 dargestellt. Die Schlüssel-Rechenschaltung 222-1 generiert ein Paar aus dem gleichen öffentlichen Schlüssel und dem gleichen geheimen Schlüssel für den gleichen Initialwert.
-
Wenn die Schlüssel-Rechenschaltung 222 in der dynamischen Verarbeitungsschaltung 22 implementiert ist, wie in den 6 und 7 dargestellt, können sich bei Änderung der Platzierung und Verdrahtung der geheime Schlüssel Ks und der öffentliche Schlüssel Kp, die dem Initialwert IV entsprechen, aufgrund der PUF-Funktion ändern.
Wenn die Schlüssel-Rechenschaltung 222 in der festen Verarbeitungsschaltung 21 implementiert ist, wird jedes Mal, wenn der FPGA 405 konfiguriert wird, die gleiche Schaltung als die Schaltung der Schlüssel-Rechenschaltung 222 konfiguriert. Das heißt, es gibt keine Änderung in der Platzierung und Verdrahtung. Daher sind in dem gleichen FPGA 405 der geheime Schlüssel Ks und der öffentliche Schlüssel Kp, die dem gleichen Initialwert IV entsprechen, immer gleich.
-
Unter Verwendung der Merkmale der ersten Variante ist die folgende Konfiguration möglich.
10 zeigt Host-Rechner 401a und 401b der ersten Variante. Wie in 10 dargestellt, arbeiten eine Vielzahl von virtuellen Maschinen (VMs) auf den zwei Host-Rechnern 401a und 401b. Es gibt zwei Host-Rechner, aber dies ist ein Beispiel und es kann drei oder mehr Host-Rechner geben. Es gibt zwei VMs, die auf jedem der Host-Rechner arbeiten, aber dies ist ein Beispiel und es kann drei oder mehr VMs geben. Eine VM-Verwaltungseinheit 701 verwaltet die Vielzahl von Host-Rechnern und die Vielzahl von VMs, die auf den Host-Rechnern arbeiten.
In diesem Fall wird jeder von den Host-Rechnern als ein Knoten bezeichnet. In 10 wird der Initialwert IV für jede VM eines jeden Knotens bestimmt, und ein Schlüsselpaar wird durch die Schlüssel-Rechenschaltung 222-1 aus 9 unter Verwendung des Initialwertes IV generiert. Unter Verwendung einer Vielzahl von verschiedenen Initialwerten IV generiert die Schlüssel-Rechenschaltung 222-1 für jeden Initialwert IV ein Paar aus einem öffentlichen Schlüssel Kp und einem geheimen Schlüssel Ks.
Das heißt, die Schlüssel-Rechenschaltung 222-1 generiert den gleichen geheimen Schlüssel Ks und öffentlichen Schlüssel Kp für den gleichen Initialwert IV. Dadurch kann jeder VM von jedem Knoten ein Paar aus dem geheimen Schlüssel Ks und dem öffentlichen Schlüssel Kp zugewiesen sein. Die VM-Verwaltungseinheit 701 verwaltet diese Schlüssel als eine Schlüsselliste 703.
In der später zu beschreibenden 11 sind die VM-Informationen 602 in der Hilfsspeichereinrichtung 409 des Host-Rechners 401a gespeichert. Bei den VM-Informationen 602 handelt es sich um eine Vielzahl von verschiedenen Initialwerten IV. Konkret handelt es sich in dem Host-Rechner 401a von 10 um Informationen über das VM1 zugeordnete Initial IV als einen Initialwert.
-
Die Initialwerte und die aus dem Initialwert generierten öffentlichen Schlüssel sind als Schlüsselinformationen in Zuordnung zu Authentizitätsinformationen zur Gewährleistung von Authentizität in einer Schlüsselinformations-Speichereinrichtung gespeichert. Im Einzelnen läuft dies wie unten beschrieben ab. Die elektronische Signatur kann auf der Schlüsselliste 703 durch einen zuverlässigen Dritten durchgeführt werden, so dass die Authentizität der öffentlichen Schlüssel der Schlüsselliste 703 garantiert werden kann. Die elektronische Signatur sind die Authentizitätsinformationen. Eine Hilfsspeichereinrichtung 730 einer VM-Verwaltungseinrichtung 700, der später unter Bezugnahme auf 12 beschrieben wird, ist die Schlüsselinformationes-Speichereinrichtung. Die Schlüsselliste 703 sind die Schlüsselinformationen. In 10 werden Schlüssel gemäß dem Knoten und VM zugewiesen, die Schlüssel können aber auch für jede Anwendung in einer noch weiter unterteilten Weise zugewiesen sein. Als ein Beispiel für die VM-Verwaltungseinheit 701 kann auf ein VM-Verwaltungstool, dargestellt durch Openstack, hingewiesen sein. Dieses Verwaltungstool entspricht einem VM-Verwaltungsprogramm 702 aus 12.
-
Unter Bezugnahme auf 11 und 12 werden ergänzend Hardware-Konfigurationen des Host-Rechners 401a und der VM-Verwaltungseinrichtung 700 beschrieben.
11 zeigt die Hardware-Konfiguration des Host-Rechners 401a der ersten Variante. Der Host-Rechner 401a verfügt im Vergleich zu dem in 3 beschriebenen Host-Rechner 401 weiterhin über eine VM-Ausführungseinheit 11 und ein VM-Ausführungsprogramm 601. Die VM-Ausführungseinheit 11 ist durch Ausführung des VM-Ausführungsprogramms 601 durch die CPU 404 realisiert. Das VM-Ausführungsprogramm 601 ist in der Hilfsspeichereinrichtung 409 gespeichert. Der Host-Rechner 401b hat ebenfalls die gleiche Hardwarekonfiguration wie der Host-Rechner 401a.
12 zeigt die Hardware-Konfiguration der VM-Verwaltungseinrichtung 700. Die VM-Verwaltungseinrichtung 700 ist ein Rechner. Die VM-Verwaltungseinrichtung 700 umfasst als Hardware eine CPU 710, eine Hauptspeichereinrichtung 720, die Hilfsspeichereinrichtung 730 und eine Kommunikationsschnittstelle 740. Die VM-Verwaltungseinrichtung 700 weist die VM-Verwaltungseinheit 701 als eine funktionale Komponente auf. Die VM-Verwaltungseinheit 701 ist durch Ausführung des VM-Verwaltungsprogramms 702 durch die CPU 710 realisiert. Das VM-Verwaltungsprogramm 702 ist in der Hilfsspeichereinrichtung 730 gespeichert. Die Schlüsselliste 703 ist auch in der Hilfsspeichereinrichtung 730 gespeichert. Die VM-Verwaltungseinheit 701 kommuniziert mit den Host-Rechnern 401a und 401b über die Kommunikationsschnittstelle 740.
-
<Zweite Variante>
-
Bezugnehmend auf 13 wird eine zweite Variante der ersten Ausführungsform beschrieben.
13 ist ein Verarbeitungsablauf, darstellend die zweite Variante. Es wird angenommen, dass in Schritt 12a von 13 die Identifizierer-ID anstelle der Hilfsdaten HD übertragen wird.
Die zweite Variante ist dadurch gekennzeichnet, dass die Client-Einrichtung 406 den in Schritt S12a von 13 erworbenen öffentlichen Schlüssel Kp verifizieren kann. 13 unterscheidet sich von 5 in Schritt S11a, Schritt S12a, Schritt S13a, Verarbeitungen zum Übertragen von Cmk durch die Client-Einrichtung 406, eingefasst durch gestrichelte Linien, und Verarbeitungen zum Generieren eines Authentifizierungswertes Ts durch die Sicheres-Rechnen-Einrichtung 1, eingefasst durch gestrichelte Linien. Bezugnehmend auf 13 wird die zweite Variante der ersten Ausführungsform beschrieben.
Der Authentifizierungswert Ts ist ein erster Authentifizierungswert. Ein später zu beschreibender Authentifizierungswert Tc, der von der Client-Einrichtung 406 durch Errechnen erworben wird, ist ein zweiter Authentifizierungswert.
-
Wenn Schlüsselinformationen als Eingabedaten angewendet werden, überträgt die Übertragungssteuerungseinheit
501a der Client-Einrichtung
406 an den Server
407, der die Sicheres-Rechnen-Einrichtung 1 ist, ein Authentifizierungsprogramm, das einen Authentifizierungswert für die Schlüsselinformationen ausgibt.
In einem konkreten Beispiel, das später beschrieben wird, ist das Authentifizierungsprogramm eine Message-Authentication-Code-(MAC)-Funktion, die einen eingebetteten Schlüssel Kemb nutzt. Die Schlüsselinformationen, die auf die MAC-Funktion als Eingangsdaten angewendet werden, sind ein öffentlicher Schlüssel
Kp. Die MAC-Funktion nimmt als Eingabe den öffentlichen Schlüssel
Kp und gibt einen Authentifizierungswert T aus.
Diese Beziehung ist ausgedrückt als:
Es ist zu beachten, dass in
13 die Client-Einrichtung
406 ausschließlich das Authentifizierungsprogramm überträgt. In der Client-Einrichtung
406 kann die Übertragungssteuerungseinheit
501a jedoch das Authentifizierungsprogramm an den Server
407, der die Sicheres-Rechnen-Einrichtung
1 ist, übertragen, indem das Authentifizierungsprogramm in die Schaltungsinformationen 12 aufgenommen wird.
-
Die Verschlüsselungssteuerungseinheit 501b der Client-Einrichtung 406 erwirbt den ersten Authentifizierungswert Ts zusammen mit dem öffentlichen Schlüssel Kp von dem Server 407. Die Verschlüsselungssteuerungseinrichtung 501b wendet den erworbenen öffentlichen Schlüssel Kp auf die gleiche MACKemb an wie die an den Server 407 übertragene MACKemb, um den zweiten Authentifizierungswert Tc zu erwerben. Die Verschlüsselungssteuerungseinheit 501b vergleicht den ersten Authentifizierungswert Ts mit dem zweiten Authentifizierungswert Tc, und falls bestimmt wird, dass das Vergleichsergebnis korrekt ist, überträgt diese einen mit dem öffentlichen Schlüssel Kp verschlüsselten Benutzer-Geheimschlüssel Cmk an den Server 407. Das korrekte Vergleichsergebnis ist zum Beispiel Ts = Tc.
-
Bezugnehmend auf 13 wird das Vorstehende nachfolgend konkret beschrieben.
-
<Schritt S11a>
-
Die Übertragungssteuerungseinheit
501a überträgt neben den Schaltungsinformationen 12 und dem Initialwert IV auch MAC
Kemb, welche das Authentifizierungsprogramm ist, an den Server
407. In dem Server
407 werden, wie in
5 dargestellt, HD, Kp und Ks generiert.
Die Schlüssel-Rechenschaltung
222 berechnet den Authentifizierungswert Ts, wie unten angegeben, unter Verwendung von MAC
Kemb, die von der Client-Einrichtung 406 empfangen wurde.
-
<Schritt S12a>
-
Die Host-Recheneinheit 10 des Servers 407 überträgt die Identifizierer-ID, den öffentlichen Schlüssel Kp und den Authentifizierungswert Ts über die Kommunikationsschnittstelle 410 an die Client-Einrichtung 406.
-
<Schritt S13a>
-
Die Verschlüsselungssteuerungseinrichtung
501b erhält die Identifizierer-ID, den öffentlichen Schlüssel
Kp und den Authentifizierungswert Ts von der Sicheres-Rechnen-Einrichtung 1. Die Verschlüsselungssteuerungseinrichtung
501b wendet den von dem Server
407 erworbenen öffentlichen Schlüssel
Kp auf die gleiche MAC
Kemb an wie die an den Server
407 übertragene MAC
Kemb. Das heißt, die Verschlüsselungssteuerungseinrichtung
501b errechnet die folgende Formel, um den zweiten Authentifizierungswert Tc zu erhalten.
Die Verschlüsselungssteuerungseinheit
501b vergleicht den ersten Authentifizierungswert Ts mit dem zweiten Authentifizierungswert Tc. Falls das Vergleichsergebnis als korrekt bestimmt wird, verschlüsselt die Verschlüsselungssteuerungseinheit
501b einen Benutzer-Geheimschlüssel mk mit dem öffentlichen Schlüssel
Kp, der von dem Server
407 erworben wurde, um Cmk zu generieren, wie in der folgenden Formel angegeben.
Enc(Kp, mk) → Cmk
Anschließend überträgt die Verschlüsselungssteuerungseinheit
501b den verschlüsselten Benutzer-Geheimschlüssel Cmk an den Server
407.
Die anschließende Operation ist die gleiche wie in
5.
-
In der zweiten Variante überträgt die Client-Einrichtung 406 MACKemb an den Server 407. Der Server 407 generiert den Authentifizierungswert Ts aus MACKemb und überträgt den Authentifizierungswert Ts an die Client-Einrichtung 406. Die Client-Einrichtung 406 generiert den Authentifizierungswert Tc aus MACKemb und vergleicht den Authentifizierungswert Tc mit dem Authentifizierungswert Ts. Daher kann die Client-Einrichtung 406 gemäß der zweiten Variante verifizieren, dass der öffentliche Schlüssel Kp in dem auf Grundlage der Schaltungsinformationen 12 konfigurierten FPGA generiert wird.
-
<Dritte Variante>
-
Bezugnehmend auf 14 wird nun eine dritte Variante der ersten Ausführungsform beschrieben. Es wird angenommen, dass in Schritt 12 von 14 die Identifizierer-ID anstelle der Hilfsdaten HD übertragen wird.
14 ist ein Verarbeitungsablauf, darstellend die dritte Variante. Die dritte Variante ist dadurch gekennzeichnet, dass die Schlüssel-Rechenschaltung 222 unabhängig von der PUF-Funktion zufällig ein Paar aus einem öffentlichen Schlüssel Kp und einem geheimen Schlüssel Ks generiert, unter Verwendung der PUF-Funktion Schlüsselinformationen Kpuf generiert, den geheimen Schlüssel Ks mit den Schlüsselinformationen Kpuf verschlüsselt und den verschlüsselten geheimen Schlüssel Ks hält. Es ist zu beachten, dass „unter Verwendung der PUF-Funktion“ die Verwendung der physikalisch nicht klonbaren Funktion bedeutet. 14 unterscheidet sich von 5 dadurch, dass die Client-Einrichtung 406 in Schritt S11b und auch bei der Verarbeitung durch die Sicheres-Rechnen-Einrichtung 1, eingefasst durch gestrichelte Linien, den Initialwert IV nicht überträgt.
-
Unter Bezugnahme auf 14 wird die dritte Variante der ersten Ausführungsform beschrieben. Die Schlüssel-Rechenschaltung 222 generiert erste Schlüsselinformationen Kpuf1 unter Verwendung der physikalisch nicht klonbaren Funktion. Die Schlüssel-Rechenschaltung 222 verschlüsselt den geheimen Schlüssel Ks unter Verwendung der ersten Schlüsselinformationen Kpuf1. Wenn die Entschlüsselungsoperationsschaltung 224 verschlüsselte Daten Ca entschlüsselt, generiert die Schlüssel-Rechenschaltung 222 zweite Schlüsselinformationen Kpuf2, die die gleichen sind wie die ersten Schlüsselinformationen Kpuf1, unter Verwendung der physikalisch nicht klonbaren Funktion. Unter Verwendung der zweiten Schlüsselinformationen Kpuf2 entschlüsselt die Schlüssel-Rechenschaltung 222 den geheimen Schlüssel Ks, der mit den ersten Schlüsselinformationen Kpuf1 verschlüsselt wurde. Unter Verwendung des entschlüsselten geheimen Schlüssels Ks entschlüsselt die Schlüssel-Rechenschaltung 222 einen Benutzer-Geheimschlüssel Cmk, der durch die Client-Einrichtung 406 mit dem öffentlichen Schlüssel Kp verschlüsselt wurde.
Danach entschlüsselt der Server 407 unter Verwendung von mk, der mit dem geheimen Schlüssel Ks entschlüsselt wurde, die verschlüsselten Daten Ca zu dem Inhalt P, wie in 5 dargestellt.
-
Unter Bezugnahme auf 14 wird die dritte Variante der ersten Ausführungsform beschrieben.
-
<Schritt S11b>
-
Die Übertragungssteuerungseinheit 501a überträgt Schaltungsinformationen 12 an den Server 407. Die Schlüssel-Rechenschaltung 222 generiert zufällig ein Schlüsselpaar aus einem öffentlichen Schlüssel Kp und einem geheimen Schlüssel Ks durch die folgende Formel.
KeyGen(Random) → (Kp, Ks)
Die obige Formel zeigt, dass das Schlüsselpaar aus dem öffentlichen Schlüssel Kp und dem geheimen Schlüssel Ks zufällig generiert wird. Der Identifizierer des öffentlichen Schlüssels Kp ist ID, wie in 5. Die Schlüssel-Rechenschaltung 222 generiert aus einem Initialwert IV unter Verwendung der PUF-Funktion Hilfsdaten HD und erste Schlüsselinformationen Kpuf1.
PUF_KeyGen (IV) → (HD, Kpuf1)
Die Schlüssel-Rechenschaltung 222 verschlüsselt den geheimen Schlüssel Ks unter Verwendung der ersten Schlüsselinformationen Kpuf1.
En(Kpuf1, Ks) → enc(Ks)
Die obige Formel gibt an, dass der geheime Schlüssel Ks unter Verwendung der ersten Schlüsselinformationen Kpuf1 verschlüsselt wird, um enc(Ks) zu generieren, was der verschlüsselte geheime Schlüssel Ks ist.
-
Die Schritte S12 und S13 sind die gleichen wie in 5.
-
<Schritt S21>
-
Wenn die Identifizierer-ID von der Client-Einrichtung 406 empfangen wird, führt die Schlüssel-Rechenschaltung 222 die folgende Verarbeitung durch. Die Übertragung der Identifizierer-ID durch die Client-Einrichtung 406 ist eine Anforderung zur Verarbeitung auf den verschlüsselten Daten Ca. Wenn die Entschlüsselungsoperationsschaltung 224 die verschlüsselten Daten Ca entschlüsselt, generiert die Schlüssel-Rechenschaltung 222 unter Verwendung der PUF-Funktion zweite Schlüsselinformationen Kpuf2, die die gleichen sind wie die ersten Schlüsselinformationen Kpuf1. Das heißt, die Schlüssel-Rechenschaltung 222 führt die folgende Formel aus, um die zweiten Schlüsselinformationen Kpuf2 aus den Hilfsdaten HD zu generieren. Die zweiten Schlüsselinformationen Kpuf2 sind die gleichen wie die ersten Schlüsselinformationen Kpuf1.
PUF_KeyRep (HD) → Kpuf2
Die Schlüssel-Rechenschaltung 222 entschlüsselt enc(Ks) mit den zweiten Schlüsselinformationen Kpuf2, wie in der folgenden Formel angegeben, um den geheimen Schlüssel Ks zu erhalten.
De(Kpuf2, enc(Ks)) → Ks
Die obige Formel gibt an, dass enc(Ks) unter Verwendung der zweiten Schlüsselinformationen Kpuf2 entschlüsselt wird. Unter Verwendung des entschlüsselten geheimen Schlüssels Ks entschlüsselt die Schlüssel-Rechenschaltung 222 den Benutzer-Geheimschlüssel Cmk, der mit dem öffentlichen Schlüssel Kp verschlüsselt wurde, wie in der folgenden Formel angegeben.
Dec(Ks, Cmk) → mk
Die anschließende Verarbeitung ist die gleiche wie in 5.
-
In der dritten Variante wird ein Paar aus dem öffentlichen Schlüssel Kp und dem geheimen Schlüssel Ks ohne Verwendung der PUF-Funktion generiert, so dass die Übertragung des Initialwertes IV von der Client-Einrichtung 406 nicht erforderlich ist.
-
*** Wirkungen der ersten Ausführungsform ***
-
- (1) In der ersten Ausführungsform werden in der Operationsphase von 5 der Eingang und der Ausgang der Verarbeitung Func nur in der Schlüssel-Rechenschaltung 222, der Hochgeschwindigkeitsoperationsschaltung 225 und der Verschlüsselungsoperationsschaltung 226 bereitgestellt, wie in 6 dargestellt. Das heißt, der Eingang und der Ausgang der Verarbeitung Func werden nur in dem sicheren Bereich des FPGA 405 von 2 bereitgestellt.
Daher werden, selbst wenn Informationen des Host-Rechners 401 durchsickern, der Eingang und der Ausgang und Zwischenwerte der Verarbeitung Func nicht offengelegt.
- (2) Auf dem Host-Rechner 401 wird der geheime Schlüssel mk als Cmk verschlüsselt mit dem öffentlichen Schlüssel Kp verwaltet, und Cmk wird nur in dem FPGA 405 bereitgestellt.
Daher kann selbst ein Administrator des Host-Rechners 401 die Vertraulichkeit des geheimen Schlüssels mk nicht verletzen.
-
Die Ausführungsform, einschließlich der drei Varianten, wurde vorstehend beschrieben. Eine von der Ausführungsform und den drei Varianten kann teilweise implementiert sein. Alternativ können zwei oder mehr der Ausführungsformen und die drei Varianten in Kombination realisiert sein.
Die vorliegende Erfindung ist nicht auf die oben beschriebene Ausführungsform beschränkt, und verschiedene Modifikationen sind nach Bedarf möglich.
-
Bezugszeichenliste
-
- Ks
- geheimer Schlüssel;
- Kp
- öffentlicher Schlüssel;
- P
- Inhalt;
- Q
- Verarbeitungsergebnis;
- 1
- Sicheres-Rechnen-Einrichtung;
- 10
- Host-Recheneinheit;
- 10M
- Host-Speichereinheit;
- 11
- VM-Ausführungseinheit;
- 20M
- lokale Speichereinrichtung;
- 20
- Hochgeschwindigkeitsrechenschaltung;
- 21
- feste Verarbeitungsschaltung;
- 22
- dynamische Verarbeitungsschaltung;
- 221
- Eingabeschaltung;
- 222
- Schlüssel-Rechenschaltung;
- 222a
- Eingabeschaltung;
- 222b
- PUF-Schaltung;
- 222c
- Fuzzy-Extraktor;
- 222d
- Schlüsselpaar-Verarbeitungsschaltung;
- 222e
- Ausgabeschaltung;
- 223
- Schlüssel-Speicherschaltung;
- 224
- Entschlüsselungsoperationsschaltung;
- 225
- Hochgeschwindigkeitsoperationsschaltung;
- 226
- Verschlüsselungsoperationsschaltung;
- 227
- Ausgabeschaltung;
- 401, 401a, 401b
- Host-Rechner;
- 402
- Binär;
- 403
- Binär;
- 404
- CPU;
- 405
- FPGA;
- 406
- Client-Einrichtung;
- 407
- Server;
- 408
- Hauptspeichereinrichtung;
- 409
- Hilfsspeichereinrichtung;
- 410
- Kommunikationsschnittstelle;
- 412
- Host-Rechenprogramm;
- 501
- CPU;
- 501a
- Übertragungssteuerungseinheit;
- 501b
- Verschlüsselungssteuerungseinheit;
- 501c
- Entschlüsselungssteuerungseinheit;
- 501d
- Steuerprogramm;
- 502
- Hauptspeichereinrichtung;
- 503
- Hilfsspeichereinrichtung;
- 504
- Kommunikationsschnittstelle;
- 505
- Signalleitung;
- 601
- VM-Ausführungsprogramm;
- 700
- VM-Verwaltungseinrichtung;
- 701
- VM-Verwaltungseinheit;
- 702
- VM-Verwaltungsprogramm;
- 703
- Schlüsselliste;
- 710
- CPU;
- 720
- Hauptspeichereinrichtung;
- 730
- Hilfsspeichereinrichtung;
- 740
- Kommunikationsschnittstelle
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2016136190 A [0004]
- WO 2011/086688 A1 [0004]
-
Zitierte Nicht-Patentliteratur
-
- Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data, Eurocrypt 2004, S. 523-540 [0005]