DE112020005626T5 - Durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungsverfahren und durchsuchbares verschlüsselungsprogramm - Google Patents

Durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungsverfahren und durchsuchbares verschlüsselungsprogramm Download PDF

Info

Publication number
DE112020005626T5
DE112020005626T5 DE112020005626.0T DE112020005626T DE112020005626T5 DE 112020005626 T5 DE112020005626 T5 DE 112020005626T5 DE 112020005626 T DE112020005626 T DE 112020005626T DE 112020005626 T5 DE112020005626 T5 DE 112020005626T5
Authority
DE
Germany
Prior art keywords
index
unit
registration
keyword
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020005626.0T
Other languages
English (en)
Inventor
Takato Hirano
Yutaka Kawai
Yoshihiro Koseki
Satoshi Yasuda
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 DE112020005626T5 publication Critical patent/DE112020005626T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Chairs Characterized By Structure (AREA)
  • Storage Device Security (AREA)

Abstract

Ein durchsuchbares Verschlüsselungssystem umfasst eine Registrierungsvorrichtung, die eine Indexgenerierungseinheit (624) und eine Einheit (625) zum Generieren eines verschlüsselten Index aufweist. Die Indexgenerierungseinheit (624) generiert einen Registrierungsschlüsselwortindex unter Verwendung eines Registrierungsschlüsselworts, von Attributinformationen zu einer berechtigten Person, die über eine Berechtigung zum Suchen nach dem Registrierungsschlüsselwort verfügt, einer Benutzerschlüsselfunktion zum Generieren eines Benutzerschlüssels, der einem Sucher entspricht, einer Suchanfragefunktion zum Generieren einer Suchanfrage, in die der Benutzerschlüssel integriert ist, und einer Indexanfragefunktion zum Generieren einer Indexanfrage, in die die Suchanfrage integriert ist. Die Einheit (625) zum Generieren eines verschlüsselten Index generiert durch Verschlüsseln des Registrierungsschlüsselwortindex unter Verwendung des Indexoffenlegungsschlüssels einen verschlüsselten Index.

Description

  • Gebiet der Technik
  • Die vorliegende Offenbarung betrifft ein durchsuchbares Verschlüsselungssystem, ein durchsuchbares Verschlüsselungsverfahren und ein durchsuchbares Verschlüsselungsprogramm.
  • Stand der Technik
  • Die durchsuchbare Verschlüsselung ist eine Technik des Suchens nach verschlüsselten Daten als verschlüsselt. Das heißt, die durchsuchbare Verschlüsselung ist eine Technik des Suchens nach verschlüsselten Daten ohne Decodierung.
  • In den letzten Jahren gewinnt die durchsuchbare Verschlüsselung Aufmerksamkeit in Cloud-Diensten als eine Sicherheitstechnik zum Schützen geheimer Informationen. Gemäß der durchsuchbaren Verschlüsselung ist es möglich, ein Abfangen geheimer Informationen durch einen Serveradministrator, Malware oder dergleichen zu verhindern. Das heißt, die durchsuchbare Verschlüsselung gewinnt Aufmerksamkeit als eine Sicherheitstechnik für das sichere Verwalten von Daten im Internet.
  • Die durchsuchbare Verschlüsselung weist zwei Typen auf: ein gemeinsames Schlüsselschema und ein öffentliches Schlüsselschema.
  • Im gemeinsamen Schlüsselschema wird gemeinsame Schlüsselkryptographie verwendet, und Registrierer und Sucher sind beschränkt.
  • Im öffentlichen Schlüsselschema wird öffentliche Schlüsselkryptographie verwendet, und Sucher sind beschränkt, doch Registrierer sind nicht beschränkt.
  • Patentliteratur 1 offenbart ein gemeinsames Schlüsselschema vom Mehrbenutzertyp. In diesem Schema verschlüsselt ein Registrierer Daten, indem er für den Zweck der Registrierung einen geheimen Schlüssel verwendet, der sich für jeden Sucher unterscheidet.
  • Liste der Anführungen
  • Patentliteratur
  • Patentliteratur 1: WO 2019/142651 A1
  • Abriss der Erfindung
  • Technische Aufgabe
  • Wenn das in der Patentliteratur 1 offenbarte gemeinsame Schlüsselschema verwendet wird, hängt die für das Durchsuchen verschlüsselter Daten erforderliche Zeit von der Anzahl der in der Datenverwaltungsvorrichtung registrierten verschlüsselten Tags ab. Darüber hinaus ist es in diesem Fall unmöglich, einen Index zu konfigurieren, der genutzt werden kann, um die Geschwindigkeit des Durchsuchens zu erhöhen. Folglich besteht das Problem, dass es unmöglich ist, mit hohen Geschwindigkeiten nach verschlüsselten Daten zu suchen, wenn die Anzahl registrierter verschlüsselter Tags groß ist.
  • Eine Aufgabe der vorliegenden Offenbarung besteht darin, in einem durchsuchbaren Verschlüsselungssystem, das ein gemeinsames Schlüsselschema vom Mehrbenutzertyp anwendet, einem Sucher zu gestatten, mit relativ hohen Geschwindigkeiten nach in einer Datenverwaltungsvorrichtung registrierten Daten zu suchen.
  • Technische Lösung
  • Ein erfindungsgemäßes durchsuchbares Verschlüsselungssystem umfasst:
    • eine Registrierungsvorrichtung, die aufweist:
      • eine Registrierungsdatenspeichereinheit zum Speichern eines Registrierungsschlüsselworts, Attributinformationen zu einer berechtigten Person, die ein Attribut angeben, das im Besitz einer berechtigten Person sein muss, die eine Berechtigung hat, nach dem Registrierungsschlüsselwort zu suchen, und einen Indexoffenlegungsschlüssel zum Verschlüsseln eines Registrierungsschlüsselwortindex, der dem Registrierungsschlüsselwort entspricht,
      • eine Indexgenerierungseinheit zum Generieren des Registrierungsschlüsselwortindex unter Verwendung des Registrierungsschlüsselworts, Attributinformationen zu einer berechtigten Person, eine Benutzerschlüsselfunktion zum Generieren eines Benutzerschlüssels mit darin integrierten Sucherattributinformationen, die ein Attribut angeben, das ein Sucher, der nach dem Registrierungsschlüsselwort sucht, aufweist, eine Suchanfragefunktion zum Generieren einer Suchanfrage mit dem darin enthaltenen Benutzerschlüssel, wobei die Suchanfrage einem Suchschlüsselwort für den Sucher zum Suchen nach dem Registrierungsschlüsselwort entspricht, und eine Indexanfragefunktion zum Generieren einer Indexanfrage, in die die Suchanfrage integriert ist, wobei die Indexanfrage zur Suche nach dem Registrierungsschlüsselwortindex dient, und
      • eine Einheit zum Generieren eines verschlüsselten Index, um durch Verschlüsseln des Registrierungsschlüsselwortindex unter Verwendung des Indexoffenlegungsschlüssels einen verschlüsselten Index zu generieren.
  • Vorteilhafte Wirkungen der Erfindung
  • Gemäß dem durchsuchbaren Verschlüsselungssystem der vorliegenden Offenbarung generiert die Einheit zum Generieren eines verschlüsselten Index einen verschlüsselten Index. Der verschlüsselte Index entspricht einem Registrierungsschlüsselwort. Das Registrierungsschlüsselwort kann Daten entsprechen, die in der Datenverwaltungsvorrichtung registriert sind. Folglich kann der Sucher, indem er unter Verwendung des verschlüsselten Index nach dem Registrierungsschlüsselwort sucht, nach den in der Datenverwaltungsvorrichtung registrierten Daten mit relativ hohen Geschwindigkeiten suchen.
  • Figurenliste
    • 1 ist ein Strukturdiagramm eines durchsuchbaren Verschlüsselungssystems 100 in Ausführungsform 1.
    • 2 ist ein Strukturdiagramm einer Hauptschlüsselvorrichtung 200 in Ausführungsform 1.
    • 3 ist ein Strukturdiagramm einer Registrierungsschlüsselvorrichtung 300 in Ausführungsform 1.
    • 4 ist ein Strukturdiagramm einer Indexoffenlegungsschlüsselvorrichtung 400 in Ausführungsform 1.
    • 5 ist ein Strukturdiagramm einer Generierungseinheit 420 in Ausführungsform 1.
    • 6 ist ein Strukturdiagramm einer Benutzerschlüsselvorrichtung 500 in Ausführungsform 1.
    • 7 ist ein Strukturdiagramm einer Generierungseinheit 520 in Ausführungsform 1.
    • 8 ist ein Strukturdiagramm einer Registrierungsvorrichtung 600 in Ausführungsform 1.
    • 9 ist ein Strukturdiagramm einer Generierungseinheit 620 in Ausführungsform 1.
    • 10 ist ein Strukturdiagramm einer Suchvorgangsvorrichtung 700 in Ausführungsform 1.
    • 11 ist ein Strukturdiagramm einer Generierungseinheit 720 in Ausführungsform 1.
    • 12 ist ein Strukturdiagramm einer Datenverwaltungsvorrichtung 800 in Ausführungsform 1.
    • 13 ist ein Strukturdiagramm einer Decodierungseinheit 820 in Ausführungsform 1.
    • 14 ist ein Strukturdiagramm einer Sucheinheit 840 in Ausführungsform 1.
    • 15 ist ein Ablaufdiagramm, das den Ablauf eines Hauptschlüsselgenerierungsprozesses in Ausführungsform 1 veranschaulicht.
    • 16 ist ein Ablaufdiagramm, das den Ablauf eines Registrierungsschlüsselgenerierungsprozesses in Ausführungsform 1 veranschaulicht.
    • 17 ist ein Ablaufdiagramm, das den Ablauf eines Indexoffenlegungsschlüsselgenerierungsprozesses in Ausführungsform 1 veranschaulicht.
    • 18 ist ein Ablaufdiagramm, das den Ablauf eines Benutzerschlüsselgenerierungsprozesses in Ausführungsform 1 veranschaulicht.
    • 19 ist ein Diagramm, das Attributinformationen in Ausführungsform 1 veranschaulicht.
    • 20 ist ein Ablaufdiagramm, das den Ablauf eines Datenregistrierungsprozesses in Ausführungsform 1 veranschaulicht.
    • 21 ist ein Diagramm, das eine Registrierungsdatenbank 892 in Ausführungsform 1 veranschaulicht.
    • 22 ist ein Ablaufdiagramm, das den Ablauf eines Indexoffenlegungsprozesses in Ausführungsform 1 veranschaulicht.
    • 23 ist ein Diagramm, das eine Post-Index-Offenlegungsdatenbank 893 in Ausführungsform 1 veranschaulicht.
    • 24 ist ein Ablaufdiagramm, das den Ablauf eines Suchvorgangsprozesses in Ausführungsform 1 veranschaulicht.
    • 25 ist ein Ablaufdiagramm, das den Ablauf eines Datensuchprozesses in Ausführungsform 1 veranschaulicht.
    • 26 ist ein Ablaufdiagramm, das den Ablauf eines Datenlöschprozesses in Ausführungsform 1 veranschaulicht.
    • 27 ist ein Hardwarestrukturdiagramm einer Hauptschlüsselvorrichtung 200 in einem Modifikationsbeispiel von Ausführungsform 1.
    • 28 ist eine Hardwarestrukturdiagramm der Registrierungsschlüsselvorrichtung 300 im Modifikationsbeispiel von Ausführungsform 1.
    • 29 ist ein Hardwarestrukturdiagramm der Indexoffenlegungsschlüsselvorrichtung 400 im Modifikationsbeispiel von Ausführungsform 1.
    • 30 ist ein Hardwarestrukturdiagramm einer Benutzerschlüsselvorrichtung 500 im Modifikationsbeispiel von Ausführungsform 1.
    • 31 ist ein Hardwarestrukturdiagramm der Registrierungsvorrichtung 600 im Modifikationsbeispiel von Ausführungsform 1.
    • 32 ist ein Hardwarestrukturdiagramm der Suchvorgangsvorrichtung 700 im Modifikationsbeispiel von Ausführungsform 1.
    • 33 ist ein Hardwarestrukturdiagramm der Datenverwaltungsvorrichtung 800 im Modifikationsbeispiel von Ausführungsform 1.
  • Beschreibung von Ausführungsformen
  • In der Beschreibung und den Zeichnungen einer Ausführungsform haben die gleichen Komponenten und entsprechende Komponenten das gleiche Bezugszeichen. Eine Beschreibung von Komponenten mit gleichem Bezugszeichen wurde gegebenenfalls weggelassen oder vereinfacht. Ein Pfeil in einer Zeichnung veranschaulicht hauptsächlich einen Fluss von Daten oder einen Prozessablauf.
  • Ausführungsform 1.
  • Zuerst werden Prozesse durch einen Registrierer, einen Sucher und eine Datenverwaltungsvorrichtung in einer durchsuchbaren Verschlüsselung jeweils kurz beschrieben.
  • Der Registrierer ist ein Benutzer, der verschlüsselte Daten registriert. Der Registrierer kann eine Vorrichtung zum Registrieren von Daten umfassen.
  • Der Sucher ist ein Benutzer, der nach verschlüsselten Daten sucht. Der Sucher kann eine Vorrichtung zum Suchen nach Daten umfassen.
  • Die Datenverwaltungsvorrichtung ist eine Vorrichtung, die verschlüsselte Daten speichert.
  • Ein vom Registrierer auszuführender Basisprozess ist wie folgt.
  • Zuerst generiert der Registrierer verschlüsselte Daten durch Verschlüsseln zu registrierender Daten.
  • Dann generiert der Registrierer ein Registrierungsschlüsselwort für das Suchen nach verschlüsselten Daten.
  • Dann verschlüsselt der Registrierer das Registrierungsschlüsselwort. Ein verschlüsseltes Registrierungsschlüsselwort wird als ein verschlüsseltes Tag bezeichnet. Das verschlüsselte Tag kann andere Daten als das darin enthaltene Registrierungsschlüsselwort aufweisen. Es ist schwierig, das Registrierungsschlüsselwort auf Grundlage des verschlüsselten Tags abzuschätzen.
  • Nachfolgend ordnet der Registrierer das verschlüsselte Tag den verschlüsselten Daten zu. Die Anzahl der verschlüsselten Tags muss nicht eins sein. Das heißt, der Registrierer kann den verschlüsselten Daten eine Vielzahl verschlüsselter Tags zuordnen.
  • Dann registriert der Registrierer die verschlüsselten Daten und das verschlüsselte Tag in der Datenverwaltungsvorrichtung.
  • Ein vom Sucher auszuführender Basisprozess ist wie folgt.
  • Zuerst wählt der Sucher ein bei der Suche zu verwendendes Suchschlüsselwort aus.
  • Dann verschlüsselt der Sucher das Suchschlüsselwort unter Verwendung eines geheimen Schlüssels. Der geheime Schlüssel weist darin enthaltene Informationen über den Sucher auf. Ein verschlüsseltes Suchschlüsselwort wird als eine Suchanfrage bezeichnet. Die Suchanfrage kann andere Daten als das darin enthaltene Suchschlüsselwort aufweisen. Es ist schwierig, den geheimen Schlüssel, das Suchschlüsselwort oder dergleichen auf Grundlage der Suchanfrage abzuschätzen.
  • Nachfolgend, durch Übertragen der Suchanfrage an die Datenverwaltungsvorrichtung, stellt der Sucher an die Datenverwaltungsvorrichtung eine Anfrage, nach Daten zu suchen, die dem Suchschlüsselwort entsprechen.
  • Dann empfängt der Sucher der Suchanfrage entsprechende verschlüsselte Daten von der Datenverwaltungsvorrichtung.
  • Ein von der Datenverwaltungsvorrichtung auszuführender Basisprozess ist wie folgt.
  • In der Datenverwaltungsvorrichtung werden mindestens ein Satz verschlüsselter Daten und ein verschlüsseltes Tag registriert.
  • Zuerst empfängt die Datenverwaltungsvorrichtung eine Suchanfrage.
  • Dann, durch Ausführen einer speziellen arithmetischen Operation, wählt die Datenverwaltungsvorrichtung ein der Suchanfrage entsprechendes verschlüsseltes Tag aus. Die spezielle arithmetische Operation ist eine Operation zum Vergleichen des Suchschlüsselwortes mit einem registrierten Schlüsselwort, das jedem verschlüsselten Tag entspricht, ohne das verschlüsselte Tag zu decodieren.
  • Dann überträgt die Datenverwaltungsvorrichtung die dem ausgewählten verschlüsselten Tag zugeordneten verschlüsselten Daten an den Sucher.
  • In dem verschlüsselten Tag können Informationen, die eine berechtigte Person angeben, die ein für die Suche zugelassener Sucher ist, enthalten sein. Als ein konkretes Beispiel wird davon ausgegangen, dass in dem verschlüsselten Tag Informationen enthalten sind, die angeben, dass nur einem Sucher A gestattet ist, zu suchen. Man stelle sich einen Fall vor, in dem ein Sucher B einen dem Sucher B entsprechenden geheimen Schlüssel nutzt, um unter Verwendung eines Suchschlüsselworts, das zu einem in diesem verschlüsselten Tag enthaltenen registrierten Schlüsselwort passt, eine Suchanfrage zu generieren und unter Verwendung dieser Suchanfrage nach verschlüsselten Daten zu suchen. In diesem Fall stellt die Datenverwaltungsvorrichtung fest, dass der dem verschlüsselten Tag entsprechende Sucher und der Sucher, welcher der Suchanfrage entspricht, nicht übereinstimmen.
  • Nachfolgend wird die vorliegende Ausführungsform unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
  • Ein durchsuchbares Verschlüsselungssystem 100 gemäß der vorliegenden Ausführungsform führt durch Generieren eines Index unter Verwendung von gemeinsamer Schlüsselkryptographie vom Mehrbenutzertyp, Verschlüsselung des generierten Index, Decodierung des verschlüsselten Index und Verwendung des decodierten Index eine durchsuchbare Verschlüsselung durch.
  • ***Beschreibung der Struktur***
  • 1 veranschaulicht ein Beispiel einer Struktur des durchsuchbaren Verschlüsselungssystems 100.
  • Das durchsuchbare Verschlüsselungssystem 100 umfasst, wie in der Zeichnung veranschaulicht, eine Hauptschlüsselvorrichtung 200, eine Registrierungsschlüsselvorrichtung 300, eine Indexoffenlegungsschlüsselvorrichtung 400, eine Benutzerschlüsselvorrichtung 500, eine Registrierungsvorrichtung 600, eine Suchvorgangsvorrichtung 700 und eine Datenverwaltungsvorrichtung 800. Das durchsuchbare Verschlüsselungssystem kann aus mindestens einer in der Zeichnung veranschaulichten Vorrichtung konfiguriert sein.
  • Die in dem durchsuchbaren Verschlüsselungssystem 100 enthaltenen Vorrichtungen sind jeweils wechselseitig über ein Netzwerk 101 verbunden. Es ist möglich, dass mindestens eine im durchsuchbaren Verschlüsselungssystem 100 enthaltene Vorrichtung nicht mit allen der anderen Vorrichtungen verbunden ist.
  • 2 veranschaulicht ein Beispiel einer Struktur der Hauptschlüsselvorrichtung 200 gemäß der vorliegenden Ausführungsform.
  • Die Hauptschlüsselvorrichtung 200 ist, wie in der Zeichnung veranschaulicht, ein Computer, der Hardware wie einen Prozessor 201, einen Speicher 202, eine Zusatzspeichervorrichtung 203, eine Eingabe/Ausgabe-Schnittstelle 204 und eine Kommunikationsvorrichtung 205 umfasst. Diese Hardwarekomponenten sind wechselseitig über Signalleitungen verbunden.
  • Der Prozessor 201 ist eine IC (Integrated Circuit, integrierte Schaltung), die einen arithmetischen Prozess ausführt und in einem Computer enthaltene Hardware steuert. Der Prozessor 201 ist, als ein spezifisches Beispiel, eine CPU (Central Processing Unit, zentrale Verarbeitungseinheit), ein DSP (digitaler Signalprozessor) oder eine GPU (Graphics Processing Unit, Grafikverarbeitungseinheit).
  • Der Speicher 202 ist typischerweise eine flüchtige Speichervorrichtung. Der Speicher 202 wird auch als eine Hauptspeichervorrichtung oder Hauptspeicher bezeichnet. Der Speicher 202 ist, als ein konkretes Beispiel, ein RAM (Random Access Memory, Speicher mit wahlfreiem Zugriff). Im Speicher 202 gespeicherte Daten werden bei Bedarf in der Zusatzspeichervorrichtung 203 gespeichert.
  • Die Zusatzspeichervorrichtung 203 ist typischerweise eine nicht flüchtige Speichervorrichtung. Die Zusatzspeichervorrichtung 203 ist, als ein konkretes Beispiel, ein ROM (Read Only Memory, Nur-Lese-Speicher), eine HDD (Hard Disk Drive, Festplatte) oder ein flüchtiger Speicher. In der Zusatzspeichervorrichtung 203 gespeicherte Daten werden bei Bedarf in den Speicher 202 geladen.
  • Die Eingabe/Ausgabe-Schnittstelle 204 ist ein Anschluss, mit dem eine Eingabeeinrichtung und eine Ausgabeeinrichtung verbunden sind. Als ein konkretes Beispiel ist die Eingabe/Ausgabe-Schnittstelle 204 ein USB-Anschluss (Universeller Serieller Bus). Als ein konkretes Beispiel ist die Eingabevorrichtung eine Tastatur und eine Maus. Als ein konkretes Beispiel ist die Ausgabevorrichtung eine Anzeige.
  • Die Kommunikationsvorrichtung 205 ist ein Empfänger und ein Sender. Als ein konkretes Beispiel ist die Kommunikationsvorrichtung 205 ein Kommunikationschip oder eine NIC (Network Interface Card, Netzwerkschnittstellenkarte).
  • Die Hauptschlüsselvorrichtung 200 umfasst Komponenten wie eine Annahmeeinheit 210, eine Generierungseinheit 220 und eine Ausgabeeinheit 230. Diese Komponenten sind durch Software implementiert.
  • Die Zusatzspeichervorrichtung 203 weist ein in ihr gespeichertes Hauptschlüsselprogramm auf. Das Hauptschlüsselprogramm ist ein Programm, das einen Computer veranlasst, die Funktionen der Annahmeeinheit 210, der Generierungseinheit 220, der Ausgabeeinheit 230 und einer Speichereinheit 291 zu erreichen. Das Hauptschlüsselprogramm wird in den Speicher 202 geladen und durch den Prozessor 201 ausgeführt.
  • Die Zusatzspeichervorrichtung 203 weist ein in ihr gespeichertes OS (Operating System, Betriebssystem) auf. Zumindest ein Teil des OS wird in den Speicher 202 geladen und durch den Prozessor 201 ausgeführt. Das heißt, der Prozessor 201 führt das Hauptschlüsselprogramm während des Ausführens des OS aus.
  • Während des Ausführens des Hauptschlüsselprogramms erhaltene Daten werden in einer Speichervorrichtung wie dem Speicher 202, der Zusatzspeichervorrichtung 203, einem Register im Prozessor 201 oder einem Cache-Speicher im Prozessor 201 gespeichert.
  • Die Zusatzspeichervorrichtung 203 funktioniert als die Speichereinheit 291. Mindestens ein Teil der von der Zusatzspeichervorrichtung 203 verschiedenen Speichervorrichtungen kann anstelle der Zusatzspeichervorrichtung 203 oder zusammen mit der Zusatzspeichervorrichtung 203 als die Speichereinheit 291 funktionieren.
  • Die Hauptschlüsselvorrichtung 200 kann eine Vielzahl von Prozessoren umfassen, die den Prozessor 201 ersetzen. Die Vielzahl von Prozessoren teilen sich die Rolle des Prozessors 201.
  • Jedes in der Beschreibung beschriebene Programm kann in einem nicht flüchtigen Erfassungsmedium erfasst (gespeichert) werden, sodass es von einem Computer lesbar ist. Als ein konkretes Beispiel ist das nicht flüchtige Speichermedium eine optische Scheibe oder ein Flash-Speicher.
  • 3 veranschaulicht ein Beispiel einer Struktur der Registrierungsschlüsselvorrichtung 300 gemäß der vorliegenden Ausführungsform.
  • Die Registrierungsschlüsselvorrichtung 300 ist, wie in der Zeichnung veranschaulicht, wie in der Zeichnung veranschaulicht, ein Computer, der Hardware wie einen Prozessor 301, einen Speicher 302, eine Zusatzspeichervorrichtung 303, eine Eingabe/Ausgabe-Schnittstelle 304 und eine Kommunikationsvorrichtung 305 umfasst. Diese Hardwarekomponenten sind wechselseitig über Signalleitungen verbunden.
  • Der Prozessor 301 ist dem Prozessor 201 äquivalent. Der Speicher 302 ist dem Speicher 202 äquivalent. Die Zusatzspeichervorrichtung 303 ist der Zusatzspeichervorrichtung 203 äquivalent. Die Eingabe/Ausgabe-Schnittstelle 304 ist der Eingabe/Ausgabe-Schnittstelle 204 äquivalent. Die Kommunikationsvorrichtung 305 ist der Kommunikationsvorrichtung 205 äquivalent.
  • Die Registrierungsschlüsselvorrichtung 300 umfasst Komponenten wie eine Annahmeeinheit 310, eine Generierungseinheit 320 und eine Ausgabeeinheit 330. Diese Komponenten sind durch Software implementiert.
  • Die Zusatzspeichervorrichtung 303 weist ein in ihr gespeichertes Registrierungsschlüsselprogramm auf. Das Registrierungsschlüsselprogramm ist ein Programm, das einen Computer veranlasst, die Funktionen der Annahmeeinheit 310, der Generierungseinheit 320, der Ausgabeeinheit 330 und einer Speichereinheit 391 zu erreichen. Das Registrierungsschlüsselprogramm wird in den Speicher 302 geladen und durch den Prozessor 301 ausgeführt.
  • Die Zusatzspeichervorrichtung 303 weist ein in ihr gespeichertes OS auf. Zumindest ein Teil des OS wird in den Speicher 302 geladen und durch den Prozessor 301 ausgeführt. Das heißt, der Prozessor 301 führt das Registrierungsschlüsselprogramm während des Ausführens des OS aus.
  • Während des Ausführens des Registrierungsschlüsselprogramms erhaltene Daten werden in einer Speichervorrichtung wie dem Speicher 302, der Zusatzspeichervorrichtung 303, einem Register im Prozessor 301 oder einem Cache-Speicher im Prozessor 301 gespeichert.
  • Die Zusatzspeichervorrichtung 303 funktioniert als die Speichereinheit 391. Mindestens ein Teil der von der Zusatzspeichervorrichtung 303 verschiedenen Speichervorrichtungen kann anstelle der Zusatzspeichervorrichtung 303 oder zusammen mit der Zusatzspeichervorrichtung 303 als die Speichereinheit 391 funktionieren.
  • Die Registrierungsschlüsselvorrichtung 300 kann eine Vielzahl von Prozessoren umfassen, die den Prozessor 301 ersetzen. Die Vielzahl von Prozessoren teilen sich die Rolle des Prozessors 301.
  • 4 veranschaulicht ein Beispiel einer Struktur der Indexoffenlegungsschlüsselvorrichtung 400 gemäß der vorliegenden Ausführungsform.
  • Die Indexoffenlegungsschlüsselvorrichtung 400 ist, wie in der Zeichnung veranschaulicht, ein Computer, der Hardware wie einen Prozessor 401, einen Speicher 402, eine Zusatzspeichervorrichtung 403, eine Eingabe/Ausgabe-Schnittstelle 404 und eine Kommunikationsvorrichtung 405 umfasst. Diese Hardwarekomponenten sind wechselseitig über Signalleitungen verbunden.
  • Der Prozessor 401 ist dem Prozessor 201 äquivalent. Der Speicher 402 ist dem Speicher 202 äquivalent. Die Zusatzspeichervorrichtung 403 ist der Zusatzspeichervorrichtung 203 äquivalent. Die Eingabe/Ausgabe-Schnittstelle 404 ist der Eingabe/Ausgabe-Schnittstelle 204 äquivalent. Die Kommunikationsvorrichtung 405 ist der Kommunikationsvorrichtung 205 äquivalent.
  • Die Indexoffenlegungsschlüsselvorrichtung 400 umfasst Komponenten wie eine Annahmeeinheit 410, eine Generierungseinheit 420 und eine Ausgabeeinheit 430. Diese Komponenten sind durch Software implementiert.
  • Die Zusatzspeichervorrichtung 403 weist ein in ihr gespeichertes Indexoffenlegungsschlüsselprogramm auf. Das Indexoffenlegungsschlüsselprogramm ist ein Programm, das einen Computer veranlasst, die Funktionen der Annahmeeinheit 410, der Generierungseinheit 420, der Ausgabeeinheit 430 und einer Speichereinheit 491 zu erreichen. Das Indexoffenlegungsschlüsselprogramm wird in den Speicher 402 geladen und durch den Prozessor 401 ausgeführt.
  • Die Zusatzspeichervorrichtung 403 weist ein in ihr gespeichertes OS auf. Zumindest ein Teil des OS wird in den Speicher 402 geladen und durch den Prozessor 401 ausgeführt. Das heißt, der Prozessor 401 führt das Indexoffenlegungsschlüsselprogramm während des Ausführens des OS aus.
  • Während des Ausführens des Indexoffenlegungsschlüsselprogramms erhaltene Daten werden in einer Speichervorrichtung wie dem Speicher 402, der Zusatzspeichervorrichtung 403, einem Register im Prozessor 401 oder einem Cache-Speicher im Prozessor 401 gespeichert.
  • Die Zusatzspeichervorrichtung 403 funktioniert als die Speichereinheit 491. Mindestens ein Teil der von der Zusatzspeichervorrichtung 403 verschiedenen Speichervorrichtungen kann anstelle der Zusatzspeichervorrichtung 403 oder zusammen mit der Zusatzspeichervorrichtung 403 als die Speichereinheit 491 funktionieren.
  • Die Indexoffenlegungsschlüsselvorrichtung 400 kann eine Vielzahl von Prozessoren umfassen, die den Prozessor 401 ersetzen. Die Vielzahl von Prozessoren teilen sich die Rolle des Prozessors 401.
  • 5 veranschaulicht ein Beispiel einer Struktur der Generierungseinheit 420.
  • Die Generierungseinheit 420 umfasst, wie in der Zeichnung veranschaulicht, eine Indexoffenlegungsschlüssel-Generierungseinheit 421.
  • 6 veranschaulicht ein Beispiel einer Struktur der Benutzerschlüsselvorrichtung 500 gemäß der vorliegenden Ausführungsform.
  • Die Benutzerschlüsselvorrichtung 500 ist, wie in der Zeichnung veranschaulicht, ein Computer, der Hardware wie einen Prozessor 501, einen Speicher 502, an eine Zusatzspeichervorrichtung 503, eine Eingabe/Ausgabe-Schnittstelle 504 und eine Kommunikationsvorrichtung 505 umfasst. Diese Hardwarekomponenten sind wechselseitig über Signalleitungen verbunden.
  • Der Prozessor 501 ist dem Prozessor 201 äquivalent. Der Speicher 502 ist dem Speicher 202 äquivalent. Die Zusatzspeichervorrichtung 503 ist der Zusatzspeichervorrichtung 203 äquivalent. Die Eingabe/Ausgabe-Schnittstelle 504 ist der Eingabe/Ausgabe-Schnittstelle 204 äquivalent. Die Kommunikationsvorrichtung 505 ist der Kommunikationsvorrichtung 205 äquivalent.
  • Die Benutzerschlüsselvorrichtung 500 umfasst Komponenten wie eine Annahmeeinheit 510, eine Generierungseinheit 520 und eine Ausgabeeinheit 530. Diese Komponenten sind durch Software implementiert.
  • Die Zusatzspeichervorrichtung 503 weist ein in ihr gespeichertes Benutzerschlüsselprogramm auf. Das Benutzerschlüsselprogramm ist ein Programm, das einen Computer veranlasst, die Funktionen der Annahmeeinheit 510, der Generierungseinheit 520, der Ausgabeeinheit 530 und einer Speichereinheit 591 zu erreichen. Das Benutzerschlüsselprogramm wird in den Speicher 502 geladen und durch den Prozessor 501 ausgeführt.
  • Die Zusatzspeichervorrichtung 503 weist ein in ihr gespeichertes OS auf. Zumindest ein Teil des OS wird in den Speicher 502 geladen und durch den Prozessor 501 ausgeführt. Das heißt, der Prozessor 501 führt das Benutzerschlüsselprogramm während des Ausführens des OS aus.
  • Während des Ausführens des Benutzerschlüsselprogramms erhaltene Daten werden in einer Speichervorrichtung wie dem Speicher 502, der Zusatzspeichervorrichtung 503, einem Register im Prozessor 501 oder einem Cache-Speicher im Prozessor 501 gespeichert.
  • Die Zusatzspeichervorrichtung 503 funktioniert als die Speichereinheit 591. Mindestens ein Teil der von der Zusatzspeichervorrichtung 503 verschiedenen Speichervorrichtungen kann anstelle der Zusatzspeichervorrichtung 503 oder zusammen mit der Zusatzspeichervorrichtung 503 als die Speichereinheit 591 funktionieren.
  • Die Benutzerschlüsselvorrichtung 500 kann eine Vielzahl von Prozessoren umfassen, die den Prozessor 501 ersetzen. Die Vielzahl von Prozessoren teilen sich die Rolle des Prozessors 501.
  • Die Ausgabeeinheit 530 wird auch als Benutzerdatenausgabeeinheit bezeichnet. Die Ausgabeeinheit 530 gibt an die Suchvorgangsvorrichtung 700 einen Benutzerschlüssel aus. Ein Benutzerschlüssel UK (User Key) ist ein Schlüssel mit darin integrierten Sucherattributinformationen. Die Sucherattributinformationen sind Informationen, die ein Attribut angeben, über das der Sucher, der nach einem Registrierungsschlüsselwort W sucht, verfügt, und werden auch als Attributinformationen bezeichnet.
  • Die Speichereinheit 591 wird auch als eine Benutzerdatenspeichereinheit bezeichnet. Die Speichereinheit 591 kann die darin gespeicherten Sucherattributinformationen aufweisen.
  • 7 veranschaulicht ein Beispiel einer Struktur der Generierungseinheit 520.
  • Die Generierungseinheit 520 umfasst, wie in der Zeichnung veranschaulicht, eine Benutzerschlüsselgenerierungseinheit 521.
  • Die Benutzerschlüsselgenerierungseinheit 521 generiert den Benutzerschlüssel UK durch Verwendung der Sucherattributinformationen und einer Benutzerschlüsselfunktion.
  • 8 veranschaulicht ein Beispiel einer Struktur der Registrierungsvorrichtung 600 gemäß der vorliegenden Ausführungsform.
  • Die Registrierungsvorrichtung 600 ist, wie in der Zeichnung veranschaulicht, ein Computer, der Hardware wie einen Prozessor 601, einen Speicher 602, eine Zusatzspeichervorrichtung 603, eine Eingabe/Ausgabe-Schnittstelle 604 und eine Kommunikationsvorrichtung 605 umfasst. Diese Hardwarekomponenten sind wechselseitig über Signalleitungen verbunden.
  • Der Prozessor 601 ist dem Prozessor 201 äquivalent. Der Speicher 602 ist dem Speicher 202 äquivalent. Die Zusatzspeichervorrichtung 603 ist der Zusatzspeichervorrichtung 203 äquivalent. Die Eingabe/Ausgabe-Schnittstelle 604 ist der Eingabe/Ausgabe-Schnittstelle 204 äquivalent. Die Kommunikationsvorrichtung 605 ist der Kommunikationsvorrichtung 205 äquivalent.
  • Die Registrierungsvorrichtung 600 umfasst Komponenten wie eine Annahmeeinheit 610, eine Generierungseinheit 620, eine Registrierungseinheit 630 und eine Ausgabeeinheit 640. Diese Komponenten sind durch Software implementiert.
  • Die Zusatzspeichervorrichtung 603 weist ein in ihr gespeichertes Registrierungsprogramm auf. Das Registrierungsprogramm ist ein Programm, das einen Computer veranlasst, die Funktionen der Annahmeeinheit 610, der Generierungseinheit 620, der Registrierungseinheit 630, der Ausgabeeinheit 640 und einer Speichereinheit 691 zu erreichen. Das Registrierungsprogramm wird in den Speicher 602 geladen und durch den Prozessor 601 ausgeführt.
  • Die Zusatzspeichervorrichtung 603 weist ein in ihr gespeichertes OS auf. Zumindest ein Teil des OS wird in den Speicher 602 geladen und durch den Prozessor 601 ausgeführt. Das heißt, der Prozessor 601 führt das Registrierungsprogramm während des Ausführens des OS aus.
  • Während des Ausführens des Registrierungsprogramms erhaltene Daten werden in einer Speichervorrichtung wie dem Speicher 602, der Zusatzspeichervorrichtung 603, einem Register im Prozessor 601 oder einem Cache-Speicher im Prozessor 601 gespeichert.
  • Die Zusatzspeichervorrichtung 603 funktioniert als die Speichereinheit 691. Mindestens ein Teil der von der Zusatzspeichervorrichtung 603 verschiedenen Speichervorrichtungen kann jedoch anstelle der Zusatzspeichervorrichtung 603 oder zusammen mit der Zusatzspeichervorrichtung 603 als die Speichereinheit 691 funktionieren.
  • Die Registrierungsvorrichtung 600 kann eine Vielzahl von Prozessoren umfassen, die den Prozessor 601 ersetzen. Die Vielzahl von Prozessoren teilen sich die Rolle des Prozessors 601.
  • Die Ausgabeeinheit 640 wird auch als eine Registrierungsdatenausgabeeinheit bezeichnet. Die Ausgabeeinheit 640 gibt ein verschlüsseltes Tag CT an die Datenverwaltungsvorrichtung 800 aus, und gibt einen verschlüsselten Index EI an die Datenverwaltungsvorrichtung 800 aus.
  • Die Speichereinheit 691 wird auch als eine Registrierungsdatenspeichereinheit bezeichnet. In der Speichereinheit 691 können das Registrierungsschlüsselwort W, Attributinformationen zu einer berechtigten Person und ein Indexoffenlegungsschlüssel IK gespeichert sein. Die Attributinformationen zu einer berechtigten Person sind Informationen, die ein Attribut angeben, das Eigentum einer berechtigten Person sein muss, die berechtigt ist, nach dem Registrierungsschlüsselwort W zu suchen, und werden auch als Attributinformationen bezeichnet. Die Attributinformationen zu einer berechtigten Person können eine Wildcard umfassen. Die Wildcard in den Attributinformationen zu einer berechtigten Person sind Daten, die angeben, dass einem den Sucherattributinformationen entsprechenden Sucher gestattet ist, nach dem Registrierungsschlüsselwort W zu suchen, ungeachtet dessen, wie das in den Sucherattributinformationen enthaltene Attribut beschaffen ist. Ein Registrierungsschlüsselwortindex ist ein Index, der verschlüsselten Daten entspricht, die von der Registrierungsvorrichtung 600 in der Datenverwaltungsvorrichtung 800 zu registrieren sind, und wird auch als ein Index I bezeichnet. Der Registrierungsschlüsselwortindex ist ein Index, der dem Registrierungsschlüsselwort W entspricht. Der Indexoffenlegungsschlüssel IK ist ein Schlüssel zum Verschlüsseln des Registrierungsschlüsselwortindex. Der Indexoffenlegungsschlüssel IK kann ein Schlüssel sein, der in der Lage ist, mindestens einen Teil des verschlüsselten Index zu decodieren.
  • 9 veranschaulicht ein Beispiel einer Struktur der Generierungseinheit 620.
  • Die Generierungseinheit 620 umfasst, wie in der Zeichnung veranschaulicht, eine Ciphertextdatengenerierungseinheit 621, eine Schlüsselwortgenerierungseinheit 622, eine Einheit 623 zum Generieren eines mittleren Tags, eine Indexgenerierungseinheit 624, eine Einheit 625 zum Generieren eines verschlüsselten Index, eine Zufallszahlgenerierungseinheit 626 und eine Einheit 627 zum Generieren eines verschlüsselten Tags.
  • Die Einheit 623 zum Generieren eines mittleren Tags generiert unter Verwendung der Attributinformationen zu einer berechtigten Person, des Registrierungsschlüsselwortes W, einer Benutzerschlüsselfunktion und einer Suchanfragefunktion ein mittleres Tag MT, das dem Registrierungsschlüsselwort W entspricht. Die Benutzerschlüsselfunktion ist eine Funktion zur Verwendung beim Generieren des Benutzerschlüssels UK. Die Suchanfragefunktion ist eine Funktion zur Verwendung beim Generieren einer Suchanfrage SQ. In die Suchanfrage SQ ist der Benutzerschlüssel UK integriert, und sie entspricht einem Suchschlüsselwort w. Das Suchschlüsselwort w ist ein Schlüsselwort zur Verwendung durch den Sucher beim Suchen nach dem Registrierungsschlüsselwort W.
  • Die Einheit 623 zum Generieren eines mittleren Tags kann eine Wildcard in das mittlere Tag MT integrieren.
  • Die Indexgenerierungseinheit 624 generiert einen Registrierungsschlüsselwortindex unter Verwendung des Registrierungsschlüsselwortes W, der Attributinformationen zu einer berechtigten Person, der Benutzerschlüsselfunktion, der Suchanfragefunktion und einer Indexanfragefunktion. Die Indexanfragefunktion ist eine Funktion zur Verwendung beim Generieren einer Teilindexanfrage IQ'. In die Indexanfrage IQ ist die Suchanfrage SQ integriert, und es handelt sich dabei um Daten zur Verwendung bei der Suche nach dem Registrierungsschlüsselwortindex.
  • Die Indexgenerierungseinheit 624 kann den Registrierungsschlüsselwortindex unter Verwendung des mittleren Tags MT generieren.
  • Die Einheit 625 zum Generieren eines verschlüsselten Index generiert den verschlüsselten Index El durch Verschlüsseln des Registrierungsschlüsselwortindex unter Verwendung des Indexoffenlegungsschlüssels IK.
  • Die Zufallszahlgenerierungseinheit 626 generiert eine Zufallszahl als eine Zufallszahl für ein verschlüsseltes Tag.
  • Die Einheit 627 zum Generieren eines verschlüsselten Tags generiert das verschlüsselte Tag CT unter Verwendung des mittleren Tags MZ, der Zufallszahl für ein verschlüsseltes Tag und einer Funktion für ein verschlüsseltes Tag. Die Funktion für ein verschlüsseltes Tag wird zum Generieren eines verschlüsselten Tags, in welches das Registrierungsschlüsselwort W integriert ist, verwendet.
  • Die Einheit 627 zum Generieren eines verschlüsselten Tags generiert einen Kollator für ein verschlüsseltes Tag unter Verwendung des Registrierungsschlüsselworts W, der Zufallszahl für ein verschlüsseltes Tag, der Funktion für ein verschlüsseltes Tag und einer Kollatorfunktion. Die Einheit 627 zum Generieren eines verschlüsselten Tags kann die Zufallszahl für ein verschlüsseltes Tag und den Kollator für ein verschlüsseltes Tag mit dem verschlüsselten Tag CT koppeln. Die Kollatorfunktion ist eine Funktion, die beim Generieren des Kollators für ein verschlüsseltes Tag, das dem verschlüsselten Tag CT entspricht, verwendet wird.
  • 10 veranschaulicht ein Beispiel einer Struktur der Suchvorgangsvorrichtung 700 gemäß der vorliegenden Ausführungsform.
  • Die Suchvorgangsvorrichtung 700 ist, wie in der Zeichnung veranschaulicht, ein Computer, der Hardware wie einen Prozessor 701, einen Speicher 702, eine Zusatzspeichervorrichtung 703, eine Eingabe/Ausgabe-Schnittstelle 704 und eine Kommunikationsvorrichtung 705 umfasst. Diese Hardwarekomponenten sind wechselseitig über Signalleitungen verbunden.
  • Der Prozessor 701 ist dem Prozessor 201 äquivalent. Der Speicher 702 ist dem Speicher 202 äquivalent. Die Zusatzspeichervorrichtung 703 ist der Zusatzspeichervorrichtung 203 äquivalent. Die Eingabe/Ausgabe-Schnittstelle 704 ist der Eingabe/Ausgabe-Schnittstelle 204 äquivalent. Die Kommunikationsvorrichtung 705 ist der Kommunikationsvorrichtung 205 äquivalent.
  • Die Suchvorgangsvorrichtung 700 umfasst Komponenten wie eine Annahmeeinheit 710, eine Generierungseinheit 720, eine Anforderungseinheit 730, eine Decodierungseinheit 740 und eine Ausgabeeinheit 750. Diese Komponenten sind durch Software implementiert.
  • Die Zusatzspeichervorrichtung 703 weist ein in ihr gespeichertes Suchvorgangsprogramm auf. Das Suchvorgangsprogramm ist ein Programm, das einen Computer veranlasst, die Funktionen der Annahmeeinheit 710, der Generierungseinheit 720, der Anforderungseinheit 730, der Decodierungseinheit 740, der Ausgabeeinheit 750 und einer Speichereinheit 791 zu erreichen. Das Suchvorgangsprogramm wird in den Speicher 702 geladen und durch den Prozessor 701 ausgeführt.
  • Die Zusatzspeichervorrichtung 703 weist ein in ihr gespeichertes OS auf. Zumindest ein Teil des OS wird in den Speicher 702 geladen und durch den Prozessor 701 ausgeführt. Das heißt, der Prozessor 701 führt das Suchvorgangsprogramm während des Ausführens des OS aus.
  • Durch Ausführen des Suchvorgangsprogramms erhaltene Daten werden in einer Speichervorrichtung wie dem Speicher 702, der Zusatzspeichervorrichtung 703, einem Register im Prozessor 701 oder einem Cache-Speicher im Prozessor 701 gespeichert.
  • Die Zusatzspeichervorrichtung 703 funktioniert als die Speichereinheit 791. Mindestens ein Teil der von der Zusatzspeichervorrichtung 703 verschiedenen Speichervorrichtungen kann anstelle der Zusatzspeichervorrichtung 703 oder zusammen mit der Zusatzspeichervorrichtung 703 als die Speichereinheit 791 funktionieren.
  • Die Suchvorgangsvorrichtung 700 kann eine Vielzahl von Prozessoren umfassen, die den Prozessor 701 ersetzen. Die Vielzahl von Prozessoren teilen sich die Rolle des Prozessors 701.
  • Die Annahmeeinheit 710 wird auch als eine Suchdatenannahmeeinheit bezeichnet. Die Annahmeeinheit 710 nimmt den Benutzerschlüssel UK an und veranlasst, dass der Benutzerschlüssel UK in der Speichereinheit 791 gespeichert wird.
  • Die Ausgabeeinheit 750 wird auch als eine Suchdatenausgabeeinheit bezeichnet. Die Ausgabeeinheit 750 gibt die Suchanfrage SQ und die Indexanfrage IQ an die Datenverwaltungsvorrichtung 800 aus.
  • Die Speichereinheit 791 wird auch als eine Suchdatenspeichereinheit bezeichnet. In der Speichereinheit 791 können der Benutzerschlüssel UK und das Suchschlüsselwort w gespeichert sein.
  • 11 veranschaulicht ein Beispiel einer Struktur der Generierungseinheit 720.
  • Die Generierungseinheit 720 umfasst, wie in der Zeichnung veranschaulicht, eine Suchanfragegenerierungseinheit 721 und eine Indexanfragegenerierungseinheit 722.
  • Die Suchanfragegenerierungseinheit 721 generiert die Suchanfrage SQ durch Verwenden des Benutzerschlüssels UK, des Suchschlüsselworts w und der Suchanfragefunktion.
  • Die Indexanfragegenerierungseinheit 722 generiert die Indexanfrage IQ durch Verwenden der Suchanfrage SQ und der Indexanfragefunktion.
  • 12 veranschaulicht ein Beispiel einer Struktur der Datenverwaltungsvorrichtung 800 gemäß der vorliegenden Ausführungsform.
  • Die Datenverwaltungsvorrichtung 800 ist, wie in der Zeichnung veranschaulicht, ein Computer, der Hardware wie einen Prozessor 801, einen Speicher 802, eine Zusatzspeichervorrichtung 803, eine Eingabe/Ausgabe-Schnittstelle 804 und eine Kommunikationsvorrichtung 805 umfasst. Diese Hardwarekomponenten sind wechselseitig über Signalleitungen verbunden.
  • Der Prozessor 801 ist dem Prozessor 201 äquivalent. Der Speicher 802 ist dem Speicher 202 äquivalent. Die Zusatzspeichervorrichtung 803 ist der Zusatzspeichervorrichtung 203 äquivalent. Die Eingabe/Ausgabe-Schnittstelle 804 ist der Eingabe/Ausgabe-Schnittstelle 204 äquivalent. Die Kommunikationsvorrichtung 805 ist der Kommunikationsvorrichtung 205 äquivalent.
  • Die Datenverwaltungsvorrichtung 800 umfasst Komponenten wie eine Annahmeeinheit 810, eine Decodierungseinheit 820, eine Registrierungseinheit 830, eine Sucheinheit 840 und eine Ausgabeeinheit 850. Diese Komponenten sind durch Software implementiert.
  • Die Zusatzspeichervorrichtung 803 weist ein in ihr gespeichertes Datenverwaltungsprogramm auf. Das Datenverwaltungsprogramm ist ein Programm, das einen Computer veranlasst, die Funktionen der Annahmeeinheit 810, der Decodierungseinheit 820, der Registrierungseinheit 830, der Sucheinheit 840, der Ausgabeeinheit 850 und einer Speichereinheit 891 zu erreichen. Das Datenverwaltungsprogramm wird in den Speicher 802 geladen und durch den Prozessor 801 ausgeführt.
  • Die Zusatzspeichervorrichtung 803 weist ein in ihr gespeichertes OS auf. Zumindest ein Teil des OS wird in den Speicher 802 geladen und durch den Prozessor 801 ausgeführt. Das heißt, der Prozessor 801 führt das Datenverwaltungsprogramm während des Ausführens des OS aus.
  • Während des Ausführens des Datenverwaltungsprogramms erhaltene Daten werden in einer Speichervorrichtung wie dem Speicher 802, der Zusatzspeichervorrichtung 803, einem Register im Prozessor 801 oder einem Cache-Speicher im Prozessor 801 gespeichert.
  • Die Zusatzspeichervorrichtung 803 funktioniert als die Speichereinheit 891. Mindestens ein Teil der von der Zusatzspeichervorrichtung 803 verschiedenen Speichervorrichtungen kann anstelle der Zusatzspeichervorrichtung 803 oder zusammen mit der Zusatzspeichervorrichtung 803 als die Speichereinheit 891 funktionieren.
  • Die Datenverwaltungsvorrichtung 800 kann eine Vielzahl von Prozessoren umfassen, die den Prozessor 801 ersetzen. Die Vielzahl von Prozessoren teilen sich die Rolle des Prozessors 801.
  • Die Annahmeeinheit 810 wird auch als eine Verwaltungsdatenannahmeeinheit bezeichnet. Die Annahmeeinheit 810 nimmt das verschlüsselte Tag CT an und veranlasst, dass das verschlüsselte Tag CT in der Speichereinheit 891 gespeichert wird. Die Annahmeeinheit 810 nimmt den verschlüsselten Index EI an und veranlasst, dass der verschlüsselte Index EI in der Speichereinheit 891 gespeichert wird. Die Annahmeeinheit 810 nimmt die Suchanfrage SQ und die Indexanfrage IQ an und veranlasst, dass die Suchanfrage SQ und die Indexanfrage IQ in der Speichereinheit 891 gespeichert werden.
  • Die Speichereinheit 891 wird auch als eine Verwaltungsdatenspeichereinheit bezeichnet. In der Speichereinheit 891 können die Suchanfrage SQ, der Indexoffenlegungsschlüssel IK, die Indexanfrage IQ und Indexoffenlegungspositionsinformationen Pos gespeichert sein. Die Indexoffenlegungspositionsinformationen Pos sind Informationen, die eine Position angeben, dass Decodierung unter Verwendung des veröffentlichten Indexoffenlegungsschlüssels IK, der mindestens einem Teil des verschlüsselten Index El entspricht. Der veröffentlichte Indexoffenlegungsschlüssel IK kann als ein Indexoffenlegungsschlüssel IK bezeichnet werden. Der veröffentlichte Indexoffenlegungsschlüssel IK kann mindestens einen Teil des verschlüsselten Index EI decodieren. Der veröffentlichte Indexoffenlegungsschlüssel IK ist der Indexoffenlegungsschlüssel IK, der durch Vorrichtungen mit Ausnahme der Indexoffenlegungsschlüsselvorrichtung 400 und der Registrierungsvorrichtung 600 nutzbar ist.
  • 13 veranschaulicht ein Beispiel einer Struktur der Decodierungseinheit 820.
  • Die Decodierungseinheit 820 umfasst, wie in der Zeichnung veranschaulicht, eine Einheit 821 zum Decodieren eines verschlüsselten Index.
  • Die Einheit 821 zum Decodieren eines verschlüsselten Index generiert einen Registrierungsschlüsselwortteilindex durch Decodieren des verschlüsselten Index EI unter Verwendung des Indexoffenlegungsschlüssels IK. Der Registrierungsschlüsselwortteilindex ist mindestens ein Teil des Registrierungsschlüsselwortindex.
  • 14 veranschaulicht ein Beispiel einer Struktur der Sucheinheit 840.
  • Die Sucheinheit 840 umfasst, wie in der Zeichnung veranschaulicht, eine Indexkollationierungseinheit 841, eine Einheit 842 zum Extrahieren eines verschlüsselten Tags, eine Einheit 843 zum Kollationieren eines verschlüsselten Tags, und eine Ciphertextdatenextrahierungseinheit 844.
  • Wenn die Teilindexanfrage IQ' und der Registrierungsschlüsselwortteilindex übereinstimmen, stellt die Indexkollationierungseinheit 841 fest, dass eine Möglichkeit besteht, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen und die Attributinformationen zu einer berechtigten Person und die Sucherattributinformationen übereinstimmen. Bei der Teilindexanfrage IQ' handelt es sich um Informationen, die in der Indexanfrage IQ enthalten sind, und Informationen, die dem Registrierungsschlüsselwortteilindex entsprechen.
  • Die Indexkollationierungseinheit 841 nimmt einen den Indexoffenlegungspositionsinformationen Pos in der Indexanfrage IQ entsprechenden Teil als die Teilindexanfrage IQ'.
  • Ein von der Einheit 843 zum Kollationieren eines verschlüsselten Tags auszuführender Prozess wird als ein Kollationierungsprozess bezeichnet.
  • Die Einheit 843 zum Kollationieren eines verschlüsselten Tags generiert einen Feststellungskollator unter Verwendung des verschlüsselten Tags CT, der Suchanfrage SQ, der mit dem verschlüsselten Tag CT gekoppelten Zufallszahl für ein verschlüsseltes Tag, der Funktion für ein verschlüsseltes Tag und der Kollatorfunktion. Wenn der Feststellungskollator und der mit dem verschlüsselten Tag gekoppelte Kollator für ein verschlüsseltes Tag gleich sind, stellt die Einheit 843 zum Kollationieren eines verschlüsselten Tags fest, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen.
  • Bei dem Feststellungskollator handelt es sich um Daten zur Verwendung bei der Feststellung, ob das Suchschlüsselwort w und das Registrierungsschlüsselwort W übereinstimmen.
  • Die Einheit 843 zum Kollationieren eines verschlüsselten Tags kann den Kollationierungsprozess ausführen, wenn die Indexkollationierungseinheit 841 feststellt, dass die Möglichkeit besteht, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen und die Attributinformationen zu einer berechtigten Person und die Sucherattributinformationen übereinstimmen.
  • Das durchsuchbare Verschlüsselungsprogramm ist ein allgemeiner Begriff für ein Hauptschlüsselprogramm, ein Registrierungsschlüsselprogramm, ein Indexoffenlegungsschlüsselprogramm, ein Benutzerschlüsselprogramm, ein Registrierungsprogramm, ein Suchvorgangsprogramm und ein Datenverwaltungsprogramm. Das Programm zur durchsuchbaren Verschlüsselung kann ein Programm sein oder kann aus einer Vielzahl von Programmen konfiguriert sein. Mindestens eines der Programme, die das durchsuchbare Verschlüsselungsprogramm konfigurieren, kann als ein Programmprodukt bereitgestellt sein.
  • ***Funktionsbeschreibung***
  • Der Funktionsablauf der Hauptschlüsselvorrichtung 200 entspricht einem Hauptschlüsselverfahren. Darüber hinaus entspricht ein Programm, das den Betrieb der Hauptschlüsselvorrichtung 200 erreicht, dem Hauptschlüsselprogramm.
  • Der Funktionsablauf der Registrierungsschlüsselvorrichtung 300 entspricht einem Registrierungsschlüsselverfahren. Darüber hinaus entspricht ein Programm, das den Betrieb der Registrierungsschlüsselvorrichtung 300 erreicht, dem Registrierungsschlüsselprogramm.
  • Der Funktionsablauf der Indexoffenlegungsschlüsselvorrichtung 400 entspricht einem Indexoffenlegungsschlüsselverfahren. Darüber hinaus entspricht ein Programm, das den Betrieb der Indexoffenlegungsschlüsselvorrichtung 400 erreicht, dem Indexoffenlegungsschlüsselprogramm.
  • Der Funktionsablauf der Benutzerschlüsselvorrichtung 500 entspricht einem Benutzerschlüsselverfahren. Darüber hinaus entspricht ein Programm, das den Betrieb der Benutzerschlüsselvorrichtung 500 erreicht, dem Benutzerschlüsselprogramm.
  • Der Funktionsablauf der Registrierungsvorrichtung 600 entspricht einem Registrierungsverfahren. Darüber hinaus entspricht ein Programm, das den Betrieb der Registrierungsvorrichtung 600 erreicht, dem Registrierungsprogramm.
  • Der Funktionsablauf der Suchvorgangsvorrichtung 700 entspricht einem Suchvorgangsverfahren. Darüber hinaus entspricht ein Programm, das den Betrieb der Suchvorgangsvorrichtung 700 erreicht, dem Suchvorgangsprogramm.
  • Der Funktionsablauf der Datenverwaltungsvorrichtung 800 entspricht einem Datenverwaltungsverfahren. Darüber hinaus entspricht ein Programm, das den Betrieb der Datenverwaltungsvorrichtung 800 erreicht, dem Datenverwaltungsprogramm.
  • Der Funktionsablauf des durchsuchbaren Verschlüsselungssystems 100 entspricht einem Verfahren der durchsuchbaren Verschlüsselung. Das Verfahren der durchsuchbaren Verschlüsselung ist ein allgemeiner Begriff für das Hauptschlüsselverfahren, das Registrierungsschlüsselverfahren, das Indexoffenlegungsschlüsselverfahren, das Benutzerschlüsselverfahren, das Registrierungsverfahren, das Suchvorgangsverfahren und das Datenverwaltungsverfahren.
  • Nachfolgend wird ein konkretes Beispiel des Prozesses jeder Vorrichtung in dem durchsuchbaren Verschlüsselungssystem 100 beschrieben. Die nachfolgend beschriebenen Prozesse sind Prozesse, die in dem Verfahren der durchsuchbaren Verschlüsselung enthalten sind.
  • Zu beachten ist, dass nachfolgend ein Fall beschrieben wird, in dem das durchsuchbare Verschlüsselungssystem 100 das in der Patentliteratur 1 offenbarte gemeinsame Schlüsselschema vom Mehrbenutzertyp anwendet. Das durchsuchbare Verschlüsselungssystem 100 kann jedoch das Verfahren zur durchsuchbaren Verschlüsselung in einer Weise ausführen, die jener in dem folgenden Beispiel ähnelt, selbst wenn ein weiteres gemeinsames Schlüsselschema vom Mehrbenutzertyp verwendet wird.
  • 15 ist ein Ablaufdiagramm, das ein Beispiel eines Hauptschlüsselgenerierungsprozesses veranschaulicht.
  • Der Hauptschlüsselgenerierungsprozess ist ein Prozess, der von der Hauptschlüsselvorrichtung 200 auszuführen ist.
  • (Schritt S201: Generierungsprozess)
  • Die Generierungseinheit 220 generiert einen Hauptschlüssel MK.
  • Als konkretes Beispiel generiert die Generierungseinheit 220 eine Zufallszeichenfolge von 256 Zeichen als den Hauptschlüssel MK. In diesem Beispiel generiert die Generierungseinheit 220 den Hauptschlüssel MK von 256 Bits.
  • (Schritt S202: Verwahrungsprozess)
  • Die Generierungseinheit 220 veranlasst, dass der Hauptschlüssel MK in der Speichereinheit 291 gespeichert wird. Infolgedessen wird der Hauptschlüssel MK in der Speichereinheit 291 verwahrt.
  • (Schritt S203: Ausgabeprozess)
  • Die Ausgabeeinheit 230 gibt den Hauptschlüssel MK aus.
  • Als konkretes Beispiel überträgt die Ausgabeeinheit 230 den Hauptschlüssel MK unter Verwendung der Kommunikationsvorrichtung 205 an die Registrierungsschlüsselvorrichtung 300.
  • 16 ist ein Ablaufdiagramm, das ein Beispiel eines Registrierungsschlüsselgenerierungsprozesses veranschaulicht.
  • Der Registrierungsschlüsselgenerierungsprozess ist ein Prozess, der von der Registrierungsschlüsselvorrichtung 300 auszuführen ist.
  • (Schritt S301: Annahmeprozess)
  • Die Annahmeeinheit 310 nimmt den Hauptschlüssel MK an.
  • Als ein konkretes Beispiel empfängt die Annahmeeinheit 310 den Hauptschlüssel MK unter Verwendung der Kommunikationsvorrichtung 305 von der Hauptschlüsselvorrichtung 200. Die Annahmeeinheit 310 kann über die Eingabe/Ausgabe-Schnittstelle 304 den in die Registrierungsschlüsselvorrichtung 300 eingegebenen Hauptschlüssel MK annehmen.
  • (Schritt S302: Generierungsprozess)
  • Die Generierungseinheit 320 generiert unter Verwendung des Hauptschlüssels MK einen Registrierungsschlüssel EK. Die Generierungseinheit 320 generiert einen Datenschlüssel DK und einen Tagschlüssel TK, um den Registrierungsschlüssel EK zu generieren.
  • Der Registrierungsschlüssel EK ist ein Satz des Datenschlüssels DK und des Tagschlüssels TK. Das heißt, der Registrierungsschlüssel EK kann wie folgt repräsentiert sein. EK = ( DK , TK )
    Figure DE112020005626T5_0001
  • Der Registrierungsschlüssel EK umfasst den Datenschlüssel DK und den Tagschlüssel TK.
  • (Schritt S303: Verwahrungsprozess)
  • Die Generierungseinheit 320 veranlasst, dass der Registrierungsschlüssel EK in der Speichereinheit 391 gespeichert wird. Infolgedessen wird der Registrierungsschlüssel EK in der Speichereinheit 391 verwahrt.
  • (Schritt S304: Ausgabeprozess)
  • Die Ausgabeeinheit 330 gibt den Registrierungsschlüssel EK aus.
  • Als ein konkretes Beispiel überträgt die Ausgabeeinheit 330 den Registrierungsschlüssel EK unter Verwendung der Kommunikationsvorrichtung 305 an jede von der Indexoffenlegungsschlüsselvorrichtung 400, der Benutzerschlüsselvorrichtung 500 und der Registrierungsvorrichtung 600.
  • Die Ausgabeeinheit 330 kann anstelle des Registrierungsschlüssels EK den Tagschlüssel TK an die Registrierungsvorrichtung 600 übertragen.
  • 17 ist ein Ablaufdiagramm, das ein Beispiel eines Indexoffenlegungsschlüssel-Generierungsprozesses veranschaulicht.
  • Der Indexoffenlegungsschlüssel-Generierungsprozess ist ein Prozess, der von der Indexoffenlegungsschlüsselvorrichtung 400 auszuführen ist.
  • (Schritt S401: Prozess der Annahme des Registrierungsschlüssels)
  • Die Annahmeeinheit 410 nimmt den Registrierungsschlüssel EK an.
  • Als konkretes Beispiel empfängt die Annahmeeinheit 410 den Registrierungsschlüssel EK unter Verwendung der Kommunikationsvorrichtung 405 von der Registrierungsschlüsselvorrichtung 300. Die Annahmeeinheit 410 kann über die Eingabe/Ausgabe-Schnittstelle 404 den in die Indexoffenlegungsschlüsselvorrichtung 400 eingegebenen Registrierungsschlüssel EK annehmen.
  • Die Annahmeeinheit 410 veranlasst, dass der Registrierungsschlüssel EK in der Speichereinheit 491 gespeichert wird. Infolgedessen wird der Registrierungsschlüssel EK in der Speichereinheit 491 verwahrt.
  • Zu beachten ist, dass die Annahmeeinheit 410 den Prozess in diesem Schritt nicht ausführen kann, wenn die Speichereinheit 491 den Registrierungsschlüssel EK bereits verwahrt hat.
  • (Schritt S402: Prozess des Annehmens der Indexlänge)
  • Die Annahmeeinheit 410 nimmt eine Indexlänge ILEN an.
  • Als ein konkretes Beispiel nimmt die Annahmeeinheit 410 über die Eingabe/Ausgabe-Schnittstelle 404 die in die Indexoffenlegungsschlüsselvorrichtung 400 eingegebene Indexlänge ILEN an. Die Annahmeeinheit 410 kann die Indexlänge ILEN von einem Anwendungsprogramm annehmen.
  • Die Indexlänge ILEN ist eine Ganzzahl, die gleich oder größer als 1 ist und einen Wert der Datenlänge des Index I, generiert in der Registrierungsvorrichtung 600, aufweist, der in Einheiten von Bytes repräsentiert ist. Konkretes Beispiel: Wenn ILEN = 32, hat die Datenlänge des Index I einen Wert von 32 Bytes oder anteilig zu 32 Bytes.
  • Zu beachten ist, dass die Annahmeeinheit 410 den Prozess in diesem Schritt nicht ausführen kann, wenn die Speichereinheit 491 die Indexlänge I-LEN bereits gespeichert hat.
  • (Schritt S403: Generierungsprozess)
  • Die Indexoffenlegungsschlüssel-Generierungseinheit 421 generiert den Indexoffenlegungsschlüssel IK durch Verwenden des Tagschlüssels TK und der Indexlänge ILEN.
  • Der Indexoffenlegungsschlüssel IK weist Indexoffenlegungsteilschlüssel IK_j mit der Zahl von ILEN auf. Ein Teil des Indexoffenlegungsschlüssels IK kann als der Indexoffenlegungsschlüssel IK bezeichnet werden. j ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als ILEN ist. Das heißt, der Indexoffenlegungsschlüssel IK kann in Vektorform wie folgt repräsentiert sein. IK = ( IK _ 1, , IK _ ILEN )
    Figure DE112020005626T5_0002
  • Die Indexoffenlegungsschlüssel-Generierungseinheit 421 berechnet den Indexoffenlegungsteilschlüssel IK_j wie folgt.
  • Zuerst verkettet die Indexoffenlegungsschlüssel-Generierungseinheit 421 den Tagschlüssel TK und die Zahl j miteinander, um einen verketteten Wert TK|j zu erhalten. x|y repräsentiert einen Wert, der durch eine Bitfolge von Daten mit einer Bitfolge von Daten x und einer Bitfolge von Daten y, die miteinander verkettet sind, repräsentiert ist. Sofern nicht anders angegeben, bedeutet „Verketten“ das Verketten von Bitfolgen.
  • Nachfolgend führt die Indexoffenlegungsschlüssel-Generierungseinheit 421 eine Funktion F_1 aus, indem sie den verketteten Wert TK|j als eine Eingabe zum Erhalten des Indexoffenlegungsteilschlüssels IK_j nimmt. Das heißt, der Indexoffenlegungsteilschlüssel IK_j kann wie folgt repräsentiert sein. IK _ j = F _ 1 ( TK | j )
    Figure DE112020005626T5_0003
  • Die Funktion F_1 kann eine Einwegfunktion sein. Konkrete Beispiele der Einwegfunktion umfassen eine Pseudorandomfunktion, eine Hashfunktion, Common-Key-Kryptographie oder Public-Key-Kryptographie.
  • (Schritt S404: Verwahrungsprozess)
  • Die Generierungseinheit 420 veranlasst, dass der Indexoffenlegungsschlüssel IK in der Speichereinheit 491 gespeichert wird. Infolgedessen wird der Indexoffenlegungsschlüssel IK in der Speichereinheit 491 verwahrt.
  • (Schritt S405: Ausgabeprozess)
  • Die Ausgabeeinheit 430 gibt den Indexoffenlegungsschlüssel IK aus.
  • Als konkretes Beispiel überträgt die Ausgabeeinheit 430 den Indexoffenlegungsschlüssel IK unter Verwendung der Kommunikationsvorrichtung 405 an die Registrierungsvorrichtung 600.
  • 18 ist ein Ablaufdiagramm, das ein Beispiel eines Benutzerschlüsselgenerierungsprozesses veranschaulicht.
  • Der Benutzerschlüsselgenerierungsprozess ist ein Prozess, der von der Benutzerschlüsselvorrichtung 500 auszuführen ist.
  • (Schritt S501: Prozess der Annahme des Registrierungsschlüssels)
  • Die Annahmeeinheit 510 nimmt den Registrierungsschlüssel EK an.
  • Als konkretes Beispiel empfängt die Annahmeeinheit 510 den Registrierungsschlüssel EK unter Verwendung der Kommunikationsvorrichtung 505 von der Registrierungsschlüsselvorrichtung 300. Die Annahmeeinheit 510 kann über die Eingabe/Ausgabe-Schnittstelle 504 den in die Benutzerschlüsselvorrichtung 500 eingegebenen Registrierungsschlüssel EK annehmen.
  • Die Annahmeeinheit 510 veranlasst, dass der Registrierungsschlüssel EK in der Speichereinheit 591 gespeichert wird. Infolgedessen wird der Registrierungsschlüssel EK in der Speichereinheit 591 verwahrt.
  • Die Annahmeeinheit 510 kann den Prozess in diesem Schritt nicht ausführen, wenn die Speichereinheit 591 den Registrierungsschlüssel EK bereits verwahrt hat.
  • (Schritt S502: Prozess der Annahme von Attributinformationen)
  • Die Annahmeeinheit 510 nimmt Attributinformationen A an. Die Attributinformationen A entsprechen den Sucherattributinformationen.
  • Als ein konkretes Beispiel nimmt die Annahmeeinheit 510 über die Eingabe/Ausgabe-Schnittstelle 504 die in die Benutzerschlüsselvorrichtung 500 eingegebenen Attributinformationen A an. Die Annahmeeinheit 510 kann die Attributinformationen A von einem Anwendungsprogramm annehmen.
  • Zu beachten ist, dass die Annahmeeinheit 510 den Prozess in diesem Schritt nicht ausführen kann, wenn die Speichereinheit 591 die Attributinformationen A bereits gespeichert hat.
  • Die Attributinformationen sind Informationen mit darin konsolidierten Attributen des Suchers. Die Attributinformationen sind Informationen zur Berechtigungssteuerung für das Suchen und Decodieren. Der Sucher ist ein Benutzer, der nach in der Datenverwaltungsvorrichtung 800 registrierten Daten suchen kann. Das heißt, der Sucher ist ein Benutzer der Suchvorgangsvorrichtung 700 oder eine Person, die möglicherweise die Suchvorgangsvorrichtung 700 nutzt. Es ist möglich, dass der Sucher kein Mensch ist, beispielsweise ein Computer oder Roboter. Zu den Attributen des Suchers gehören Eigenschaften des Suchers, Identifikationsinformationen des Suchers usw.
  • Als ein konkretes Beispiel sind die Attribute des Suchers aus einer oder mehreren Schichten ausgebildet. Nachfolgend wird davon ausgegangen, dass die Attribute des Suchers aus einer oder mehreren Schichten ausgebildet sind.
  • Die Attributinformationen geben einen Attributwert jedes Suchers durch jede Schicht an. Der Attributwert ist jeder Wert der Attributinformationen.
  • 19 veranschaulicht ein konkretes Beispiel der Attributinformationen. In diesem Beispiel sind die Attribute des Suchers aus vier Schichten ausgebildet. Nachfolgend wird das Beispiel beschrieben.
  • Eine Zahl entspricht einer Klasse des Suchers. Eine Zahl kann einer Vielzahl von Suchern entsprechen.
  • Ein Attribut einer ersten Schicht (erstes Attribut) gibt einen Bereich an, zu dem der Sucher gehört.
  • Ein Attribut einer zweiten Schicht (zweites Attribut) gibt eine Abteilung an, zu der der Sucher gehört.
  • Ein Attribut einer dritten Schicht (drittes Attribut) gibt eine Sektion an, zu der der Sucher gehört.
  • Ein Attribut einer vierten Schicht (viertes Attribut) gibt den Namen des Suchers an.
  • Attributinformationen mit der Zahl 1 sind Attributinformationen zu Herrn Ne. Herr Ne gehört zur Sektion Sc der Abteilung De des Bereichs Di.
  • Attributinformationen mit der Zahl 2 sind Attributinformationen zu Frau Nf. Frau Nf gehört zur Sektion Sd der Abteilung De des Bereichs Di.
  • Attributinformationen mit der Zahl 3 entsprechen dem Sucher, der zur Sektion Sc der Abteilung De des Bereichs Di gehört. Das vierte Attribut mit der Zahl 3 ist eine Wildcard *. Die Wildcard * gibt an, das der Attributwert nicht begrenzt ist. Folglich geben die der Zahl 3 entsprechenden Attributinformationen an, dass der Name des Suchers nicht begrenzt ist. Zu beachten ist, dass die Wildcard * in einem Computer durch einen Wert, dessen Bits alle 1 sind, einen Zeichencode von * oder dergleichen ersetzt werden kann.
  • Attributinformationen mit der Zahl 4 entsprechen einem Sucher, der zur Abteilung De des Bereichs Di gehört. Das dritte Attribut und das vierte Attribut mit der Zahl 4 sind Wildcards *. Folglich geben die der Zahl 4 entsprechenden Attributinformationen an, dass die Sektion und der Name des Suchers nicht begrenzt sind.
  • In der vorliegenden Ausführungsform sind die Attributinformationen des Suchers aus (einer) Schicht(en) L ausgebildet. L ist eine Ganzzahl gleich oder größer als 1.
  • Die Attributinformationen A können wie folgt repräsentiert sein. A = ( A _ 1, , A _ L )
    Figure DE112020005626T5_0004
  • (Schritt S503: Schlüsselgenerierungsprozess)
  • Die Benutzerschlüsselgenerierungseinheit 521 generiert einen Benutzerdatenschlüssel UDK durch Verwenden des Datenschlüssels DK und der Attributinformationen A.
  • Der Benutzerdatenschlüssel UDK weist, als ein konkretes Beispiel, einen Benutzerdatenteilschlüssel UDK_j und einen Markerwert Db_j auf. j ist eine Ganzzahl gleich oder größer als 1 und gleich oder kleiner als L.
  • Als ein konkretes Beispiel berechnet die Benutzerschlüsselgenerierungseinheit 521 den Benutzerdatenattributteilschlüssel UDKJ wie folgt.
  • Zuerst verkettet die Benutzerschlüsselgenerierungseinheit 521 einen Attributwert AJ und die Zahl j miteinander, um einen verketteten Wert A_j|j zu erhalten.
  • Nachfolgend führt die Benutzerschlüsselgenerierungseinheit 521 eine Funktion F_2 aus, indem sie den Datenschlüssel DK und den verketteten Wert A_j|j als Eingaben zum Erhalten des Benutzerdatenschlüssels UDKJ nimmt. Die Funktion F_2 kann eine Einwegfunktion sein.
  • Die Benutzerschlüsselgenerierungseinheit 521 findet den Markerwert DbJ wie folgt.
  • Die Benutzerschlüsselgenerierungseinheit 521 stellt fest, ob der Attributwert AJ eine Wildcard * ist.
  • Die Benutzerschlüsselgenerierungseinheit 521 setzt den Markerwert DBJ auf 1, wenn der Attributwert AJ eine Wildcard * ist.
  • Die Benutzerschlüsselgenerierungseinheit 521 setzt den Markerwert DBJ auf 0, wenn der Attributwert AJ keine Wildcard * ist.
  • Der Benutzerdatenschlüssel UDK kann wie folgt repräsentiert sein. UDK = ( ( UDK _ 1, Db _ 1 ) , , ( UDK _ L , Db _ L ) )
    Figure DE112020005626T5_0005
    Db _ j = 1 ( wenn A _ j = * )
    Figure DE112020005626T5_0006
    Db _ j = 0 ( wenn A _ j * )
    Figure DE112020005626T5_0007
    UDK _ j = F _ 2 ( DK , A _ j | j )
    Figure DE112020005626T5_0008
  • Die Benutzerschlüsselgenerierungseinheit 521 generiert einen Benutzertagschlüssel UTK durch Verwenden des Tagschlüssels TK und der Attributinformationen A. Als ein konkretes Beispiel weist der Benutzertagschlüssel UTK einen Benutzertagteilschlüssel UTKJ und einen Markerwert TbJ auf.
  • Als ein konkretes Beispiel generiert die Benutzerschlüsselgenerierungseinheit 521 den Benutzertagschlüssel UTK durch Verwenden einer Funktion G_1. Die Funktion G_1 ist, als ein konkretes Beispiel, eine Pseudorandomfunktion, eine Hashfunktion, eine Funktion einer Common-Key-Kryptographie unter Verwendung des Verschlüsselungsmodus ECB (Electronic CodeBook). Die Funktion G_1 entspricht der Benutzerschlüsselfunktion. UTK = ( ( UTK _ 1, Tb _ 1 ) , , ( UTK _ L , Tb _ L ) )
    Figure DE112020005626T5_0009
    Tb _ j = 1 ( wenn A _ j = * )
    Figure DE112020005626T5_0010
    Tb _ j = 0 ( wenn A _ j * )
    Figure DE112020005626T5_0011
    UTK _ j = G _ 1 ( TK , A _ j | j )
    Figure DE112020005626T5_0012
  • (Schritt S504: Verwahrungsprozess)
  • Die Generierungseinheit 520 veranlasst, dass der Benutzerschlüssel UK in der Speichereinheit 591 gespeichert wird. Infolgedessen wird der Benutzerschlüssel UK in der Speichereinheit 591 verwahrt.
  • Der Benutzerschlüssel UK ist ein Satz des Benutzerdatenschlüssels UDK und des Benutzertagschlüssels UTK. Der Benutzerschlüssel UK ist ein Schlüssel mit darin integrierten Attributinformationen A.
  • Der Benutzerschlüssel UK kann wie folgt repräsentiert sein. Ein Teil des Benutzerschlüssel UK kann als der Benutzerschlüssel UK bezeichnet werden. UK = ( UDK , UTK )
    Figure DE112020005626T5_0013
  • (Schritt S505: Ausgabeprozess)
  • Die Ausgabeeinheit 530 gibt den Benutzerschlüssel UK aus.
  • Als ein konkretes Beispiel überträgt die Ausgabeeinheit 530 den Benutzerschlüssel UK unter Verwendung der Kommunikationsvorrichtung 505 an die Suchvorgangsvorrichtung 700.
  • 20 ist ein Ablaufdiagramm, das ein Beispiel des Ablaufs eines Datenregistrierungsprozesses veranschaulicht.
  • Der Datenregistrierungsprozess ist ein Prozess, der von der Registrierungsvorrichtung 600 und der Datenverwaltungsvorrichtung 800 auszuführen ist.
  • (Schritt S601: Prozess der Annahme des Registrierungsschlüssels)
  • Die Annahmeeinheit 610 nimmt den Registrierungsschlüssel EK an.
  • Als konkretes Beispiel empfängt die Annahmeeinheit 610 den Registrierungsschlüssel EK unter Verwendung der Kommunikationsvorrichtung 605 von der Registrierungsschlüsselvorrichtung 300. Die Annahmeeinheit 610 kann über die Eingabe/Ausgabe-Schnittstelle 604 den in die Registrierungsvorrichtung 600 eingegebenen Registrierungsschlüssel EK annehmen.
  • Die Annahmeeinheit 610 veranlasst, dass der Registrierungsschlüssel EK in der Speichereinheit 691 gespeichert wird. Infolgedessen wird der Registrierungsschlüssel EK in der Speichereinheit 691 verwahrt.
  • Anstelle des Prozesses in diesem Schritt kann die Annahmeeinheit 610 einen Prozess ausführen, bei dem der Registrierungsschlüssel EK in diesem Schritt als der Tagschlüssel TK gelesen wird.
  • Zu beachten ist, dass die Annahmeeinheit 610 den Prozess in diesem Schritt nicht ausführen kann, wenn die Speichereinheit 691 den Registrierungsschlüssel EK bereits verwahrt hat.
  • (Schritt S602: Prozess der Annahme des Indexoffenlegungsschlüssels)
  • Die Annahmeeinheit 610 nimmt den Indexoffenlegungsschlüssel IK an.
  • Als ein konkretes Beispiel empfängt die Annahmeeinheit 610 den Indexoffenlegungsschlüssel IK unter Verwendung der Kommunikationsvorrichtung 605 von der Indexoffenlegungsschlüsselvorrichtung 400. Die Annahmeeinheit 610 kann über die Eingabe/Ausgabe-Schnittstelle 604 den in die Registrierungsvorrichtung 600 eingegebenen Indexoffenlegungsschlüssel IK annehmen.
  • Die Annahmeeinheit 610 veranlasst, dass der Indexoffenlegungsschlüssel IK in der Speichereinheit 691 gespeichert wird. Der Indexoffenlegungsschlüssel IK wird in der Speichereinheit 691 gespeichert.
  • Zu beachten ist, dass die Annahmeeinheit 610 den Prozess in diesem Schritt nicht ausführen kann, wenn die Speichereinheit 691 den Indexoffenlegungsschlüssel IK bereits verwahrt hat.
  • (Schritt S603: Datenannahmeprozess)
  • Die Annahmeeinheit 610 nimmt einen Klartext M und Attributinformationen B an. Der Klartext M entspricht Registrierungsdaten. Die Registrierungsdaten sind Daten, die in der Datenverwaltungsvorrichtung 800 registriert sind. Beim Klartext M handelt es sich in der Regel um unverschlüsselte Daten. Der Klartext M umfasst einen Dateinamen File(M) als Metadaten. Der Dateiname File(M) kann verschlüsselt sein. Die Attributinformationen B entsprechen Attributinformationen zu einer berechtigten Person.
  • Als ein konkretes Beispiel nimmt die Annahmeeinheit 610 über die Eingabe/Ausgabe-Schnittstelle 604 den Klartext M und die Attributinformationen B, die in die Registrierungsvorrichtung 600 eingegeben wurden, an. Die Annahmeeinheit 610 kann den Klartext M und die Attributinformationen B von einem Anwendungsprogramm annehmen.
  • Die Attributinformationen B sind Attributinformationen über die berechtigte Person und geben einen Attributwert jeder Schicht der berechtigten Person an. Wie die Attributinformationen A sind auch die Attributinformationen B Informationen zur Berechtigungssteuerung für das Suchen und Decodieren.
  • Die berechtigte Person ist ein Benutzer mit der Berechtigung, auf den Klartext M zu verweisen. Das heißt, die berechtigte Person ist Teil von Suchern.
  • Als ein konkretes Beispiel, wie im Zusammenhang mit den Attributinformationen A, können die Attributinformation B wie folgt repräsentiert sein. B = ( B _ 1, , B _ L )
    Figure DE112020005626T5_0014
  • (Schritt S604: Ciphertextgenerierungsprozess)
  • Die Ciphertextdatengenerierungseinheit 621 generiert Ciphertextdaten C unter Verwendung des Datenschlüssels DK, des Klartexts M und der Attributinformationen B. Die Ciphertextdaten C umfassen den Dateinamen File(M) als Metadaten des Klartexts M.
  • Als ein konkretes Beispiel generiert die Ciphertextdatengenerierungseinheit 621 Ciphertextdaten C unter Verwendung eines in der Referenzliteratur 1 offenbarten Kryptographiesystems oder eines Systems zum Generieren attributbasierter Verschlüsselung wie ID-basierter Verschlüsselung.
  • [Referenzliteratur 1] WO 2019/053788 A1
  • (Schritt S605: Prozess der Generierung des Registrierungsschlüsselwortes)
  • Die Schlüsselwortgenerierungseinheit 622 generiert das Registrierungsschlüsselwort W, das dem Klartext M entspricht. Das Registrierungsschlüsselwort W ist ein in diesem Schritt generiertes Schlüsselwort. Die Schlüsselwortgenerierungseinheit 622 kann ein Schlüsselwort als ein Registrierungsschlüsselwort W generieren oder kann eine Vielzahl von Schlüsselwörtern als Registrierungsschlüsselwörter W generieren.
  • Als ein konkretes Beispiel generiert die Schlüsselwortgenerierungseinheit 622, wenn der Klartext M einen Namen umfasst, den Namen wie er ist als ein Schlüsselwort. Wenn der Klartext M ein Satz ist, kann die Schlüsselwortgenerierungseinheit 622 auch eine morphologische Analyse oder Verarbeitung natürlicher Sprache zu dem betreffenden Satz ausführen und unter Verwendung der Ergebnisse eine Vielzahl von Schlüsselwörtern generieren.
  • Die Schlüsselwortgenerierungseinheit 622 kann über die Eingabe/Ausgabe-Schnittstelle 604 ein in die Registrierungsvorrichtung 600 eingegebenes Schlüsselwort annehmen. Außerdem kann die Schlüsselwortgenerierungseinheit 622 ein Schlüsselwort aus einem Anwendungsprogramm annehmen.
  • Nachfolgend wird im Interesse der Vereinfachung davon ausgegangen, dass die Schlüsselwortgenerierungseinheit 622 ein Schlüsselwort generiert. Wenn die Schlüsselwortgenerierungseinheit 622 eine Vielzahl von Schlüsselwörtern generiert, führt die Registrierungsvorrichtung 600 wiederholt den folgenden Prozess aus, wobei die Anzahl der Male gleich der Anzahl der Schlüsselwörter ist, wodurch verschlüsselte Tags CT, die verschlüsselten Indizes EI usw. entsprechend der Anzahl der generierten Schlüsselwörter generiert werden.
  • (Schritt S606: Prozess der Generierung eines mittleren Tags)
  • Die Einheit 623 zum Generieren eines mittleren Tags generiert das mittlere Tag MT unter Verwendung des Tagschlüssels TK, der Attributinformationen B und des Registrierungsschlüsselwortes W. Das mittlere Tag MT sind deterministische Daten, die als ein Ergebnis der Ausführung einer deterministischen Funktion, wobei der Tagschlüssel TK, die Attributinformationen B und das Registrierungsschlüsselwort W als Eingaben genommen wurden, erhalten wurden. Die deterministische Funktion ist eine Funktion, in der dann, wenn der Eingabewert ein beliebiger Wert ist, der zum Definitionsbereich der deterministischen Funktion gehört, der dem Eingabewert entsprechende Ausgabewert immer der gleiche ist. Die deterministische Funktion ist eine Funktion, in welcher der Ausgabewert nicht probabilistisch definiert ist. Das heißt, das unter Verwendung des gleichen Registrierungsschlüsselwortes W generierte mittlere Tag MT hat immer den gleichen Wert. Die deterministischen Daten sind Daten, die durch Ausführen einer deterministischen Funktion erhalten wurden. Das heißt, die deterministischen Daten sind keine probabilistisch bestimmten Daten.
  • Das mittlere Tag MT entspricht temporären Daten für die Verwendung beim Generieren des verschlüsselten Tags CT, das durch die Einheit 627 zum Generieren eines verschlüsselten Tags berechnet wurde.
  • Das mittlere Tag MT wird unter Verwendung der deterministischen Funktion D_1 wie folgt generiert. MT = D _ 1 ( TK , B , W )
    Figure DE112020005626T5_0015
  • Hier wird das mittlere Tag MT auf Grundlage des Beispiels von Referenzliteratur 1 beschrieben.
  • Das mittlere Tag MT weist ein Attributelement MT_{j, 0, W} und ein Wildcard-Element MT_{j, 1, W} auf. j ist eine Ganzzahl gleich oder größer als 1 und gleich oder kleiner als L. Hier sind die Anzahl der Attributelemente und die Anzahl der Wildcard-Elemente jeweils L. Folglich weist das mittlere Tag MT 2L Elemente auf. Das mittlere Tag MT entspricht einer berechtigten Person.
  • Die Einheit 623 zum Generieren eines mittleren Tags berechnet das Attributelement MT_{j, 0, W} wie folgt.
  • Zuerst verkettet die Einheit 623 zum Generieren eines mittleren Tags einen Attributwert BJ und die Zahl j miteinander, um einen verketteten Wert B_j|j zu erhalten.
  • Nachfolgend führt die Einheit 623 zum Generieren eines mittleren Tags die Funktion G_1 aus, indem sie den Tagschlüssel TK und den verketteten Wert BJ |j als Eingaben zum Erhalten eines Funktionswertes B_j^ nimmt.
  • Nachfolgend führt die Einheit 623 zum Generieren eines mittleren Tags eine Funktion G_2 aus, indem sie den Funktionswert B_j^ und das Registrierungsschlüsselwort W als Eingaben zum Erhalten eines Funktionswertes B_j^^ nimmt.
  • Der Funktionswert B_j^^ ist das Attributelement MT_{j, 0, W}.
  • Zu beachten ist, dass die Funktion G_2 äquivalent zur Funktion G_1 ist. Die Funktion G_2 entspricht der Suchanfragefunktion.
  • Die Einheit 623 zum Generieren eines mittleren Tags berechnet das Wildcard-Element MT_{j, 1, W} wie folgt.
  • Zuerst verkettet die Einheit 623 zum Generieren eines mittleren Tags die Wildcard * und die Zahl j miteinander, um einen verketteten Wert *_j zu erhalten.
  • Nachfolgend führt die Einheit 623 zum Generieren eines mittleren Tags die Funktion G_1 aus, indem sie den Tagschlüssel TK und den verketteten Wert *_j als Eingaben zum Erhalten eines Funktionswertes *_j^ nimmt.
  • Nachfolgend führt die Einheit 623 zum Generieren eines mittleren Tags eine Funktion G_2 aus, indem sie den Funktionswert *_j^ und das Registrierungsschlüsselwort W als Eingaben zum Erhalten eines Funktionswertes *_j^^ nimmt. Der Funktionswert *_j^^ ist das Wildcard-Element MT_{j, 1, W}.
  • Das mittlere Tag MT kann wie folgt repräsentiert sein. MT = ( MT _ { 1,0, W } , MT _ { 1,1, W } , , MT _ { L ,0, W } , MT _ { L ,1, W } )
    Figure DE112020005626T5_0016
    MT _ { j ,0, W } = ( G _ 2 ( G _ 1 ( TK , B _ j | j ) , W )
    Figure DE112020005626T5_0017
    MT _ { j ,1, W } = ( G _ 2 ( G _ 1 ( TK , * | j ) , W )
    Figure DE112020005626T5_0018
    j ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als L ist.
  • (Schritt S607: Indexgenerierungsprozess)
  • Die Indexgenerierungseinheit 624 generiert den Index I unter Verwendung des mittleren Tags MT.
  • Die Indexgenerierungseinheit 624 führt eine deterministische Funktion aus, indem sie das mittlere Tag MT als eine Eingabe nimmt, und nimmt das Ergebnis der Ausführung der deterministischen Funktion als den Index I. Das heißt, der Index I sind deterministische Daten.
  • Der Index I sind Daten, die verwendet werden, bevor die Sucheinheit 840 einen Suchprozess ausführt. Der Index I sind Daten, die die Sucheinheit 840 bei der Überprüfung, ob eine Möglichkeit besteht, dass das in dem verschlüsselten Tag CT enthaltene Registrierungsschlüsselwort W und das in der Suchanfrage SQ enthaltene Suchschlüsselwort w übereinstimmen.
  • Der Index I wird genauer beschrieben.
  • Die Datenverwaltungsvorrichtung 800 vergleicht den Index I und die Indexanfrage IQ, um mit hoher Geschwindigkeit festzustellen, ob eine Möglichkeit besteht, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen. Hier ist die Indexanfrage IQ eine durch die Indexanfragegenerierungseinheit 722 generierte Anfrage, sodass diese der Suchanfrage SQ entspricht. Ein Teil der Indexanfrage IQ kann als die Indexanfrage IQ bezeichnet werden. Das Registrierungsschlüsselwort W ist in dem verschlüsselten Tag CT enthalten. Das Suchschlüsselwort w ist in der Suchanfrage enthalten.
  • Wenn festgestellt wird, dass eine Möglichkeit besteht, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen, führt die Einheit 843 zum Kollationieren eines verschlüsselten Tags einen Prozess zum Kollationieren des verschlüsselten Tags CT und der Suchanfrage SQ miteinander (nachfolgend ein Kollationierungsprozess) aus. Wenn andererseits festgestellt wird, dass keine Möglichkeit besteht, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen, führt die Einheit 843 zum Kollationieren eines verschlüsselten Tags keinen Kollationierungsprozess aus.
  • Allgemein ist die für den Kollationierungsprozess erforderliche Zeit lang. Folglich ist es wünschenswert, dass die Datenverwaltungsvorrichtung 800 keinen unnötigen Kollationierungsprozess ausführt.
  • Im Kollationierungsprozess kollationiert die Datenverwaltungsvorrichtung 800 die Suchanfrage SQ nicht mit allen in der Datenverwaltungsvorrichtung 800 verwahrten verschlüsselten Tags CT. Stattdessen nutzt die Datenverwaltungsvorrichtung 800 den Index I und die Indexanfrage IQ, wobei die verschlüsselten Tags CT mit einer Möglichkeit, dass sie das mit dem Suchschlüsselwort w übereinstimmende Registrierungsschlüsselwort W enthalten, eingegrenzt werden und unter Verwendung der eingegrenzten verschlüsselten Tags CT ein Kollationierungsprozess ausgeführt wird. Folglich kann die Datenverwaltungsvorrichtung 800 die für die Suche nach dem verschlüsselten Tag CT erforderliche Zeit reduzieren.
  • Der Index I wird unter Verwendung einer deterministischen Funktion D_2 wie folgt generiert. Die deterministische Funktion D_2 entspricht der Indexanfragefunktion. I = D _ 2 ( MT ) = ( I _ 1, , I _ ILEN )
    Figure DE112020005626T5_0019
  • Die deterministische Funktion D_2 gibt einen Vektorwert mit der Länge ILEN aus.
  • Beispielsweise wird davon ausgegangen, dass für das Registrierungsschlüsselwort W = Tokyo durch eine von der deterministischen Funktion D_2 intern verwendete deterministische Funktion D_2' mittlere Tags MT = (MT_{1, 0, W}, MT_{1, 1, W}, ..., MT_{L, 0, W}, MT_{L, 1, W}) wie folgt konvertiert werden. D _ 2 ' ( MT _ { 1,0, Tokyo } ) = 10 01 1 D _ 2 ' ( MT _ { 1,1, Tokyo } ) = 00 11 0 D _ 2 ' ( MT _ { L ,0, Tokyo } ) = 00 01 0 D _ 2 ' ( MT _ { L ,1, Tokyo } ) = 11 10 0
    Figure DE112020005626T5_0020
  • Als konkretes Beispiel ist hier der Index I wie folgt konfiguriert. I = ( I _ 1, , I _ ILEN ) I _ 1 = ( I _ 10 _ 1, I _ 11 _ 1, , I _ L 0 _ 1, I _ L 1 _ 1 )   = ( 1,0, ,0,1 ) I _ 2 = ( I _ 10 _ 2, I _ 11 _ 2, , I _ L 0 _ 2, I _ L 1 _ 2 )   = ( 0,0, ,0,1 ) I _ ILEN = ( I _ 10 _ ILEN , I _ 11 _ ILEN , , I _ L 0 _ ILEN , I _ L 1 _ ILEN )   = ( 0,1, ,0,1 )
    Figure DE112020005626T5_0021
  • Das heißt, I_1 ist aus dem ersten Bit von D_2'(MT_{1, 0, Tokyo}), ..., D_2'(MT_{L, 1, Tokyo}) konfiguriert. Ähnlich ist I_ILEN ist aus dem ILEN-ten Bit von D_2'(MT_{1, 0, Tokyo}), ..., D_2'(MT_{L, 1, Tokyo}) konfiguriert.
  • Die oben beschriebene Struktur des Index I ist ein Beispiel. Der Index I kann eine andere Struktur aufweisen. Beispielsweise ist I_1 ist aus dem ersten Bit und dem zweiten Bit von D_2'(MT_{1, 0, Tokyo}), ..., D_2'(MT_{L, 1, Tokyo}) konfiguriert. Ähnlich ist I_ILEN aus dem (2xILEN-1)-ten Bit und (2xILEN)-ten Bit von D_2'(MT_{1, 0, Tokyo}), ..., D_2'(MT_{L, 1, Tokyo}) konfiguriert. Der Index kann in dieser Weise konfiguriert sein.
  • Wenn das mittlere Tag MT mit einer Verschlüsselungsfunktion deterministisch und sicher generiert wird, kann der Index I unter Verwendung des einen voranstehenden Bits bis zum ILEN-ten Bit des mittleren Tags MT konfiguriert werden. Das heißt, das mittlere Tag MT kann wie nachfolgend beschrieben konfiguriert sein. D _ 2 ' ( MT _ { j , b , Tokyo } ) = MT _ { j , b , Tokyo } = ( I _ jb _ 1, , I _ jb _ ILEN , * _ ( ILEN + 1 ) , ) )
    Figure DE112020005626T5_0022
    j ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als ILEN ist. b ist 0 oder 1. Zu beachten ist, dass in diesem Fall die Indexgenerierungseinheit 624 den Index I durch Ignorieren eines (ILEN+1)-ten Vektorelementwerts ab dem mittleren Tag MT generiert.
  • (Schritt S608: Prozess der Generierung des verschlüsselten Index)
  • Die Einheit 625 zum Generieren eines verschlüsselten Index generiert den verschlüsselten Index EI durch Verschlüsseln des Index I unter Verwendung des Indexoffenlegungsschlüssels IK.
  • Die Einheit 625 zum Generieren eines verschlüsselten Index generiert den verschlüsselten Index EI unter Verwendung einer probabilistischen Verschlüsselungsfunktion wie AES-CTR (Advanced Encryption Standard-Counter) oder RSA (eingetragene Marke)-OAEP (Rivest-Shamir-Adleman-Optimal Asymmetric Encryption Padding). Bei der probabilistischen Verschlüsselung werden, wenn die gleichen Daten wie vorher verschlüsselt werden, nicht notwendigerweise die gleichen verschlüsselten Daten generiert.
  • Als ein konkretes Beispiel generiert die Einheit 625 zum Generieren eines verschlüsselten Index den verschlüsselten Index EI durch Verwendung einer probabilistischen Verschlüsselungsfunktion Enc. El = ( El _ 1, , El _ ILEN ) El _ 1 = Enc ( lK _ 1, l _ 1 ) El _ ILEN = Enc ( IK _ ILEN , I _ ILEN )
    Figure DE112020005626T5_0023
  • (Schritt S609: Zufallszahlgenerierungsprozess)
  • Die Zufallszahlgenerierungseinheit 626 generiert eine Zufallszahl TR. Die Zufallszahl TR entspricht der Zufallszahl für ein verschlüsseltes Tag. Mindestens ein Element der Zufallszahlen TR kann als eine Zufallszahl für ein verschlüsseltes Tag bezeichnet werden. Die Zufallszahlgenerierungseinheit 626 kann die Zufallszahl TR in jeglicher Weise generieren. Die Zufallszahl TR kann ein aus Zufallszahlenelementen ausgebildeter Vektor sein. Als ein konkretes Beispiel generiert die Zufallszahlgenerierungseinheit 626 einen aus gleichförmigen Zufallszahlenelementen ausgebildeten Vektor als die Zufallszahl TR.
  • Die Zufallszahlgenerierungseinheit 626 kann eine Zufallszahl TR mit einem Schema zur Verwendung durch die Einheit 627 zum Generieren eines verschlüsselten Tags beim Generieren des verschlüsselten Tags CT generieren. Die Zufallszahlgenerierungseinheit 626 kann eine aus einer Vielzahl von Zufallszahlen ausgebildete TR generieren.
  • Nachfolgend wird eine Beschreibung unter der Annahme vorgenommen, dass TR = (R_0, R_1, ..., R_L), wobei die Zufallszahlgenerierungseinheit 626 die aus L+1 Zufallszahlen ausgebildete Zufallszahl TR generiert.
  • (Schritt S610: Prozess der Generierung eines verschlüsselten Tags)
  • Die Einheit 627 zum Generieren eines verschlüsselten Tags generiert das verschlüsselte Tag CT unter Verwendung des Tagschlüssels TK, des mittleren Tags MT und der Zufallszahl TR.
  • Als konkretes Beispiel generiert die Einheit 627 zum Generieren eines verschlüsselten Tags das verschlüsselte CT für das mittlere Tag wie folgt: MT = (MT_{1, 0, W}, MT_{1, 1, W}, ..., MT_{L, 0, W}, MT_{L, 1, W}), wobei eine Funktion G_3 und eine Funktion G_4 verwendet werden. Die Funktion G_3 und die Funktion G_4 sind deterministische Funktionen. Die Funktion G_3 entspricht der Funktion für ein verschlüsseltes Tag. Die Funktion G_4 entspricht einer Kollatorfunktion. In den folgenden Ausdrücken sind VER und R_0 mit dem verschlüsselten Tag CT gekoppelt. CT = ( CT _ { 1,0, W } , CT _ { 1,1, W } , , CT _ { L ,0, W } , CT _ { L ,1, W } , VER , R _ 0 )
    Figure DE112020005626T5_0024
    CT_ { j ,0, W } = G _ 3 ( G _ 2 ( G _ 1 ( TK ,B_j | j ) ,W ) | R_ 0 ) + R_j
    Figure DE112020005626T5_0025
    CT_ { j ,1, W } = G _ 3 ( G _ 2 ( G _ 1 ( TK* | j ) ,W ) | R_ 0 ) + R_j
    Figure DE112020005626T5_0026
    VER = G _ 4 ( R _ 1 + + R_L )
    Figure DE112020005626T5_0027
    j ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als L ist. VER entspricht einem Kollator eines verschlüsselten Tags.
  • In der Beschreibung repräsentiert das Pluszeichen „+“ ein ausschließliches ODER, sofern nicht anders angegeben. Wenn ein Term vor oder nach dem „+“ kein Buchstabe, sondern eine Zahl ist, steht das Zeichen für Addition, sofern nicht anders angegeben.
  • (Schritt S611: Registrierungsprozess)
  • Die Registrierungseinheit 630 registriert einen Satz von Ciphertextdaten C, das verschlüsselte Tag CT und den verschlüsselten Index EI in der Datenverwaltungsvorrichtung 800.
  • Als konkretes Beispiel überträgt die Registrierungseinheit 630 einen Satz von Ciphertextdaten C, das verschlüsselte Tag CT und den verschlüsselten Index EI unter Verwendung der Kommunikationsvorrichtung 605 an die Datenverwaltungsvorrichtung 800.
  • Die Annahmeeinheit 810 empfängt einen Satz von Ciphertextdaten C, das verschlüsselte Tag CT und den verschlüsselten Index EI und veranlasst, dass der empfangene Satz in der Speichereinheit 891 gespeichert wird. Das heißt, die Annahmeeinheit 810 veranlasst, dass die Ciphertextdaten C, das verschlüsselte Tag CT und der verschlüsselte Index EI in der Speichereinheit 891 als einander zugeordnet gespeichert werden. Infolgedessen werden der Satz von Ciphertextdaten C, das verschlüsselte Tag CT und der verschlüsselte Index EI in der Speichereinheit 891 verwahrt.
  • 21 veranschaulicht ein Beispiel einer Registrierungsdatenbank 892.
  • Die Datenverwaltungsvorrichtung 800 registriert den Dateinamen, die verschlüsselten Daten C, das verschlüsselte Tag CT und den verschlüsselten Index EI in Verbindung miteinander in der Registrierungsdatenbank 892.
  • In der Speichereinheit 891 ist die Registrierungsdatenbank 892 gespeichert.
  • 22 ist ein Ablaufdiagramm, das ein Beispiel eines Indexoffenlegungsprozesses veranschaulicht.
  • Der Indexoffenlegungsprozess ist ein Prozess, der von der Datenverwaltungsvorrichtung 800 auszuführen ist. Der vorliegende Prozess wird an dem in der Speichereinheit 891 verwahrten verschlüsselten Index EI ausgeführt, wenn ein i-ter Indexoffenlegungsschlüssel IK_i, der Teil des Indexoffenlegungsschlüssels IK ist, neu offengelegt wird. i ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als ILEN ist. Wenn ein Datenregistrierungsprozess neu ausgeführt wird, nachdem IK_i offengelegt wurde, kann der vorliegende Prozess an dem verschlüsselten Index EI unmittelbar nach dem Verwahren in der Speichereinheit 891 im Schritt S611 ausgeführt werden.
  • (Schritt S801: Prozess der Annahme des Indexoffenlegungsschlüssels)
  • Die Annahmeeinheit 810 nimmt den i-ten Indexoffenlegungsschlüssel IK_i des Indexoffenlegungsschlüssels IK an. i ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als ILEN ist.
  • Als konkretes Beispiel empfängt die Annahmeeinheit 810 den i-ten Indexoffenlegungsschlüssel IK_i des Indexoffenlegungsschlüssels unter Verwendung der Kommunikationsvorrichtung 805 von der Indexoffenlegungsschlüsselvorrichtung 400. Die Annahmeeinheit 810 kann über die Eingabe/Ausgabe-Schnittstelle 804 den in die Datenverwaltungsvorrichtung 800 eingegebenen Indexoffenlegungsschlüssel IK_i annehmen.
  • Die Annahmeeinheit 810 veranlasst, dass der i-te Indexoffenlegungsschlüssel IK_i in der Speichereinheit 891 gespeichert wird. Infolgedessen wird der i-te Indexoffenlegungsschlüssel IK_i in der Speichereinheit 891 verwahrt.
  • Zu beachten ist, dass die Annahmeeinheit 810 den Prozess in diesem Schritt nicht ausführen kann, wenn die Speichereinheit 891 den i-ten Indexoffenlegungsschlüssel IK_i bereits verwahrt hat.
  • (Schritt S802: Prozess der Annahme des verschlüsselten Index)
  • Die Annahmeeinheit 810 nimmt den verschlüsselten Index EI an.
  • Als ein konkretes Beispiel nimmt die Annahmeeinheit 810 über die Eingabe/Ausgabe-Schnittstelle 804 den in die Datenverwaltungsvorrichtung 800 eingegebenen verschlüsselten Index EI an. Die Annahmeeinheit 810 kann den verschlüsselten Index EI von einem Anwendungsprogramm annehmen.
  • Der in der Speichereinheit 891 verwahrte verschlüsselte Index El, der verschlüsselte Index EI unmittelbar nach Verwahrung in der Speichereinheit 891 im Schritt S611 oder dergleichen entsprechen dem verschlüsselten Index EI in diesem Schritt.
  • Zu beachten ist, dass die Annahmeeinheit 810 den Prozess in diesem Schritt nicht ausführen kann, wenn die Speichereinheit 891 den verschlüsselten Index EI bereits verwahrt hat.
  • (Schritt S803: Decodierungsprozess)
  • Die Einheit 821 zum Decodieren eines verschlüsselten Index decodiert einen i-ten verschlüsselten Index El_i durch Verwendung eines i-ten Indexoffenlegungsschlüssels IK_i, wodurch ein i-ter Index I_i rekonstruiert wird. Der i-te verschlüsselte Index EI_i ist Teil des verschlüsselten Index EI. Der i-te Index I_i ist Teil des Index I.
  • Das heißt, die Decodierungseinheit 821 für einen verschlüsselten Index rekonstruiert I_i wie folgt unter Verwendung einer Decodierungsfunktion Dec. Die Decodierungsfunktion Dec ist eine Funktion, die der probabilistischen Verschlüsselungsfunktion Enc entspricht. l_i = Dec ( IK_i ,El_i )
    Figure DE112020005626T5_0028
  • (Schritt S804: Registrierungsprozess)
  • Die Registrierungseinheit 830 registriert den i-ten Index I_i und den verschlüsselten Index EI in Verbindung miteinander in der Registrierungsdatenbank 892.
  • 23 veranschaulicht ein Beispiel einer Post-Index-Offenlegungsdatenbank 893. Die Post-Index-Offenlegungsdatenbank 893 wird unter der Grundannahme i = 1 beschrieben.
  • Die Datenverwaltungsvorrichtung 800 extrahiert den extrahierten verschlüsselten Index EI und den rekonstruierten ersten Index I_1 in Verbindung miteinander. Die Registrierungsdatenbank 892 wird in der gleichen Weise wie die Post-Index-Offenlegungsdatenbank 893 aktualisiert.
  • In der Post-Index-Offenlegungsdatenbank 893 dieser Zeichnung ist der erste verschlüsselte Index EI_1 nicht registriert. Es ist jedoch möglich, dass die Registrierungseinheit 830 den ersten verschlüsselten Index EI_1 nicht aus der Registrierungsdatenbank 892 löscht.
  • In der Speichereinheit 891 ist die Post-Index-Offenlegungsdatenbank 893 gespeichert.
  • Zu beachten ist, dass die Datenverwaltungsvorrichtung 800 beim Registrieren einer Zeichenfolge des i-ten Index I_i eine Hochgeschwindigkeitsindextechnik nutzt, wodurch ein Ausführen des Datensuchprozesses bei hohen Geschwindigkeiten veranlasst wird. Die Hochgeschwindigkeitsindextechnik ist, als ein konkretes Beispiel, ein binärer Suchbaum oder B-TREE.
  • (Schritt S805: Aktualisierungsprozess)
  • Die Registrierungseinheit 830 aktualisiert die in der Speichereinheit 891 gespeicherten Indexoffenlegungspositionsinformationen Pos. Die Indexoffenlegungspositionsinformationen Pos sind Informationen, die die Position des Index I entsprechend dem aktuell veröffentlichten Indexoffenlegungsschlüssel angeben. Die Indexoffenlegungspositionsinformationen Pos sind typischerweise Daten, die unmittelbar nach dem Beginn des Betriebs des durchsuchbaren Verschlüsselungssystems 100 erstellt wurden. Hier sind die Indexoffenlegungspositionsinformationen Pos ein Satz, und der Anfangswert der Indexoffenlegungspositionsinformationen Pos ist ein leerer Satz. Der Indexoffenlegungsschlüssel IK wird typischerweise von der Registrierungsvorrichtung 600 veröffentlicht.
  • Wenn beispielsweise der erste Indexoffenlegungsschlüssel IK_1 zum ersten Mal veröffentlicht wird, addiert die Registrierungseinheit 830 zu Pos 1. Das heißt, die Registrierungseinheit 830 aktualisiert die Indexoffenlegungspositionsinformationen zu Pos = {1}. Dann, wenn der zweite Indexoffenlegungsschlüssel IK_2 veröffentlicht wird, addiert die Registrierungseinheit 830 zu Pos 2. Das heißt, die Registrierungseinheit 830 aktualisiert die Indexoffenlegungspositionsinformationen zu Pos = {1, 2}.
  • 24 ist ein Ablaufdiagramm, das ein Beispiel eines Suchprozesses veranschaulicht.
  • Der Suchprozess ist ein Prozess, der von der Suchvorgangsvorrichtung 700 auszuführen ist.
  • (Schritt S701: Prozess der Annahme des Benutzerschlüssels)
  • Die Annahmeeinheit 710 nimmt den Benutzerschlüssel UK an.
  • Als ein konkretes Beispiel empfängt die Annahmeeinheit 710 den Benutzerschlüssel UK unter Verwendung der Kommunikationsvorrichtung 705 von der Benutzerschlüsselvorrichtung 500. Die Annahmeeinheit 710 kann über die Eingabe/Ausgabe-Schnittstelle 704 den in die Suchvorgangsvorrichtung 700 eingegebenen Benutzerschlüssel UK annehmen.
  • Die Annahmeeinheit 710 veranlasst, dass der Benutzerschlüssel UK in der Speichereinheit 791 gespeichert wird. Infolgedessen wird der Benutzerschlüssel UK in der Speichereinheit 791 verwahrt.
  • Der Benutzerschlüssel UK umfasst den Benutzerdatenschlüssel UDK und den Benutzertagschlüssel UTK.
  • Zu beachten ist, dass die Annahmeeinheit 710 den Prozess in diesem Schritt nicht ausführen kann, wenn die Speichereinheit 791 den Benutzerschlüssel UK bereits verwahrt hat.
  • (Schritt S702: Prozess der Annahme des Suchschlüsselworts)
  • Die Annahmeeinheit 710 nimmt das Suchschlüsselwort w an.
  • Als ein konkretes Beispiel nimmt die Annahmeeinheit 710 über die Eingabe/Ausgabe-Schnittstelle 704 das in die Suchvorgangsvorrichtung 700 eingegebene Suchschlüsselwort w an. Die Annahmeeinheit 710 kann das Suchschlüsselwort w von einem Anwendungsprogramm annehmen.
  • (Schritt S703: Prozess der Generierung der Suchanfrage)
  • Die Suchanfragegenerierungseinheit 721 generiert die Suchanfrage SQ durch Verwenden des Benutzertagschlüssels UTK und des Suchschlüsselworts w.
  • Als ein konkretes Beispiel generiert die Suchanfragegenerierungseinheit 721 die Suchanfrage SQ unter Verwendung von UTK = ((UTK_1, Tb_1), ..., (UTK_L, Tb_L)) und einer Funktion G_2 wie folgt.
    SQ = ((SQ_1, Qb_1), ..., (SQ_L, Qb_L))
    Qb_j = Tb_j
    SQJ = G_2(UTKJ, w)
    j ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als L ist.
  • (Schritt S704: Prozess der Generierung der Indexanfrage)
  • Die Indexanfragegenerierungseinheit 722 generiert die Indexanfrage IQ durch Verwenden der Suchanfrage SQ. Die Indexanfrage IQ sind deterministische Daten, die als ein Ergebnis des Ausführens der deterministischen Funktion D_2 durch Verwenden der Suchanfrage SQ als ein Eingang erhalten werden. Die Indexanfrage IQ sind Daten zur Verwendung bei der Suche nach dem in der Speichereinheit 891 verwahrten Index I.
  • Die Sucheinheit 840 sucht nach dem Index I unter Verwendung der Indexanfrage IQ, ehe zum verschlüsselten Tag CT und der Suchanfrage SQ ein Kollationierungsprozess ausgeführt wird. Die Sucheinheit 840 prüft, ob eine Möglichkeit besteht, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen und die Attributinformationen A und die Attributinformationen B übereinstimmen. Hier sind die Informationen zum Registrierungsschlüsselwort W und die Attributinformationen A im verschlüsselten Tag CT enthalten. Informationen zum Suchschlüsselwort w und die Attributinformationen B sind in der Indexanfrage IQ enthalten.
  • Wenn die Sucheinheit 840 feststellt, dass eine Möglichkeit besteht, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen und die Attributinformationen A und die Attributinformationen B übereinstimmen, führt die Einheit 843 zum Kollationieren eines verschlüsselten Tags unter Verwendung des verschlüsselten Tags CT und der Suchanfrage SQ einen Kollationierungsprozess aus. Andererseits führt die Kollationierungseinheit 843 anderweitig keinen Kollationierungsprozess aus.
  • Die Indexanfrage IQ wird unter Verwendung der deterministischen Funktion D_2 wie folgt generiert. IQ = D_ 2 ( SQ ) = ( IQ_ 1, , IQ_ILEN )
    Figure DE112020005626T5_0029
  • Als ein konkretes Beispiel ist, wenn das Suchschlüsselwort w Tokyo ist, die Indexanfrage IQ unter Verwendung der Suchanfrage SQ und der deterministischen Funktion D_2 wie folgt konfiguriert. MT_{j, Qb_j, w} ist ein mittleres Tag. Das mittlere Tag in der Suchvorgangsvorrichtung 700 kann sich vom mittleren Tag in der Registrierungsvorrichtung 600 unterscheiden. D_ 2 ' ( MT_ { 1, Qb_ 1, Tokyo } ) = D_ 2 ' ( SQ_ 1 ) D_ 2 ' ( MT_ { L , Qb_L , Tokyo } ) = D_ 2 ' ( SQ_L ) u n d IQ_j = ( IQ_ 1 _j , , IQ_L_j ) = ( l_ 1 ( Qb_ 1 ) _j , , I_L ( Qb_L ) _j )
    Figure DE112020005626T5_0030
    j ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als L ist.
  • Wenn Qb_1 = ... = Qb_L = 0, ist das vorstehende Beispiel wie folgt repräsentiert. D_ 2 ' ( SQ_ 1 ) = D_ 2 ' ( MT_ { 1,0, Tokyo } ) = 1 01 1 D_ 2 ' ( SQ_L ) = D_ 2 ' ( MT_ { L ,0, Tokyo } ) = 0 01 0 und  I _ 10 _ 1 = IQ _ 1 _ 1 = 1 I _ L 0 _ 1 = IQ _ L _ 1 = 0 I _ 10 _ ILEN = IQ _ 1 _ ILEN = 0 I _ L 0 _ ILEN = IQ _ L _ ILEN = 0
    Figure DE112020005626T5_0031
  • Hier ist I_1[Qb_1, ..., Qb_L] wie folgt definiert. I_ 1 [ Qb_ 1, , Qb_L ] = ( I _ 1 ( Qb _ 1 ) _ 1, , I_L ( Qb_ 1 ) _ 1 )
    Figure DE112020005626T5_0032
  • Im vorstehenden Beispiel kann I_1[Qb_1, ..., Qb_L] als I_1[0, ..., 0] = (1, ..., 0) repräsentiert sein.
  • Wenn das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen und die Attributinformationen A und die Attributinformationen B übereinstimmen, passen ein durch Extrahieren des ersten Index I_1 des Registrierungsschlüsselworts W angesichts von Qb_1, ..., Qb_L (das heißt, I_1[Qb_1, ..., Qb_L]) erhaltener Wert und der Wert von IQ_1 immer zusammen.
  • Ähnlich gilt in diesem Fall auch für die Ganzzahl j, die gleich oder größer als 1 und gleich oder kleiner als ILEN ist, I_j[Qb_1, ..., Qb_L] = IQ_j für einen j-ten Index I_j des Registrierungsschlüsselworts W.
  • Aus der vorstehenden Gegenüberstellung kann, wenn I_j[Qb_1, ..., Qb_L] ≠ IQ_j, gesagt werden, dass mindestens das Registrierungsschlüsselwort W und das Suchschlüsselwort w nicht übereinstimmen oder die Attributinformationen A und die Attributinformationen B nicht übereinstimmen.
  • Zu beachten ist, dass dann, wenn mindestens das Registrierungsschlüsselwort W und das Suchschlüsselwort w nicht übereinstimmen, oder die Attributinformationen A und die Attributinformationen B nicht übereinstimmen, die Möglichkeit besteht, dass I_j[Qb_1, ..., Qb_L] = IQ_j gilt. Diese Möglichkeit ist jedoch ausreichend gering.
  • Folglich kann die Indexkollationierungseinheit 841 unter Verwendung der vorstehenden Tatsache eine einfache Prüfung auf Übereinstimmung wie folgt ausführen. Die Indexkollationierungseinheit 841 prüft, ob I_j[Qb_1, ..., Qb_L] = IQ_j für alle j, die gleich oder größer als 1 und gleich oder kleiner als k sind, gilt. k ist die Anzahl der Elemente der Indexoffenlegungspositionsinformationen Pos.
  • Wenn dieser Ausdruck für alle j gilt, besteht eine Möglichkeit, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen und die Attributinformationen A und die Attributinformationen B übereinstimmen. Folglich kollationiert in diesem Fall die Sucheinheit 840 das verschlüsselte Tag CT und die Suchanfrage SQ miteinander.
  • Wenn andererseits dieser Ausdruck nicht für alle j gilt, stimmen mindestens das Registrierungsschlüsselwort W und das Suchschlüsselwort w nicht überein, oder die Attributinformationen A und die Attributinformationen B stimmen nicht überein. Folglich kollationiert die Sucheinheit 840 das verschlüsselte Tag CT und die Suchanfrage SQ nicht miteinander.
  • Auf diese Weise kann die Sucheinheit 840 die zu kollationierenden verschlüsselten Tags CT einengen.
  • (Schritt S705: Prozess der Übertragung der Anfrage)
  • Die Anforderungseinheit 730 überträgt die Suchanfrage SQ und die Indexanfrage IQ unter Verwendung der Kommunikationsvorrichtung 705 an die Datenverwaltungsvorrichtung 800.
  • (Schritt S706: Prozess des Empfangs des Ergebnisses)
  • Die Anforderungseinheit 730 wartet auf den Empfang eines verschlüsselten Suchergebnisses {C} von der Datenverwaltungsvorrichtung 800 durch die Kommunikationsvorrichtung 705. Die maximale Zeit des Wartens durch die Anforderungseinheit 730 auf den Empfang des verschlüsselten Suchergebnisses {C} kann jeder beliebige Wert sein.
  • Wenn die Kommunikationsvorrichtung 705 das verschlüsselte Suchergebnis {C} empfängt, fährt die Suchvorgangsvorrichtung 700 mit Schritt S707 fort. Anderenfalls fährt die Suchvorgangsvorrichtung 700 mit Schritt S708 fort.
  • Das verschlüsselte Suchergebnis {C} ist ein aus mindestens einem Teil von Ciphertextdaten C, die als ein Ergebnis der Ausführung eines Suchprozesses durch die Datenverwaltungsvorrichtung 800 gefunden wurden, ausgebildeter Satz.
  • (Schritt S707: Decodierungsprozess)
  • Die Decodierungseinheit 740 decodiert jedes Teil von Ciphertextdaten C, die in dem verschlüsselten Suchergebnis {C} enthalten sind, unter Verwendung des Benutzerdatenschlüssels UDK in den Klartext M.
  • Ein aus mindestens einem Klartext M, erhalten durch Ausführung dieses Schrittes, ausgebildeter Satz wird als ein Suchergebnis {M} bezeichnet.
  • Zu beachten ist, dass dann, wenn die verschlüsselten Daten C nicht in dem verschlüsselten Suchergebnis {C} enthalten sind, das heißt, wenn die Datenverwaltungsvorrichtung 800 die verschlüsselten Daten C nicht extrahiert hat, die Decodierungseinheit 740 den Prozess in diesem Schritt nicht ausführen muss.
  • (Schritt S708: Ausgabeprozess)
  • Die Ausgabeeinheit 750 gibt das Suchergebnis {M} aus.
  • Als ein konkretes Beispiel veranlasst die Ausgabeeinheit 750 über die Eingabe/Ausgabe-Schnittstelle 704 die Anzeige des Suchergebnisses {M} auf der Anzeige.
  • Wenn das Suchergebnis {M} nicht erhalten wird, zeigt die Ausgabeeinheit 750, als ein konkretes Beispiel, eine Meldung an, die angibt, dass kein gesuchter Klartext M vorhanden ist oder die Decodierung misslang. Wenn das Suchergebnis {M} nicht erhalten wird, bedeutet dies, dass keine Möglichkeit besteht, dass mindestens das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen oder die Attributinformationen A und die Attributinformationen B übereinstimmen, keine gesuchten Ciphertextdaten C vorhanden sind oder die Ciphertextdaten C nicht in den Klartext M decodiert werden können.
  • 25 ist ein Ablaufdiagramm, das ein Beispiel des Ablaufs eines Datensuchprozesses veranschaulicht.
  • Der Datensuchprozess ist ein Prozess, der von der Datenverwaltungsvorrichtung 800 auszuführen ist.
  • (Schritt S821: Prozess der Annahme der Anfrage)
  • Die Annahmeeinheit 810 empfängt die Suchanfrage SQ und die Indexanfrage IQ unter Verwendung der Kommunikationsvorrichtung 805 von der Suchvorgangsvorrichtung 700.
  • (Schritt S822: Prozess der Suche nach der Indexgruppe)
  • Die Indexkollationierungseinheit 841 liest eine öffentliche Indexgruppe {I'} und die Indexoffenlegungspositionsinformationen Pos aus der Speichereinheit 891. {I'} ist ein aus mindestens einem Index I ausgebildeter Satz. Jedes Element von {I'} ist als Ii' repräsentiert. Ii' und der verschlüsselte Index Eli entsprechen jedem verschlüsselten Tag CTi. Das verschlüsselte Tag CTi ist ein i-tes verschlüsseltes Tag, wenn die Einheit 627 zum Generieren eines verschlüsselten Tags unter Verwendung einer Vielzahl unterschiedlicher Registrierungsschlüsselwörter W eine Vielzahl verschlüsselter Tags generiert und den entsprechenden verschlüsselten Tags Seriennummern zuordnet. Jeder öffentliche Index Ii' ist aus einem Wert ausgebildet, der durch Decodieren des verschlüsselten Index erhalten wurde.
  • Dann extrahiert die Indexkollationierungseinheit 841 die Teilindexanfrage IQ' entsprechend den Indexoffenlegungspositionsinformationen Pos, um eine Überprüfung auf Übereinstimmung mit der öffentlichen Indexgruppe {I'} auszuführen. Die Teilindexanfrage IQ' ist Teil der Indexanfrage IQ.
  • Hier wird davon ausgegangen, dass die Indexoffenlegungspositionsinformationen Pos k Elemente aufweisen. Das heißt, die Situation ist so, dass k Indexoffenlegungsschlüssel veröffentlicht werden. Hier wird davon ausgegangen, dass Pos = {i1, ..., ik} gilt. i1, ..., ik sind Ganzzahlen, die gleich oder größer als 1 und gleich oder kleiner als ILEN sind. Außerdem wird davon ausgegangen, dass i1 < ... < ik gilt.
  • Für jedes Ii' der öffentlichen Indexgruppe {I'} prüft die Indexkollationierungseinheit 841, ob der folgende Ausdruck für alle Ganzzahlen j, die gleich oder größer als 1 und gleich oder kleiner als k sind, gilt, indem Qb_1, ..., Qb_L, enthalten in der Suchanfrage SQ, genutzt wird. Ii'_j [ Qb_ 1, , Qb_L ] = IQ_j
    Figure DE112020005626T5_0033
  • Wenn dieser Ausdruck für alle j gilt, wird das verschlüsselte Tag CTi, das in Verbindung mit dem öffentlichen Index Ii' in der Speichereinheit 891 verwahrt wird, im nächsten Schritt S823 extrahiert. In diesem Fall fährt die Datenverwaltungsvorrichtung 800 mit Schritt S823 fort.
  • Anderenfalls fährt die Datenverwaltungsvorrichtung 800 mit Schritt S826 fort.
  • Hier, im Schritt S804, kann, wenn auf die öffentliche Indexgruppe {I'} eine Hochgeschwindigkeitsindextechnik wie ein binärer Suchbaum oder B-TREE angewendet wird, der Prozess in diesem Schritt in einer Protokollreihenfolge der Anzahl von Elementen der öffentlichen Indexgruppe {I'} geprüft werden. Das heißt, die Indexkollationierungseinheit 841 kann bei höheren Geschwindigkeiten verarbeiten.
  • Aus Gründen der Vereinfachung der Beschreibung wird als ein konkretes Beispiel davon ausgegangen, dass k = 2, i1 = 1 und i2 = 2 gilt. Das heißt, es wird eine Situation beschrieben, in der eine Zwei-Bit-Offenlegung als ein Index vorgenommen wird. In diesem Beispiel ist jeder öffentliche Ii' ein verschlüsselter Index des ersten und zweiten einen von jedem verschlüsselten Index Eli.
  • Hier wird die Teilindexanfrage IQ' aus den Indexoffenlegungspositionsinformationen Pos wie folgt extrahiert. IQ' = ( IQ_ 1, IQ_ 2 )
    Figure DE112020005626T5_0034
    IQ_ 1 = ( IQ_ 1 _ 1, , IQ_L_ 1 )
    Figure DE112020005626T5_0035
    IQ_ 2 = ( IQ_ 1 _ 2, , IQ_L_ 2 )
    Figure DE112020005626T5_0036
  • Das heißt, IQ' wird durch Extrahieren des ersten Elements und des zweiten Elements der Indexanfrage IQ erhalten.
  • Außerdem wird davon ausgegangen, dass die öffentliche Indexgruppe {I'} ein Satz mit N Elementen ist. Hier ist auch die Anzahl der Elemente des verschlüsselten Tags CT und des verschlüsselten Index El, verwahrt in der Speichereinheit 891, ebenfalls N.
  • Hier ist die öffentliche Indexgruppe {I'} als {I1', ..., IN'} repräsentiert. Hier ist jeder öffentliche Index Ii' aus den folgenden Werten konfiguriert. Der Index Ii' entspricht dem Teilregistrierungsschlüsselwortindex. Ii' = ( Ii'_ 1, Ii'_ 2 )
    Figure DE112020005626T5_0037
    Ii'_ 1 = ( Ii'_ 10 _ 1, Ii'_11_1 , ,Ii'_L 0 _ 1, Ii'_L 1 _ 1 )
    Figure DE112020005626T5_0038
    Ii'_ 2 = ( Ii'_ 10 _ 2, Ii'_11_2 , ,Ii'_L 0 _ 2, Ii'_L 1 _ 2 )
    Figure DE112020005626T5_0039
    j ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als N ist.
  • Wenn das Suchschlüsselwort w und das Registrierungsschlüsselwort W übereinstimmen und die Attributinformationen A und die Attributinformationen B übereinstimmen, gelten die folgenden beiden Ausdrücke. Ii'_ 1 [ Qb_ 1, Qb_L ] = IQ_ 1
    Figure DE112020005626T5_0040
    Ii'_ 2 [ Qb_ 1, Qb_L ] = IQ_ 2
    Figure DE112020005626T5_0041
  • Hier sind Qb_1, ..., Qb_L Werte, die in der Suchanfrage SQ enthalten sind.
  • Wenn das oben beschriebene Beispiel genutzt wird, lauten die Ausdrücke wie folgt. Ii' _ 1 [ 0, ,0 ] = IQ _ 1 = ( 1, ,0 )
    Figure DE112020005626T5_0042
    Ii' _ 2 [ 0, ,0 ] = IQ _ 2 = ( 0, ,0 )
    Figure DE112020005626T5_0043
  • (Schritt S823: Prozess der Extrahierung eines verschlüsselten Tags)
  • Die Einheit 842 zum Extrahieren eines verschlüsselten Tags extrahiert die verschlüsselte Taggruppe {CTi}, die in Verbindung mit der öffentlichen Indexgruppe {Ii'}, die der Teilindexanfrage IQ' im Schritt S822 entsprach, verwahrt wird.
  • Hier wird davon ausgegangen, dass die Anzahl der Elemente der verschlüsselten Taggruppe n ist. Das heißt, die verschlüsselte Taggruppe {CTi} = {CT1, ..., CTn}.
  • (Schritt S824: Kollationierungsprozess)
  • Die Einheit 843 zum Kollationieren eines verschlüsselten Tags kollationiert die verschlüsselte Taggruppe {CTi} = {CT1, ..., CTn}, die im Schritt S823 extrahiert wurde, und die Suchanfrage SQ miteinander.
  • Wenn die Einheit 843 zum Kollationieren eines verschlüsselten Tags die Suchanfrage SQ und das verschlüsselte CTi erfolgreich kollationiert, fährt die Datenverwaltungsvorrichtung 800 mit Schritt S825 fort. Anderenfalls fährt die Datenverwaltungsvorrichtung 800 mit Schritt S826 fort.
  • Als ein konkretes Beispiel kollationiert die Einheit 843 zum Kollationieren eines verschlüsselten Tags die Suchanfrage SQ = ((SQ_1, Qb_1), ..., (SQ_L, Qb_L)) und jedes verschlüsselte Tag CTi wie folgt miteinander.
  • Für das verschlüsselte Tag CTi = (CTi_{1, 0, W}, CTi_{1,1,W}, ..., CTi_ {L, 0, W}, CTi_{L, 1, W}, VER, R_0) berechnet die Einheit 843 zum Kollationieren eines verschlüsselten Tags R_1', ..., R_L' und VER' unter Verwendung der Funktion G_3 und der Funktion G_4 wie folgt. R_j' = CTi_ { j ,Qb_j ,W } + G_ 3 ( SQ_j | R_ 0 )
    Figure DE112020005626T5_0044
    VER' = G_ 4 ( R_ 1 ' + + R_L' )
    Figure DE112020005626T5_0045
    j ist eine Ganzzahl, die gleich oder größer als 1 und gleich oder kleiner als L ist.
  • Zu beachten ist, dass dann, wenn VER und VER' gleich sind, die Einheit 843 zum Kollationieren eines verschlüsselten Tags feststellt, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen. In diesem Fall besteht eine hohe Wahrscheinlichkeit, dass das Registrierungsschlüsselwort W und das Suchschlüsselwort w übereinstimmen. Das Registrierungsschlüsselwort W ist in dem verschlüsselten Tag CTi enthalten. Das Suchschlüsselwort w ist in der Suchanfrage SQ enthalten.
  • (Schritt S825: Datenextrahierungsprozess)
  • Die Ciphertextdatenextrahierungseinheit 844 extrahiert eine Ciphertextdatengruppe {CTi'}. Die Ciphertextdatengruppe {CTi'} ist ein aus verschlüsselten Tags, die der Suchanfrage SQ im Schritt S824 entsprechen, ausgebildeter Satz. Diese Ciphertextdatengruppe {CTi'} wird als das verschlüsselte Suchergebnis {C} bezeichnet.
  • (Schritt S826: Ausgabeprozess)
  • Wenn das verschlüsselte Suchergebnis {C} unter Verwendung der Kommunikationsvorrichtung 805 im Schritt S825 extrahiert wird, überträgt die Ausgabeeinheit 850 das im Schritt S825 extrahierte verschlüsselte Suchergebnis {C} an die Suchvorgangsvorrichtung 700.
  • Anderenfalls ist es möglich, dass die Ausgabeeinheit 850 nichts unternimmt und den Prozess in diesem Ablaufdiagramm beendet oder Informationen überträgt, die angeben, dass das Suchergebnis {C} der Suchvorgangsvorrichtung 700 fehlt.
  • 26 ist ein Ablaufdiagramm, das ein Beispiel des Ablaufs eines Datenlöschprozesses veranschaulicht.
  • Der Datenlöschprozess ist ein Prozess, der von der Registrierungsvorrichtung 600 oder der Suchvorgangsvorrichtung 700 und der Datenverwaltungsvorrichtung 800 auszuführen ist.
  • (Schritt S901: Annahmeprozess)
  • Die Annahmeeinheit 610 oder die Annahmeeinheit 710 nimmt den Namen einer zu löschenden Datei als einen Löschdateinamen an. Als ein konkretes Beispiel wird der Löschdateiname durch einen Suchvorgangsprozess erhalten.
  • Wenn die Annahmeeinheit 610 als ein konkretes Beispiel den Löschdateinamen annimmt, nimmt die Annahmeeinheit 610 den über die Eingabe/Ausgabe-Schnittstelle 604 in die Registrierungsvorrichtung 600 eingegebenen Löschdateinamen an.
  • Wenn die Annahmeeinheit 710 den Löschdateinamen annimmt, nimmt die Annahmeeinheit 710 den über die Eingabe/Ausgabe-Schnittstelle 704 in die Suchvorgangsvorrichtung 700 eingegebenen Löschdateinamen an. Die Annahmeeinheit 610 oder die Annahmeeinheit 710 können den Löschdateinamen aus einem Anwendungsprogramm annehmen.
  • (Schritt S902: Übertragungsprozess)
  • Wenn die Annahmeeinheit 610 den Löschdateinamen angenommen hat, überträgt die Ausgabeeinheit 640 den Löschdateinamen unter Verwendung der Kommunikationsvorrichtung 605 an die Datenverwaltungsvorrichtung 800.
  • Wenn die Annahmeeinheit 710 den Löschdateinamen angenommen hat, überträgt die Ausgabeeinheit 750 den Löschdateinamen unter Verwendung der Kommunikationsvorrichtung 705 an die Datenverwaltungsvorrichtung 800.
  • (Schritt S903: Prozess des Empfangens des Löschdateinamens)
  • Die Annahmeeinheit 810 empfängt den Löschdateinamen unter Verwendung der Kommunikationsvorrichtung 805 von der Registrierungsvorrichtung 600 oder der Suchvorgangsvorrichtung 700.
  • (Schritt S904: Löschprozess)
  • Die Annahmeeinheit 810 löscht die verschlüsselten Daten C, das verschlüsselte Tag CT, den verschlüsselten Index EI und den Index I, der dem Löschdateinamen entspricht, aus der Speichereinheit 891.
  • ***Beschreibung der Wirkungen der Ausführungsform 1***
  • Wie vorstehend beschrieben, ist es mit dem durchsuchbaren Verschlüsselungssystem 100 gemäß der vorliegenden Ausführungsform möglich, unter Verwendung von Common-Key-Kryptographie ohne Verwendung von Public-Key-Kryptographie eine durchsuchbare Verschlüsselung vom Mehrbenutzertyp zu erreichen.
  • Die Registrierungsvorrichtung 600 wendet auf das verschlüsselte Tag eine deterministische Einwegfunktion an, ehe unter Verwendung einer Zufallszahl eine Randomisierung erfolgt, um mit einem gemeinsamen Schlüsselschema von Mehrbenutzertyp einen Index zu generieren. Der Index wird genutzt, um bei hoher Geschwindigkeit, ohne Verwendung durchsuchbarer Verschlüsselung, zu prüfen, ob eine Möglichkeit besteht, dass die Registrierungsdaten und die Suchdaten und die in den Registrierungsdaten enthaltenen Attributinformationen und die in den Suchdaten enthaltenen Attributinformationen übereinstimmen. Zu beachten ist, dass es schwierig ist, aus diesem Index ein Schlüsselwort, Informationen zu den Attributinformationen usw. zu extrahieren.
  • Die Suchvorgangsvorrichtung 700 generiert unter Verwendung des Benutzerschlüssels, der dem Sucher entspricht, eine Indexanfrage, die dem teilweise offengelegten Indexoffenlegungsschlüssel entspricht.
  • Die Datenverwaltungsvorrichtung 800 engt unter Verwendung des Index und der Indexanfrage verschlüsselte Tags als Suchziele ein. Folglich muss die Datenverwaltungsvorrichtung 800 durch Verwendung des Index mindestens einen Teil der durchsuchbaren Verschlüsselung, der unnötig ist, nicht ausführen.
  • Davon ausgehend kann das durchsuchbare Verschlüsselungssystem 100 einen Suchprozess in dem gemeinsamen Schlüsselschema vom Mehrbenutzertyp bei relativ hohen Geschwindigkeiten ausführen.
  • Darüber hinaus teilt die Registrierungsvorrichtung 600 diesen Index in eine Vielzahl von Blocks und verschlüsselt und verwahrt jeden unter Verwendung eines anderen Schlüssels. Da die Registrierungsvorrichtung 600 bei Bedarf diese in der Verschlüsselung verwendeten Schlüssel graduell veröffentlicht, kann die Geschwindigkeit des Prozesses im Zusammenhang mit dem Index schrittweise erhöht werden.
  • ***Andere Strukturen***
  • <Modifikationsbeispiel 1>
  • Mindestens zwei in der Beschreibung beschriebene Vorrichtungen können aus einem Computer ausgebildet sein.
  • <Modifikationsbeispiel 2>
  • Es ist möglich, dass die Datenverwaltungsvorrichtung 800 nicht alle veröffentlichten Indexoffenlegungsschlüssel IK nutzt. Im vorliegenden Modifikationsbeispiel sind die Indexoffenlegungspositionsinformationen Pos nur aus Informationen ausgebildet, die die Position des Index I entsprechend dem von der Datenverwaltungsvorrichtung 800 genutzten Indexoffenlegungsschlüssel IK angeben.
  • <Modifikationsbeispiel 3>
  • 27 veranschaulicht ein Beispiel einer Hardwarestruktur der Hauptschlüsselvorrichtung 200 gemäß dem vorliegenden Modifikationsbeispiel.
  • Die Hauptschlüsselvorrichtung 200 umfasst eine Verarbeitungsschaltung 209 anstelle mindestens eine/r/s von dem Prozessor 201, dem Speicher 202 und der Zusatzspeichervorrichtung 203.
  • Die Verarbeitungsschaltung 209 ist Hardware, die mindestens einen Teil der Annahmeeinheit 210, der Generierungseinheit 220, der Ausgabeeinheit 230 und der Speichereinheit 291 implementiert.
  • Die Verarbeitungsschaltung 209 kann dedizierte Hardware sein und kann der Prozessor 201 sein, der ein im Speicher 202 gespeichertes Programm ausführt.
  • Wenn die Verarbeitungsschaltung 209 dedizierte Hardware ist, ist die Verarbeitungsschaltung 209 beispielsweise eine Einzelschaltung, eine zusammengesetzte Schaltung, ein programmierter Prozessor, ein parallelprogrammierter Prozessor, eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC), eine im Feld programmierbare Gatteranordnung (Field-Programmable Gate Array, FPGA) oder eine Kombination davon.
  • Die Hauptschlüsselvorrichtung 200 kann eine Vielzahl von Verarbeitungsschaltungen aufweisen, die die Verarbeitungsschaltung 209 ersetzen. Die Vielzahl von Verarbeitungsschaltungen teilen sich die Rolle der Verarbeitungsschaltung 209.
  • In der Hauptschlüsselvorrichtung 200 kann ein Teil der Funktionen durch dedizierte Hardware implementiert sein, und die übrigen Funktionen können durch Software oder Firmware implementiert sein.
  • Die Verarbeitungsschaltung 209 ist durch Hardware, Software, Firmware oder eine Kombination aus diesen implementiert.
  • Der Prozessor 201, der Speicher 202, die Zusatzspeichervorrichtung 203 und die Verarbeitungsschaltung 209 werden zusammenfassend als „Verarbeitungsschaltkreis“ bezeichnet. Das heißt, die Funktion jeder Funktionskomponente der Hauptschlüsselvorrichtung 200 ist durch einen Verarbeitungsschaltkreis implementiert.
  • <Modifikationsbeispiel 4>
  • 28 veranschaulicht ein Beispiel einer Hardwarestruktur der Registrierungsschlüsselvorrichtung 300 gemäß dem vorliegenden Modifikationsbeispiel.
  • Die Registrierungsschlüsselvorrichtung 300 umfasst eine Verarbeitungsschaltung 309 anstelle mindestens eine/r/s von dem Prozessor 301, dem Speicher 302 und der Zusatzspeichervorrichtung 303. Die Verarbeitungsschaltung 309 ist der Verarbeitungsschaltung 209 äquivalent.
  • Die Verarbeitungsschaltung 309 ist Hardware, die mindestens einen Teil der Annahmeeinheit 310, der Generierungseinheit 320, der Ausgabeeinheit 330 und der Speichereinheit 391 implementiert.
  • Die Funktion jeder Funktionskomponente der Registrierungsschlüsselvorrichtung 300 ist durch einen Verarbeitungsschaltkreis implementiert.
  • <Modifikationsbeispiel 5>
  • 29 veranschaulicht ein Beispiel einer Hardwarestruktur der Indexoffenlegungsschlüsselvorrichtung 400 gemäß dem vorliegenden Modifikationsbeispiel.
  • Die Indexoffenlegungsschlüsselvorrichtung 400 umfasst eine Verarbeitungsschaltung 409 anstelle mindestens eine/r/s von dem Prozessor 401, dem Speicher 402 und der Zusatzspeichervorrichtung 403. Die Verarbeitungsschaltung 409 ist der Verarbeitungsschaltung 209 äquivalent.
  • Die Verarbeitungsschaltung 409 ist Hardware, die mindestens einen Teil der Annahmeeinheit 410, der Generierungseinheit 420, der Ausgabeeinheit 430 und der Speichereinheit 491 implementiert.
  • Die Funktion jeder Funktionskomponente der Indexoffenlegungsschlüsselvorrichtung 400 ist durch einen Verarbeitungsschaltkreis implementiert.
  • <Modifikationsbeispiel 6>
  • 30 veranschaulicht ein Beispiel einer Hardwarestruktur der Benutzerschlüsselvorrichtung 500 gemäß dem vorliegenden Modifikationsbeispiel.
  • Die Benutzerschlüsselvorrichtung 500 umfasst eine Verarbeitungsschaltung 509 anstelle mindestens eine/r/s von dem Prozessor 501, dem Speicher 502 und der Zusatzspeichervorrichtung 503. Die Verarbeitungsschaltung 509 ist der Verarbeitungsschaltung 209 äquivalent.
  • Die Verarbeitungsschaltung 509 ist Hardware, die die Annahmeeinheit 510, die Generierungseinheit 520, die Ausgabeeinheit 530 und die Speichereinheit 591 implementiert.
  • Die Funktion jeder Funktionskomponente der Benutzerschlüsselvorrichtung 500 ist durch einen Verarbeitungsschaltkreis implementiert.
  • <Modifikationsbeispiel 7>
  • 31 veranschaulicht ein Beispiel einer Hardwarestruktur der Registrierungsvorrichtung 600 gemäß dem vorliegenden Modifikationsbeispiel.
  • Die Registrierungsvorrichtung 600 umfasst eine Verarbeitungsschaltung 609 anstelle mindestens eine/r/s von dem Prozessor 601, dem Speicher 602 und der Zusatzspeichervorrichtung 603. Die Verarbeitungsschaltung 609 ist der Verarbeitungsschaltung 209 äquivalent.
  • Die Verarbeitungsschaltung 609 ist Hardware, die mindestens einen Teil der Annahmeeinheit 610, der Generierungseinheit 620, der Registrierungseinheit 630, der Ausgabeeinheit 640 und der Speichereinheit 691 implementiert.
  • Die Funktion jeder Funktionskomponente der Registrierungsvorrichtung 600 ist durch einen Verarbeitungsschaltkreis implementiert.
  • <Modifikationsbeispiel 8>
  • 32 veranschaulicht ein Beispiel einer Hardwarestruktur der Suchvorgangsvorrichtung 700 gemäß dem vorliegenden Modifikationsbeispiel.
  • Die Suchvorgangsvorrichtung 700 umfasst eine Verarbeitungsschaltung 709 anstelle mindestens eine/r/s von dem Prozessor 701, dem Speicher 702 und der Zusatzspeichervorrichtung 703. Die Verarbeitungsschaltung 709 ist der Verarbeitungsschaltung 209 äquivalent.
  • Die Verarbeitungsschaltung 709 ist Hardware, die mindestens einen Teil der Annahmeeinheit 710, der Generierungseinheit 720, der Anforderungseinheit 730, der Decodierungseinheit 740, der Ausgabeeinheit 750 und der Speichereinheit 791 implementiert.
  • Die Funktion jeder Funktionskomponente der Suchvorgangsvorrichtung 700 ist durch einen Verarbeitungsschaltkreis implementiert.
  • <Modifikationsbeispiel 9>
  • 33 veranschaulicht ein Beispiel einer Hardwarestruktur der Datenverwaltungsvorrichtung 800 gemäß dem vorliegenden Modifikationsbeispiel.
  • Die Datenverwaltungsvorrichtung 800 umfasst eine Verarbeitungsschaltung 809 anstelle mindestens eine/r/s von dem Prozessor 801, dem Speicher 802 und der Zusatzspeichervorrichtung 803. Die Verarbeitungsschaltung 809 ist der Verarbeitungsschaltung 209 äquivalent.
  • Die Verarbeitungsschaltung 809 ist Hardware, die mindestens einen Teil der Annahmeeinheit 810, der Decodierungseinheit 820, der Registrierungseinheit 830, der Sucheinheit 840, der Ausgabeeinheit 850 und der Speichereinheit 891 implementiert.
  • Die Funktion jeder Funktionskomponente der Datenverwaltungsvorrichtung 800 ist durch einen Verarbeitungsschaltkreis implementiert.
  • *** Andere Ausführungsformen***
  • Während die Ausführungsform 1 beschrieben wurde, können zur Implementierung eine Vielzahl von Teilen der vorliegenden Ausführungsform kombiniert werden. Alternativ kann ein Teil der vorliegenden Ausführungsform implementiert sein. Davon abgesehen, kann die vorliegende Ausführungsform bei Bedarf verschiedenartig geändert werden und kann ganz oder teilweise als in einer beliebigen Weise kombiniert implementiert werden.
  • Zu beachten ist, dass die oben beschriebene Ausführungsform ein seinem Wesen nach zu bevorzugendes Beispiel ist und damit nicht die Absicht verfolgt wird, die vorliegende Offenbarung, ihre Anwendungen und den Bereich ihrer Zweckbestimmungen zu begrenzen. Die mittels der Ablaufdiagramme und so weiter erläuterten Vorgänge können nach Bedarf geändert werden.
  • Bezugszeichenliste
  • 100
    durchsuchbares Verschlüsselungssystem;
    101
    Netzwerk;
    200
    Hauptschlüsselvorrichtung;
    201
    Prozessor;
    202
    Speicher;
    203
    Zusatzspeichervorrichtung;
    204
    Eingabe/Ausgabe-Schnittstelle;
    205
    Kommunikationsvorrichtung;
    209
    Verarbeitungsschaltung;
    210
    Annahmeeinheit;
    220
    Generierungseinheit;
    230
    Ausgabeeinheit;
    291
    Speichereinheit;
    300
    Registrierungsschlüsselvorrichtung;
    301
    Prozessor;
    302
    Speicher;
    303
    Zusatzspeichervorrichtung;
    304
    Eingabe/Ausgabe-Schnittstelle;
    305
    Kommunikationsvorrichtung;
    309
    Verarbeitungsschaltung;
    310
    Annahmeeinheit;
    320
    Generierungseinheit;
    330
    Ausgabeeinheit;
    391
    Speichereinheit;
    400
    Indexoffenlegungsschlüsselvorrichtung;
    401
    Prozessor;
    402
    Speicher;
    403
    Zusatzspeichervorrichtung;
    404
    Eingabe/Ausgabe-Schnittstelle;
    405
    Kommunikationsvorrichtung;
    409
    Verarbeitungsschaltung;
    410
    Annahmeeinheit;
    420
    Generierungseinheit;
    421
    Indexoffenlegungsschlüssel-Generierungseinheit;
    430
    Ausgabeeinheit;
    491
    Speichereinheit;
    500
    Benutzerschlüsselvorrichtung;
    501
    Prozessor;
    502
    Speicher;
    503
    Zusatzspeichervorrichtung;
    504
    Eingabe/Ausgabe-Schnittstelle;
    505
    Kommunikationsvorrichtung;
    509
    Verarbeitungsschaltung;
    510
    Annahmeeinheit;
    520
    Generierungseinheit;
    521
    Benutzerschlüsselgenerierungseinheit;
    530
    Ausgabeeinheit;
    591
    Speichereinheit;
    600
    Registrierungsvorrichtung;
    601
    Prozessor;
    602
    Speicher;
    603
    Zusatzspeichervorrichtung;
    604
    Eingabe/Ausgabe-Schnittstelle;
    605
    Kommunikationsvorrichtung;
    609
    Verarbeitungsschaltung;
    610
    Annahmeeinheit;
    620
    Generierungseinheit;
    621
    Ciphertextdatengenerierungseinheit;
    622
    Schlüsselwortgenerierungseinheit;
    623
    Einheit zur Generierung eines mittleren Tags;
    624
    Indexgenerierungseinheit;
    625
    Einheit zur Generierung eines verschlüsselten Index;
    626
    Zufallszahlgenerierungseinheit;
    627
    Einheit zur Generierung eines verschlüsselten Tags;
    630
    Registrierungseinheit;
    640
    Ausgabeeinheit;
    691
    Speichereinheit;
    700
    Suchvorgangsvorrichtung;
    701
    Prozessor;
    702
    Speicher;
    703
    Zusatzspeichervorrichtung;
    704
    Eingabe/Ausgabe-Schnittstelle;
    705
    Kommunikationsvorrichtung;
    709
    Verarbeitungsschaltung;
    710
    Annahmeeinheit;
    720
    Generierungseinheit;
    721
    Suchanfragegenerierungseinheit;
    722
    Indexanfragegenerierungseinheit;
    730
    Anforderungseinheit;
    740
    Decodierungseinheit;
    750
    Ausgabeeinheit;
    791
    Speichereinheit;
    800
    Datenverwaltungsvorrichtung;
    801
    Prozessor;
    802
    Speicher;
    803
    Zusatzspeichervorrichtung;
    804
    Eingabe/Ausgabe-Schnittstelle;
    805
    Kommunikationsvorrichtung;
    809
    Verarbeitungsschaltung;
    810
    Annahmeeinheit;
    820
    Decodierungseinheit;
    821
    Einheit zur Decodierung eines verschlüsselten Index;
    830
    Registrierungseinheit;
    840
    Sucheinheit;
    841
    Indexkollationierungseinheit;
    842
    Einheit zur Extrahierung eines verschlüsselten Tags;
    843
    Einheit zur Kollationierung eines verschlüsselten Tags;
    844
    Ciphertextdatenextrahierungseinheit;
    850
    Ausgabeeinheit;
    891
    Speichereinheit;
    892
    Registrierungsdatenbank;
    893
    Post-Index-Offenlegungsdatenbank;
    CT
    verschlüsseltes Tag;
    DK
    Datenschlüssel;
    EK
    Registrierungsschlüssel;
    EI
    verschlüsselter Index;
    I
    Index;
    IK
    Indexoffenlegungsschlüssel;
    ILEN
    Indexlänge;
    IQ
    Indexanfrage;
    IQ'
    Teilindexanfrage;
    M
    Klartext;
    MK
    Hauptschlüssel;
    MT
    mittleres Tag;
    Pos
    Indexoffenlegungspositionsinformationen;
    SQ
    Suchanfrage;
    TK
    Tagschlüssel;
    TR
    Zufallszahl;
    UDK
    Benutzerdatenschlüssel;
    UK
    Benutzerschlüssel;
    UTK
    Benutzertagschlüssel;
    w
    Suchschlüsselwort;
    W
    Registrierungsschlüsselwort
  • 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
    • WO 2019/142651 A1 [0008]

Claims (10)

  1. Durchsuchbares Verschlüsselungssystem, umfassend: eine Registrierungsvorrichtung, die aufweist: eine Registrierungsdatenspeichereinheit zum Speichern eines Registrierungsschlüsselworts, Attributinformationen zu einer berechtigten Person, die ein Attribut angeben, das im Besitz einer berechtigten Person sein muss, die eine Berechtigung hat, nach dem Registrierungsschlüsselwort zu suchen, und einen Indexoffenlegungsschlüssel zum Verschlüsseln eines Registrierungsschlüsselwortindex, der dem Registrierungsschlüsselwort entspricht, eine Indexgenerierungseinheit zum Generieren des Registrierungsschlüsselwortindex unter Verwendung des Registrierungsschlüsselworts, Attributinformationen zu einer berechtigten Person, eine Benutzerschlüsselfunktion zum Generieren eines Benutzerschlüssels mit darin integrierten Sucherattributinformationen, die ein Attribut angeben, das ein Sucher, der nach dem Registrierungsschlüsselwort sucht, aufweist, eine Suchanfragefunktion zum Generieren einer Suchanfrage mit dem darin enthaltenen Benutzerschlüssel, wobei die Suchanfrage einem Suchschlüsselwort für den Sucher zum Suchen nach dem Registrierungsschlüsselwort entspricht, und eine Indexanfragefunktion zum Generieren einer Indexanfrage, in die die Suchanfrage integriert ist, wobei die Indexanfrage zur Suche nach dem Registrierungsschlüsselwortindex dient, und eine Einheit zum Generieren eines verschlüsselten Index, um durch Verschlüsseln des Registrierungsschlüsselwortindex unter Verwendung des Indexoffenlegungsschlüssels einen verschlüsselten Index zu generieren.
  2. Durchsuchbares Verschlüsselungssystem nach Anspruch 1, wobei die Registrierungsvorrichtung umfasst: eine Zufallszahlgenerierungseinheit zum Generieren einer Zufallszahl als eine Zufallszahl für ein verschlüsseltes Tag; eine Einheit zum Generieren eines mittleren Tags zum Generieren eines mittleren Tags, das dem Registrierungsschlüsselwort entspricht, unter Verwendung der Attributinformationen zu einer berechtigten Person, des Registrierungsschlüsselworts, der Benutzerschlüsselfunktion und der Suchanfragefunktion; und eine Einheit zum Generieren eines verschlüsselten Tags, um unter Verwendung des mittleren Tags, der Zufallszahl für ein verschlüsseltes Tag und der Funktion für ein verschlüsseltes Tag das verschlüsselte Tag zu generieren, und die Indexgenerierungseinheit unter Verwendung des mittleren Tags den Registrierungsschlüsselwortindex generiert.
  3. Durchsuchbares Verschlüsselungssystem nach Anspruch 2, umfassend: eine Datenverwaltungsvorrichtung, die aufweist: eine Verwaltungsdatenspeichereinheit, in der die Suchanfrage gespeichert wird, und eine Verwaltungsdatenannahmeeinheit zum Annehmen des verschlüsselten Tags und zum Veranlassen des Speicherns des verschlüsselten Tags in der Verwaltungsdatenspeichereinheit, wobei die Einheit zum Generieren eines verschlüsselten Tags unter Verwendung des Registrierungsschlüsselworts, der Zufallszahl für ein verschlüsseltes Tag, der Funktion für ein verschlüsseltes Tag und einer Kollatorfunktion zum Generieren eines dem verschlüsselten Tag entsprechenden Kollators eines verschlüsselten Tags den Kollator eines verschlüsselten Tags generiert und die Zufallszahl für ein verschlüsseltes Tag und den Kollator eines verschlüsselten Tags mit dem verschlüsselten Tag koppelt, die Registrierungsvorrichtung eine Registrierungsdatenausgabeeinheit umfasst, um das verschlüsselte Tag an die Datenverwaltungsvorrichtung auszugeben, und die Datenverwaltungsvorrichtung eine Einheit zum Kollationieren eines verschlüsselten Tags umfasst, um unter Verwendung des verschlüsselten Tags, der Suchanfrage, der mit dem verschlüsselten Tag gekoppelten Zufallszahl für ein verschlüsseltes Tag, der Funktion für ein verschlüsseltes Tag und der Kollatorfunktion einen Prozess des Generierens eines Feststellungskollators auszuführen, um festzustellen, ob das Suchschlüsselwort zu dem Registrierungsschlüsselwort passt, und um, wenn der Feststellungskollator und der mit dem verschlüsselten Tag gekoppelte Kollator für ein verschlüsseltes Tag gleich sind, festzustellen, dass das Registrierungsschlüsselwort und das Suchschlüsselwort übereinstimmen.
  4. Durchsuchbares Verschlüsselungssystem nach Anspruch 3, wobei der Indexoffenlegungsschlüssel ein Schlüssel ist, der in der Lage ist, mindestens einen Teil des verschlüsselten Index zu decodieren, die Verwaltungsdatenspeichereinheit den Indexoffenlegungsschlüssel und die darin gespeicherte Indexanfrage aufweist, die Registrierungsdatenausgabeeinheit den verschlüsselten Index an die Datenverwaltungsvorrichtung ausgibt, die Verwaltungsdatenannahmeeinheit den verschlüsselten Index akzeptiert und ein Speichern des verschlüsselten Index in der Verwaltungsdatenspeichereinheit veranlasst, die Datenverwaltungsvorrichtung umfasst: eine Einheit zum Decodieren eines verschlüsselten Index, um durch Decodieren des verschlüsselten Index unter Verwendung des Indexoffenlegungsschlüssels einen Registrierungsschlüsselwortteilindex zu generieren, der mindestens ein Teil des Registrierungsschlüsselwortindex ist; und eine Indexkollationierungseinheit, um, wenn eine Teilindexanfrage und der Registrierungsschlüsselwortteilindex übereinstimmen, die Teilindexanfrage in der Indexanfrage enthalten ist und dem Registrierungsschlüsselwortteilindex entspricht, festzustellen, dass eine Möglichkeit besteht, dass das Registrierungsschlüsselwort und das Suchschlüsselwort übereinstimmen und die Attributinformationen zu einer berechtigten Person und die Sucherattributinformationen übereinstimmen, und die Einheit zum Kollationieren eines verschlüsselten Tags den Kollationierungsprozess ausführt, wenn die Indexkollationierungseinheit feststellt, dass die Möglichkeit besteht, dass das Registrierungsschlüsselwort und das Suchschlüsselwort übereinstimmen und die Attributinformationen zu einer berechtigten Person und die Sucherattributinformationen übereinstimmen.
  5. Durchsuchbares Verschlüsselungssystem nach Anspruch 4, wobei in der Verwaltungsdatenspeichereinheit Indexoffenlegungspositionsinformationen gespeichert sind, die eine Position, die mindestens einem Teil des verschlüsselten Index entsprechen, angeben, und die Indexkollationierungseinheit einen den Indexoffenlegungspositionsinformationen entsprechenden Teil in der Indexanfrage als die Teilindexanfrage nimmt.
  6. Durchsuchbares Verschlüsselungssystem nach Anspruch 4 oder 5, umfassend: eine Suchvorgangsvorrichtung, die aufweist: eine Suchdatenspeichereinheit mit dem darin gespeicherten Benutzerschlüssel und Suchschlüsselwort, eine Suchanfragegenerierungseinheit zum Generieren der Suchanfrage durch Verwenden des Benutzerschlüssels, des Suchschlüsselworts und der Suchanfragefunktion, eine Indexanfragegenerierungseinheit zum Generieren der Indexanfrage durch Verwenden der Suchanfrage- und der Indexanfragefunktion, und eine Suchdatenausgabeeinheit zum Ausgeben der Suchanfrage und der Indexanfrage an die Datenverwaltungsvorrichtung, wobei die Verwaltungsdatenannahmeeinheit die Suchanfrage und die Indexanfrage akzeptiert und ein Speichern der Suchanfrage und der Indexanfrage in der Verwaltungsdatenspeichereinheit veranlasst.
  7. Durchsuchbares Verschlüsselungssystem nach Anspruch 6, umfassend: eine Benutzerschlüsselvorrichtung, die aufweist: eine Benutzerdatenspeichereinheit mit den darin gespeicherten Sucherattributinformationen, eine Benutzerschlüsselgenerierungseinheit zum Generieren des Benutzerschlüssels durch Verwendung der Sucherattributinformationen und der Benutzerschlüsselfunktion, und eine Benutzerdatenausgabeeinheit zum Ausgeben des Benutzerschlüssels an die Suchvorgangsvorrichtung, wobei die Suchvorgangsvorrichtung eine Suchdatenannahmeeinheit zum Annehmen des Benutzerschlüssels und zum Veranlassen des Speicherns des Benutzerschlüssels in der Suchdatenspeichereinheit umfasst.
  8. Durchsuchbares Verschlüsselungssystem nach einem der Ansprüche 2 bis 7, wobei: die Attributinformationen zu einer berechtigten Person eine Wildcard umfassen, die angibt, dass einem den Sucherattributinformationen entsprechenden Sucher gestattet ist, nach dem Registrierungsschlüsselwort zu suchen, ungeachtet dessen, wie das in den Sucherattributinformationen enthaltene Attribut beschaffen ist, und die Einheit zum Generieren des mittleren Tags die Wildcard in das mittlere Tag integriert.
  9. Verfahren zur durchsuchbaren Verschlüsselung, wobei in einer Registrierungsdatenspeichereinheit ein Registrierungsschlüsselwort, Attributinformationen zu einer berechtigten Person, die ein Attribut angeben, das im Besitz einer berechtigten Person sein muss, die eine Berechtigung hat, nach dem Registrierungsschlüsselwort zu suchen, und ein Indexoffenlegungsschlüssel zum Verschlüsseln eines Registrierungsschlüsselwortindex, der dem Registrierungsschlüsselwort entspricht, gespeichert sind, eine Indexgenerierungseinheit den Registrierungsschlüsselwortindex unter Verwendung des Registrierungsschlüsselworts, der Attributinformationen zu einer berechtigten Person, einer Benutzerschlüsselfunktion zum Generieren eines Benutzerschlüssels mit darin integrierten Sucherattributinformationen, die ein Attribut angeben, das ein Sucher, der nach dem Registrierungsschlüsselwort sucht, aufweist, eine Suchanfragefunktion zum Generieren einer Suchanfrage mit dem darin enthaltenen Benutzerschlüssel, wobei die Suchanfrage einem Suchschlüsselwort für den Sucher zum Suchen nach dem Registrierungsschlüsselwort entspricht, und eine Indexanfragefunktion zum Generieren einer Indexanfrage, in die die Suchanfrage integriert ist, wobei die Indexanfrage nach dem Registrierungsschlüsselwortindex sucht, generiert, und eine Einheit zum Generieren eines verschlüsselten Index durch Verschlüsseln des Registrierungsschlüsselwortindex unter Verwendung des Indexoffenlegungsschlüssels einen verschlüsselten Index generiert.
  10. Durchsuchbares Verschlüsselungsprogramm, das einen Computer, in dem ein Registrierungsschlüsselwort, Attributinformationen zu einer berechtigten Person, die ein Attribut angeben, das im Besitz einer berechtigten Person sein muss, die eine Berechtigung hat, nach dem Registrierungsschlüsselwort zu suchen, und ein Indexoffenlegungsschlüssel zum Verschlüsseln eines Registrierungsschlüsselwortindex, der dem Registrierungsschlüsselwort entspricht, gespeichert sind, veranlasst: den Registrierungsschlüsselwortindex unter Verwendung des Registrierungsschlüsselworts, der Attributinformationen zu einer berechtigten Person, einer Benutzerschlüsselfunktion zum Generieren eines Benutzerschlüssels mit darin integrierten Sucherattributinformationen, die ein Attribut angeben, das ein Sucher, der nach dem Registrierungsschlüsselwort sucht, aufweist, eine Suchanfragefunktion zum Generieren einer Suchanfrage mit dem darin enthaltenen Benutzerschlüssel, wobei die Suchanfrage einem Suchschlüsselwort für den Sucher zum Suchen nach dem Registrierungsschlüsselwort entspricht, und eine Indexanfragefunktion zum Generieren einer Indexanfrage, in die eine Suchanfrage integriert ist, wobei die Indexanfrage zur Suche nach dem Registrierungsschlüsselwortindex dient, zu generieren; und einen verschlüsselten Index durch Verschlüsseln des Registrierungsschlüsselwortindex unter Verwendung des Indexoffenlegungsschlüssels zu generieren.
DE112020005626.0T 2020-01-14 2020-01-14 Durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungsverfahren und durchsuchbares verschlüsselungsprogramm Pending DE112020005626T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/000845 WO2021144834A1 (ja) 2020-01-14 2020-01-14 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム

Publications (1)

Publication Number Publication Date
DE112020005626T5 true DE112020005626T5 (de) 2022-09-01

Family

ID=76863898

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020005626.0T Pending DE112020005626T5 (de) 2020-01-14 2020-01-14 Durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungsverfahren und durchsuchbares verschlüsselungsprogramm

Country Status (5)

Country Link
US (1) US20220277100A1 (de)
JP (1) JP7016458B2 (de)
CN (1) CN114902314A (de)
DE (1) DE112020005626T5 (de)
WO (1) WO2021144834A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021144848A1 (ja) * 2020-01-14 2021-07-22 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019142651A1 (ja) 2018-01-17 2019-07-25 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593196B (zh) * 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
JP5557683B2 (ja) * 2010-10-07 2014-07-23 三菱電機株式会社 情報検索装置および情報検索方法
JP5670365B2 (ja) * 2012-01-26 2015-02-18 日本電信電話株式会社 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
JP6208586B2 (ja) * 2014-01-16 2017-10-04 株式会社日立製作所 検索可能暗号処理システムおよび検索可能暗号処理方法
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
WO2017122326A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
JP6038427B1 (ja) * 2016-01-15 2016-12-07 三菱電機株式会社 暗号化装置、暗号化方法、暗号化プログラム及び保管装置
WO2018211670A1 (ja) * 2017-05-18 2018-11-22 三菱電機株式会社 検索装置、タグ生成装置、クエリ生成装置、秘匿検索システム、検索プログラム、タグ生成プログラム及びクエリ生成プログラム
JP6599066B1 (ja) * 2018-05-08 2019-10-30 三菱電機株式会社 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
CN114341846A (zh) * 2019-09-06 2022-04-12 皇家飞利浦有限公司 用于选择性公开属性的来源验证

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019142651A1 (ja) 2018-01-17 2019-07-25 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム

Also Published As

Publication number Publication date
CN114902314A (zh) 2022-08-12
US20220277100A1 (en) 2022-09-01
JPWO2021144834A1 (de) 2021-07-22
WO2021144834A1 (ja) 2021-07-22
JP7016458B2 (ja) 2022-02-04

Similar Documents

Publication Publication Date Title
DE112017006021T5 (de) Verfahren und System zur unscharfen Schlagwortsuche in verschlüsselten Daten
CN110110163B (zh) 安全子字符串搜索以过滤加密数据
DE112017006020T5 (de) Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE112014007083T5 (de) Servervorrichtung, Suchsystem, Endgerätevorrichtung, Suchverfahren, Serverprogramm und Endgeräteprogramm
DE112018007433T5 (de) Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm
US9971904B2 (en) Method and system for range search on encrypted data
DE102013203126A1 (de) Transparentes Zugreifen auf verschlüsselte nicht-relationale Daten in Echtzeit
US20200351081A1 (en) Registration apparatus, search operation apparatus, data management apparatus
DE102019113249A1 (de) Wertevergleichsserver, wertevergleichsverschlüsselungssystem und wertevergleichsverfahren
DE102012218576A1 (de) Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben
EP3552141B1 (de) Server-computersystem zur bereitstellung von datensätzen
EP3563261B1 (de) Bitsequenzbasiertes datenklassifikationssystem
EP3552140B1 (de) Datenbankindex aus mehreren feldern
DE112020005626T5 (de) Durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungsverfahren und durchsuchbares verschlüsselungsprogramm
DE112020005557B4 (de) Registrierungseinrichtung, suchoperationseinrichtung, datenverwaltungseinrichtung, registrierungsprogramm, suchoperationsprogramm und datenverwaltungsprogramm
DE112021005887T5 (de) Durchsuchbares Verschlüsselungssystem und durchsuchbares Verschlüsselungsverfahren
DE102013019487A1 (de) Verfahren, Vorrichtungen und System zur Online-Datensicherung
DE112017003740T5 (de) Durchsuchbare-Symmetrische-Verschlüsselung-System und Verfahren zum Verarbeiten eines invertierten Indexes
Han et al. Private blocking technique for multi-party privacy-preserving record linkage
KR101895848B1 (ko) 문서 보안 방법
EP3958157B1 (de) Verschlüsselte suche in einer datenbank
DE202022106108U1 (de) Blockchain-gestütztes durchsuchbares Verschlüsselungssystem für die Verschlüsselung und Speicherung elektronischer Gesundheitsdaten (EHRs)
Liu et al. A secure multi-keyword fuzzy search with polynomial function for encrypted data in cloud computing
Göge et al. Improving fuzzy searchable encryption with direct bigram embedding
Karakasidis et al. Phonetics-based parallel privacy preserving record linkage

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence