DE112019006051T5 - Sicheres-rechnen-einrichtung und client-einrichtung - Google Patents

Sicheres-rechnen-einrichtung und client-einrichtung Download PDF

Info

Publication number
DE112019006051T5
DE112019006051T5 DE112019006051.1T DE112019006051T DE112019006051T5 DE 112019006051 T5 DE112019006051 T5 DE 112019006051T5 DE 112019006051 T DE112019006051 T DE 112019006051T DE 112019006051 T5 DE112019006051 T5 DE 112019006051T5
Authority
DE
Germany
Prior art keywords
key
circuit
secret key
encrypted
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112019006051.1T
Other languages
English (en)
Inventor
Daisuke Suzuki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112019006051T5 publication Critical patent/DE112019006051T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Eine Sicheres-Rechnen-Einrichtung (1) umfasst eine Host-Recheneinheit (10) und ein FPGA (405). Die Host-Recheneinheit (10) bildet eine Logikschaltung in dem FPGA (405). Der FPGA (405) umfasst eine Schlüssel-Rechenschaltung (222), um einen öffentliche Schlüssel Kp und einen geheimen Schlüssel (Ks) aus einem Initialwert (IV) zu generieren, einen geheimen Schlüssel (Cmk), der mit dem öffentlichen Schlüssel (Ks) verschlüsselt ist, zu erwerben und den geheimen Schlüssel (Cmk) mit dem geheimen Schlüssel Ks zu entschlüsseln; eine Entschlüsselungsoperationsschaltung (224), um verschlüsselte Daten (Ca), resultierend aus Verschlüsseln von Inhalt (Q) mit einem geheimen Schlüssel (mk) zu erwerben und die verschlüsselten Daten (Ca) mit dem entschlüsselten geheimen Schlüssel mk zu entschlüsseln; eine Hochgeschwindigkeitsoperationsschaltung (225), um Verarbeitung (Func) auf den Inhalt (Q) durchzuführen, um verarbeiteten Inhalt Q zu generieren; eine Verschlüsselungsschaltung (226), um den verarbeiteten Inhalt (Q) mit dem geheimen Schlüssel (mk) zu verschlüsseln; und eine Ausgabeschaltung (227), um verschlüsselte Daten des verarbeiteten Inhalts Q auszugeben.

Description

  • 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. PUF _ KeyGen ( IV ) ( HD ,  Kp ,  Ks )
    Figure DE112019006051T5_0001
    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
  • Enc ( Kp ,  mk )
    Figure DE112019006051T5_0002
    Formel 102 bezeichnet Verschlüsselung eines geheimen Schlüssels mk mit Public-Key-Kryptographie kp.
  • PUF_KeyRep ( IV ,HD ) Ks
    Figure DE112019006051T5_0003
    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.
  • Dec ( Ks ,  Cmk )
    Figure DE112019006051T5_0004
    Formel 104 gibt Verarbeitung an, um Cmk mit dem geheimen Schlüssel Ks zu entschlüsseln.
  • E ( mk ,  P )
    Figure DE112019006051T5_0005
    Formel 105 gibt Verarbeitung an, um P mit dem geheimen Schlüssel mk in der Common-Key-Kryptographie zu verschlüsseln.
  • D ( mk ,  Ca )
    Figure DE112019006051T5_0006
    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. (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. (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. PUF _ KeyGen ( IV ) ( HD ,  Kp ,  Ks )
    Figure DE112019006051T5_0007
    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. PRF ( ID ) Ks ( Ks Zn )
    Figure DE112019006051T5_0008
    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. Ks × G Kp
    Figure DE112019006051T5_0009
    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. Enc ( Kp ,  mk ) = ( rG ,  r × Kp + MK ) ( C 1,  C 2 ) = Cmk
    Figure DE112019006051T5_0010
    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. PUF _ KeyRep ( IV ,  HD ) Ks
    Figure DE112019006051T5_0011
    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. Dec ( Ks ,  Cmk ) = C 2 Ks × C 1 mk
    Figure DE112019006051T5_0012
    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. E ( mk ,  P ) Ca
    Figure DE112019006051T5_0013
    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. D ( mk ,  Ca ) P
    Figure DE112019006051T5_0014

    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. Func ( P ) Q
    Figure DE112019006051T5_0015
    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. E ( mk ,  Q ) Cb
    Figure DE112019006051T5_0016
  • <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. D ( mk ,  Cb ) Q
    Figure DE112019006051T5_0017
  • 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. E ( mk ,  P 1 ) Ca 1, E ( mk ,  P 2 ) Ca 2, E ( mk ,  P 2 ) Can ,
    Figure DE112019006051T5_0018
    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. (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. (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. (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. (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. (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. (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. (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: MAC Kemb ( Kp ) = T .
    Figure DE112019006051T5_0019

    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 MACKemb, 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 MACKemb, die von der Client-Einrichtung 406 empfangen wurde. MAC Kemb ( Kp ) = Ts
    Figure DE112019006051T5_0020
  • <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 MACKemb an wie die an den Server 407 übertragene MACKemb. Das heißt, die Verschlüsselungssteuerungseinrichtung 501b errechnet die folgende Formel, um den zweiten Authentifizierungswert Tc zu erhalten. MAC Kemb ( Kp ) = Tc
    Figure DE112019006051T5_0021

    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. (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. (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]

Claims (10)

  1. Sicheres-Rechnen-Einrichtung, umfassend: eine Host-Recheneinheit; und eine Logikschaltungseinrichtung, in der eine Schaltungskonfiguration von einer Logikschaltung durch Schaltungsinformationen geändert werden kann, wobei die Host-Recheneinheit eine Vielzahl von Logikschaltungen in der Logikschaltungseinrichtung bildet, unter Verwendung von den 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 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 dem 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.
  2. Sicheres-Rechnen-Einrichtung nach Anspruch 1, wobei die Schlüssel-Rechenschaltung das Paar aus dem öffentlichen Schlüssel und dem geheimen Schlüssel unter Verwendung eines Initialwerts generiert.
  3. Sicheres-Rechnen-Einrichtung nach Anspruch 2, wobei die Logikschaltungseinrichtung einen festen Bereich aufweist, in dem eine Logikschaltung gebildet ist, deren Schaltungskonfiguration sich nicht ändert, und wobei die Schlüsselberechnungsschaltung in dem festen Bereich gebildet ist und ein Paar aus dem gleichen öffentlichen Schlüssel und dem gleichen geheimen Schlüssel für den gleichen Initialwert generiert.
  4. Sicheres-Rechnen-Einrichtung nach Anspruch 3, wobei die Schlüssel-Rechenschaltung ein Paar aus einem öffentlichen Schlüssel und einem geheimen Schlüssel für jeden Initialwert generiert, unter Verwendung einer Vielzahl von unterschiedlichen Initialwerten.
  5. Sicheres-Rechnen-Einrichtung nach Anspruch 4, wobei die Initialwerte und die aus den Initialwerten generierten öffentlichen Schlüssel in Zuordnung zu Authentizitätsinformationen zum Garantieren von Authentizität in einer Schlüsselinformations-Speichereinrichtung, um Schlüsselinformationen zu speichern, gespeichert sind.
  6. Sicheres-Rechnen-Einrichtung nach einem der Ansprüche 1 bis 5, wobei die Schlüssel-Rechenschaltung den mit dem Benutzer-Geheimschlüssel verschlüsselten Inhalt von einer Verschlüsselter-Inhalt-Speichereinrichtung erwirbt, um den mit dem Benutzer-Geheimschlüssel verschlüsselten Inhalt zu speichern.
  7. Sicheres-Rechnen-Einrichtung nach Anspruch 1, wobei die Schlüssel-Rechenschaltung erste Schlüsselinformationen unter Verwendung einer physikalisch nicht klonbaren Funktion generiert, und den geheimen Schlüssel unter Verwendung der ersten Schlüsselinformationen verschlüsselt, und wenn die Entschlüsselungsoperationsschaltung den verschlüsselten Inhalt entschlüsselt, die Schlüssel-Rechenschaltung zweite Schlüsselinformationen generiert, die die gleichen sind wie die ersten Schlüsselinformationen, unter Verwendung der physikalisch nicht klonbaren Funktion, den geheimen Schlüssel, der mit den ersten Schlüsselinformationen verschlüsselt wurde, unter Verwendung der zweiten Schlüsselinformationen entschlüsselt, und den verschlüsselten Benutzer-Geheimschlüssel mit dem geheimen Schlüssel entschlüsselt.
  8. Client-Einrichtung, die mit der Sicheres-Rechnen-Einrichtung nach Anspruch 1 kommuniziert, wobei die Client-Einrichtung umfasst: eine Übertragungssteuerungseinheit, um die Schaltungsinformationen an die Sicheres-Rechnen-Einrichtung zu übertragen; eine Verschlüsselungssteuerungseinheit, um den öffentlichen Schlüssel von der Sicheres-Rechnen-Einrichtung zu erwerben, den Benutzer-Geheimschlüssel mit dem öffentlichen Schlüssel zu verschlüsseln, den Inhalt mit dem Benutzer-Geheimschlüssel zu verschlüsseln und den mit dem öffentlichen Schlüssel verschlüsselten Benutzer-Geheimschlüssel und den mit dem Benutzer-Geheimschlüssel verschlüsselten Inhalt an die Sicheres-Rechnen-Einrichtung zu übertragen; und eine Entschlüsselungssteuerungseinheit, um den verschlüsselten verarbeiteten Inhalt von der Sicheres-Rechnen-Einrichtung zu erwerben und den verschlüsselten verarbeiteten Inhalt mit dem Benutzer-Geheimschlüssel zu entschlüsseln.
  9. Client-Einrichtung nach Anspruch 8, wobei, wenn Schlüsselinformationen als Eingabedaten angewendet werden, die Übertragungssteuerungseinheit an die Sicheres-Rechnen-Einrichtung ein Authentifizierungsprogramm überträgt, das einen Authentifizierungswert für die Schlüsselinformationen ausgibt, und wobei die Verschlüsselungssteuerungseinheit einen ersten Authentifizierungswert zusammen mit dem öffentlichen Schlüssel von der Sicheres-Rechnen-Einrichtung erwirbt, den öffentlichen Schlüssel als die Schlüsselinformationen auf das gleiche Authentifizierungsprogramm wie das an die Sicheres-Rechnen-Einrichtung übertragene Authentifizierungsprogramm anwendet, um einen zweiten Authentifizierungswert zu erwerben, den ersten Authentifizierungswert mit dem zweiten Authentifizierungswert vergleicht, und, wenn ein Vergleichsergebnis als korrekt bestimmt ist, den verschlüsselten Benutzer-Geheimschlüssel an die Sicheres-Rechnen-Einrichtung überträgt.
  10. Client-Einrichtung nach Anspruch 9, wobei die Übertragungssteuerungseinheit das Authentifizierungsprogramm an die Sicheres-Rechnen-Einrichtung überträgt durch Aufnehmen des Authentifizierungsprogramms in die Schaltungsinformationen.
DE112019006051.1T 2019-01-09 2019-01-09 Sicheres-rechnen-einrichtung und client-einrichtung Withdrawn DE112019006051T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/000294 WO2020144758A1 (ja) 2019-01-09 2019-01-09 秘密計算装置及びクライアント装置

Publications (1)

Publication Number Publication Date
DE112019006051T5 true DE112019006051T5 (de) 2021-09-30

Family

ID=71521476

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019006051.1T Withdrawn DE112019006051T5 (de) 2019-01-09 2019-01-09 Sicheres-rechnen-einrichtung und client-einrichtung

Country Status (5)

Country Link
US (1) US20210273790A1 (de)
JP (1) JPWO2020144758A1 (de)
CN (1) CN113261038A (de)
DE (1) DE112019006051T5 (de)
WO (1) WO2020144758A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11784827B2 (en) * 2021-03-09 2023-10-10 Micron Technology, Inc. In-memory signing of messages with a personal identifier

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011086688A1 (ja) 2010-01-15 2011-07-21 三菱電機株式会社 ビット列生成装置及びビット列生成方法
JP2016136190A (ja) 2015-01-23 2016-07-28 Kddi株式会社 秘密計算制御装置、秘密計算制御方法及び秘密計算制御プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6150837A (en) * 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
JP4067757B2 (ja) * 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム
US7352867B2 (en) * 2002-07-10 2008-04-01 General Instrument Corporation Method of preventing unauthorized distribution and use of electronic keys using a key seed
US7564345B2 (en) * 2004-11-12 2009-07-21 Verayo, Inc. Volatile device keys and applications thereof
EP2680485B1 (de) * 2011-06-02 2016-04-06 Mitsubishi Electric Corporation Vorrichtung zur erzeugung von schlüsselinformationen und verfahren zur erzeugung von schlüsselinformationen
JP5662391B2 (ja) * 2012-08-17 2015-01-28 株式会社東芝 情報操作装置、情報出力装置および情報処理方法
US9450760B2 (en) * 2014-07-31 2016-09-20 Nok Nok Labs, Inc. System and method for authenticating a client to a device
JP6620595B2 (ja) * 2016-02-25 2019-12-18 富士通株式会社 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011086688A1 (ja) 2010-01-15 2011-07-21 三菱電機株式会社 ビット列生成装置及びビット列生成方法
JP2016136190A (ja) 2015-01-23 2016-07-28 Kddi株式会社 秘密計算制御装置、秘密計算制御方法及び秘密計算制御プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data, Eurocrypt 2004, S. 523-540

Also Published As

Publication number Publication date
CN113261038A (zh) 2021-08-13
JPWO2020144758A1 (ja) 2021-03-11
US20210273790A1 (en) 2021-09-02
WO2020144758A1 (ja) 2020-07-16

Similar Documents

Publication Publication Date Title
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE112005001654B4 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
DE102019208032A1 (de) Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz
DE69917356T2 (de) Sicherheitstechnik an einem Computernetzwerk
DE112005001666B4 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
EP2340502B1 (de) Datenverarbeitungssystem zur bereitstellung von berechtigungsschlüsseln
DE60117230T2 (de) Stromverschlüsselungsanwendungsbeschleuniger und zugehöriges Verfahren
DE60031304T3 (de) Verfahren zur authentifizierung von softwarebenutzern
DE102019107503A1 (de) Ein-chip-system und speichersystem, die einen sicherheitsprozessor mit verbesserter speichernutzungseffizienz umfassen, sowie verfahren zum betreiben des ein-chip-systems
DE102020116791A1 (de) Vorrichtung und Verfahren zum computergestützten Verarbeiten von Daten
DE112013000357B4 (de) System zum Authentifizieren einer Annahme einer Zeichenfolge durch einen Automaten
DE112017004609T5 (de) Mehrstufiges Speicherintegritätsverfahren und -vorrichtung
DE112005001672T5 (de) Verfahren zum Liefern eines geheimen Direktnachweisschlüssels an Vorrichtungen unter Verwendung eines Onlinedienstes
DE102017117899A1 (de) Durchführen einer kryptografischen Operation
DE112018007433T5 (de) Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm
DE112021005561T5 (de) Implementieren einer widerstandsfähigen deterministischen verschlüsselung
DE102021117437A1 (de) Sichere und geschützte Kommunikationsnetzwerknachrichtenverarbeitung
DE112018002723B4 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
DE60105449T2 (de) Verfahren zur Steigerung der Sicherheit eines Verschlüsselungsverfahrens mit öffentlichen Schlüsseln
DE112019006051T5 (de) Sicheres-rechnen-einrichtung und client-einrichtung
DE112020000235T5 (de) Anmeldung einer vorautorisierten vorrichtung
CN111860847B (zh) 一种基于量子计算的数据加密方法
EP3686763B1 (de) Computer-implementierte vorrichtung und verfahren zum verarbeiten von daten
DE112021002747T5 (de) Sicheres wiederherstellen von geheimen schlüsseln
DE112021007337T5 (de) Chiffretext-umwandlungssystem, umwandlungsschlüssel- erzeugungsverfahren und umwandlungsschlüssel-erzeugungsprogramm

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee