DE112021007711T5 - Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem - Google Patents

Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem Download PDF

Info

Publication number
DE112021007711T5
DE112021007711T5 DE112021007711.2T DE112021007711T DE112021007711T5 DE 112021007711 T5 DE112021007711 T5 DE 112021007711T5 DE 112021007711 T DE112021007711 T DE 112021007711T DE 112021007711 T5 DE112021007711 T5 DE 112021007711T5
Authority
DE
Germany
Prior art keywords
search
key
encryption
user
attribute
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
DE112021007711.2T
Other languages
English (en)
Inventor
Takashi Ito
Nori Matsuda
Tadakazu Yamanaka
Takato Hirano
Yoshihiro Koseki
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 DE112021007711T5 publication Critical patent/DE112021007711T5/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
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

Eine Suchausführungseinrichtung empfängt eine Trapdoor, die auf der Grundlage eines geheimen Benutzerschlüssels, in dem ein Suchhilfsschlüssel und ein Attribut eines Benutzers festgelegt sind, und eines Suchschlüsselworts erzeugt wurde, zusammen mit einem Schlüsselidentifikator (ID), der den Suchhilfsschlüssel identifiziert. Die Suchausführungseinrichtung entschlüsselt einen verschlüsselten Tag, in dem ein Attribut eines Benutzers, der für einen Abruf berechtigt ist, und ein Suchwort festgelegt sind, unter Verwendung der empfangenen Trapdoor und des Suchhilfsschlüssels, der durch die empfangene Schlüssel-ID angegeben wird, um einen Tag zu identifizieren, der für das im geheimen Benutzerschlüssel festgelegte Attribut abrufbar ist und ein Suchwort enthält, das dem Suchschlüsselwort entspricht.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich auf Prädikatverschlüsselung für innere Produkte und durchsuchbare Verschlüsselung, die Prädikatverschlüsselung für innere Produkte verwendet, um nach Informationen zu suchen, während sich die Informationen in einem verschlüsselten Zustand befinden.
  • HINTERGRUND ZUM STAND DER TECHNIK
  • In den letzten Jahren ist es zum Schutz der Vertraulichkeit von Daten üblich geworden, die Daten mit einem gemeinsamen Schlüssel eines Benutzers zu verschlüsseln, der der Verwalter der Daten ist, wenn die Daten auf einem Aufzeichnungsmedium wie einer Festplatte gespeichert sind. In diesem Fall kann der Benutzer die entschlüsselten Daten mit seinem eigenen gemeinsamen Schlüssel entschlüsseln und die Daten verwenden.
  • Zum Beispiel hat Windows (eingetragenes Warenzeichen) von Microsoft (eingetragenes Warenzeichen) ein verschlüsselndes Dateisystem namens EFS realisiert. In diesem verschlüsselnden Dateisystem werden die auf einer Festplatte gespeicherten Dateien (Daten) mit einem gemeinsamen Schlüssel verschlüsselt, der in Verbindung mit einem Anmeldenamen in Windows (eingetragene Marke) verwaltet wird.
  • Der Inhalt der verschlüsselten Daten kann jedoch erst nach ihrer Entschlüsselung bekannt werden. Ein Schwachpunkt ist daher, dass für eine Suche, ob ein vorgegebenes Schlüsselwort in den Daten enthalten ist, alle Daten einmal entschlüsselt werden müssen.
  • So ist es beispielsweise in Unternehmen üblich, vertrauliche Informationen zentral auf einem Dateiserver zu verwalten. Dabei wird davon ausgegangen, dass die auf diesem Server gespeicherten Daten verschlüsselt sind. In diesem Fall ist es erforderlich, alle auf dem Server gespeicherten entschlüsselten Daten auf ein Terminal herunterzuladen, sie weiter zu entschlüsseln und dann eine Stichwortsuche durchzuführen. Daher gibt es Probleme, wie z.B., dass es extrem lange dauern kann und dass es je nach Kommunikationspfad zu einer Verzögerung der Kommunikation für andere Benutzer kommen kann.
  • Ein Verfahren zur Lösung dieser Probleme ist die so genannte suchbare Verschlüsselung, die eine Stichwortsuche nach verschlüsselten Daten in einem verschlüsselten Zustand ermöglicht, ohne die verschlüsselten Daten zu entschlüsseln.
  • In der Patentliteratur 1 und der Nicht-Patentliteratur 3 werden durchsuchbare Verschlüsselungsverfahren beschrieben, die eine Suche nach Schlüsselwörtern ermöglichen, ohne die verschlüsselten Daten zu entschlüsseln, indem den verschlüsselten Daten Informationen, so genannte Tags, hinzugefügt werden.
  • Bei der in der Nichtpatentliteratur 3 beschriebenen durchsuchbaren Verschlüsselung verschlüsselt ein beliebiger Benutzer die Daten eines Benutzers A, um mit Hilfe eines öffentlichen Schlüssels des Benutzers A einen Tag zu erzeugen, den Tag an die verschlüsselten Daten anzuhängen und auf einem Server zu speichern. Bei diesem Verfahren kann nur der Benutzer A, der über einen geheimen Schlüssel verfügt, der dem zur Verschlüsselung des Schlüsselworts verwendeten öffentlichen Schlüssel entspricht, die verschlüsselten Daten abrufen.
  • Während die in der Nicht-Patentliteratur 3 beschriebene durchsuchbare Verschlüsselung auf der Grundlage einer Verschlüsselung mit öffentlichem Schlüssel erfolgt, wird die in der Patentliteratur 1 beschriebene durchsuchbare Verschlüsselung auf der Grundlage einer Verschlüsselung mit allgemeinem Schlüssel wie einer Caesar-Chiffre realisiert. Daher können nur Benutzer, die den gemeinsamen Schlüssel kennen, Daten verschlüsseln (Tags erzeugen) und abrufen.
  • Bei diesen Arten der durchsuchbaren Verschlüsselung ist es, wenn Daten in einer Gruppe gemeinsam genutzt werden, nicht möglich, die Daten, die je nach Rolle oder Berechtigung eines Benutzers abgerufen werden können, flexibel zu steuern. Im Gegensatz dazu enthält die in der Patentliteratur 4 beschriebene durchsuchbare Verschlüsselung ein durchsuchbares Verschlüsselungsschema, das den Abruf von Daten in Abhängigkeit von der Rolle oder der Berechtigung eines Benutzers flexibel steuern kann, wenn Daten in einer Gruppe gemeinsam genutzt werden. Konkret wird bei der in Patentliteratur 4 beschriebenen durchsuchbaren Verschlüsselung die Prädikatverschlüsselung verwendet, um einen Attributvektor in Abhängigkeit von der Rolle oder der Berechtigung eines Benutzers, dem der Abruf erlaubt ist, zu setzen, und auch um einen Prädikatvektor in Abhängigkeit von der Rolle oder der Berechtigung eines Benutzers, der einen Schlüsselvektor verwendet, zu setzen, um so eine flexible Kontrolle einer Suchberechtigung zu realisieren.
  • REFERENZLISTE
  • PATENTLITERATUR
    • Patentliteratur 1: JP 2002-278970 A
    • Patentliteratur 2: JP 2008-176040 A
    • Patentliteratur 3: JP 2008-288837 A
    • Patentliteratur 4: JP WO2011-086687 A
    • Patentliteratur 5: JP 2018-097034 A
    • Patentliteratur 6: JP WO2019-215818 A
  • NICHT-PATENTLITERATUR
    • Nicht-Patentliteratur 1: T. Okamoto, K. Takashima, „Homomorphic encryption and signatures from vector decomposition", Pairing 2008, Lecture Notes in Computer Science, Vol.5209, 2008.
    • Nicht-Patentliteratur 2: T. Okamoto, K. Takashima, „Hierarchical Predicate Encryption for Inner-Products", ASIACRYPT 2009, Lecture Notes in Computer Science, Vol.5912, 2009.
    • Nicht-Patentliteratur 3: D. Boneh, G. D. Crescenzo, R. Ostrovsky, G. Persiano, „Public Key Encryption with Keyword Search", EUROCRYPT 2004, Lecture Notes in Computer Science, Vol.3027, 2004.
    • Nicht-Patentliteratur 4: J. Katz, A. Sahai, B. Waters, „Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products", EUROCRYPT 2008, Lecture Notes in Computer Science, Vol.4965, 2008.
    • Nicht-Patent-Literatur 5: H. A. Park, J. W. Byun, D. H. Lee, „Secure Index Search for Groups", TrustBus 2005, Lecture Notes in Computer Science, Vol.3592, 2005.
    • Nicht-Patent-Literatur 6: P. Wang, H. Wang, J. Pieprzyk, „Keyword Field-Free Conjunctive Keyword Searches on Encrypted Data and Extension for Dynamic Groups", CANS 2008, Lecture Notes in Computer Science, Vol.5339, 2008.
    • Nicht-Patentliteratur 7: A. Lewko, T. Okamoto, A. Sahai, K. Takashima, B. Waters, „Fully Secure Functional Encryption: Attribute-Based Encryption and (Hierarchical) Inner Product Encryption", EUROCRYPT 2010, Lecture Notes in Computer Science, Vol.6110, 2010.
  • KURZFASSUNG DER ERFINDUNG
  • TECHNISCHES PROBLEM
  • Wenn beispielsweise ein Benutzer innerhalb eines Unternehmens versetzt wurde oder aus dem Unternehmen ausgeschieden ist, muss eine Zugriffsberechtigung des Benutzers geändert werden, damit der Benutzer nicht auf Daten zugreifen kann, auf die er vor der Versetzung oder dem Ausscheiden aus dem Unternehmen zugreifen konnte (d. h. eine Zugriffsberechtigung widerrufen). Bei einer durchsuchbaren Verschlüsselung entspricht dies der Sperrung des Abrufs von Daten, die vor der Versetzung oder dem Austritt abgerufen werden können (d. h. der Widerruf einer Suchberechtigung).
  • Bei den meisten bestehenden Verfahren zur durchsuchbaren Verschlüsselung wird der Widerruf nicht berücksichtigt, so dass zum Widerruf einer Suchberechtigung eine der folgenden Maßnahmen erforderlich ist: (1) erneutes Verschlüsseln von Tags zur durchsuchbaren Verschlüsselung, (2) Durchführen einer eine Zugriffskontrolle auf dem Server (keine Suchanfrage des widerrufenen Benutzers akzeptieren) und (3) Löschen oder Einholen des geheimen Schlüssels des widerrufenen Benutzers. Es gibt jedoch Probleme, die im Folgenden beschrieben werden. Wenn die Datenmenge in (1) groß ist, ist der Aufwand für die Neuverschlüsselung groß. (2) funktioniert nicht, wenn Daten vom Server preisgegeben [engl.: leaked] werden. (3) funktioniert nicht, wenn vertrauliche Informationen vom Benutzerpreisgegeben [engl.: leaked] werden.
  • Die in der Patentliteratur 5 beschriebene durchsuchbare Verschlüsselung ist ein Verfahren, das den Widerruf berücksichtigt, und zwar mit einem anderen Ansatz als die obigen (1) bis (3), indem eine Schlüsselversion in den geheimen Benutzerschlüssel eingeführt wird und die Schlüsselversion bei einer Suche überprüft wird.
  • Bei der in Patentliteratur 6 beschriebenen durchsuchbaren Verschlüsselung wird ein Konvertierungsschlüssel auf der Grundlage eines Registrierungsschlüssels und eines Suchschlüssels generiert und auf dem Server gespeichert, und wenn eine Suche durchgeführt werden soll, führt der Server eine Neuverschlüsselung unter Verwendung des Konvertierungsschlüssels durch und führt dann eine vertrauliche Suche durch. Bei diesem Verfahren kann der Widerruf durch Löschen des Konvertierungsschlüssels vom Server erfolgen.
  • Allerdings können weder die durchsuchbare Verschlüsselung der Patentliteratur 5 noch die durchsuchbare Verschlüsselung der Patentliteratur 6 eine flexible Zugriffskontrolle mittels Prädikatverschlüsselung wie bei der durchsuchbaren Verschlüsselung der Patentliteratur 4 realisieren.
  • Ein Ziel der vorliegenden Offenbarung ist es, eine durchsuchbare Verschlüsselung zu realisieren, die, wenn Daten in einer Gruppe gemeinsam genutzt werden, die abrufbaren Daten in Abhängigkeit von der Rolle oder der Berechtigung eines Benutzers flexibel steuern kann und auch eine Suchberechtigung effizient und sicher widerrufen kann.
  • LÖSUNG DES PROBLEMS
  • Eine Suchausführungseinrichtung gemäß der vorliegenden Offenbarung umfasst
    eine Suchanfrage-Empfangseinheit zum Empfangen einer Trapdoor, die auf der Grundlage eines geheimen Benutzerschlüssels, in dem ein Suchhilfsschlüssel und ein Attribut eines Benutzers festgelegt sind, und eines Suchschlüsselworts erzeugt wurde, zusammen mit einem Schlüsselidentifikator (ID), der den Suchhilfsschlüssel identifiziert; und
    eine Suchausführungseinheit, um einen verschlüsselten Tag zu entschlüsseln, in dem ein Attribut eines Benutzers, dem der Abruf gestattet ist, und ein Suchwort festgelegt sind, unter Verwendung der von der Suchanfrage-Empfangseinheit empfangenen Trapdoor und des Suchhilfsschlüssels, der durch die von der Suchanfrage-Empfangseinheit empfangene Schlüssel-ID angegeben wird, um einen Tag zu identifizieren, der für das in dem geheimen Benutzerschlüssel festgelegte Attribut abrufbar ist und ein dem Suchschlüsselwort entsprechendes Suchwort enthält.
  • VORTEILHAFTE WIRKUNGEN DER ERFINDUNG
  • In der vorliegenden Offenbarung wird für eine Suche zusätzlich zu einer Trapdoor ein Suchhilfsschlüssel benötigt. Durch Löschen des Suchhilfsschlüssels kann daher eine Suchberechtigung widerrufen werden. Damit lässt sich eine durchsuchbare Verschlüsselung realisieren, die bei der gemeinsamen Nutzung von Daten in einer Gruppe die abrufbaren Daten je nach Rolle oder Berechtigung eines Benutzers flexibel steuern und auch eine Suchberechtigung effizient und sicher widerrufen kann.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
    • 1 zeigt ein Beispiel für eine Konfiguration eines durchsuchbaren Verschlüsselungssystems 100;
    • 2 ist ein Funktionsblockdiagramm, das die Funktionen eines Schlüsselverwaltungsservers 201 veranschaulicht;
    • 3 ist ein Funktionsblockdiagramm, das die Funktionen eines Zugangsterminals 301 veranschaulicht;
    • 4 ist ein Funktionsblockdiagramm, das die Funktionen eines Rechenzentrums 401 veranschaulicht;
    • 5 zeigt ein Beispiel für eine Konfiguration verschlüsselter Daten 3001 unter Verwendung der allgemeinen Prädikatverschlüsselung für innere Produkte;
    • 6 zeigt eine Beziehung zwischen den einzelnen in den verschlüsselten Daten A enthaltenen Daten und den einzelnen in der obigen Beschreibung dargestellten Daten;
    • 7 zeigt ein Beispiel für eine Konfiguration eines Attributinformationen-Verschlüsselungs-Arrays 501;
    • 8 zeigt ein Beispiel für die Einstellung einer individuellen ID 502;
    • 9 zeigt ein Beispiel für die Konfiguration eines Zugehörigkeitsinformationen-Verschlüsselungs-Arrays 503;
    • 10 zeigt ein Beispiel für die Einstellung des Zugehörigkeitsinformationen-Verschlüsselungs-Arrays 503;
    • 11 zeigt ein Beispiel für die Konfiguration eines Stellungsinformationen-Verschlüsselungs-Arrays 504;
    • 12 zeigt ein Beispiel für die Einstellung des Stellungsinformationen-Verschlüsselungs-Arrays 504 in einem ersten Einstellungsbeispiel;
    • 13 zeigt ein Beispiel für die Einstellung des Stellungsinformationen-Verschlüsselungs-Arrays 504 in einem zweiten Beispiel für die Einstellung;
    • 14 zeigt ein Beispiel für eine Konfiguration eines Kategorie-Verschlüsselungs-Arrays 505;
    • 15 zeigt ein Beispiel für die Einstellung des Kategorie-Verschlüsselungs-Arrays 505;
    • 16 zeigt ein Beispiel für die Konfiguration eines Vertraulichkeitsstufen-Verschlüsselungs-Arrays 506;
    • 17 zeigt Beispiel für die Einstellung des Vertraulichkeitsstufen-Verschlüsselungs-Arrays 506 in einem ersten Einstellungsbeispiel;
    • 18 zeigt ein Beispiel für die Einstellung des Vertraulichkeitsstufen-Verschlüsselungs-Arrays 506 in einem zweiten Einstellungsbeispiel;
    • 19 zeigt ein Einstellungsbeispiel 1 für ein Suchwort-Verschlüsselungs-Array 511;
    • 20 beschreibt ein Vektorisierungsverfahren in einem Fall, in dem Verschlüsselungs-Arrays in dem Attributinformationen-Verschlüsselungs-Array 501 durch einen UND-Test verglichen werden;
    • 21 beschreibt ein Vektorisierungsverfahren in einem Fall, in dem Verschlüsselungs-Arrays im Attributinformationen-Verschlüsselungs-Array 501 durch einen ODER-Test verglichen werden;
    • 22 ist ein Flussdiagramm, das den Ablauf eines Prozesses (1) der anfänglichen Systemeinstellung veranschaulicht;
    • 23 ist ein Flussdiagramm, das den Ablauf eines Prozesses (2) der Erzeugung geheimer Benutzerschlüssel veranschaulicht;
    • 24 ist ein Flussdiagramm, das den Ablauf eines Prozesses (3) zur Erzeugung verschlüsselter Daten veranschaulicht;
    • 25 ist ein Flussdiagramm, das den Ablauf eines Prozesses (4der) Schlüsselwortsuche veranschaulicht;
    • 26 ist ein Flussdiagramm, das den Ablauf eines Prozesses (5) zum Widerruf von Suchberechtigung zeigt;
    • 27 zeigt ein Beispiel für die Struktur des Attributinformationen-Verschlüsselungs-Arrays 501, das in dem durchsuchbaren Verschlüsselungssystem 100 verwendet wird;
    • 28 zeigt ein Beispiel für die Zuweisung von AIDs, welche Attribut-IDs für den UND-Test, und die Zuweisung von Indexnummern Bls sind;
    • 29 zeigt ein Beispiel für die Zuweisung von AIDs, welche Attribut-IDs für den UND-Test, und die Zuweisung von Indexnummern Bls sind;
    • 30 zeigt ein Beispiel für die Zuweisung von AIDs, welche Attribut-IDs für den UND-Test, und die Zuweisung von Indexnummern Bls sind;
    • 31 zeigt ein Beispiel für die Konfiguration einer Benutzerattributen-Informationsdatenbank;
    • 32 zeigt ein Beispiel für ein Attributinformationen-Verschlüsselungs-Array für den geheimen Benutzerschlüssel;
    • 33 zeigt ein Beispiel für ein Attributinformationen-Verschlüsselungs-Array für verschlüsselte Daten;
    • 34 zeigt ein Beispiel für ein Suchattributinformationen-Verschlüsselungs-Array für Suchattribute; und
    • 35 ist eine Figur, die ein Beispiel für eine Hardwarekonfiguration des Schlüsselverwaltungsservers 201, des Zugangsterminals 301 und des Rechenzentrums 401 zeigt.
  • BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
  • Die Ausführungsform der vorliegenden Erfindung wird im Folgenden anhand der Zeichnungen beschrieben.
  • In der folgenden Beschreibung bedeutet Formel 101, dass y gleichmäßig aus A ausgewählt wird. Das heißt, in Formel 101 ist y eine gleichmäßige Zufallszahl. y U A
    Figure DE112021007711T5_0001
  • In der folgenden Beschreibung ist eine Verarbeitungsvorrichtung eine später zu beschreibende CPU 1911 oder dergleichen. Eine Speichervorrichtung ist ein ROM 1913, ein RAM 1914, eine Magnetplatte 1920, die später beschrieben wird, oder ähnliches. Eine Kommunikationsvorrichtung ist eine später zu beschreibende Kommunikationskarte 1915 oder ähnliches. Eine Eingabevorrichtung ist eine Tastatur 1902, die später zu beschreibende Kommunikationskarte 1915 oder ähnliches. Das heißt, die Verarbeitungsvorrichtung, die Speichervorrichtung, die Kommunikationsvorrichtung und die Eingabevorrichtung sind Hardware.
  • In der folgenden Beschreibung wird bei der Generierung von verschlüsselten Daten und der Erzeugung von Tags eine Verschlüsselung verwendet, die als Prädikatverschlüsselung bezeichnet wird, um ein Attribut eines Benutzers anzugeben, der zum Abruf berechtigt ist. Bei der Prädikatverschlüsselung kann bei der Verschlüsselung von Daten M zur Erzeugung verschlüsselter Daten C ein Attribut x angegeben werden, und bei der Erzeugung eines geheimen Schlüssels sk kann ein Prädikat fv angegeben werden. Außerdem ist es ein Verschlüsselungsverfahren, das dadurch gekennzeichnet ist, dass nur ein Benutzer, der den geheimen Schlüssel sk besitzt, der eine bestimmte Bedingung erfüllt (z. B. fv(x) = 1), die mit dem Attribut x verschlüsselten Daten C entschlüsseln kann.
  • Spezifische Algorithmen dieser Prädikatverschlüsselung sind in Non-Patent Literature 2, Non-Patent Literature 4, und Non-Patent Literature 7 beschrieben. Bei diesen Verfahren handelt es sich um Algorithmen eines Typs, der als Prädikatverschlüsselung für innere Produkte zwischen Typen von Prädikatverschlüsselung bezeichnet wird. Bei dieser Prädikatverschlüsselung für innere Produkte wird ein Attribut eines Benutzers durch einen Attributvektor x = ( x 1 ,..., x N )
    Figure DE112021007711T5_0002
    repräsentiert, und dieser Vektor wird in verschlüsselte Daten C eingebettet. Ein Prädikat wird durch einen Prädikatvektor v = ( v 1 , v 2 ,..., v N )
    Figure DE112021007711T5_0003
    repräsentiert, und dieser wird in einen geheimen Schlüssel sk eingebettet. Nur wenn das innere Produkt des Attributvektors und des Prädikatvektors einen vorbestimmten Wert ergibt (der vorbestimmte Wert wird hier als „0“ bezeichnet), kann der Besitzer des geheimen Schlüssels sk die Daten entschlüsseln.
  • Um eine durchsuchbare Verschlüsselung zu realisieren, die es ermöglicht, einen Bereich, der zum Abruf zugelassen wird, oder einen Bereich, der zur Entschlüsselung zugelassen wird, in Abhängigkeit von der Rolle oder der Berechtigung eines Benutzers zu kontrollieren, müssen ein Attributvektor und ein Prädikatvektor generiert werden, die für ein unternehmensinternes System geeignet sind, wobei Attribute wie organisatorische Informationen eines Unternehmens, Stellungen von Mitarbeitern und Arten oder Vertraulichkeitsstufen von Dokumenten berücksichtigt werden.
  • Zum Beispiel hat Person C aus Sektion B in Abteilung A eine Berechtigung, die die Entschlüsselung von verschlüsselten Daten für Abteilung A und von verschlüsselten Daten für Sektion B erlaubt. Die Ausgabe mehrerer Schlüssel, z. B. eines geheimen Schlüssels für Abteilung A und eines geheimen Schlüssels für Sektion B, an einen Benutzer erschwert jedoch die Verwaltung der Benutzerschlüssel. Daher ist es wünschenswert, dass alle Daten, für die eine Zugriffsberechtigung erteilt wurde, mit einem einzigen geheimen Schlüssel abgerufen und entschlüsselt werden können. In der folgenden Ausführungsform werden ein solcher Attributvektor und ein Prädikatvektor generiert, die den Aufwand für die Verwaltung geheimer Schlüssel reduzieren können.
  • Die in Nicht-Patentliteratur 2 beschriebenen Algorithmen der Prädikatverschlüsselung für innere Produkte werden hier kurz beschrieben, indem sie sich auf einen für die folgende Beschreibung notwendigen Bereich beschränken (für Details siehe Nicht-Patentliteratur 2).
  • Die in der Nichtpatentliteratur 2 beschriebene Prädikatverschlüsselung für innere Produkte ist eine Verschlüsselung unter Verwendung von Paarungsvektorräumen, die durch elliptische Kurven definiert sind. Es gibt eine Vielzahl von Verfahren, um die Paarungsvektorräume zu konstruieren, und die folgende Beschreibung basiert auf einem Konstruktionsverfahren, das ein inneres Produkt elliptischer Kurven verwendet. Es ist zu beachten, dass im Allgemeinen Operationen auf Gruppen auf elliptischen Kurven oft als Operationen von additiven Gruppen beschrieben werden, aber alle Operationen, einschließlich derer auf endlichen Feldern, werden hier als Operationen von multiplikativen Gruppen beschrieben. Im Folgenden wird von symmetrischen Paarungen ausgegangen, die sich am einfachsten beschreiben lassen, aber es ist leicht, sie auf ein allgemeines Verfahren mit asymmetrischen Paarungen auszuweiten.
  • G und GT seien jeweils eine Gruppe der Primzahlordnung q, und Fq= {0, 1, ..., q-1}. Es sei e: G × G → GT eine Paarung, die Bilinearität (Eigenschaft, dass e(ua, vb) = e(u, v)ab für jedes u, v ∈ G, a und b ∈ Fq) und Nicht-Entartung (Eigenschaft, dass es g ∈ G gibt, so dass e(g, g) ≠ 1) erfüllt. Eine direkte Produktmenge von N Gruppen G sei V = G × G × ... × G. Ein Element x = (gx1, gx2, ..., gxN) ∈ V der direkten Produktmenge ist mit x = ( x 1 , x 2 ,..., x N ) = F N q
    Figure DE112021007711T5_0004
    assoziiert.
  • Wenn in diesem Fall für x = (gx1, gx2, ..., gxN) ∈V, y = (gy1, gy2, ..., gyN) ∈V, und α ∈ Fq definiert ist, stellt V einen Vektorraum dar. x + y = ( g x1 + y1 , g x2 + y2 ,..., g xN + yN ) ,   α x = ( g α x1 , g α x2 ,..., g α xN )
    Figure DE112021007711T5_0005
  • Als Paarung dieses Vektorraums V ist eine Paarung von u = (u1, u2, ..., uN) ∈V and v = (v1, v2, ..., vN) ∈ V wie in Formel 102 angegeben definiert. e ( u ,v ) = i = l N e ( u i , v i )
    Figure DE112021007711T5_0006
  • Im Vektorraum V sind die folgenden Vektoren definiert. a 1 = ( g ,1 ,1 ,..., 1 ) , a 2 = ( 1, g ,..., 1 ) ,..., a N = ( 1,1,1,..., g )
    Figure DE112021007711T5_0007
    In diesem Fall ist A = (a1, a2, ..., aN) eine Basis des Vektorraums V. Diese Basis A wird als kanonische Basis bezeichnet.
  • Wenn es zwei Vektoren gibt, Vektoren x = (gx1, gx2, ..., gxN) ∈ V and y = (gy1, gy2, ..., gyN) ∈ V, können sie dargestellt werden als x = x1a1 + x2a2 + ... + xNaN and y = y1a1 + y2a2 + ... + yNaN, unter Verwendung der kanonischen Basis A.
  • Die kanonische Basis A erfüllt die Formel 103. e ( a i , a j ) = e ( g , g ) δ i , j
    Figure DE112021007711T5_0008
  • Es ist zu beachten, dass δi,j das Kronecker-Delta ist. Wenn also die Vektoren x = x1a1 + x2a2 + ... + xNaN and y = y1a1 + y2a2 + ... + yNaN gegeben sind, ist bekannt, dass ihre Paarung Formel 104 lautet. e ( x , y ) = i = 1 N e ( g , g ) x i y i
    Figure DE112021007711T5_0009
  • X = (xi,j) sei eine quadratische Matrix mit N Zeilen und N Spalten, in der jedes Element ein gleichmäßig zufällig ausgewählter Wert aus Fq ist. X, das auf diese Weise konstruiert wurde, hat eine extrem hohe Wahrscheinlichkeit, eine regelmäßige Matrix zu sein. Die Formel 105 wird mit Hilfe einer solchen regelmäßigen Matrix definiert. b i = j = 1 N χ i , j a j
    Figure DE112021007711T5_0010
  • Dann ist B = (b1, b2, ..., bN) ebenfalls eine Basis des Vektorraums V. Die Basis B wird als Zufallsbasis bezeichnet. Jedes der Elemente b1, b2, ..., bN der Basis B wird als Basisvektor der Basis B bezeichnet.
  • Unter Verwendung einer inversen Matrix einer transponierten Matrix der Matrix X wird (vi,j) = (XT)-1 definiert. Mit Hilfe dieser Matrix (vi,j) wird die Formel 106 definiert. b i * = j = 1 N v i , j a j
    Figure DE112021007711T5_0011
  • Dann ist B* = (b*1, b*2,..., b*N) ebenfalls eine Zufallsbasis des Vektorraums V. Jedes der Elemente b*1, b*2, ..., b*N der Basis B wird auch als Basisvektor der Basis B* bezeichnet.
  • Auch in den Zufallsbasen B und B* ist die Formel 107 wie in der kanonischen Basis A erfüllt. e ( b i , b j * ) = e ( g , g ) δ i , j
    Figure DE112021007711T5_0012
  • Es ist zu beachten, dass δi,j das Kronecker-Delta ist.
  • Ausgehend von den obigen Ausführungen, wenn der Vektor x = x1b1 + x2b2 + ... + xNbN durch die Zufallsbasis B ausgedrückt wird und Vektor y = y1b*1 + y2b*2 + ... + yNb*N durch die Zufallsbasis B* ausgedrückt wird, gilt bekanntlich die Formel 108. e ( x ,y ) = i = 1 N 4 ( g , g ) x i y i
    Figure DE112021007711T5_0013
  • Nach der Nicht-Patent-Literatur 1 gilt für die Zufallsbasis B = B = (b1, b2, ..., bN) im Vektorraum V folgende Eigenschaft: Sind Elemente (x1, x2, ..., xN) von FN q gegeben, so erhält man leicht x = x1b1 + x2b2 + ... + xNbN. Wenn jedoch x = x1b1 + x2b2 + ... + xLbL (1 < L ≤ N) gegeben ist, ist die Ermittlung des Vektors y = y1b*1 + y2b*2 + ... + ylb*l (1 ≤ l < L) ohne Verwendung von X = (xi,j) genauso schwierig wie das verallgemeinerte Diffie-Hellman-Rechenproblem.
  • Die Nicht-Patentliteratur 2 nutzt die oben genannte Eigenschaft, um Algorithmen zur Prädikatverschlüsselung für innere Produkte zu konstruieren.
  • Ausführungsform 1.
  • In Ausführungsform 1 wird ein durchsuchbares Verschlüsselungssystem 100 (kryptographisches Verarbeitungssystem) beschrieben, das nach Informationen in einem verschlüsselten Zustand suchen und auch eine Suchberechtigung effizient und sicher widerrufen kann.
  • In Ausführungsform 1 werden mit Schwerpunkt auf einem Prozess zum Widerruf einer Suchberechtigung ein Verfahren zur Erzeugung von Tags, die für Suchvorgänge verwendet werden, ein Verfahren zur Ausführung von Suchvorgängen, ein Verfahren zur Verwaltung von Schlüsseln, die für Suchvorgänge erforderlich sind, und so weiter beschrieben. Für die Ver- und Entschlüsselung, die Zugangskontrolle, die Schlüsselverwaltung usw. der Daten selbst können bestehende Verschlüsselungsverfahren mit allgemeinem Schlüssel (Advanced Encryption Standard (AES) usw.) oder bestehende Verschlüsselungsverfahren mit öffentlichem Schlüssel (Rivest-Shamir-Adleman (RSA)-Kryptosystem, Prädikatverschlüsselung für innere Produkte usw.) verwendet werden, so dass sie nur als „unter Verwendung eines bestehenden Verschlüsselungsverfahrens“ beschrieben werden und eine detaillierte Beschreibung entfällt.
  • Ausführungsform 1 wird in der folgenden Reihenfolge beschrieben.
  • Zunächst wird der Punkt des durchsuchbaren Verschlüsselungssystems 100 nach Ausführungsform 1 beschrieben.
  • Zunächst werden die Konfiguration und die Funktionen des durchsuchbaren Verschlüsselungssystems 100 beschrieben.
  • Zweitens wird eine Struktur der verschlüsselten Daten beschrieben. Der Fluss von verschlüsselten Daten und anderen Daten wird ebenfalls beschrieben.
  • Drittens werden Verfahren zur Erzeugung eines Attributvektors und eines Prädikatvektors beschrieben. Zunächst wird ein Attributinformationen-Verschlüsselungs-Array 501 beschrieben. Das Attributinformationen-Verschlüsselungs-Array 501 dient zur Erzeugung von Verschlüsselungsinformationen, auf deren Grundlage ein Attributvektor oder ein Prädikatvektor generiert wird.
  • Anschließend werden Verfahren zur Erzeugung eines Attributvektors und eines Prädikatvektors auf der Grundlage der mit dem Attributinformationen-Verschlüsselungs-Array 501 erzeugten Verschlüsselungsinformationen beschrieben.
  • Viertens wird die Funktionsweise des durchsuchbaren Verschlüsselungssystems 100 beschrieben. Das heißt, es wird ein spezifisches Verfahren beschrieben, mit dem das durchsuchbare Verschlüsselungssystem 100 eine durchsuchbare Verschlüsselung realisiert. Die Funktionsweise des durchsuchbaren Verschlüsselungssystems 100 wird durch die Unterteilung in fünf Prozesse beschrieben.
  • In diesem Fall wird davon ausgegangen, dass die in einem Unternehmen erstellten Daten (Dokumente usw.) im Rechenzentrum 401 gespeichert werden, wobei die Daten pro Abteilung oder pro Sektion gemeinsam genutzt werden. Auf der Grundlage eines Attributs, das jedem Benutzer (Mitarbeiter) zugeordnet ist, wie z. B. die Zugehörigkeit des Benutzers, wird für jeden Benutzer ein geheimer Benutzerschlüssel ausgestellt. Bei der Speicherung von Daten im Rechenzentrum 401 werden die Daten verschlüsselt, indem Attributinformationen festgelegt werden, die einen Bereich angeben, der entschlüsselt werden darf, und einen Bereich, der abgerufen werden darf, so dass die verschlüsselten Daten nur von Benutzern entschlüsselt und abgerufen werden können, die über eine Berechtigung verfügen.
  • <0. Punkt des durchsuchbaren Verschlüsselungssystems 100 nach Ausführungsform 1>
  • Wie in der Patentliteratur 4 usw. dargelegt, ist bekannt, dass eine durchsuchbare Verschlüsselung auf der Grundlage der Prädikatverschlüsselung für innere Produkte konstruiert werden kann.
  • Die Besonderheit von Ausführungsform 1 besteht darin, dass eine Sektion, in der ein geheimer Schlüssel im Schlüsselerzeugungsalgorithmus der bestehenden Prädikatverschlüsselung für innere Produkte erzeugt wird, so geändert wird, dass ein Paar aus einem geheimen Schlüssel und einem Suchhilfsschlüssel erzeugt wird, und dass der Entschlüsselungsalgorithmus ebenfalls so geändert wird, dass sowohl der geheime Schlüssel als auch der Suchhilfsschlüssel erforderlich sind. Wird die durchsuchbare Verschlüsselung auf der Grundlage der Prädikatverschlüsselung für innere Produkte konstruiert, die wie oben beschrieben modifiziert wurde, werden bei einer vertraulichen Suche sowohl der geheime Schlüssel als auch der Suchhilfsschlüssel benötigt, so dass diese Eigenschaft für die Widerrufsverwaltung genutzt wird.
  • In Ausführungsform 1 wird auf der Grundlage der in Nicht-Patentliteratur 7 beschriebenen Prädikatverschlüsselung für innere Produkte eine Prädikatverschlüsselung für innere Produkte mit den oben genannten Modifikationen konstruiert, und die durchsuchbare Verschlüsselung wird unter Verwendung der modifizierten Prädikatverschlüsselung für innere Produkte realisiert. Die Prädikatverschlüsselung für innere Produkte aus der Nicht-Patentliteratur 7 wird als hierarchische Prädikatverschlüsselung für innere Produkte bezeichnet und ist dadurch gekennzeichnet, dass Attribute und Prädikate eine hierarchische Struktur aufweisen und eine „Schlüsseldelegation“ zur Erzeugung eines geheimen Schlüssels der unteren Schicht aus einem bestimmten geheimen Schlüssel möglich ist. Ein geheimer Schlüssel der unteren Schicht ist ein geheimer Schlüssel, der nur einen Teil der verschlüsselten Daten entschlüsseln kann, die durch einen geheimen Schlüssel der oberen Schicht entschlüsselt werden können. Dieser Punkt unterscheidet sich von der oben beschriebenen Prädikatverschlüsselung für innere Produkte der Nicht-Patentliteratur 2.
  • Die Algorithmen der Nicht-Patentliteratur 7 werden hier nur in einem für die folgende Beschreibung notwendigen Umfang beschrieben (siehe Nicht-Patentliteratur 7 zu Einzelheiten).
  • Ein anfänglicher Einstellungsalgorithmus (Setup) ist in Formel 109 angegeben, wobei λ ein Sicherheitsparameter ist, d die Anzahl der Schichten ist, µi eine Vektorlänge bis zur i-ten Schicht ist, µ0 = 0 < µ1 < µ2 < ... < µd = n, gob ein Algorithmus ist, der zufällig einen Vektorraum und eine Basis erzeugt, sk ein Hauptschlüssel ist und pk öffentliche Parameter sind. Setup 1 λ , μ : = ( n , d ; μ 1 , , μ d )
    Figure DE112021007711T5_0014
    B ^ : = ( b 1 , , b n , b 2 n + 1 , b 2 n + 3 ) , sk : = B * , pk : = ( 1 λ , param V , B ^ ) ,
    Figure DE112021007711T5_0015
    Rückgabe sk, pk
  • Ein Schlüsselerzeugungsalgorithmus (KeyGen) ist wie in Formel 110 angegeben, wobei l eine für die Schlüsselerzeugung anvisierte Schichtnummer ist, ( v 1 , , v l )
    Figure DE112021007711T5_0016
    ein Prädikatvektor ist, σ, η und ψ Zufallszahlen sind, k * l
    Figure DE112021007711T5_0017
    ein geheimer Schlüssel ist, in dem k*l,dec ein Element für die Entschlüsselung, k*l,ran,j ein Element für die Randomisierung und k*l,del,j ein Element für die Schlüsseldelegation ist. KeyGen ( pk ,sk , ( v 1 , , v l ) : = ( ( v 1 , , v μ 1 ) , , ( v μ l 1 + 1 , , v μ l ) ) ) : σ dec , t , η dec , σ ran , j , t , η ran , j ( j = 1, , l + 1 ) , σ del , j , t , η del ,j ( j = 1, , n ) , ψ U F q f ür  t = 1, , l k l , dec : = t = 1 l σ dec , t ( i = μ t 1 + 1 μ t v i b i ) + b 2 n + 1 + η dec b 2 n + 2 , k l , ran , j : = t = 1 l σ ran , j , t ( i = μ t 1 + 1 μ t v i b i ) + η ran , j b 2 n + 2 f ür  j = 1, , l + 1 k l , del , j : = t = 1 l σ del , j , t ( i = μ t 1 + 1 μ t v i b i ) + ψ b j + η del , j b 2 n + 2 f ür; =   μ l + 1, , n , Rückgabe K l : = ( K l , d e c , K l , r a n ,1 , , K l , r a n , l + 1 , K l , d e l , μ l + 1 , , K l , d e n , n
    Figure DE112021007711T5_0018
  • Ein Verschlüsselungsalgorithmus (Enc) ist wie in Formel 111 angegeben, wobei m eine Nachricht, l eine als Ziel der Verschlüsselung angegebene Schichtnummer, ( x 1 , , x l )
    Figure DE112021007711T5_0019
    ein Attributvektor, ( x l + 1 , , x d ) ,
    Figure DE112021007711T5_0020
    δ und ζ Zufallszahlen, gT := e(g, g) ≠ 1 und (c1, c2) eine verschlüsselte Nachricht sind. Enc ( pk , m G T , ( x 1 , , x l ) : = ( ( x 1 , , x μ 1 ) , , ( x μ l 1 + 1 , , x μ l ) ) ) : ( x l + 1 , x d ) U F q μ l + 1 μ l × × F q n μ d 1 , δ 1 , , δ l , δ 2 n + 3 , ζ U F q , c 1 : = t = 1 l δ t ( i = μ t 1 + 1 μ t x i b i ) + ζ b 2 n + 1 + δ 2 n + 3 b 2 n + 3 , c 2 : = g T ζ m , Rückgabe ( c 1 , c 2 )
    Figure DE112021007711T5_0021
  • Ein Entschlüsselungsalgorithmus (Dec) ist wie in Formel 112 angegeben, wobei m' eine entschlüsselte Nachricht ist. Dec ( pk , k l , dec , c 1 , c 2 ) : m : = c 2 / e ( c 1 , k l , dec ) , Rückgabe m .
    Figure DE112021007711T5_0022
  • Ein Schlüsseldelegationsalgorithmus (Delegate) ist wie in Formel 113 angegeben, wobei l eine Schichtnummer eines geheimen Schlüssels vor der Schlüsseldelegation ist, v l + 1
    Figure DE112021007711T5_0023
    ein Prädikatvektor ist, der am Zielort der Schlüsseldelegation hinzugefügt wird, und α, σ und ψ' Zufallszahlen sind.  
    Figure DE112021007711T5_0024
      D e l e g a t e l ( p k , k l , v l + 1 : = ( v μ l + 1 , , v μ l + 1 ) ) : α dec , t , σ dec , α ran , j , t , σ ran , j , σ ran , j   ( j = 1, , l + 2 ) , α del , j , t , σ del , j   ( j = 1, , n ) , ψ   U F q  für  t = 1, , l + 1, k l + 1, dec : = k l , dec + t = 1 l + 1 α dec , t k l , ran , t + σ dec ( i = μ l + 1 μ l + 1 v i k i , del , i ) , k l + 1, ran , j t = 1 l + 1 α r a n , j , t k l , r a n , t + σ r a n , j ( i = μ l + 1 μ l + 1 v i k l , d e l , i ) für  j   = 1, , l + 2, k l + 1, del , j : = t = 1 l + 1 α del , j , t k l , ran , t + σ del , j ( i = μ l + 1 μ l + 1 v i k l , del , i )   + ψ k l , d e j , j   f ü r   j = μ l + 1 + 1, , n , Rückgabe ( k l + 1 : = ( k l + 1, d e c , k l + 1, r a n ,1 , , k l + 1, r a n , l + 2 , k l + 1, d e l , μ l + 1 + 1 , , k l + 1, d e l , n ) .
    Figure DE112021007711T5_0025
  • In Ausführungsform 1 wird der Schlüsselerzeugungsalgorithmus (KeyGen) so modifiziert, dass der Schlüsselerzeugungsalgorithmus ein Paar aus einem geheimen Schlüssel und einem Suchhilfsschlüssel erzeugt. Der modifizierte Schlüsselerzeugungsalgorithmus ist in Formel 114 angegeben. Das heißt, es wird eine Zufallszahl θ erzeugt und zur Berechnung von k*l,dec, verwendet, und θ wird gleichzeitig als Suchhilfsschlüssel ausgegeben. KeyGen ( pk ,sk , ( v 1 , , v l ) : = ( ( v 1 , , v μ 1 ) , , ( v μ l 1 + 1 , , v μ l ) ) ) : k l , dec : = t = 1 l σ dec , t ( i = μ t 1 + 1 μ t v i b i ) + θ 1 b 2 n + 1 + η dec b 2 n + 2 ,   U F q  für  t = 1, , l , k l , ran , j : = t = 1 l σ ran , j , t ( i = μ t 1 + 1 μ v i b i ) + η ran , j b 2 n + 2  für  j   = 1, + l + 1 k l , del , j : = t = 1 l σ del , j , t ( i = μ t 1 + 1 μ t v i b i ) + ψ b j + η del , j b 2 n + 2  für  j  = μ l + 1, , n , Rückgabe K l : = ( K l , d e c , K l , r a n ,1 , , K l , r a n , l + 1 , K l , d e l , μ l + 1 , , K l , d e n , n )    
    Figure DE112021007711T5_0026
  • Der Entschlüsselungsalgorithmus (Dec) wird ebenfalls entsprechend geändert. Der geänderte Entschlüsselungsalgorithmus ist in Formel 115 angegeben. Das heißt, der Suchhilfsschlüssel θ wird zur Berechnung von m' verwendet. Der Punkt ist, dass eine Entschlüsselung nur möglich ist, wenn sowohl k*l,dec, der (das Element für die Entschlüsselung des) geheimen Schlüssels ist, als auch der Suchhilfsschlüssel θ verfügbar sind. Dec ( pk , k l , dec , θ , c 1 , c 2 ) : m : = c 2 / e ( c 1 , k l , dec ) θ , R u ¨ ckgabe m .
    Figure DE112021007711T5_0027
  • Die anderen Algorithmen sind die gleichen wie in der Nicht-Patent-Literatur 7. Mit dieser Anordnung kann eine Prädikatverschlüsselung für innere Produkte konstruiert werden, bei der zusätzlich zum geheimen Schlüssel der Suchhilfsschlüssel eingeführt wird. Im Folgenden wird die Prädikatverschlüsselung für innere Produkte der Nicht-Patentliteratur 7, bei der der Schlüsselerzeugungsalgorithmus und der Entschlüsselungsalgorithmus wie oben beschrieben modifiziert sind, als „Prädikatverschlüsselung für innere Produkte mit Unterstützung des Widerrufs“ bezeichnet. In Ausführungsform 1 wird die durchsuchbare Verschlüsselung unter Verwendung der Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützen, aufgebaut.
  • <1. Konfiguration und Funktionen des durchsuchbaren Verschlüsselungssystems 100>
  • 1 ist eine Figur, die ein Beispiel für eine Konfiguration des durchsuchbaren Verschlüsselungssystems 100 zeigt.
  • Das durchsuchbare Verschlüsselungssystem 100 umfasst einen Schlüsselverwaltungsserver 201, Zugangsterminals 301 (301a bis 301m) und ein Rechenzentrum 401. Der Schlüsselverwaltungsserver 201 und die Zugangsterminals 301 sind an ein Unternehmens-LAN 102 angeschlossen. Das Unternehmens-LAN 102 ist über ein Netzwerk 101 mit dem Rechenzentrum 401 verbunden.
  • Der Schlüsselverwaltungsserver 201 (Schlüsselerzeugungsvorrichtung) erzeugt öffentliche Parameter für die Verschlüsselung und generiert einen Hauptschlüssel, der zur Ausgabe eines geheimen Benutzerschlüssels an einen Benutzer verwendet wird. Der Schlüsselverwaltungsserver 201 verwaltet auch die Attribut-Informationen jedes Benutzers, wie z. B. die Zugehörigkeit zu einem bestimmten Unternehmen oder die Stellung jedes Benutzers, und gibt auf der Grundlage der Attribut-Informationen geheime Benutzerschlüssel an die Mitarbeiter aus. Gleichzeitig mit dem geheimen Benutzerschlüssel gibt der Schlüsselverwaltungsserver 201 auch einen Suchhilfsschlüssel an das Rechenzentrum 401 als Information zur effizienten Realisierung einer Funktion zum Widerruf von Suchberechtigungen aus.
  • Das Zugangsterminal 301 (Suchvorrichtung, Verschlüsselungsvorrichtung, Entschlüsselungsvorrichtung) ist ein Personal Computer (PC), der von den Benutzern im Unternehmen benutzt wird. Das Zugangsterminal 301 erstellt Daten, verschlüsselt diese und speichert sie im Rechenzentrum 401. Außerdem sucht es nach den im Rechenzentrum 401 gesammelten Daten und entschlüsselt und bearbeitet verschlüsselte Daten, die vom Rechenzentrum 401 abgerufen werden.
  • Das Rechenzentrum 401 (Suchausführungseinrichtung) ist ein Server mit einer großen Speichereinrichtung zur Speicherung der im Unternehmen erstellten verschlüsselten Daten. Da die Daten in einem verschlüsselten Zustand gespeichert werden, können die Inhalte im Rechenzentrum 401 nicht eingesehen werden. Das Rechenzentrum 401 kann aus einer Vielzahl von Servern anstelle eines einzigen Servers bestehen. Das Rechenzentrum 401 kann z. B. aus einem Server, der Verarbeitungen wie Suchvorgänge durchführt, und einem oder mehreren Servern, die verschlüsselte Daten speichern, bestehen. Die Suchausführungseinrichtung kann sich auf die Gesamtheit des Rechenzentrums 401 oder nur auf den Server im Rechenzentrum 401 beziehen, der die Verarbeitung wie die Suche durchführt.
  • Das Netzwerk 101 ist ein Kommunikationspfad, der das Unternehmens-LAN 102 und das Rechenzentrum 401 miteinander verbindet. Ein typisches Beispiel für ein Netzwerk 101 ist das Internet oder ähnliches.
  • Das Unternehmen-LAN 102 ist ein im Unternehmen installierte Kommunikationspfad, an die verschiedene im Unternehmen eingesetzte Server oder Personalcomputer angeschlossen sind. Wenn es Büros in mehreren Gebäuden gibt, wird der Kommunikationspfad in einer komplexen Weise konfiguriert, die Router, Standleitungen oder ähnliches beinhaltet.
  • 2 ist ein Funktionsblockdiagramm, das die Funktionen des Schlüsselverwaltungsservers 201 veranschaulicht.
  • Der Schlüsselverwaltungsserver 201 umfasst eine Hauptschlüsselerzeugungseinheit 202, eine Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels, eine Benutzerattributinformationen-Verwaltungseinheit 205, eine Verschlüsselungsinformationen-Erzeugungseinheit 206, eine Vektorerzeugungseinheit 207, eine Speichereinheit für verschiedene Schlüssel 208 und eine PKG-seitige Datenübertragungs- und Empfangseinheit 209.
  • Die Hauptschlüsselerzeugungseinheit 202 verwendet eine Verarbeitungsvorrichtung, um öffentliche Parameter zu erzeugen, die von allen Benutzern, die die durchsuchbare Verschlüsselung verwenden, auf der Grundlage einer im System verwendeten Schlüssellänge gemeinsam verwendet werden, und verwendet die Verarbeitungsvorrichtung, um einen Hauptschlüssel zu erzeugen, auf dessen Grundlage verschiedene geheime Schlüssel zu erzeugen sind.
  • Die Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels erzeugt mit Hilfe der Verarbeitungsvorrichtung einen geheimen Benutzerschlüssel und einen Suchhilfsschlüssel auf der Grundlage des Hauptschlüssels, wobei ein Prädikatvektor verwendet wird, der von der Vektorerzeugungseinheit 207 erzeugt wird, die später beschrieben wird.
  • Die Benutzerattributinformationen-Verwaltungseinheit 205 verwendet eine Speichervorrichtung, um Attributinformationen zu verwalten, die verschiedene Attribute angeben, wie z. B. die Zugehörigkeit oder die Stellung eines jeden Benutzers und die Vertraulichkeitsstufe von Dokumenten, auf die zugegriffen werden kann. Die Benutzerattributinformationen-Verwaltungseinheit 205 verwaltet nicht nur aktuelle Attributinformationen, sondern auch vergangene Attributinformationen als Historie.
  • Die Verschlüsselungsinformationen-Erzeugungseinheit 206 (zweite Verschlüsselungsinformationen-Erzeugungseinheit) erzeugt mit Hilfe der Verarbeitungsvorrichtung Verschlüsselungsinformationen (zweite Verschlüsselungsinformationen), die auf den von der Benutzerattributinformationen-Verwaltungseinheit 205 verwalteten Attributen basieren.
  • Die Vektorerzeugungseinheit 207 erzeugt mit Hilfe der Verarbeitungsvorrichtung einen Prädikatvektor auf der Grundlage der von der Verschlüsselungsinformationen-Erzeugungseinheit 206 erzeugten Verschlüsselungsinformationen.
  • Die Speichereinheit für verschiedene Schlüssel 208 (Schlüsselspeichereinheit) speichert in der Speichervorrichtung den in der Hauptschlüsselerzeugungseinheit 202 erzeugten Hauptschlüssel und den in der Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels erzeugten geheimen Benutzerschlüssel und den Suchhilfsschlüssel.
  • Die PKG-seitige Datenübertragungs- und -empfangseinheit 209 überträgt über eine Kommunikationsvorrichtung die öffentlichen Parameter und den geheimen Benutzerschlüssel an das Zugangsterminal 301, das vom Benutzer benutzt wird. Die PKG-seitige Datenübertragungs- und Empfangseinheit 209 überträgt den Suchhilfsschlüssel ebenfalls über die Kommunikationsvorrichtung an das Rechenzentrum 401.
  • 3 ist ein Funktionsblockdiagramm, das die Funktionen des Zugangsterminals 301 veranschaulicht.
  • Das Zugangsterminal 301 umfasst eine Speichereinheit 302 für den geheimen Benutzerschlüssel, eine Trapdoor-Erzeugungseinheit 303, eine Datenverschlüsselungsschlüssel-Entschlüsselungseinheit 305, eine endgerätseitige Datenübertragungs- und -empfangseinheit 311, eine Verschlüsselungsinformationen-Erzeugungseinheit 306, eine Vektorerzeugungseinheit 307, eine Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten, eine Datenverschlüsselungseinheit 309 und eine Datenentschlüsselungseinheit 310.
  • Die Speichereinheit für geheime Benutzerschlüssel 302 (Schlüsselspeichereinheit) speichert die individuell an die Benutzer ausgegebenen geheimen Benutzerschlüssel und die öffentlichen Parameter in einer Speichervorrichtung.
  • Die Trapdoor-Erzeugungseinheit 303 erzeugt mit Hilfe einer Verarbeitungsvorrichtung eine Trapdoor, die einer Suchanfrage entspricht, auf der Grundlage eines in der Speichereinheit für geheime Benutzerschlüssel 302 gespeicherten geheimen Benutzerschlüssels und eines Prädikatvektors, der auf der Grundlage eines zu suchenden Schlüsselworts erzeugt wird.
  • Die Datenverschlüsselungsschlüssel-Entschlüsselungseinheit 305 (gemeinsame Schlüsselerfassungseinheit) entschlüsselt einen verschlüsselten Datenverschlüsselungsschlüssel, der an verschlüsselte Daten angehängt ist, die von der später zu beschreibenden zentrumsseitigen Datenübertragungs- und - empfangseinheit 311 vom Rechenzentrum 401 empfangen wurden. Dabei ruft die Datenverschlüsselungsschlüssel-Entschlüsselungseinheit 305 einen Datenverschlüsselungsschlüssel mit Hilfe der Verarbeitungsvorrichtung ab.
  • Die Struktur der verschlüsselten Daten wird später beschrieben.
  • Die Verschlüsselungsinformationen-Erzeugungseinheit 306 (erste Verschlüsselungsinformationen-Erzeugungseinheit) extrahiert automatisch Schlüsselwörter aus den Daten, nach denen gesucht werden soll, und empfängt auch Schlüsselwörter, nach denen von Benutzern gesucht werden soll. Anschließend erzeugt die Verschlüsselungsinformationen-Erzeugungseinheit 306 mit Hilfe der Verarbeitungsvorrichtung Verschlüsselungsinformationen (erste Verschlüsselungsinformationen) auf der Grundlage der Schlüsselwörter.
  • Die Verschlüsselungsinformationen-Erzeugungseinheit 306 empfängt auch Attribut-Informationen, die die Attribute der Benutzer angeben, die von einem Benutzer abgerufen werden dürfen. Anschließend erzeugt die Verschlüsselungsinformationen-Erzeugungseinheit 306 mit Hilfe der Verarbeitungsvorrichtung Verschlüsselungsinformationen (erste Verschlüsselungsinformationen) auf der Grundlage der Attributinformationen.
  • Die Vektorerzeugungseinheit 307 erzeugt mit Hilfe der Verarbeitungsvorrichtung einen Attributvektor oder einen Prädikatvektor auf der Grundlage der von der Verschlüsselungsinformationen-Erzeugungseinheit 306 erzeugten Verschlüsselungsinformationen.
  • Die Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten (Erzeugungseinheit für verschlüsselte Daten) verwendet die Verarbeitungsvorrichtung, um auf der Grundlage des von der Vektorerzeugungseinheit 307 erzeugten Attribut-Vektors und von Zufallszahlen eine Vielzahl von Tags zu erzeugen. Die Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten verwendet die Verarbeitungsvorrichtung, um einen Datenverschlüsselungsschlüssel zu erzeugen. Anschließend verschlüsselt die Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten mit Hilfe der Verarbeitungsvorrichtung den erzeugten Datenverschlüsselungsschlüssel, um einen verschlüsselten Datenverschlüsselungsschlüssel zu erzeugen.
  • Die Datenverschlüsselungseinheit 309 verwendet die Verarbeitungsvorrichtung, um einen Datenkörper unter Verwendung des von der Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten erzeugten Datenverschlüsselungsschlüssels zu verschlüsseln, um einen verschlüsselten Datenkörper zu erzeugen. Darüber hinaus verwendet die Datenverschlüsselungseinheit 309 die Verarbeitungsvorrichtung, um verschlüsselte Daten zu erzeugen, indem sie die mehreren Tags und den von der Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten erzeugten Verschlüsselungsschlüssel zu dem verschlüsselten Datenkörper hinzufügt.
  • Die Datenentschlüsselungseinheit 310 entschlüsselt mit Hilfe der Verarbeitungsvorrichtung den verschlüsselten Datenkörper, der in den vom Rechenzentrum 401 empfangenen verschlüsselten Daten enthalten ist, unter Verwendung des in der Datenverschlüsselungsschlüssel-Entschlüsselungseinheit 305 erworbenen Datenverschlüsselungsschlüssels.
  • Die endgerätseitige Datenübertragungs- und -empfangseinheit 311 (Datenübertragungseinheit) überträgt im Zugangsterminal 301 erstellte verschlüsselte Daten über eine Kommunikationsvorrichtung an das Rechenzentrum 401 und empfängt im Rechenzentrum 401 gespeicherte verschlüsselte Daten über die Kommunikationsvorrichtung.
  • Die endgerätseitige Datenübertragungs- und -empfangseinheit 311 erhält über die Kommunikationsvorrichtung einen geheimen Benutzerschlüssel vom Schlüsselverwaltungsserver 201.
  • 4 ist ein Funktionsblockdiagramm, das die Funktionen des Rechenzentrums 401 veranschaulicht.
  • Das Rechenzentrum 401 umfasst eine zentrumsseitige Datenübertragungs- und Empfangseinheit 402, eine Datenverwaltungseinheit 403, eine Suchanforderungs-Empfangseinheit 404, eine Suchausführungseinheit 405, eine Suchergebnis-Übertragungseinheit 406 und eine Suchhilfsschlüssel-Verwaltungseinheit 407.
  • Die zentrumsseitige Datenübertragungs- und -empfangseinheit 402 empfängt verschlüsselte Daten vom Zugangsterminal 301 über eine Kommunikationsvorrichtung.
  • Die zentrumsseitige Datenübertragungs- und Empfangseinheit 402 empfängt über die Kommunikationsvorrichtung auch öffentliche Parameter und einen Suchhilfsschlüssel vom Schlüsselverwaltungsserver 201.
  • Die Datenverwaltungseinheit 403 (Speichereinheit für verschlüsselte Daten) speichert die vom Zugangsterminal 301 empfangenen verschlüsselten Daten und die vom Schlüsselverwaltungsserver 201 empfangenen öffentlichen Parameter in einer Speichervorrichtung.
  • Die Suchanfrage-Empfangseinheit 404 empfängt vom Zugangsterminal 301 über die Kommunikationsvorrichtung eine Trapdoor, die eine Suchanfrage nach verschlüsselten Daten darstellt.
  • Die Suchausführungseinheit 405 führt mit Hilfe einer Verarbeitungsvorrichtung einen Testprozess an der von der Suchanfrage-Empfangseinheit 404 empfangenen Trapdoor und den von der Datenverwaltungseinheit 403 gespeicherten Tags verschlüsselter Daten durch, wobei der von der Suchhilfsschlüssel-Verwaltungseinheit 407 gespeicherte Suchhilfsschlüssel verwendet wird. Dabei stellt die Suchausführungseinheit 405 fest, ob die von der Datenverwaltungseinheit 403 gespeicherten verschlüsselten Daten verschlüsselte Daten mit einem passenden Schlüsselwort enthalten.
  • Die Suchergebnis-Übertragungseinheit 406 überträgt als Ergebnis der vom Zugangsterminal 301 empfangenen Suchanfrage verschlüsselte Daten, die bei der Suche als Treffer gefunden wurden, über die Kommunikationsvorrichtung an das Zugangsterminal 301.
  • Die Suchhilfsschlüssel-Verwaltungseinheit 407 speichert den vom Schlüsselverwaltungsserver 201 empfangenen Suchhilfsschlüssel in der Speichervorrichtung.
  • <2. Struktur der verschlüsselten Daten und Datenströme>
  • Die Struktur der verschlüsselten Daten wird beschrieben.
  • 5 zeigt ein Beispiel für eine Konfiguration verschlüsselter Daten 3001.
  • Diese Beispielkonfiguration wird als verschlüsselte Daten A bezeichnet. Bei einem verschlüsselten Datenkörper 3002 handelt es sich um Daten, die mit einem Datenverschlüsselungsschlüssel verschlüsselt wurden, z. B. mit dem Advanced Encryption Standard (AES) oder Camellia (eingetragenes Warenzeichen). Ein verschlüsselter Datenverschlüsselungsschlüssel 3003 ist der Datenverschlüsselungsschlüssel, der mit einem bestehenden Verschlüsselungsverfahren verschlüsselt wird (Common-Key-Verschlüsselung wie AES oder Public-Key-Verschlüsselung wie RSA-Verschlüsselung oder Prädikatverschlüsselung für innere Produkte). Ein Tag 3004 ist ein Tag, der unter Verwendung eines im Datenkörper enthaltenen Schlüsselworts und eines Attribut-Vektors erzeugt wird.
  • 6 ist eine Figur, die eine Beziehung zwischen den in den verschlüsselten Daten A enthaltenen Daten und den in der obigen Beschreibung dargestellten Daten darstellt.
  • Zunächst erzeugt die Verschlüsselungsinformationen-Erzeugungseinheit 206 des Schlüsselverwaltungsservers 201 Verschlüsselungsinformationen auf der Grundlage von Attributen eines Benutzers, der von der Benutzerattributinformationen-Verwaltungseinheit 205 verwaltet wird, und die Vektorerzeugungseinheit 207 erzeugt einen Prädikatvektor 3202 auf der Grundlage der erzeugten Verschlüsselungsinformationen. Anschließend erzeugt die Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels einen geheimen Benutzerschlüssel 3203 und einen Suchhilfsschlüssel 3216 unter Verwendung des Prädikatvektors 3202 und eines Hauptschlüssels 3201. Die PKG-seitige Datenübertragungs- und Empfangseinheit 209 übergibt den generierten geheimen Benutzerschlüssel 3203 an den Benutzer und den Suchhilfsschlüssel 3216 auf sichere Weise an das Rechenzentrum 401.
  • Die Datenverschlüsselungseinheit 309 des Zugangsterminals 301, die von einem Benutzer, der Daten verschlüsselt, verwendet wird, verschlüsselt die Daten mit einem Datenverschlüsselungsschlüssel 3206. Die Verschlüsselungsinformationen-Erzeugungseinheit 306 erzeugt Verschlüsselungsinformationen, die Attribute eines Benutzers angeben, dem der Abruf gestattet ist, und die Vektorerzeugungseinheit 307 erzeugt einen Attributvektor 3204 auf der Grundlage der erzeugten Verschlüsselungsinformationen. Die Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten verschlüsselt den Datenverschlüsselungsschlüssel 3206, der zur Verschlüsselung der Daten verwendet wird, unter Verwendung eines bestehenden Verschlüsselungsverfahrens, um einen verschlüsselten Datenverschlüsselungsschlüssel 3208 zu erzeugen. Die Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten erzeugt auch einen Tag 3207 auf der Grundlage eines Schlüsselworts 3205, das in den Daten und dem Attributvektor 3204 enthalten ist, wobei eine Prädikatverschlüsselung für innere Produkte verwendet wird, die einen Widerruf unterstützt. Im Allgemeinen sind das Schlüsselwort 3205 und der Attribut-Vektor 3204 ein öffentlicher Schlüssel, und ein Tag wird durch Verschlüsselung einer Konstante 1 oder einer Zufallszahl mit diesem öffentlichen Schlüssel erzeugt. Dieses Tag 3207 wird so oft erstellt, wie die Anzahl der Attributvektoren 3204 der Benutzer, die zum Abruf berechtigt sind, und jeder wird zusammen mit dem verschlüsselten Datenverschlüsselungsschlüssel und dem verschlüsselten Datenkörper als verschlüsselte Daten A an einen Empfänger übertragen. Selbst wenn es eine Vielzahl von Benutzern als Übertragungsziele gibt, muss nur ein Tag 3207 erstellt werden, wenn der Attributvektor 3204 als ein Vektor zusammengesetzt werden kann.
  • Die Trapdoor-Erzeugungseinheit 303 des Zugangsterminals 301, die von einem Benutzer verwendet wird, der nach Daten sucht, erzeugt eine Trapdoor 3210 auf der Grundlage des geheimen Benutzerschlüssels 3203, der in der Speichereinheit für geheime Benutzerschlüssel 302 gespeichert ist, und eines Suchschlüsselworts 3209, nach dem gesucht werden soll. Im Allgemeinen wird die Trapdoor 3210 durch Generierung eines geheimen Schlüssels erzeugt, der einem Vektor entspricht, der durch Anhängen des Suchschlüsselworts 3209 an das Ende des Prädikatvektors 3202 erhalten wird. Wenn die Konstante 1 oder die zur Erzeugung des Tags 3207 verwendete Zufallszahl durch Entschlüsselung des Tags 3207 mit Hilfe der Trapdoor 3210 und des Suchhilfsschlüssels 3216 wiederhergestellt werden kann, weiß die Suchanfrage-Empfangseinheit 404 des Rechenzentrums 401, dass das Suchschlüsselwort 3205 enthalten ist. Wenn die Konstante 1 oder die Zufallszahl nicht wiederhergestellt werden kann, ist bekannt, dass das Schlüsselwort 3205 nicht enthalten ist. Für diese Ermittlung wird der dem geheimen Benutzerschlüssel 3203 entsprechende Suchhilfsschlüssel 3216 benötigt, so dass durch Löschen des Suchhilfsschlüssels 3216 aus dem Rechenzentrum 401 die Suchberechtigung des entsprechenden geheimen Benutzerschlüssels 3203 widerrufen werden kann.
  • Die Datenverschlüsselungsschlüssel-Entschlüsselungseinheit 305 des Zugangsterminals 301, die von einem Benutzer verwendet wird, der die Daten entschlüsselt, verwendet ein bestehendes Verschlüsselungsverfahren, um den verschlüsselten Datenverschlüsselungsschlüssel 3208 zu entschlüsseln, und extrahiert einen Datenverschlüsselungsschlüssel 3212. Die Datenentschlüsselungseinheit 310 kann die Daten durch Entschlüsseln des verschlüsselten Datenkörpers mit dem Datenverschlüsselungsschlüssel 3212 erfassen.
  • <3. Verfahren zur Erzeugung eines Attribut-Vektors und eines Prädikat-Vektors>
  • Das Attributinformationen-Verschlüsselungs-Array 501 wird im Folgenden beschrieben.
  • Das Attributinformationen-Verschlüsselungs-Array 501 ist ein Array, das zur Erzeugung von Verschlüsselungsinformationen durch die Verschlüsselungsinformationen-Erzeugungseinheit 206 des Schlüsselverwaltungsservers 201 und die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 verwendet wird. Das heißt, das Attributinformationen-Verschlüsselungs-Array 501 wird verwendet, um Verschlüsselungsinformationen zu erzeugen, auf deren Grundlage ein Prädikatvektor, der zur Erzeugung eines geheimen Benutzerschlüssels verwendet wird, und ein Attributvektor, der zur Erzeugung verschlüsselter Daten verwendet wird, erzeugt werden.
  • Die Verschlüsselungsinformationen-Erzeugungseinheit 206 und die Verschlüsselungsinformationen-Erzeugungseinheit 306 erzeugen Verschlüsselungsinformationen durch Einstellen von Werten in das Attributinformationen-Verschlüsselungs-Array 501 gemäß den unten beschriebenen Verfahren.
  • Die Prädikatverschlüsselung für innere Produkte (und die Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützt) ist dadurch gekennzeichnet, dass es möglich ist, festzustellen, ob ein inneres Produkt aus einem Attributvektor und einem Prädikatvektor 0 ist. Es ist bekannt, dass dieses Merkmal verwendet werden kann, um Bestimmungen über UND-Bedingungen, ODER-Bedingungen und Einschlussbeziehungen durchzuführen.
  • Das Attributinformationen-Verschlüsselungs-Array 501 dient dazu, Attributinformationen so zu kodieren, dass die Attribute eines Benutzers, der einen geheimen Benutzerschlüssel besitzt, und die Attribute eines Benutzers, der verschlüsselte Daten abrufen darf, unter Verwendung von UND-Bedingungen und ODER-Bedingungen verglichen werden können. Es ist zu beachten, dass das Attributinformationen-Verschlüsselungs-Array 501 eine Information von fester Länge ist, und dass die erforderliche Anzahl von Bestandteilen jedes Verschlüsselungs-Arrays, die im Folgenden beschrieben wird, eine Information ist, die bei der Verwendung des Systems im Voraus festgelegt werden muss. Der Einfachheit halber werden in dieser Ausführungsform typische Beispiele mit UND- und ODER-Bedingungen dargestellt, aber Einzelheiten einschließlich der Bedingungen für die Einschlussbeziehung sind in der Patentliteratur 4 offenbart.
  • 7 zeigt ein Beispiel für eine Konfiguration des Attributinformationen-Verschlüsselungs-Arrays 501.
  • Das Attributinformationen-Verschlüsselungs-Array 501 umfasst einen individuellen Identifikator (ID) 502, ein Zugehörigkeitsinformationen-Verschlüsselungs-Array 503, ein Stellungsinformationen-Verschlüsselungs-Array 504, ein Kategorie-Verschlüsselungs-Array 505, ein Vertraulichkeitsstufen-Verschlüsselungs-Array 506 und ein Suchwort-Verschlüsselungs-Array 511.
  • Die individuelle ID 502 identifiziert einen Benutzer. Das Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 gibt an, wo der Benutzer hingehört. Das Stellungsinformationen-Verschlüsselungs-Array 504 gibt eine Stellung des Benutzers an. Das Kategorie-Verschlüsselungs-Array 505 gibt eine Art von Dokumenten an, auf die zugegriffen werden kann. Das Vertraulichkeitsstufen-Verschlüsselungs-Array 506 gibt eine Vertraulichkeitsstufe der Dokumente an, auf die zugegriffen werden kann. Im Suchwort-Verschlüsselungs-Array 511 wird ein Suchwort festgelegt, nach dem bei der Erzeugung einer Trapdoor gesucht werden soll.
  • Wenn ein Attribut zur Erzeugung eines geheimen Benutzerschlüssels verwendet wird, wird in jedem Attributinformationen-Verschlüsselungs-Array 501 ein Attribut eines Benutzers oder einer Gruppe, die den geheimen Schlüssel verwendet, festgelegt. Das heißt, die Verschlüsselungsinformationen-Erzeugungseinheit 206 des Schlüsselverwaltungsservers 201 erzeugt Verschlüsselungsinformationen, indem sie das Attribut des Benutzers oder der Gruppe, die den geheimen Benutzerschlüssel verwendet, in jedem Verschlüsselungs-Array im Attributinformationen-Verschlüsselungs-Array 501 festlegt.
  • Bei Verwendung als Attribut in verschlüsselten Daten wird in jedem Verschlüsselungs-Array im Attributinformationen-Verschlüsselungs-Array 501 ein Attribut eines Benutzers gesetzt, der die verschlüsselten Daten abrufen darf. Das heißt, die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 erzeugt die Verschlüsselungsinformationen, indem sie das Attribut des Benutzers, der die verschlüsselten Daten abrufen darf, in jedem Verschlüsselungs-Array im Attributinformationen-Verschlüsselungs-Array 501 festlegt.
  • Wie später beschrieben wird, muss für einige der Attributinformationen-Verschlüsselungs-Arrays im Attributinformationen-Verschlüsselungs-Array 501 für jedes Verschlüsselungs-Array entschieden werden, ob ein Vergleich mit einem UND-Test oder einem ODER-Test durchgeführt werden soll. Der UND-Test ist ein Verfahren zur Ermittlung einer Übereinstimmung aller Elemente, aus denen das Verschlüsselungs-Array besteht. Der ODER-Test ist ein Verfahren zur Feststellung der Übereinstimmung eines der Elemente.
  • Das heißt, dass entweder der UND-Test oder der ODER-Test verwendet wird, um jedes Verschlüsselungs-Array der Verschlüsselungsinformationen, auf deren Grundlage der Prädikatvektor in einem geheimen Benutzerschlüssel erzeugt wird, mit jedem Verschlüsselungs-Array der Verschlüsselungsinformationen zu vergleichen, auf deren Grundlage der Attributvektor in einem Tag oder einem verschlüsselten Datenverschlüsselungsschlüssel erzeugt wird. Wenn ein Ergebnis des Tests für alle Verschlüsselungs-Arrays wahr ist, d. h. wenn ein Ergebnis der Durchführung einer Bestimmung durch den UND-Test für alle Verschlüsselungs-Arrays wahr ist, ist ein Abruf oder eine Entschlüsselung möglich.
  • Im Folgenden werden die einzelnen Elemente des Attributinformationen-Verschlüsselungs-Arrays 501 beschrieben.
  • In der folgenden Beschreibung der einzelnen Elemente des Attributinformationen-Verschlüsselungs-Arrays 501 werden ein Fall, in dem ein geheimer Benutzerschlüssel erzeugt wird, und ein Fall, in dem verschlüsselte Daten erzeugt werden, beschrieben.
  • Die individuelle ID 502 wird im Folgenden beschrieben.
  • In der individuellen ID 502 wird eine ID, z. B. eine Mitarbeiternummer, eingestellt, die auf eine Person hinweist. Bei der Generierung eines geheimen Benutzerschlüssels wird immer die individuelle ID 502 gesetzt. Bei der Erzeugung verschlüsselter Daten wird die ID einer Person festgelegt, wenn die verschlüsselten Daten an diese Person übermittelt werden sollen. Wird eine Person, die zum Abruf berechtigt ist, nicht näher spezifiziert, werden vorgegebene Informationen „*“, die mit allen Werten übereinstimmen, gesetzt.
  • In Bezug auf die individuelle ID 502 werden ein geheimer Benutzerschlüssel und verschlüsselte Daten durch den UND-Test verglichen. Es ist zu beachten, dass auch in der folgenden Beschreibung das Symbol „*“ als spezielles Symbol verwendet wird, das auf alle Werte passt (ein so genanntes Jokerzeichen).
  • 8 zeigt ein Beispiel für die Einstellung der individuellen ID 502.
  • So wird beispielsweise angenommen, dass im geheimen Benutzerschlüssel ein Wert mit der Bezeichnung „Person A“ wie eine individuelle ID 1 eingestellt ist. Wenn der Wert „Person A“ auch in den verschlüsselten Daten wie eine individuelle ID 2 gesetzt ist, stimmen die Werte des geheimen Benutzerschlüssels und der verschlüsselten Daten überein, so dass ein Abruf möglich ist. Wenn jedoch „Person B“ in den verschlüsselten Daten wie eine individuelle ID 3 eingestellt ist, sind die Werte des geheimen Benutzerschlüssels und der verschlüsselten Daten unterschiedlich, so dass ein Abruf nicht möglich ist.
  • Wenn „*“ in den verschlüsselten Daten wie eine individuelle ID 4 gesetzt ist, entweder mit dem geheimen Benutzerschlüssel, der wie die individuelle ID 1 gesetzt ist, oder dem geheimen Benutzerschlüssel, der wie die individuelle ID 3 gesetzt ist, ist das Ergebnis des UND-Tests wahr, so dass ein Abruf möglich ist.
  • Das Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 wird im Folgenden beschrieben.
  • 9 zeigt ein Beispiel für eine Konfiguration des Zugehörigkeitsinformationen-Verschlüsselungs-Arrays 503.
  • In dem Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 wird die Zugehörigkeit des Benutzers in absteigender Reihenfolge der Hierarchie festgelegt. In dieser Reihenfolge werden beispielsweise festgelegt: eine Unternehmens-ID 601, die angibt, zu welchem Unternehmen der Benutzer gehört, eine Büro-ID 602, die angibt, zu welchem Büro der Benutzer gehört, eine Abteilungs-ID 603, die angibt, zu welcher Abteilung der Benutzer gehört, eine Sektions-ID 604, die angibt, zu welcher Sektion der Benutzer gehört, und eine Einheits-ID 605, die angibt, zu welcher Einheit der Benutzer gehört.
  • In Bezug auf das Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 werden ein geheimer Benutzerschlüssel und verschlüsselte Daten durch den UND-Test verglichen, der feststellt, ob eine Übereinstimmung in allen Elementen vorliegt. Wenn sie wahr ist, gelten die Bedingungen als erfüllt.
  • 10 zeigt ein Beispiel für die Einstellung des Zugehörigkeitsinformationen-Verschlüsselungs-Arrays 503.
  • Ein Zugehörigkeitsinformationen-Verschlüsselungs-Array 1 ist beispielsweise ein Beispiel für einen geheimen Benutzerschlüssel, der für einen Benutzer erzeugt wird, der zu „Unternehmen A/Büro B/Abteilung C/Sektion D/Einheit E“ gehört.
  • Wenn verschlüsselte Daten erzeugt werden, die von einem beliebigen Benutzer in Sektion D abgerufen werden können, wird in einem Zugehörigkeitsinformationen-Verschlüsselungs-Array 2 die Angabe „Firma A/Büro B/Abteilung C/Sektion D/*“ gesetzt. In diesem Fall tritt bei jedem Benutzer in Sektion D eine Übereinstimmung in allen Elementen auf, wenn der UND-Test durchgeführt wird, so dass das Ergebnis wahr ist und der Abruf möglich ist. Damit jeder Benutzer in Abteilung C die verschlüsselten Daten abrufen kann, wird ein Attribut, wie in einem Zugehörigkeitsinformationen-Verschlüsselungs-Array 3 angegeben, gesetzt.
  • Für verschlüsselte Daten, die von den Mitgliedern der Sektion E abgerufen werden können, wird ein Attribut, wie in einem Zugehörigkeitsinformationen-Verschlüsselungs-Array 4 angegeben, gesetzt. In diesem Fall gibt es bei einem Benutzer der Sektion D, der über einen geheimen Schlüssel verfügt, in dem das im Zugehörigkeitsinformationen-Verschlüsselungs-Array 1 angegebene Attribut gesetzt ist, einen Unterschied in den Informationen über die Sektion „Sektion D“ und „Sektion E“, so dass das Ergebnis des UND-Tests falsch ist und der Abruf nicht möglich ist.
  • In ähnlicher Weise kann bei der Erzeugung verschlüsselter Daten, die von einem Benutzer der Sektion D, der keiner Einheit angehört, abgerufen werden können, eine Zufallszahl R in der Einheits-ID 605 festgelegt werden, wie in einem Zugehörigkeitsinformationen-Verschlüsselungs-Array 5 angegeben. Bei einem Benutzer, der laut Zugehörigkeitsinformationen-Verschlüsselungs-Array 1 zu „Einheit E“ gehört, ist die Einheits-ID 605 anders, so dass das Ergebnis des UND-Tests falsch ist und ein Abruf nicht möglich ist. Im Gegensatz dazu hat ein Benutzer der Sektion D, der keiner Einheit angehört, einen geheimen Benutzerschlüssel, in dem das Attribut, das im Zugehörigkeitsinformationen-Verschlüsselungs-Array 2 angegeben ist, gesetzt ist. Daher tritt in allen Elementen eine Übereinstimmung auf, so dass das Ergebnis des UND-Tests wahr ist und der Abruf möglich ist.
  • In der obigen Darstellung wird eine Zufallszahl mit dem Symbol R bezeichnet. Im Folgenden wird eine Zufallszahl ebenfalls mit dem Symbol R bezeichnet. Da eine Zufallszahl R jedoch einen zufällig ausgewählten Wert angibt, sind eine Zufallszahl R und eine Zufallszahl R auch dann unterschiedliche Zufallszahlen, wenn sie an zwei Stellen in einem Verschlüsselungs-Array erscheinen.
  • Das Stellungsinformationen-Verschlüsselungs-Array 504 wird im Folgenden beschrieben.
  • 11 zeigt ein Beispiel für eine Konfiguration des Stellungsinformationen-Verschlüsselungs-Arrays 504.
  • Im Stellungsinformationen-Verschlüsselungs-Array 504 werden Informationen über die vom Benutzer gehaltene Stellung eingestellt.
  • Das Stellungsinformationen-Verschlüsselungs-Array 504 besteht beispielsweise aus einem Vorstandsklassen-Flag 701, das anzeigt, dass der Benutzer eine Stellung in der Vorstandsklasse innehat, einem Büroleiterklassen-Flag 702, das anzeigt, dass der Benutzer eine Stellung in der Büroleiterklasse innehat, einem Abteilungsleiterklassen-Flag 703, einem Sektionsleiterklassen-Flag 704 und einem Einheitsleiterklassen-Flag 705, die den oben genannten Flaggen ähnlich sind, und einem Mitarbeiterklassen-Flag 706, das anzeigt, dass der Benutzer keine Stellung innehat.
  • Als Verfahren zum Setzen der Flaggen des Stellungsinformationen-Verschlüsselungs-Arrays 504 werden hier zwei Arten von Beispielen genannt.
  • In einem ersten Einstellungsbeispiel wird bei der Erzeugung eines geheimen Benutzerschlüssels der Wert „1“ in das Kennzeichen einer gehaltenen Stellung und „*“ in das Kennzeichen einer nicht gehaltenen Stellung gesetzt. Bei der Generierung verschlüsselter Daten wird in das Flag einer Stellung, auf die zugegriffen werden darf, der Wert „1“ gesetzt, und in die Flags der Stellungen, auf die nicht zugegriffen werden darf, werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden. In diesem Fall werden in Bezug auf das Stellungsinformationen-Verschlüsselungs-Array 504 der geheime Benutzerschlüssel und die verschlüsselten Daten durch den UND-Test verglichen, der feststellt, ob eine Übereinstimmung in allen Elementen vorliegt. Nur wenn das Testergebnis richtig ist, ist ein Abruf möglich.
  • 12 ist eine Figur, die ein Beispiel für die Einstellung des Stellungsinformationen-Verschlüsselungs-Arrays 504 im ersten Einstellungsbeispiel zeigt.
  • Zum Beispiel wird für einen geheimen Benutzerschlüssel, der einem Sektionsleiter gehört, im Sektionsleiterklassen-Flag 704 der Wert „1“ und in den anderen Flags der Wert „*“ gesetzt, wie in einem Stellungsinformationen-Verschlüsselungs-Array 1 angegeben. Im Gegensatz dazu wird für einen geheime Benutzerschlüssel, der einem Einheitsleiterklassen-Flag 705 gehört, der Wert „1“ und in den anderen Flags der Wert „*“ gesetzt, wie in einem Stellungsinformationen-Verschlüsselungs-Array 2 angegeben.
  • Für verschlüsselte Daten, die von einem Abteilungsleiter und einem Sektionsleiter abgerufen werden können, wird ein Attribut wie ein Stellungsinformationen-Verschlüsselungs-Array 3 gesetzt. Das heißt, der Wert „1“ wird im Abteilungsleiter-Flag und im Sektionsleiter-Flag gesetzt, und Zufallszahlen R, die sich voneinander unterscheiden, werden jeweils in den anderen Kennzeichen gesetzt. Vergleicht man diese verschlüsselten Daten mit dem oben genannten geheimen Benutzerschlüssel des Sektionsleiters, so ergibt sich in allen Elementen eine Übereinstimmung, so dass das Ergebnis des UND-Tests wahr ist und der Abruf mit dem geheimen Benutzerschlüssel des Sektionsleiters durchgeführt werden kann. Bei dem oben genannten geheimen Benutzerschlüssel des Einheitsleiters gibt es dagegen eine Differenz zwischen den Werten des Einheitsleiterklassen-Flags 705, „1“ und der Zufallszahl „R“, so dass das Prüfergebnis falsch ist und ein Abruf nicht möglich ist.
  • Für verschlüsselte Daten, die von allen Abteilungsleitern, Sektionsleitern, Referatsleitern und Mitarbeitern abgerufen werden können, wird ein Attribut, wie in einem Stellungsinformationen-Verschlüsselungs-Array 4 angegeben, gesetzt. In diesem Fall kommt es entweder mit dem obigen geheimen Benutzerschlüssel des Sektionsleiters oder mit dem obigen geheimen Benutzerschlüssel des Referatsleiters zu einer Übereinstimmung in allen Elementen, so dass das Ergebnis des UND-Tests wahr ist und der Abruf möglich ist.
  • In einem zweiten Einstellungsbeispiel wird bei der Erzeugung eines geheimen Benutzerschlüssels der Wert „1“ in das Flag jeder gehaltenen Stellung gesetzt, und in die Flags der nicht gehaltenen Stellungen werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden. Bei der Generierung verschlüsselter Daten wird im Flag jeder Stellung, auf die zugegriffen werden darf, der Wert „1“ gesetzt, und in den Flags der Stellungen, auf die nicht zugegriffen werden darf, werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden. In diesem Fall werden in Bezug auf das Stellungsinformationen-Verschlüsselungs-Array 504 der geheime Benutzerschlüssel und die verschlüsselten Daten mit dem ODER-Test verglichen, bei dem nur eines der Elemente übereinstimmen muss, und der Abruf ist nur möglich, wenn das Testergebnis wahr ist.
  • 13 ist eine Figur, die ein Beispiel für die Einstellung des Stellungsinformationen-Verschlüsselungs-Arrays 504 im zweiten Einstellungsbeispiel zeigt.
  • Beispielsweise wird für einen geheimen Benutzerschlüssel, der einem Sektionsleiter gehört, im Sektionsleiterklassen-Flag 704 der Wert „1“ gesetzt und in den anderen Flags werden Zufallszahlen R gesetzt, die sich voneinander unterscheiden, wie in einem Stellungsinformationen-Verschlüsselungs-Array 5 angegeben. Im Gegensatz dazu wird für einen geheime Benutzerschlüssel eines Benutzers, der sowohl die Stellung eines Abteilungsleiters als auch die eines Sektionsleiters innehat, im Abteilungsleiterklassen-Flag 703 und im Sektionsleiterklassen-Flag 704 der Wert „1“ gesetzt, und in den anderen Flags werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden.
  • Für verschlüsselte Daten, die von einem Sektionsleiter abgerufen werden können, wird im Sektionsleiter-Flag der Wert „1“ gesetzt und in den anderen Flags werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden, wie in einem Stellungsinformationen-Verschlüsselungs-Array 7 angegeben. Werden diese verschlüsselten Daten und der oben genannte geheime Benutzerschlüssel des Sektionsleiters verglichen, kommt es zu einer Übereinstimmung im Sektionsleiterklassen-Flag 704, so dass das Ergebnis des ODER-Tests wahr ist und der Abruf mit dem geheimen Benutzerschlüssel des Sektionsleiters durchgeführt werden kann. Dies gilt auch für den oben genannten geheimen Benutzerschlüssel des Abteilungsleiters und des Sektionsleiters.
  • Im Gegensatz dazu wird für verschlüsselte Daten, die von einem Abteilungsleiter abgerufen werden können, ein Attribut gesetzt, das in einem Stellungsinformationen-Verschlüsselungs-Array 8 angegeben ist. In diesem Fall kommt es mit dem oben genannten geheimen Benutzerschlüssel sowohl des Sektionsleiters als auch des Abteilungsleiters zu einer Übereinstimmung des Wertes „1“ im Abteilungsleiterklassen-Flag 703, so dass ein Abruf möglich ist. Mit dem oben genannten geheime Benutzerschlüssel des Sektionsleiters kommt es dagegen in keinem der Elemente zu einer Übereinstimmung, so dass das Ergebnis des ODER-Tests falsch ist und der Abruf nicht möglich ist.
  • Obwohl alle Zufallszahlen in der Figur mit R bezeichnet werden, ist jeder von ihnen eine andere Zufallszahl zugeordnet, so dass die Wahrscheinlichkeit einer Übereinstimmung äußerst gering und vernachlässigbar ist.
  • Das Kategorie-Verschlüsselungs-Array 505 wird im Folgenden beschrieben.
  • 14 zeigt ein Beispiel für eine Konfiguration des Kategorie-Verschlüsselungs-Arrays 505.
  • Das Kategorie-Verschlüsselungs-Array 505 wird verwendet, um die abrufbaren Dokumentgattungen einzuschränken.
  • Das Kategorie-Verschlüsselungs-Array 505 besteht zum Beispiel aus einer Große-Klassifizierungs-ID 801, die eine große Klassifizierung angibt, einer Mittlere-Klassifizierungs-ID 802, die eine mittlere Klassifizierung angibt, und einer Kleine-Klassifizierungs-ID 803, die eine kleine Klassifizierung angibt.
  • In Bezug auf das Kategorie-Verschlüsselungs-Array 505 werden ein geheimer Benutzerschlüssel und verschlüsselte Daten durch den UND-Test verglichen, der prüft, ob in allen Elementen eine Übereinstimmung vorliegt.
  • 15 zeigt ein Beispiel für die Einstellung des Kategorie-Verschlüsselungs-Arrays 505.
  • Zum Beispiel wird für einen Benutzer, der auf alle Daten zugreifen darf, in allen IDs für einen geheimen Benutzerschlüssel „*“ gesetzt, wie in einem Kategorie-Verschlüsselungs-Array 1 angegeben. Im Gegensatz dazu wird für einen Benutzer, der nur auf Daten im Zusammenhang mit Entwicklung A zugreifen darf, „Entwicklung A“ in der Große-Klassifizierungs-ID 801 für einen geheimen Benutzerschlüssel festgelegt, wie in einem Kategorie-Verschlüsselungs-Array 2 angegeben.
  • Bei der Erzeugung verschlüsselter Daten werden Werte zur Angabe aller Klassifizierungen festgelegt. Bei den externen Spezifikationen der Entwicklung A wird das Attribut für die verschlüsselten Daten z. B. wie in einem Kategorie-Verschlüsselungs-Array 3 angegeben gesetzt. In diesem Fall kommt es entweder mit dem obigen geheime Benutzerschlüssel des Kategorie-Verschlüsselungs-Arrays 1 oder mit dem obigen geheime Benutzerschlüssel des Kategorie-Verschlüsselungs-Arrays 2 zu einer Übereinstimmung in allen Elementen, so dass das Ergebnis des UND-Tests wahr ist und der Abruf möglich ist.
  • Wie in einem Kategorie-Verschlüsselungs-Array 4 angegeben, ist das Ergebnis des UND-Tests wahr und der Abruf möglich, wenn mit dem geheimen Benutzerschlüssel des Kategorie-Verschlüsselungs-Arrays 1 eine Klassifizierung festgelegt wird, die einen Budgetplan für Personalausgaben für das Jahr 2009 angibt. Mit dem geheimen Benutzerschlüssel des Kategorie-Verschlüsselungs-Arrays 2 ist der Wert der großen Klassifizierung jedoch anders, so dass das Ergebnis des UND-Tests falsch ist und der Abruf nicht möglich ist.
  • Das Vertraulichkeitsstufen-Verschlüsselungs-Array 506 wird im Folgenden beschrieben.
  • 16 zeigt ein Beispiel für eine Konfiguration des Vertraulichkeitsstufen-Verschlüsselungs-Arrays 506.
  • Das Vertraulichkeitsstufen-Verschlüsselungs-Array 506 wird verwendet, um die Vertraulichkeitsstufe der abrufbaren Dokumente zu begrenzen.
  • Es besteht beispielsweise aus einem „streng vertraulich“-Flag 901, das auf streng vertrauliche Daten hinweist, einem „vertraulich“-Flag 902, das auf vertrauliche Daten hinweist, einem „vertraulich - nur intern“-Flag 903, das auf vertrauliche Daten hinweist, die nur für den internen Gebrauch bestimmt sind, und einem „nicht zutreffend“-Flag 904, das anzeigt, dass keine der Vertraulichkeitsstufen gilt.
  • Als Verfahren zum Setzen der Flags des Vertraulichkeitsstufen-Verschlüsselungs-Arrays 506 werden zwei Arten von Beispielen genannt.
  • In einem ersten Einstellungsbeispiel wird bei der Erzeugung eines geheimen Benutzerschlüssels der Wert „1“ in das Flag gesetzt, das einem durchsuchbaren Vertraulichkeitsgrad entspricht, und Zufallszahlen R, die sich voneinander unterscheiden, werden jeweils in die Flags gesetzt, die nicht durchsuchbaren Vertraulichkeitsgraden entsprechen. Wenn verschlüsselte Daten erzeugt werden, wird der Wert „1“ in das Kennzeichen gesetzt, das dem Vertraulichkeitsgrad der Daten entspricht, und „*“ in ein Kennzeichen, das nicht dem Vertraulichkeitsgrad der Daten entspricht. Der geheime Benutzerschlüssel und die verschlüsselten Daten werden mit dem UND-Test verglichen, der feststellt, ob eine Übereinstimmung in allen Elementen vorliegt, und der Abruf ist nur möglich, wenn das Testergebnis wahr ist.
  • 17 ist eine Figur, die ein Beispiel für die Einstellung des Vertraulichkeitsstufen-Verschlüsselungs-Arrays 506 im ersten Einstellungsbeispiel zeigt.
  • Beispielsweise wird für einen geheimen Benutzerschlüssel, der auf Daten mit einer niedrigeren Vertraulichkeitsstufe als streng vertraulich zugreifen kann, im „vertraulich“-Flag 902, im „vertraulich - nur intern“-Flag 903 und im „nicht zutreffend“-Flag 904 ein Wert „1“ und im „streng vertraulich“-Flag 901 eine Zufallszahl R gesetzt, wie in einem Vertraulichkeitsstufen-Verschlüsselungs-Array 1 angegeben. Im Gegensatz dazu wird bei einem geheimen Benutzerschlüssel, der auf Daten aller Vertraulichkeitsstufen zugreifen kann, in allen Flags der Wert „1“ gesetzt, wie in einem Vertraulichkeitsstufen-Verschlüsselungs-Array 2 angegeben.
  • Wenn verschlüsselte Daten erzeugt werden, wird in dem Flag, das dem Vertraulichkeitsgrad der Daten entspricht, eine „1“ und in den anderen Flags ein „*“ gesetzt. Wenn beispielsweise vertrauliche Daten verschlüsselt werden, wird im „vertraulich“-Flag 902 der Wert „1“ und in den anderen Flags der Wert „*“ gesetzt, wie in einem Vertraulichkeitsstufen-Verschlüsselungs-Array 3 angegeben. Wenn in diesem Fall der UND-Test mit dem oben genannten geheimen Benutzerschlüssel durchgeführt wird, in dem das Vertraulichkeitsstufen-Verschlüsselungs-Array 1, das den Zugriff auf Daten mit einer niedrigeren Vertraulichkeitsstufe als streng vertraulich erlaubt, eingestellt ist, kommt es in allen Elementen zu einer Übereinstimmung, so dass das Ergebnis wahr ist und der Abruf möglich ist. Auch wenn der UND-Test mit dem oben genannten geheimen Benutzerschlüssel durchgeführt wird, in dem das Vertraulichkeitsstufen-Verschlüsselungs-Array 2, das den Zugriff auf Daten aller Vertraulichkeitsstufen erlaubt, eingestellt ist, kommt es zu einer Übereinstimmung in allen Elementen, so dass das Ergebnis wahr ist und der Abruf möglich ist.
  • Im Gegensatz dazu wird bei der Verschlüsselung streng vertraulicher Daten für das „streng vertraulich“-Flag 901 der Wert „1“ und für die anderen Flags der Wert „*“ gesetzt, wie in einem Vertraulichkeitsstufen-Verschlüsselungs-Array 4 angegeben. Wenn in diesem Fall der UND-Test mit dem oben genannten geheimen Benutzerschlüssel durchgeführt wird, in dem das Vertraulichkeitsstufen-Verschlüsselungs-Array 1, das den Zugriff auf Daten einer niedrigeren Vertraulichkeitsstufe als streng vertraulich erlaubt, gesetzt ist, gibt es einen Unterschied im Wert des „streng-vertraulich“-Flags 901, so dass das Ergebnis falsch ist und der Abruf nicht durchgeführt werden kann. Wird jedoch der UND-Test mit dem oben genannten geheimen Benutzerschlüssel durchgeführt, in dem das Vertraulichkeitsstufen-Verschlüsselungs-Array 2, das den Zugriff auf Daten aller Vertraulichkeitsstufen erlaubt, eingestellt ist, kommt es in allen Elementen zu einer Übereinstimmung, so dass das Ergebnis wahr ist und der Abruf möglich ist.
  • Als zweites Beispiel für die Einstellung wird bei der Generierung eines geheimen Benutzerschlüssels der Wert „1“ in das Flag gesetzt, das einem durchsuchbaren Vertraulichkeitsgrad entspricht, und in die Flags, die nicht durchsuchbaren Vertraulichkeitsgraden entsprechen, werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden. Wenn verschlüsselte Daten erzeugt werden, wird in dem Flag, das dem Vertraulichkeitsgrad der Daten entspricht, der Wert „1“ gesetzt, und in den Flags, die nicht dem Vertraulichkeitsgrad der Daten entsprechen, werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden. Der geheime Benutzerschlüssel und die verschlüsselten Daten werden durch den ODER-Test verglichen, der eine Übereinstimmung in nur einem der Elemente erfordert, und der Abruf ist nur möglich, wenn das Testergebnis wahr ist.
  • 18 ist eine Figur, die ein Beispiel für die Einstellung des Vertraulichkeitsstufen-Verschlüsselungs-Arrays 506 im zweiten Einstellungsbeispiel zeigt.
  • Ein Beispiel für die Einstellung des Vertraulichkeitsstufen-Verschlüsselungs-Arrays, das in einem geheimen Benutzerschlüssel enthalten sein soll, ist im Wesentlichen dasselbe wie die in 17 gezeigten Fälle, so dass auf eine Beschreibung verzichtet wird.
  • Wenn verschlüsselte Daten erzeugt werden, wird in dem Flag, das dem Vertraulichkeitsgrad der Daten entspricht, der Wert „1“ gesetzt, und in den anderen Flags werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden. Wenn beispielsweise vertrauliche Daten verschlüsselt werden, wird im „vertraulich“-Flag 902 der Wert „1“ gesetzt und in den anderen Flags werden Zufallszahlen R gesetzt, die sich voneinander unterscheiden, wie in einem Vertraulichkeitsstufen-Verschlüsselungs-Array 5 angegeben. Wenn in diesem Fall der ODER-Test mit dem oben genannten geheimen Benutzerschlüssel durchgeführt wird, in dem das Vertraulichkeitsstufen-Verschlüsselungs-Array 1, das den Zugriff auf Daten einer niedrigeren Vertraulichkeitsstufe als streng vertraulich erlaubt, gesetzt ist, kommt es zu einer Übereinstimmung im Wert des „vertraulich“-Flags 902, so dass das Ergebnis wahr ist und der Abruf möglich ist. Auch wenn der ODER-Test mit dem oben genannten geheimen Benutzerschlüssel durchgeführt wird, in dem das Vertraulichkeitsstufen-Verschlüsselungs-Array 2, das den Zugriff auf Daten aller Vertraulichkeitsstufen erlaubt, gesetzt ist, tritt eine Übereinstimmung im Wert des „vertraulich“-Flags 902 auf, so dass das Ergebnis wahr ist und der Abruf möglich ist.
  • Bei der Verschlüsselung streng vertraulicher Daten wird im „streng vertraulich“-Flag 901 der Wert „1“ gesetzt, und in den anderen Flags werden jeweils Zufallszahlen R gesetzt, die sich voneinander unterscheiden, wie in einem Vertraulichkeitsstufen-Verschlüsselungs-Array 6 angegeben. Wird in diesem Fall der ODER-Test mit dem oben genannten geheimen Benutzerschlüssel durchgeführt, bei dem das Vertraulichkeitsstufen-Verschlüsselungs-Array 1, das den Zugriff auf Daten einer niedrigeren Vertraulichkeitsstufe als streng vertraulich erlaubt, gesetzt ist, gibt es Unterschiede in den Werten aller Flags, so dass das Ergebnis falsch ist und der Abruf nicht durchgeführt werden kann. Wird der ODER-Test jedoch mit dem oben genannten geheimen Benutzerschlüssel durchgeführt, bei dem das Vertraulichkeitsstufen-Verschlüsselungs-Array 2, das den Zugriff auf Daten aller Vertraulichkeitsstufen erlaubt, gesetzt ist, kommt es zu einer Übereinstimmung im Wert des „streng vertraulich“-Flags, so dass das Ergebnis wahr ist und der Abruf möglich ist.
  • Das Suchwort-Verschlüsselungs-Array 511 wird im Folgenden beschrieben.
  • Bei dem Suchwort-Verschlüsselungs-Array 511 handelt es sich um ein Feld, das bei der Suche nach Daten gesetzt wird, wobei eine geeignete Struktur entsprechend der Struktur der vom Unternehmen verwalteten Daten festgelegt werden muss. Werden die Daten beispielsweise wie eine Datenbank strukturiert verwaltet, muss auch das Suchwort-Verschlüsselungs-Array entsprechend strukturiert sein, um zu überprüfen, ob eine Suchwort-Übereinstimmung für jede Spalte vorliegt. Im Gegensatz dazu sind die Daten bei allgemeinen Dokumenten nicht strukturiert, so dass ein Verschlüsselungs-Array entwickelt werden muss, das keinen Einfluss auf die Reihenfolge der Schlüsselwörter hat. Der Einfachheit halber wird hier ein Beispiel für einen Fall beschrieben, in dem die Daten strukturiert verwaltet werden.
  • 19 zeigt ein Einstellungsbeispiel 1 für das Suchwort-Verschlüsselungs-Array 511. 19 zeigt ein Beispiel für eine UND-Suche nach Schlüsselwörtern in einer Datenbank, die eine Historie der Käufe und Verkäufe von Waren verwaltet.
  • Wenn die Daten verschlüsselt werden, werden die Daten jedes in der Datenbank gespeicherten Elements in das Suchwort-Verschlüsselungs-Array 511 eingestellt. Wenn beispielsweise die Daten eines Falles, bei dem drei PCs am 5. Oktober 2009 zu 100.000 Yen pro PC gekauft wurden, in Zeile 1 der Datenbank gespeichert sind, wird in dem Suchwort-Verschlüsselungs-Array 511 jedes Element des Verschlüsselungs-Arrays so eingestellt, dass es jeder Spalte der Datenbank entspricht, wie in Suchwort-Verschlüsselungs-Array 1 angegeben. Wenn die Daten eines Falles, in dem zwei PCs am 10. November 2009 zu 80.000 Yen pro PC gekauft wurden, in Zeile 2 der Datenbank gespeichert sind, wird das Suchwort-Verschlüsselungs-Array 511 wie in Suchwort-Verschlüsselungs-Array 2 angegeben konfiguriert. Wenn die Daten eines Falles, in dem ein PC am 15. Januar 2010 entsorgt wurde, in Zeile 3 der Datenbank gespeichert sind, wird das Suchwort-Verschlüsselungs-Array 511 wie in Suchwort-Verschlüsselungs-Array 3 angegeben konfiguriert. Es ist zu beachten, dass ein leeres (nicht gesetztes) Element der Datenbank als „-“ dargestellt wird, wie in Spalte 7 eines Suchwort-Verschlüsselungs-Arrays 3 angegeben.
  • Wenn ein geheimer Benutzerschlüssel generiert wird, wird, um jede Spalte durchsuchbar zu machen, „*“ in jedes aller Elemente im Suchwort-Verschlüsselungs-Array 511 gesetzt, das jeder Spalte entspricht, wie in einem Suchwort-Verschlüsselungs-Array 4 angegeben.
  • Wenn der Benutzer bei der Erstellung einer Trapdoor als zu suchende Schlüsselwörter angibt, dass eine Historie der PC-Käufe im Jahr 2009 benötigt wird, wird das Suchwort-Verschlüsselungs-Array 511 wie in Suchwort-Verschlüsselungs-Array 5 angegeben gesetzt. Das Suchwort-Verschlüsselungs-Array 5 wird erzeugt, wenn eine Trapdoor auf der Grundlage eines geheimen Benutzerschlüssels erzeugt wird. Durch die Durchführung des UND-Tests für jedes Element des Suchwort-Verschlüsselungs-Arrays 5 und jedes Element des Suchwort-Verschlüsselungs-Arrays 1 und des Suchwort-Verschlüsselungs-Arrays 2 tritt in allen Elementen eine Übereinstimmung auf, so dass das Testergebnis wahr ist und der Abruf möglich ist. Das bedeutet, dass bei einer Suche nach den verschlüsselten Daten mit Hilfe der Trapdoor ein Treffer erzielt wird. Wird dagegen der UND-Test für jedes Element des Suchwort-Verschlüsselungs-Arrays 5 und jedes Element des Suchwort-Verschlüsselungs-Arrays 3 durchgeführt, sind die Elemente in Spalte 8 unterschiedlich, so dass das Testergebnis falsch ist. Dies bedeutet, dass die verschlüsselten Daten bei einer Suche mit der Trapdoor nicht als Treffer gefunden werden. Das heißt, ein Nachweis über die Entsorgung eines PCs wird nicht abgerufen.
  • Wie oben beschrieben, umfasst das Attributinformationen-Verschlüsselungs-Array 501 verschiedene Arten von Verschlüsselungs-Arrays.
  • Zum Beispiel gibt es wie beim Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 ein Verschlüsselungs-Array, in dem jedem Element des Verschlüsselungs-Arrays ein Attribut-Element zugeordnet ist, in dem ein Benutzer-Attribut gesetzt ist. In dem Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 wird jedem Element des Verschlüsselungs-Arrays ein Attribut-Element wie die Unternehmens-ID 601, die Büro-ID 602 oder ähnliches zugeordnet. Dann werden beispielsweise in der Unternehmens-ID 601 Attribut-Informationen eingestellt, die auf ein Unternehmen hinweisen.
  • Zum Beispiel gibt es wie beim Stellungsinformationen-Verschlüsselungs-Array 504 ein Verschlüsselungs-Array, in dem jedem Element des Verschlüsselungs-Arrays ein Benutzer-Attribut zugeordnet ist. In dem Stellungsinformationen-Verschlüsselungs-Array 504 wird jedem Element des Verschlüsselungs-Arrays ein Benutzer-Attribut zugewiesen, wie z.B. das Vorstandsklassen-Flag 701, das ein Vorstandsmitglied anzeigt, das Büroleiterklassen-Flag 702, das einen Büroleiter anzeigt, oder ähnliches. Dann wird im Kennzeichen der Stellung des Benutzers der Wert „1“ gesetzt, um anzuzeigen, dass das Kennzeichen der Stellung des Benutzers entspricht.
  • Zum Beispiel gibt es wie beim Vertraulichkeitsstufen-Verschlüsselungs-Array 506 ein Verschlüsselungs-Array, in dem jedem Element des Verschlüsselungs-Arrays ein Attribut der zu verschlüsselnden Daten zugeordnet ist. Im Vertraulichkeitsstufen-Verschlüsselungs-Array 506 wird ein Attribut von Daten wie das „streng vertraulich“-Flag 901 zugewiesen, das streng vertrauliche Daten anzeigt. Dann wird im Kennzeichen für die Vertraulichkeitsstufe der Daten der Wert „1“ gesetzt, um anzuzeigen, dass das Kennzeichen der Vertraulichkeitsstufe der Daten entspricht.
  • Die Verschlüsselungsinformationen-Erzeugungseinheit 206 des Schlüsselverwaltungsservers 201 und die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 ändern die Art der Codezuweisung in Abhängigkeit vom Typ jedes Verschlüsselungs-Arrays im Attributinformationen-Verschlüsselungs-Array 501.
  • Für ein Verschlüsselungs-Array, in dem Attribut-Elemente zugewiesen sind, setzt die Einheit zur Erzeugung von Verschlüsselungsinformationen-Verwaltungseinheit 206 des Schlüsselverwaltungsservers 201 in jedem Element des Verschlüsselungs-Arrays Attributinformationen, die ein Attribut des Benutzers anzeigen, der den geheimen Benutzerschlüssel verwendet, und die dem diesem Element zugewiesenen Attribut-Element entsprechen. Die Verschlüsselungsinformationen-Erzeugungseinheit 206 erzeugt Verschlüsselungsinformationen durch Setzen von „*“ in einem Element des Verschlüsselungs-Arrays, in dem keine Attribut-Informationen gesetzt sind.
  • In diesem Fall setzt die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 in jedem Element des Verschlüsselungs-Arrays Attributinformationen, die die Benutzer einschränken, die die verschlüsselten Daten abrufen können, und die dem diesem Element zugewiesenen Attributelement entsprechen. Die Verschlüsselungsinformationen-Erzeugungseinheit 306 setzt „*“ in ein Element des Verschlüsselungs-Arrays, in dem keine Attribut-Informationen gesetzt sind.
  • Anschließend werden der geheime Benutzerschlüssel und die verschlüsselten Daten mit dem UND-Test verglichen.
  • Bei einem Verschlüsselungs-Array, bei dem jedem Element des Verschlüsselungs-Arrays ein Benutzerattribut zugeordnet ist, setzt die Verschlüsselungsinformationen-Erzeugungseinheit 206 des Schlüsselverwaltungsservers 201 einen Korrespondenzwert „1“ in ein Element, dem ein Attribut zugeordnet ist, das dem Attribut des Benutzers entspricht, der den geheimen Benutzerschlüssel verwendet. Wenn der geheime Benutzerschlüssel und die verschlüsselten Daten durch den UND-Test verglichen werden, setzt die Einheit zur Erzeugung von Verschlüsselungsinformationen-Erzeugungseinheit 206 „*“ in ein Element des Verschlüsselungs-Arrays, in dem der Korrespondenzwert „1“ nicht gesetzt ist. Wenn der geheime Benutzerschlüssel und die verschlüsselten Daten durch den ODER-Test verglichen werden, setzt die Einheit zur Erzeugung von Verschlüsselungsinformationen-Erzeugungseinheit 206 eine Zufallszahl R in ein Element des Verschlüsselungs-Arrays, in dem der Korrespondenzwert „1“ nicht gesetzt ist.
  • In diesem Fall setzt die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 den Korrespondenzwert „1“ in jedem Element des Verschlüsselungs-Arrays, in dem ein Attribut zugewiesen ist, das dem Attribut des Benutzers entspricht, der die verschlüsselten Daten abrufen darf. Die Verschlüsselungsinformationen-Erzeugungseinheit 306 setzt eine Zufallszahl R in ein Element des Verschlüsselungs-Arrays, in dem der Korrespondenzwert „1“ nicht gesetzt ist.
  • Für ein Verschlüsselungs-Array, in dem jedem Element des Verschlüsselungs-Arrays ein Attribut der zu verschlüsselnden Daten zugeordnet ist, setzt die Verschlüsselungsinformationen-Erzeugungseinheit 206 des Schlüsselverwaltungsservers 201 den Korrespondenzwert „1“ in einem Element, dem ein Attribut zugeordnet ist, das dem Attribut (Berechtigung) des Benutzers entspricht, der den geheimen Benutzerschlüssel verwendet. Die Verschlüsselungsinformationen-Erzeugungseinheit 206 setzt eine Zufallszahl R in ein Element des Verschlüsselungs-Arrays, in dem der Korrespondenzwert „1“ nicht gesetzt ist.
  • In diesem Fall setzt die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 den Korrespondenzwert „1“ in einem Element, dem ein Attribut zugeordnet ist, das dem Attribut der Daten entspricht. Wenn der geheime Benutzerschlüssel und die verschlüsselten Daten durch den UND-Test verglichen werden, setzt die Einheit zur Erzeugung von Verschlüsselungsinformationen-Erzeugungseinheit 306 „*“ in ein Element des Verschlüsselungs-Arrays, in dem der Korrespondenzwert „1“ nicht gesetzt ist. Wenn der geheime Benutzerschlüssel und die verschlüsselten Daten durch den ODER-Test verglichen werden, setzt die Einheit zur Erzeugung von Verschlüsselungsinformationen-Erzeugungseinheit 306 eine Zufallszahl R in ein Element des Verschlüsselungsarrays, in dem der Korrespondenzwert „1“ nicht gesetzt ist.
  • Obwohl nicht in dem oben beschriebenen Attributinformationen-Verschlüsselungs-Array 501 enthalten, gibt es ein Verschlüsselungs-Array, in dem jedem Element des Verschlüsselungs-Arrays ein Attribut-Element zugeordnet ist, in dem ein Attribut der zu verschlüsselnden Daten festgelegt ist. So wird z. B. der Fall angenommen, dass im Vertraulichkeitsstufen-Verschlüsselungs-Array 506 eine ID der Vertraulichkeitsstufe gesetzt wird, anstatt jeder Vertraulichkeitsstufe ein Flag zuzuordnen.
  • In diesem Fall setzt die Verschlüsselungsinformationen-Erzeugungseinheit 206 des Schlüsselverwaltungsservers 201 eine Attributinformation, die ein Attribut (Berechtigung) des Benutzers angibt, der den geheimen Benutzerschlüssel verwendet, und die dem Attributposten entspricht, der diesem Posten zugeordnet ist. Die Verschlüsselungsinformationen-Erzeugungseinheit 206 erzeugt Verschlüsselungsinformationen durch Setzen von „*“ in einem Element des Verschlüsselungs-Arrays, in dem keine Attribut-Informationen gesetzt sind.
  • In diesem Fall setzt die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 in jedem Element des Verschlüsselungs-Arrays Attributinformationen, die ein Datenattribut angeben und einem diesem Element zugeordneten Attribut entsprechen. Die Verschlüsselungsinformationen-Erzeugungseinheit 306 setzt „*“ in ein Element des Verschlüsselungs-Arrays, in dem keine Attribut-Informationen gesetzt sind.
  • Anschließend werden der geheime Benutzerschlüssel und die verschlüsselten Daten mit dem UND-Test verglichen.
  • Als nächstes wird ein Vektorisierungsverfahren beschrieben, bei dem die mit dem oben beschriebenen Attributinformationen-Verschlüsselungs-Array 501 erzeugten Verschlüsselungsinformationen in einen Prädikatvektor in einem geheimen Benutzerschlüssel oder einen Attributvektor in verschlüsselten Daten umgewandelt werden. Das heißt, es wird ein Verfahren beschrieben, bei dem die Vektorerzeugungseinheit 207 des Schlüsselverwaltungsservers 201 einen Prädikatvektor auf der Grundlage von Verschlüsselungsinformationen erzeugt, und ein Verfahren, bei dem die Vektorerzeugungseinheit 307 des Zugangsterminals 301 einen Attributvektor oder einen Prädikatvektor auf der Grundlage von Verschlüsselungsinformationen erzeugt.
  • Ein Vektorisierungsverfahren wird für jeden Fall, in dem der UND-Test durchgeführt wird, und für den Fall, in dem der ODER-Test durchgeführt wird, getrennt angegeben. Im eigentlichen Attributinformationen-Verschlüsselungs-Array 501 wird jedoch für jedes Verschlüsselungs-Array wahlweise der UND-Test oder der ODER-Test gewählt. Daher können die erstellten Verschlüsselungsinformationen Teile enthalten, die mit dem UND-Test verglichen werden, und Teile, die mit dem ODER-Test verglichen werden. Das heißt, dass es einen Fall geben kann, in dem sich das Prüfverfahren in Abhängigkeit von jedem Verschlüsselungs-Array im Attributinformationen-Verschlüsselungs-Array 501 unterscheidet. Zum Beispiel kann das Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 mit dem UND-Test und das Stellungsinformationen-Verschlüsselungs-Array 504 mit dem ODER-Test verglichen werden. In diesem Fall können ein Attributvektor und ein Prädikatvektor unter Verwendung eines Vektorisierungsverfahrens für den Vergleich durch den UND-Test für einen Teil der Verschlüsselungsinformationen, die durch den UND-Test verglichen werden sollen, und unter Verwendung eines Vektorisierungsverfahrens für den Vergleich durch den ODER-Test für einen Teil, der durch den ODER-Test verglichen werden soll, erzeugt werden.
  • 20 ist eine Figur, die ein Vektorisierungsverfahren für den Fall beschreibt, dass die Codierungs-Arrays im Attributinformationen-Verschlüsselungs-Array 501 durch den UND-Test verglichen werden.
  • Das Grundkonzept wird anhand des folgenden Polynoms 1 beschrieben. r 1 ( b 1 a 1 ) + r 2 ( b 2 a 2 ) + r 3 ( b 3 a 3 )
    Figure DE112021007711T5_0028
    Polynom 1 ist ein Polynom aus den Zufallszahlen r1, r2 und r3 und den Werten a1, a2, a3, b1, b2 und b3. Der Wert dieses Polynoms ist unabhängig von den Zufallszahlen r1, r2 und r3 immer 0, wenn alle Bedingungen b1 = a1, b2 = a2 und b3 = a3 erfüllt sind. Das heißt, der Wert dieses Polynoms ist unabhängig von den Zufallszahlen r1, r2 und r3 immer 0, wenn b1 = a1 UND b2 = a2 UND b3 = a3 gilt.
  • Die Werte a1, a2 und a3 werden bei der Erstellung von verschlüsselten Daten als Elemente eines Verschlüsselungs-Arrays betrachtet, und die Werte b1, b2 und b3 werden als Elemente eines Verschlüsselungs-Arrays betrachtet, die in einen geheimen Schlüssel aufgenommen werden. Wenn in diesem Fall ein inneres Produkt verwendet werden kann, um festzustellen, ob das Ergebnis der Auswertung von Polynom 10 ist, dann kann man sagen, dass ein inneres Produkt verwendet werden kann, um festzustellen, ob b1 = a1 UND b2 = a2 UND b3 = a3 gilt.
  • Daher wird ein Attributvektor auf der Grundlage der Werte a1, a2 und a3, die die Elemente eines Verschlüsselungs-Arrays sind, und ein Prädikatvektor auf der Grundlage der Werte b1, b2 und b3, die die Elemente eines Verschlüsselungs-Arrays sind, wie unten beschrieben, erzeugt.
  • Bei der Erstellung eines Attribut-Vektors werden für ein i-tes Element zwei Elemente erzeugt, die den Wert „1“ und „-ai“ haben, und das Ergebnis der sequentiellen Anordnung für alle Elemente ist ein Attribut-Vektor x. Das heißt, der Attribut-Vektor x ist wie in 20 dargestellt. Es ist zu beachten, dass wenn das Element ai des Verschlüsselungs-Arrays ein numerischer Wert ist, er direkt verwendet wird. Handelt es sich bei dem Element ai des Verschlüsselungs-Arrays jedoch um eine Zeichenkette, wird ein Wert verwendet, der durch Umwandlung in einen numerischen Wert erhalten wird. Ein spezielles Beispiel: Wenn das Element ai des Verschlüsselungs-Arrays „*“ ist, werden in dem Element des Attributvektors, das dem Element ai des Verschlüsselungs-Arrays entspricht, zwei Elemente gesetzt, die 0 und 0 sind.
  • Bei der Erstellung eines Prädikatvektors werden für ein i-tes Element zwei Elemente mit dem Wert „bi“ und dem Wert „1“ erzeugt, und das Ergebnis der sequentiellen Anordnung für alle Elemente ist ein Prädikatvektor v. Das heißt, der Prädikatvektor v ist wie in 20 dargestellt. Es ist zu beachten, dass wenn das Element bi des Verschlüsselungs-Arrays ein numerischer Wert ist, er direkt verwendet wird. Handelt es sich bei dem Element bi des Verschlüsselungs-Arrays jedoch um eine Zeichenkette, wird ein Wert verwendet, der durch Umwandlung in einen numerischen Wert erhalten wird. Ein spezielles Beispiel: Wenn das Element bi des Verschlüsselungs-Arrays „*“ ist, werden in dem Element des Attributvektors, das dem Element bi des Verschlüsselungs-Arrays entspricht, zwei Elemente gesetzt, die 0 und 0 sind.
  • Das heißt, der Attributvektor x = ( 1, a 1 ,1, a 2 ,1, a 3 )
    Figure DE112021007711T5_0029
    und der Prädikatvektor v = ( b 1 ,1, b 2 ,1, b 3 ,1 ) .
    Figure DE112021007711T5_0030
  • Es ist zu beachten, dass die negativen Vorzeichen zwischen dem Element ai des Attributvektors x und dem Element bi des Prädikatvektors v vertauscht werden können, so dass der Attributvektor x = ( 1, a 1 ,1, a 2 ,1, a 3 )
    Figure DE112021007711T5_0031
    und der Prädikatvektor v = ( b 1 ,1, b 2 ,1, b 3 ,1 ) .
    Figure DE112021007711T5_0032
  • Die Zufallszahlen r1, r2 und r3 werden in Polynom 1 multipliziert, aber in der obigen Vektorisierung werden keine Zufallszahlen multipliziert. Dies liegt daran, dass Zufallszahlen bei der Verschlüsselung mit Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützen, multipliziert werden, so dass Zufallszahlen bei der Vektorisierung nicht erforderlich sind. Wenn bei der Prädikatverschlüsselung für innere Produkte keine Zufallszahlen bei der Verschlüsselung multipliziert werden, kann bei der Vektorisierung jedes Element mit einer Zufallszahl multipliziert werden.
  • Im Falle des UND-Tests kann jedes der Elemente a1, a2, a3, b1, b2 und b3 als unabhängiges Element vektorisiert werden, so dass jedem Element in einem UND-Test-Verschlüsselungs-Array eine später zu beschreibende Attribut-ID zugewiesen wird.
  • 21 ist eine Figur, die ein Vektorisierungsverfahren für den Fall beschreibt, dass die Verschlüsselungs-Arrays im Attributinformationen-Verschlüsselungs-Array 501 durch den ODER-Test verglichen werden. 21 zeigt ein Beispiel für die Vektorisierung, bei dem drei Paare von Elementen verglichen werden und nur eines der Paare übereinstimmen muss, um zu verhindern, dass das Beispiel zu kompliziert wird. Es ist zu beachten, dass im Wesentlichen das gleiche Verfahren auch für n Paare von Elementen im Allgemeinen verwendet werden kann.
  • Das Grundkonzept wird im Folgenden anhand von Polynom 2 beschrieben. ( b 1 a 1 ) ( b 2 a 2 ) ( b 3 a 3 ) = b 1 b 2 b 3 a 3 b 1 b 2 a 2 b 1 b 3 a 1 b 2 b 3 + a 2 a 3 b 1 + a 1 a 3 b 2 + a 1 a 2 b 3 a 1 a 2 a 3
    Figure DE112021007711T5_0033
  • Polynom 2 ist ein Polynom mit drei Variablen, und der Wert dieses Polynoms ist 0, wenn mindestens eine der Bedingungen b1 = a1, b2 = a2 und b3 = a3 erfüllt ist. Das heißt, der Wert dieses Polynoms ist 0, wenn b1 = a1 ODER b2 = a2 ODER b3 = a3 gilt.
  • Die Werte a1, a2 und a3 werden bei der Erstellung von verschlüsselten Daten als Elemente eines Verschlüsselungs-Arrays betrachtet, und die Werte b1, b2 und b3 werden als Elemente eines Verschlüsselungs-Arrays betrachtet, die in einen geheimen Schlüssel aufgenommen werden. Wenn in diesem Fall ein inneres Produkt verwendet werden kann, um festzustellen, ob das Ergebnis der Auswertung des Polynoms 2 0 ist, dann kann man sagen, dass ein inneres Produkt verwendet werden kann, um festzustellen, ob b1 = a1 ODER b2 = a2 ODER b3 = a3 gilt.
  • Daher wird ein Attributvektor auf der Grundlage der Werte a1, a2 und a3, die Elemente eines Verschlüsselungs-Arrays sind, und ein Prädikatvektor auf der Grundlage der Werte b1, b2 und b3, die Elemente eines Verschlüsselungs-Arrays sind, wie unten beschrieben, erzeugt.
  • Bei der Generierung eines Attributvektors werden nur die Terme des Polynoms 2 extrahiert und vektorisiert, die die Werte a1, a2, and a3, betreffen, die Elemente des Verschlüsselungsarrays bei der Generierung verschlüsselter Daten sind. Der erste Term ist zum Beispiel b1b2b3 und enthält keine Informationen über die Elemente a1, a2 und a3, so dass das erste Element des Vektors auf 1 gesetzt wird. Der zweite Term ist -a3b1b2, und -a3 wird als Information über die Elemente a1, a2 und a3 extrahiert und als zweites Element des Vektors gesetzt. Wiederholt man diesen Vorgang für alle Begriffe, so erhält man den in 21 dargestellten Attributvektor x. Es ist zu beachten, dass der ODER-Test immer wahr ist, wenn ein Element des Verschlüsselungs-Arrays „*“ ist. Wenn also ein Element des Verschlüsselungs-Arrays „*“ ist, wird der dem Verschlüsselungs-Array entsprechende Attributvektor als 0-Vektor erzeugt, in dem alle Elemente 0 sind.
  • Ein Prädikatvektor kann im Wesentlichen nach demselben Verfahren konstruiert werden. Ein Unterschied besteht jedoch darin, dass die Aufmerksamkeit auf die Werte b1, b2 und b3 statt auf die Werte a1, a2 und a3 gerichtet ist. Der erste Term ist zum Beispiel b1b2b3, und b1b2b3 wird als Information über die Elemente b1, b2 und b3 extrahiert und als erstes Element des Vektors festgelegt. Der zweite Term ist -a3b1b2, und b1b2 wird als Information über die Elemente b1, b2 und b3 extrahiert und als zweites Element des Vektors gesetzt. Es ist zu beachten, dass wenn bei der Erstellung des Attribut-Vektors negative Werte eingestellt werden, hier positive Werte eingestellt werden. Wiederholt man diesen Vorgang für alle Begriffe, erhält man den in 21 dargestellten Prädikatvektor. Es ist zu beachten, dass wenn bei der Erstellung des Attribut-Vektors negative Werte eingestellt werden, hier positive Werte eingestellt werden. Wenn ein Element des Verschlüsselungs-Arrays „*“ ist, ist der ODER-Test immer wahr. Wenn also ein Element des Verschlüsselungs-Arrays „*“ ist, wird der Prädikatvektor, der dem Verschlüsselungs-Array entspricht, als 0-Vektor erzeugt, in dem alle Elemente 0 sind.
  • Im Falle des ODER-Tests werden die Elemente a1, a2, a3, b1, b2 und b3 vektorisiert, indem sie eng miteinander verbunden werden, so dass eine später zu beschreibende Attribut-ID einem ODER-Test-Verschlüsselungs-Array zugeordnet wird, auf dem der ODER-Test durchgeführt wird.
  • In der obigen Beschreibung werden getrennte Konzepte für den UND-Test und den ODER-Test vorgestellt. Ein Fall, in dem der UND-Test und der ODER-Test kombiniert werden, kann jedoch durch die Kombination der oben genannten Verfahren realisiert werden, um einen Attributvektor und einen Prädikat-Vektor zu erstellen. Wenn beispielsweise der UND-Test für das Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 und der ODER-Test für das Stellungsinformationen-Verschlüsselungs-Array 504 durchgeführt wird, können ein Attribut-Vektor und ein Prädikat-Vektor für das Zugehörigkeitsinformationen-Verschlüsselungs-Array 503 unter Verwendung des obigen Verfahrens für den UND-Test erzeugt werden, und ein Attribut-Vektor und ein Prädikat-Vektor für das Stellungsinformationen-Verschlüsselungs-Array 504 können unter Verwendung des obigen Verfahrens für den ODER-Test erzeugt werden.
  • <4. Funktionsweise des durchsuchbaren Verschlüsselungssystems 100>
  • Die Funktionsweise des durchsuchbaren Verschlüsselungssystems 100 wird im Folgenden beschrieben.
  • In der folgenden Beschreibung wird ein Fall beschrieben, in dem die oben beschriebene Prädikatverschlüsselung für innere Produkte mit Unterstützung des Widerrufs als Prädikatverschlüsselung für innere Produkte verwendet wird. Die Konfiguration der verschlüsselten Daten ist in 5 dargestellt, und die Datenströme sind in 6 dargestellt.
  • Die Funktionsweise des durchsuchbaren Verschlüsselungssystems 100 ist in fünf Abschnitte unterteilt: (1) Anfangseinstellung des Systems, (2) Generierung des geheimen Benutzerschlüssels, (3) Generierung verschlüsselter Daten, (4) Suche nach Schlüsselwörtern und (5) Widerruf von Suchberechtigungen.
  • (1) Die Systeminitialisierung ist ein Prozess, bei dem der Schlüsselverwaltungsserver 201 öffentliche Parameter und einen Hauptschlüssel erzeugt. (2) Die Erzeugung des geheimen Benutzerschlüssels ist ein Prozess, bei dem der Schlüsselverwaltungsserver 201 einen geheimen Benutzerschlüssel auf der Grundlage des Hauptschlüssels erzeugt. (3) Verschlüsselte Datenerzeugung ist ein Prozess, bei dem hauptsächlich ein Benutzer Daten mit dem Zugangsterminal 301 verschlüsselt und im Rechenzentrum 401 speichert. (4) Schlüsselwortsuche ist ein Verfahren, bei dem hauptsächlich ein Benutzer mit dem Zugangsterminal 301 anhand eines zu suchenden Schlüsselworts nach im Rechenzentrum 401 gespeicherten verschlüsselten Daten sucht und Daten erhält. (5) Der Widerruf von Suchberechtigungen ist ein Vorgang, bei dem das Rechenzentrum 401 einen Suchhilfsschlüssel, der diesem geheimen Benutzerschlüssel entspricht, löscht, um eine Suche mit einem zu widerrufenden geheimen Benutzerschlüssel zu deaktivieren.
  • Jeder Abschnitt des Vorgangs wird im Folgenden anhand von Flussdiagrammen beschrieben.
  • 22 ist ein Flussdiagramm, das den Ablauf des Prozesses (1) der Ersteinstellung des Systems illustriert.
  • 23 ist ein Flussdiagramm, das den Ablauf des Prozesses (2) der Generierung geheimer Benutzerschlüssel veranschaulicht.
  • 24 ist ein Flussdiagramm, das den Ablauf des Prozesses zur Generierung verschlüsselter Daten (3) zeigt.
  • 25 ist ein Flussdiagramm, das den Ablauf der (4) Schlüsselwortsuche veranschaulicht.
  • 26 ist ein Flussdiagramm, das den Ablauf des Prozesses (5) des Widerrufs von Suchberechtigungen illustriert.
  • Anhand von 22 wird der Prozess der (1) Grundeinstellung des Systems beschrieben.
  • (1) Die Ersteinstellung des Systems wird im Schlüsselverwaltungsserver 201 vorgenommen.
  • (S101)
  • Die Verschlüsselungsinformationen-Erzeugungseinheit 206 bestimmt die Struktur des Attributinformationen-Verschlüsselungs-Arrays 501, das im System verwendet werden soll, die Längen der Verschlüsselungs-Arrays, die seine Elemente sind, die Regeln für die zu speichernden Werte, ein Vergleichsverfahren und ein Verfahren zum Abbilden auf einen Attributvektor und einen Prädikatvektor. Beispielsweise bestimmt die Verschlüsselungsinformationen-Erzeugungseinheit 206 die oben genannten Elemente, indem sie einen Administrator oder dergleichen, der den Schlüsselverwaltungsserver 201 einrichtet, veranlasst, die oben genannten Elemente über ein Eingabegerät einzugeben.
  • Ein Beispiel für die Konfiguration des Attributinformationen-Verschlüsselungs-Arrays 501 ist wie oben beschrieben. Je nach Anwendungsfall kann es jedoch vorkommen, dass z.B. eine Kontrolle nur auf der Basis organisatorischer Informationen ausreicht und eine Kontrolle auf der Basis der Stellung, der Art der Daten o.ä. nicht notwendig ist. Daher bestimmt die Verschlüsselungsinformationen-Erzeugungseinheit 206 das Attributinformationen-Verschlüsselungs-Array 501, das in dem durchsuchbaren Verschlüsselungssystem 100 zu verwenden ist, indem sie veranlasst, dass nur notwendige Elemente aus dem Attributinformationen-Verschlüsselungs-Array 501, das beispielsweise in 7 dargestellt ist, ausgewählt, hinzugefügt oder geändert werden.
  • In diesem Beispiel wird davon ausgegangen, dass die Struktur des Attributinformationen-Verschlüsselungs-Arrays 501 so festgelegt ist, wie in einem systemüblichen Attributinformationen-Verschlüsselungs-Array in 27 dargestellt.
  • Außerdem wird davon ausgegangen, dass die individuelle ID, das Zugehörigkeitsinformationen-Verschlüsselungs-Array, das Stellungsinformationen-Verschlüsselungs-Array, das Kategorie-Verschlüsselungs-Array, das Vertraulichkeitsstufen-Verschlüsselungs-Array und das Suchwort-Verschlüsselungs-Array mithilfe des UND-Tests verglichen werden.
  • Darüber hinaus wird AID als Attributs-ID jedem Element der minimalen Einheit des Abbildens auf einen Attributvektor und einen Prädikatvektor und BI als Indexnummer jedem entsprechenden Element des Attributvektors und des Prädikatvektors zugewiesen.
  • Wie die Attribut-IDs vergeben werden, hängt davon ab, ob der UND-Test oder der ODER-Test verwendet wird. Wie die Attribut-IDs in den einzelnen Prüfverfahren vergeben werden, ist in der Beschreibung der Vektorisierung für jedes Prüfverfahren anhand der 20 und 21 angegeben. Der Höchstwert der Indexnummer BI ist n.
  • Die 28 und 29 zeigen ein Beispiel für die Zuweisung von AIDs, d. h. Attribut-IDs, und die Zuweisung von Indexnummern Bls. Wie oben beschrieben, werden jedem Element eines Verschlüsselungs-Arrays zwei Vektorelemente zugeordnet, um den UND-Test für alle Elemente durchzuführen, wie in 20 angegeben. Für die individuelle ID ist die Attribut-ID beispielsweise 1, und die Werte werden auf das erste Element (BI = 1) und das zweite Element (BI = 2) des Attributvektors und des Prädikatvektors abgebildet. Für die große Klassifizierung im Kategorie-Verschlüsselungs-Array ist die Attribut-ID 13 und die Werte werden auf das 25. Element (BI = 25) und das 26. Element (BI = 26) des Attributvektors und des Prädikatvektors abgebildet.
  • Wenn der ODER-Test für jedes Element durchgeführt wird, müssen mehrere Elemente gemeinsam auf den Attributvektor und den Prädikatvektor abgebildet werden, wie im Konvertierungsverfahren von 21 dargestellt. Wird der ODER-Test beispielsweise für das Stellungsinformationen-Verschlüsselungs-Array durchgeführt, müssen alle Stellungsinformationen gemeinsam vektorisiert werden. Daher wird, wie in 30 dargestellt, dem Stellungsinformationen-Verschlüsselungs-Array eine AID und jedem Element des Attributvektors und des Prädikatvektors eine Indexnummer BI zugewiesen.
  • (S102)
  • Die Benutzerattributinformationen-Verwaltungseinheit 205 baut eine Benutzerattributinformationen-Datenbank auf, um Attributinformationen von Benutzern zu speichern.
  • In der Benutzerattributinformationen-Datenbank werden Informationen gespeichert, die für die Erstellung des Attributinformationen-Verschlüsselungs-Arrays 501 erforderlich sind. Wie in 31 dargestellt, speichert die Benutzerattributinformationen-Datenbank beispielsweise einen Namen, der eine individuelle ID ist, Zugehörigkeitsinformationen, Stellungsinformationen, Datenkategorien, auf die zugegriffen werden kann, Vertraulichkeitsstufen von Daten, auf die zugegriffen werden kann, einen Zeitraum, in dem sich der Benutzer in der Abteilung, Sektion usw. befindet, die Stellung und so weiter. Die Benutzerattributinformationen-Datenbank kann nicht nur den aktuellen Stand, sondern auch alle früheren Datensätze speichern.
  • (S103)
  • Die Hauptschlüsselerzeugungseinheit 202 verwendet die Verarbeitungsvorrichtung, um Parameter der Prädikatverschlüsselung für innere Produkte zu erzeugen, die im System verwendet werden sollen. Diese Parametergenerierung erzeugt Gruppen, Basen usw., die in der oben beschriebenen Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützen, verwendet werden. Konkret definiert die Hauptschlüsselerzeugungseinheit 202 zunächst die Gruppenordnung q, die Gruppen G und GT, einen Generator g ∈ G, und legt die Dimension N eines Vektorraums als N = 2n + 3 fest. Die Hauptschlüsselerzeugungseinheit 202 legt den Vektorraum als V = G × G × G fest und definiert eine kanonische Basis A = (a1, a2, ..., aN). Anschließend wählt die Hauptschlüsselerzeugungseinheit 202 zufällig eine reguläre Matrix X = (xi,j) mit N Zeilen und N Spalten aus und berechnet eine Zufallsbasis B = (b1, b2, ..., bN) und eine Zufallsbasis B* = (b*1, b*2, ..., b*N).
  • Das heißt, die Hauptschlüsselerzeugungseinheit 202 verwendet die Verarbeitungsvorrichtung, um den Setup-Algorithmus der Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützen, auszuführen, um die Zufallsbasis B = (b1, b2, ..., bN) und die Zufallsbasis B* = (b*1, b*2, ..., b*N) zu berechnen, und setzt B^ = (b1, b2, ..., bn, b2n+1, b2n+3). Es ist zu beachten, dass es sich bei der Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützt, um eine hierarchische Prädikatverschlüsselung für innere Produkte handelt, und in dieser Ausführungsform ist die Anzahl der Schichten d = 2, und die erste Schicht wird für Benutzer-Attributinformationen (die individuelle ID, das Zugehörigkeitsinformationen-Verschlüsselungs-Array, das Stellungsinformationen-Verschlüsselungs-Array, das Kategorie-Verschlüsselungs-Array, das Vertraulichkeitsstufen-Verschlüsselungs-Array) und die zweite Schicht für Suchinformationen (das Suchwort-Verschlüsselungs-Array) verwendet. Das heißt, im Setup-Algorithmus sind im obigen Beispiel n = 54, d = 2, µ1 = 38 und µ2 = 54.
  • (S104)
  • Die PKG-seitige Datenübertragungs- und Empfangseinheit 209 veröffentlicht als öffentliche Parameter und über das Netzwerk die Konfiguration des Attributinformationen-Verschlüsselungs-Arrays 501, die Regeln für zu speichernde Werte, das Verfahren zum Abbilden auf einen Attributvektor und einen Prädikatvektor, die in (S101) definiert sind, sowie die Gruppenordnung q, die Gruppen G und GT, den Gruppengenerator g ∈ G, den Vektorraum V = G × G × G und die Zufallsbasis B^ = (b1, b2, ..., bn, b2n+1 b2n+3), die in (S103) erzeugt werden. Es versteht sich von selbst, dass die öffentlichen Parameter durch andere Verfahren veröffentlicht werden können.
  • Die Speichereinheit für verschiedene Schlüssel 208 speichert die öffentlichen Parameter in der Speichervorrichtung.
  • (S105)
  • Die Speichereinheit für verschiedene Schlüssel 208 speichert die in (S103) erzeugte Zufallsbasis B* = (b*1, b*2, ..., b*N) in der Speichereinrichtung als Hauptschlüssel.
  • Es ist zu beachten, dass der Inhalt der in (S102) erzeugten Benutzerattributinformationen-Datenbank während des Systembetriebs jedes Mal aktualisiert wird, wenn ein Benutzer innerhalb des Unternehmens versetzt wird, dem Unternehmen beitritt oder das Unternehmen verlässt.
  • Als nächstes wird der Prozess der Generierung des geheimen Benutzerschlüssels (2) anhand von 23 beschrieben.
  • (2) Die Generierung des geheimen Benutzerschlüssels ist der Prozess, bei dem der Schlüsselverwaltungsserver 201 einen geheimen Benutzerschlüssel (Schlüsselvektor) und einen Suchhilfsschlüssel, der dem geheimen Benutzerschlüssel entspricht, neu generiert, wenn z. B. ein Benutzer hinzugefügt wird oder ein Personalwechsel stattfindet.
  • (S201)
  • Zunächst liest die Verschlüsselungsinformationen-Erzeugungseinheit 206 die Attribute eines Benutzers aus der Benutzerattributinformationen-Datenbank entsprechend dem Attributinformationen-Verschlüsselungs-Array 501 usw., das in den öffentlichen Parametern enthalten ist, und verwendet die Verarbeitungsvorrichtung, um ein Attributinformationen-Verschlüsselungs-Array (Verschlüsselungsinformationen) für einen geheimen Benutzerschlüssel zu erzeugen.
  • 32 zeigt ein Beispiel für das Attributinformationen-Verschlüsselungs-Array des Benutzer-Geheimschlüssels, wenn ein geheimer Benutzerschlüssel an eine Person namens Tanaka ausgegeben wird, die zur Hauptverwaltung/Abteilung des Hauptbüros/Sektion des Hauptbüros/Einheit für Soziales von Unternehmen A gehört. In diesem Fall werden in der individuellen ID und dem Zugehörigkeitsinformationen-Verschlüsselungs-Array beispielsweise der Name und der Ort, zu dem diese Person gehört, angegeben. Außerdem wird festgelegt, dass es sich bei der Stelle um einen Bediensteten handelt, und die Vertraulichkeitsstufen der Daten, auf die zugegriffen werden kann, sind vertraulich, vertraulich-interne Verwendung und nicht-anwendbar.
  • Als Nächstes erzeugt die Vektorerzeugungseinheit 207 mit Hilfe der Verarbeitungsvorrichtung einen Prädikatvektor v USER für den geheimen Benutzerschlüssel auf der Grundlage der von der Verschlüsselungsinformationen-Erzeugungseinheit 206 erzeugten Benutzerattributinformationen-Datenbank. Wie oben beschrieben, wird die erste Schicht der Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützt, für den geheimen Benutzerschlüssel verwendet, so dass im obigen Beispiel v USER = v 1 = (v1, ..., vµ1) = (v1, ..., v38) gilt. Das Verfahren zur Erzeugung eines Prädikatvektors für den geheimen Benutzerschlüssel auf der Grundlage eines Verschlüsselungs-Arrays wird anhand der 20 und 21 beschrieben.
  • (S202)
  • Die Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels verwendet die Verarbeitungsvorrichtung, um einen entsprechenden geheimen Benutzerschlüssel und Suchhilfsschlüssel zu erzeugen, wobei der in (S201) erzeugte Prädikatvektor für den geheimen Benutzerschlüssel verwendet wird.
  • Insbesondere verwendet die Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels die Verarbeitungsvorrichtung, um den KeyGen-Algorithmus der Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützen, auszuführen, um einen geheimen Benutzerschlüssel k→* 1 und einen Suchhilfsschlüssel θ auf der Grundlage des Hauptschlüssels zu erzeugen. Die Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels verknüpft den geheimen Benutzerschlüssel und den Suchhilfsschlüssel mit derselben Schlüssel-ID, so dass der geheime Benutzerschlüssel und der Suchhilfsschlüssel später miteinander verknüpft werden können. Es ist zu beachten, dass die Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels die Schlüssel-IDs verwaltet, indem sie z. B. fortlaufende Nummern oder Zufallszahlen erzeugt, so dass es keine doppelten Schlüssel-IDs gibt.
  • (S203)
  • Die PKG-seitige Datenübertragungs- und -empfangseinheit 209 überträgt die öffentlichen Parameter und einen Satz des geheimen Benutzerschlüssels und der Schlüssel-ID auf sicherem Wege an das Zugangsterminal. Zu diesem Zeitpunkt wird der geheime Benutzerschlüssel mit Hilfe spezieller Hardware, wie einer IC-Karte oder einer manipulationssicheren kryptografischen Vorrichtung, oder mit sicheren Mitteln, wie einem virtuellen privaten Netzwerk (VPN) oder einem SSL-Kommunikationsprotokoll, übertragen.
  • (S204)
  • Die endgerätseitige Datenübertragungs- und -empfangseinheit 311 des vom Benutzer benutzten Zugangsterminals 301 empfängt die in (S203) übertragenen öffentlichen Parameter und den Satz des geheimen Benutzerschlüssels und der Schlüssel-ID, und die Speichereinheit für geheime Benutzerschlüssel 302 speichert den empfangenen Satz des geheimen Benutzerschlüssels und der Schlüssel-ID in der Speichereinrichtung.
  • (S205)
  • Die PKG-seitige Datenübertragungs- und Empfangseinheit 209 überträgt den Satz des Suchhilfsschlüssels und der Schlüssel-ID auf sichere Weise an das Rechenzentrum 401 wie in (S201).
  • (S206)
  • Die zentrumsseitige Datenübertragungs- und Empfangseinheit 402 des Rechenzentrums 401 empfängt den in (S205) übertragenen Satz des Suchhilfsschlüssels und der Schlüssel-ID, und die Suchhilfsschlüssel-Verwaltungseinheit 407 speichert den empfangenen Satz des Suchhilfsschlüssels und der Schlüssel-ID in der Speichereinrichtung.
  • Als nächstes wird anhand von 24 der Prozess der (3) Datenverschlüsselung beschrieben.
  • Der Prozess der (3) Datenverschlüsselung ist der Prozess, bei dem das Zugangsterminal 301 Daten für Benutzer einer im System registrierten Organisation oder für eine Einzelperson verschlüsselt und die verschlüsselten Daten im Rechenzentrum 401 registriert.
  • (S301)
  • Zunächst bestimmt die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 einen Benutzer oder eine Gruppe, die zum Abruf der erstellten Daten berechtigt ist. Beispielsweise bestimmt die Verschlüsselungsinformationen-Erzeugungseinheit 306 den Benutzer oder die Gruppe, die zum Abruf zugelassen ist, indem sie einen Benutzer, der das Zugangsterminal 301 benutzt, veranlasst, den Benutzer oder die Gruppe, die zum Abruf zugelassen ist, über die Eingabevorrichtung einzugeben.
  • Dann erzeugt die Verschlüsselungsinformationen-Erzeugungseinheit 306 mit Hilfe des Verarbeitungsvorrichtung ein Attributinformationen-Verschlüsselungs-Array (Verschlüsselungsinformationen) mit verschlüsselten Daten, das den bestimmten Benutzer oder die Gruppe gemäß dem Attributinformationen-Verschlüsselungs-Array 501 usw., das in den öffentlichen Parametern enthalten ist, eindeutig identifizieren kann. Wenn der ermittelte Benutzer oder die ermittelte Gruppe mit einem Attributinformationen-Verschlüsselungs-Array nicht eindeutig identifiziert werden kann, kann eine Vielzahl von Attributinformationen-Verschlüsselungs-Arrays mit verschlüsselten Daten erzeugt werden.
  • 33 zeigt ein Beispiel für ein Attributinformationen-Verschlüsselungs-Array für verschlüsselte Daten.
  • In dem in 33 dargestellten Beispiel beziehen sich die Daten auf einen Budgetplan für Materialausgaben für das Jahr 2009, wie im Kategorie-Verschlüsselungs-Array angegeben. Es wird auch angegeben, dass die Informationen nur für den internen Gebrauch vertraulich sind, wie im Vertraulichkeitsstufen-Verschlüsselungs-Array angegeben, und dass die Informationen von einem Benutzer gelesen werden können, der zu Unternehmen A/Hauptverwaltung/Bereich allgemeine Verwaltung/Sektion allgemeine Verwaltung gehört, wie im Zugehörigkeitsinformationen-Verschlüsselungs-Array angegeben. Darüber hinaus wird als Suchwort festgelegt, dass es sich bei den Daten um den 15. Datensatz handelt und um die Information, dass am 5. Oktober 2009 drei PCs für 100.000 Yen gekauft wurden, wie im Suchwort-Verschlüsselungs-Array angegeben.
  • Anschließend erzeugt die Vektorerzeugungseinheit 307 mit Hilfe der Verarbeitungsvorrichtung einen Attributvektor x, der allen erzeugten Attributinformationen-Verschlüsselungs-Arrays für verschlüsselte Daten entspricht. Im obigen Beispiel ist x = (x 1, x2) = (x1, ..., xµ2) = (x1, ..., x54). Das Verfahren zur Erzeugung eines Attributvektors auf der Grundlage eines Verschlüsselungs-Arrays wird anhand der 20 und 21 beschrieben.
  • (S302)
  • Die Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten verwendet die Verarbeitungsvorrichtung, um Tags für alle in (S301) erzeugten Attribut-Vektoren zu erzeugen. Konkret wird der Enc-Algorithmus der Prädikatverschlüsselung für widerrufsfähige innere Produkte von der Verarbeitungsvorrichtung mit einem Klartext m als Konstante 1 oder einer Zufallszahl ausgeführt, um einen Chiffretext (c1, c2) zu erzeugen, der als Tag verwendet wird.
  • Die Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten erzeugt auch einen Datenverschlüsselungsschlüssel K (gemeinsamer Schlüssel) und setzt den Datenverschlüsselungsschlüssel K, der mit einem bestehenden Verschlüsselungsverfahren verschlüsselt wird, als einen verschlüsselten Datenverschlüsselungsschlüssel ein.
  • (S303)
  • Die Datenverschlüsselungseinheit 309 verschlüsselt mit Hilfe der Verarbeitungsvorrichtung einen Datenkörper mit dem Datenverschlüsselungsschlüssel K (common key) unter Verwendung von common key encryption wie AES oder Camellia (eingetragenes Warenzeichen), um einen verschlüsselten Datenkörper zu erzeugen. Dann verwendet die Datenverschlüsselungseinheit 309 die Verarbeitungsvorrichtung, um verschlüsselte Daten zu erzeugen, einschließlich des erzeugten verschlüsselten Datenkörpers, der Tags und des verschlüsselten Datenverschlüsselungsschlüssels. Das heißt, die Konfiguration der verschlüsselten Daten ist die in 5 gezeigte Konfiguration der verschlüsselten Daten A.
  • (S304)
  • Die endgerätseitige Datenübertragungs- und -empfangseinheit 311 überträgt die erzeugten verschlüsselten Daten an das Rechenzentrum 401 und fordert die Speicherung der verschlüsselten Daten an.
  • (S305)
  • Die zentrumsseitige Datenübertragungs- und Empfangseinheit 402 des Rechenzentrums 401 empfängt die verschlüsselten Daten, deren Speicherung angefordert wird. Anschließend speichert die Datenverwaltungseinheit 403 die empfangenen Daten in der Speichereinrichtung.
  • Im Folgenden wird der Prozess der (4) Schlüsselwortsuche anhand von 25 beschrieben.
  • Bei der (4) Suchschlüsselwortsuche sucht das Zugangsterminal 301 unter Angabe eines Suchschlüsselwortes nach verschlüsselten Daten, die im Rechenzentrum 401 gespeichert sind.
  • (S401)
  • Zunächst empfängt die Verschlüsselungsinformationen-Erzeugungseinheit 306 des Zugangsterminals 301 ein vom Benutzer eingegebenes Suchschlüsselwort und erzeugt mit Hilfe der Verarbeitungsvorrichtung ein Suchwort-Verschlüsselungs-Array (Verschlüsselungsinformationen).
  • 34 zeigt ein Beispiel für ein Suchwort-Verschlüsselungs-Array.
  • Das in 34 gezeigte Beispiel ist ein Beispiel, bei dem der Benutzer „Jahr 2009“ und „Kauf“ als Suchschlüsselwörter angegeben hat. Daher werden im Suchwort-Verschlüsselungs-Array in der entsprechenden Spalte 2 und Spalte 8 Werte eingetragen.
  • Als Nächstes erzeugt die Vektorerzeugungseinheit 307 mit Hilfe der Verarbeitungsvorrichtung einen SuchPrädikatvektor v SEARCH, der dem erzeugten Suchwort-Verschlüsselungs-Array entspricht. Wie oben beschrieben, wird die zweite Schicht der Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützen, für die Suche verwendet, so dass im obigen Beispiel v SEARCH = v 2 = (vµ1+1, ..., vµ2) = (v39, ..., v54). Das Verfahren zur Erzeugung eines SuchPrädikatvektors auf der Grundlage eines Verschlüsselungs-Arrays wird anhand der 20 und 21 beschrieben.
  • (S402)
  • Die Trapdoor-Erzeugungseinheit 303 erzeugt mit Hilfe der Verarbeitungsvorrichtung eine Trapdoor unter Verwendung des in (S401) erzeugten SuchPrädikatvektors. Insbesondere verwendet die Trapdoor-Erzeugungseinheit 303 die Verarbeitungsvorrichtung, um den Delegate-Algorithmus (I = 1) der Prädikatverschlüsselung für innere Produkte mit Unterstützung des Widerrufs auszuführen, um einen geheimen Schlüssel k→* 2 einer unteren Schicht auf der Grundlage eines geheimen Benutzerschlüssels k→* 1 und des SuchPrädikatvektors v 2 zu erzeugen. Die Trapdoor-Erzeugungseinheit 303 setzt ein Element k*2,dec, das ein Element zur Entschlüsselung ist, des geheimen Schlüssels k→* 2 der unteren Schicht als Trapdoor.
  • (S403)
  • Die endgerätseitige Datenübertragungs- und -empfangseinheit 311 überträgt die in (S402) erzeugte Trapdoor und die Schlüssel-ID, die dem geheimen Benutzerschlüssel entspricht, der zur Erzeugung der Trapdoor verwendet wurde, an das Rechenzentrum 401 und fordert eine Suche nach verschlüsselten Daten an. Die Suchanfrage-Empfangseinheit 404 des Rechenzentrums 401 empfängt einen Satz der Trapdoor und der Schlüssel-ID und nimmt die Suche nach verschlüsselten Daten an.
  • (S404)
  • Die Suchausführungseinheit 405 des Rechenzentrums 401 vergleicht mit Hilfe der Verarbeitungsvorrichtung jeden der Tags, die an allen in der Datenverwaltungseinheit 403 gespeicherten verschlüsselten Daten angebracht sind, mit der in (S403) empfangenen Trapdoor. Zu diesem Zeitpunkt extrahiert die Suchhilfsschlüssel-Verwaltungseinheit 407 den Suchhilfsschlüssel, der der in (S403) empfangenen Schlüssel-ID entspricht, und die Suchausführungseinheit 405 verwendet den extrahierten Suchhilfsschlüssel ebenfalls zum Vergleich. Wenn der Suchhilfsschlüssel, der der Schlüssel-ID entspricht, nicht gefunden werden kann, wird festgestellt, dass die Suchberechtigung widerrufen wurde, und der Vergleich zwischen den einzelnen Tags und der Trapdoor wird nicht durchgeführt (es wird festgestellt, dass die Anzahl der Treffer null beträgt). Dabei stellt die Suchausführungseinheit 405 fest, ob es unter den gespeicherten verschlüsselten Daten verschlüsselte Daten gibt, die das Suchschlüsselwort als Suchwort enthalten. Wenn den verschlüsselten Daten mehrere Tags hinzugefügt werden, vergleicht die Suchausführungseinheit 405 jeden der Tags mit der empfangenen Trapdoor.
  • Die Suchausführungseinheit 405 betrachtet verschlüsselte Daten, bei denen einer der Tags der verschlüsselten Daten das Schlüsselwort enthält, als einen bei der Suche gefundenen Treffer.
  • Es ist zu beachten, dass ein Tag mit der Trapdoor verglichen wird, indem der Dec-Algorithmus der Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützen, ausgeführt wird, wobei als Eingabe ein Tag (c1, c2), eine Trapdoor k*2,dec und ein Suchhilfsschlüssel θ, der der Schlüssel-ID entspricht, verwendet werden, um den Tag (c1, c2) zu entschlüsseln. Wenn das berechnete Ergebnis die Konstante 1 ist (oder die im Enc-Algorithmus verwendete Zufallszahl), enthält der Tag ein Attribut, das dem im geheimen Benutzerschlüssel festgelegten Attribut entspricht, und der Tag enthält das Suchschlüsselwort als Suchwort. Andernfalls enthält zumindest der Tag kein Attribut, das dem im geheimen Benutzerschlüssel festgelegten Attribut entspricht, oder der Tag enthält das Suchschlüsselwort nicht als Suchwort. Die Tatsache, dass der Tag ein Attribut enthält, das dem im geheimen Benutzerschlüssel festgelegten Attribut entspricht, bedeutet, dass der geheime Benutzerschlüssel nach dem Tag suchen kann (über eine Suchberechtigung verfügt). Dass der Tag kein Attribut enthält, das dem im geheimen Benutzerschlüssel eingestellten Attribut entspricht, bedeutet, dass der geheime Benutzerschlüssel nicht nach dem Tag suchen kann (keine Suchberechtigung hat).
  • (S405)
  • Die Suchergebnis-Übertragungseinheit 406 extrahiert alle verschlüsselten Daten, die bei der Suche in (S404) als Treffer ermittelt wurden, und überträgt sie an das Zugangsterminal 301, von dem aus die Trapdoor übermittelt wurde. Anschließend empfängt die endgerätseitige Datenübertragungs- und -empfangseinheit 311 des Zugangsterminals 301 die verschlüsselten Daten. Wenn keine verschlüsselten Daten als Suchergebnis zurückgegeben werden sollen, übermittelt die Suchergebnis-Übertragungseinheit 406 eine entsprechende Information an das Zugangsterminal 301.
  • (S406)
  • Die Datenverschlüsselungsschlüssel-Entschlüsselungseinheit 305 entschlüsselt den verschlüsselten Datenverschlüsselungsschlüssel der empfangenen verschlüsselten Daten unter Verwendung eines bestehenden Verschlüsselungsverfahrens, um den Datenverschlüsselungsschlüssel K zu erhalten.
  • (S407)
  • Die Datenentschlüsselungseinheit 310 entschlüsselt den in den verschlüsselten Daten enthaltenen verschlüsselten Datenkörper mit dem in (S406) erhaltenen Datenverschlüsselungsschlüssel K unter Verwendung von AES oder Camellia (eingetragenes Warenzeichen). Es ist zu beachten, dass der für die Entschlüsselung verwendete Algorithmus mit dem für die Verschlüsselung verwendeten Algorithmus übereinstimmen muss. Daher muss der im System zu verwendende Algorithmus im Voraus festgelegt werden oder es muss möglich sein, den Algorithmus zu identifizieren, indem in den verschlüsselten Daten Informationen enthalten sind, die z. B. angeben, welcher Algorithmus für die Verschlüsselung verwendet wird.
  • Als nächstes wird anhand von 26 der Prozess des Widerrufs von (5) Suchberechtigungen beschrieben.
  • Der Prozess des (5) Widerrufs von Suchberechtigungen ist der Prozess, bei dem das Rechenzentrum 401 den Suchhilfsschlüssel, der diesem geheimen Benutzerschlüssel entspricht, löscht, um eine Suche mit einem zu widerrufenden geheimen Benutzerschlüssel zu deaktivieren. Da der geheime Benutzerschlüssel und der Suchhilfsschlüssel über die Schlüssel-ID miteinander verbunden sind, wird die Schlüssel-ID für den Löschvorgang verwendet.
  • (S501)
  • Die Suchhilfsschlüssel-Verwaltungseinheit 407 des Rechenzentrums 401 identifiziert die Schlüssel-ID, die dem zu widerrufenden geheimen Benutzerschlüssel entspricht. Dies kann z. B. dadurch geschehen, dass der Schlüsselverwaltungsserver 201 oder das Zugangsterminal 301 eine Anfrage zum Widerruf von Suchberechtigungen annimmt.
  • (S502)
  • Die Suchhilfsschlüssel-Verwaltungseinheit 407 des Rechenzentrums 401 löscht den Suchhilfsschlüssel, der der in (S501) identifizierten Schlüssel-ID entspricht, aus der Speichervorrichtung. Selbst wenn danach eine Suche mit dem entsprechenden geheimen Benutzerschlüssel durchgeführt wird, kann der benötigte Suchhilfsschlüssel daher nicht in (S404) extrahiert werden, so dass die Suche deaktiviert werden kann.
  • <Auswirkungen von Ausführungsform 1>
  • Wie oben beschrieben, erzeugt das durchsuchbare Verschlüsselungssystem 100 Verschlüsselungsinformationen, indem es, wie oben beschrieben, die Struktur, das Vergleichsverfahren und die Wertzuweisungsmethode des Attributinformationen-Verschlüsselungs-Arrays 501 bestimmt und implementiert, das aus Informationen wie einer individuellen ID zur Identifizierung einer Person, z. B. einem Namen oder einer Mitarbeiternummer, organisatorischen Informationen eines Unternehmens, einer Mitarbeiterstellung, einer Kategorie eines Dokuments und einer Vertraulichkeitsstufe sowie in den Daten enthaltenen Schlüsselwörtern besteht. Anschließend wird ein Attributvektor oder Prädikatvektor erzeugt, indem die erzeugten Verschlüsselungsinformationen wie oben beschrieben auf den Attributvektor oder Prädikatvektor abgebildet werden. Folglich kann das durchsuchbare Verschlüsselungssystem 100 feststellen, ob ein Zugriff auf die Daten erlaubt ist, indem es einfach ein inneres Produkt aus dem Attributvektor, der einen Benutzer repräsentiert, dem ein Zugriff erlaubt ist, und dem Prädikatvektor, der Attribute eines Benutzers angibt, berechnet.
  • Das durchsuchbare Verschlüsselungssystem 100 verwendet die Prädikatverschlüsselung für innere Produkte, um mit einem Attributvektor verschlüsselte Daten zu erzeugen und mit einem Prädikatvektor einen geheimen Benutzerschlüssel zu generieren. Folglich kann in dem durchsuchbaren Verschlüsselungssystem 100 nur ein Benutzer, dem ein Zugang gewährt wird, die verschlüsselten Daten abrufen.
  • Beispielsweise kann das durchsuchbare Verschlüsselungssystem 100 durch Angabe einer Abteilung oder einer Sektion im Attributvektor verschlüsselte Daten erstellen, so dass nur ein Benutzer, der zu dieser Abteilung oder dieser Sektion gehört, die verschlüsselten Daten abrufen kann.
  • Das durchsuchbare Verschlüsselungssystem 100 legt ein Schlüsselwort fest, das in Daten in einem Attributinformationen-Verschlüsselungs-Array enthalten ist, das bei der Durchführung der Verschlüsselung erstellt wird, und erzeugt eine Trapdoor auf der Grundlage eines geheimen Benutzerschlüssels, indem es zusätzlich ein Suchschlüsselwort hinzufügt. Daher kann im durchsuchbaren Verschlüsselungssystem 100 nur ein zugangsberechtigter Benutzer Daten abrufen, ohne dem Rechenzentrum 401 das Suchschlüsselwort mitzuteilen.
  • Durch die einfache Übermittlung einer Trapdoor an das Rechenzentrum 401 ist es möglich, eine Übereinstimmung oder Nichtübereinstimmung für alle durchsuchbaren Daten festzustellen.
  • Beispielsweise kann das durchsuchbare Verschlüsselungssystem 100 durch die Festlegung einer Abteilung oder eines Abschnitts im Attributvektor verschlüsselte Daten erzeugen, so dass nur ein Benutzer, der zu dieser Sektion oder dieser Sektion gehört, die Daten abrufen kann.
  • Das durchsuchbare Verschlüsselungssystem 100 verwendet nicht nur einen Tag und eine Trapdoor, sondern auch einen Suchhilfsschlüssel, um den Vergleichsprozess bei einer Suche durchzuführen. So kann eine Suchberechtigung durch einfaches Löschen eines Suchhilfsschlüssels widerrufen werden, so dass ein effizientes Widerrufsmanagement durchgeführt werden kann.
  • Das durchsuchbare Verschlüsselungssystem 100 wird dadurch realisiert, dass das in Patentschrift 4 beschriebene durchsuchbare Verschlüsselungssystem um die für das Widerrufsmanagement notwendigen Bestandteile und Prozesse erweitert wird. Genauer gesagt erzeugt der Schlüsselverwaltungsserver in Patentliteratur 4 einen geheimen Benutzerschlüssel, aber in Ausführungsform 1 ist vorgesehen, dass der Schlüsselverwaltungsserver 201 einen geheimen Benutzerschlüssel und einen Suchhilfsschlüssel erzeugt, und sowohl der geheime Benutzerschlüssel als auch der Suchhilfsschlüssel werden bei einer Suche benötigt. Es ist dann so eingerichtet, dass eine Suchberechtigung einfach durch Löschen des Suchhilfsschlüssels widerrufen werden kann, was eine effiziente Verwaltung des Widerrufs ermöglicht.
  • Wenn der UND-Test oder der ODER-Test auf einem Verschlüsselungs-Array durchgeführt wird, ordnet das durchsuchbare Verschlüsselungssystem 100 das Verschlüsselungs-Array einem Attributvektor oder einem Prädikatvektor nach dem oben beschriebenen Verfahren zu. Infolgedessen kann das durchsuchbare Verschlüsselungssystem 100 sowohl in Fällen, in denen der Datenkörper strukturierte Daten enthält, wie in einem Beleg oder einer Datenbank, als auch in Fällen, in denen der Datenkörper nicht strukturiert ist, wie in einem allgemeinen Textverarbeitungsdokument, eine Suche durchführen, während die Daten verschlüsselt bleiben.
  • In dem in 10 dargestellten Zugehörigkeitsinformationen-Verschlüsselungs-Array wird bei der Erzeugung eines geheimen Benutzerschlüssels, z. B. für einen Benutzer, der zu Sektion D, aber zu keiner Einheit gehört, „*“ als Einheits-ID angegeben, wie in dem Zugehörigkeitsinformationen-Verschlüsselungs-Array 2. In diesem Fall können mit diesem geheimen Benutzerschlüssel alle Dokumente für Sektion D gelesen werden. Soll erreicht werden, dass nur Dokumente für Sektion D gelesen werden können und Dokumente für eine Einheit in Sektion D nicht gelesen werden können, kann anstelle von „*“ eine Zufallszahl R als Einheits-ID eingestellt werden.
  • Dies kann auch mit anderen Verschlüsselungs-Arrays realisiert werden, z. B. dem Stellungsinformationen-Verschlüsselungs-Array. Das heißt, ein Sektionsleiter gehört im Allgemeinen keiner Einheit an. Im Gegensatz dazu gehört ein Bediensteter in der Regel einer Einheit an. Durch die Nutzung dieser Eigenschaft kann das Stellungsinformationen-Verschlüsselungs-Array dazu verwendet werden, zu kontrollieren, ob nur ein Benutzer, der zu einer Einheit gehört, ein Dokument lesen kann, oder ob nur ein Benutzer, der zu keiner Einheit gehört, ein Dokument lesen kann.
  • In der obigen Beschreibung wurden vor allem Beispiele für unternehmensinterne Systeme angeführt, aber wie eine Organisationsstruktur oder eine Planstellenstruktur klassifiziert wird, ist nur ein Beispiel. So kann beispielsweise eine Länder-ID vor einer Büro-ID angegeben werden oder eine Projekt-ID anstelle einer Einheits-ID verwendet werden. Ein stellvertretender Direktor-Klassen-Flag kann zwischen einem Direktor-Klassen-Flag und einem Abteilungsleiterklassen-Flag gesetzt werden. Diese Verschlüsselungs-Arrays sind nur Beispiele, so dass je nach Situation der Organisation verschiedene Elemente hinzugefügt oder gelöscht werden können.
  • In der obigen Beschreibung werden als Beispiel die von den Mitarbeitern im unternehmensinternen System verwalteten Daten genannt, aber es ist nicht notwendig, die Anwendung auf unternehmensinterne Systeme zu beschränken. Es kann zum Beispiel auch zur Verwaltung von elektronischen Krankenakten oder Krankenversicherungsansprüchen von Patienten in einem medizinischen Informationssystem verwendet werden. In diesem Fall werden organisatorische Hierarchie- oder Planstelleninformationen, die für das firmeninterne System erstellt wurden, für das medizinische Informationssystem erstellt. Anstelle von Informationen zur Organisationshierarchie können beispielsweise Informationen zur Hierarchie der medizinischen Einrichtung, die ein Krankenhaus oder einen Arzt identifizieren können, und anstelle von Stellungsinformationen können Rollen wie Arzt, Krankenschwester und Apotheker zugewiesen werden.
  • In der obigen Beschreibung wird davon ausgegangen, dass der Administrator des Systems ein Unternehmen ist und die Zugangsterminals von Benutzern genutzt werden, was jedoch je nach dem zu verwendenden System flexibel geändert werden kann. Wenn zum Beispiel ein System so konfiguriert ist, dass ein Benutzer als Schlüsselverwaltungsserver fungiert und geheime Benutzerschlüssel an andere Benutzer ausgibt, kann ein System konstruiert werden, das flexiblere Einstellungen der Zugriffsberechtigungen als dieses System ermöglicht.
  • In der obigen Beschreibung ist das Zugangsterminal 301 so konfiguriert, dass es geheime Benutzerschlüssel speichert, Trapdoors generiert und entschlüsselte Datenverschlüsselungsschlüssel entschlüsselt. Um die Sicherheit weiter zu erhöhen, können die geheimen Benutzerschlüssel jedoch auch mit einem Gerät wie einer IC-Karte anstelle des Zugangsterminals 301 verwaltet werden. In diesem Fall kann die Sicherheit durch eine Authentifizierung mit einem Passwort erhöht werden, um die IC-Karte zu benutzen.
  • Wenn geheime Benutzerschlüssel vom Schlüsselverwaltungsserver 201 an das Zugangsterminal 301 verteilt werden, können die geheimen Benutzerschlüssel in IC-Karten gespeichert und die IC-Karten sicher an die Benutzer verteilt werden.
  • In der obigen Beschreibung werden hauptsächlich die Fälle dargestellt, in denen das Attributinformationen-Verschlüsselungs-Array 501 mit Hilfe des UND-Tests verglichen wird, aber ein Vergleich kann auch mit Hilfe des ODER-Tests durchgeführt werden oder ein Vergleich kann mit Hilfe eines Einschlussbeziehungstests durchgeführt werden.
  • In der obigen Beschreibung wird die Struktur des Attributinformationen-Verschlüsselungs-Arrays 501 bei der Systemeinrichtung festgelegt, einschließlich des Suchwort-Verschlüsselungs-Arrays zum Speichern von Suchschlüsselwörtern. Dies liegt daran, dass der Einfachheit der Beschreibung Vorrang eingeräumt wird. In Umgebungen, in denen strukturierte Daten wie Belege und unstrukturierte Daten wie Textverarbeitungsdokumente gemischt werden, ist es jedoch oft schwierig, die Struktur des Suchwort-Verschlüsselungs-Arrays im Voraus zu bestimmen. Statt die Struktur des Suchwort-Verschlüsselungs-Arrays bei der Systemeinrichtung festzulegen, können daher frei verwendbare Attribute vorgesehen werden, die die Struktur des Suchwort-Verschlüsselungs-Arrays für jeden Dokumenttyp oder für jedes Inhaltselement definieren.
  • In der obigen Beschreibung wird die Struktur des Attributinformationen-Verschlüsselungs-Arrays 501 im Voraus festgelegt. Wenn ein Unternehmen jedoch eine Vielzahl von Arbeitsplätzen hat, kann es schwierig sein, alles im Voraus zu bestimmen. In einem solchen Fall können Attribute, die für jedes Büro oder jede Auftragsart frei verwendet werden können, für einige Verschlüsselungs-Arrays bereitgestellt werden, damit sie von den Benutzern zum Zeitpunkt der Verwendung frei verwendet werden können.
  • Wenn in der obigen Beschreibung eine individuelle ID oder eine Unternehmens-ID angegeben ist, wird eine Zeichenkette wie „Tanaka“ oder „Unternehmen A“ verwendet, um sie darzustellen. Dies liegt daran, dass der Einfachheit der Beschreibung Vorrang eingeräumt wird, und in der Tat können nicht nur Zeichenketten, sondern auch Zahlen als IDs verwendet werden. Ebenso wird der Wert, der in jedem der verschiedenen Merker zu setzen ist, als Wert „1“ angegeben, aber es muss nicht der Wert „1“ sein und der Wert kann frei bestimmt werden.
  • In der obigen Beschreibung wird ein Beispiel mit symmetrischen Paarungen vorgestellt, es kann aber auch auf der Grundlage asymmetrischer Paarungen umgesetzt werden. In diesem Fall lassen sich die Parameter flexibler einstellen und auch die Geschwindigkeit kann optimiert werden.
  • In der obigen Beschreibung können die geheimen Benutzerschlüssel in der Speichereinheit für verschiedene Schlüssel des Schlüsselverwaltungsservers gespeichert werden. Da die Schlüssel jedoch erneut ausgegeben werden können, müssen sie nicht aufbewahrt werden, wenn sie nicht benötigt werden.
  • In der obigen Beschreibung wird die Anzahl der Schichten der Prädikatverschlüsselung für innere Produkte, die den Widerruf unterstützen, mit d = 2 angegeben, sie kann jedoch auch auf d ≥ 3 festgelegt werden, wobei die erste bis (d-1)-te Schicht für Benutzerattributinformationen und die d-te Schicht für Suchinformationen verwendet werden kann. Es ist jedoch zu beachten, dass der Delegate-Algorithmus nur zur Erzeugung von Trapdoors verwendet wird (nicht zur Schlüsseldelegation wie bei der allgemeinen hierarchischen Prädikatverschlüsselung für innere Produkte).
  • In der obigen Beschreibung wird die Prädikatverschlüsselung für innere Produkte verwendet, die den Widerruf auf der Grundlage der Prädikatverschlüsselung für innere Produkte der Nichtpatentliteratur 7 unterstützt, aber die Unterstützung des Widerrufs kann auch auf der Grundlage anderer Arten von Prädikatverschlüsselung für innere Produkte realisiert werden, vorausgesetzt, dass ein Hilfsschlüssel in den KeyGen-Algorithmus und den Dec-Algorithmus eingeführt werden kann.
  • In der obigen Beschreibung verwaltet der Schlüsselverwaltungsserver 201 die Benutzerattributinformationen, aber die Attributinformationen können auch von einem anderen Server verwaltet werden. Wenn es beispielsweise bereits einen Lightweight Directory Access Protocol (LDAP)-Server gibt, der die Personalinformationen der Mitarbeiter verwaltet, kann der Schlüsselverwaltungsserver den LDAP-Server nutzen, anstatt die Mitarbeiterattributinformationen selbst zu verwalten.
  • Im Folgenden wird die Hardwarekonfiguration des durchsuchbaren Verschlüsselungssystems 100 (Schlüsselverwaltungsserver 201, Zugangsterminal 301, Rechenzentrum 401) in dieser Ausführungsform beschrieben.
  • 35 ist eine Figur, die ein Beispiel für die Hardwarekonfiguration des Schlüsselverwaltungsservers 201, des Zugangsterminals 301 und des Rechenzentrums 401 zeigt.
  • Wie in 35 dargestellt, enthalten der Schlüsselverwaltungsserver 201, das Zugangsterminal 301 und das Rechenzentrum 401 jeweils eine Zentraleinheit (CPU) 1911 (auch als Zentraleinheit, Verarbeitungsvorrichtung, Betriebseinheit, Mikroprozessor, Mikrocomputer oder Prozessor bezeichnet), die Programme ausführt. Die CPU 1911 ist über einen Bus 1912 mit dem ROM 1913, dem RAM 1914, einer Flüssigkristallanzeige (LCD) 1901, der Tastatur (K/B) 1902, der Kommunikationskarte 1915 und einem Magnetplattengerät 1920 verbunden und steuert diese Hardwaregeräte. Anstelle des Magnetplattengeräts 1920 (Festplattengerät) kann auch eine Speichereinrichtung wie ein optisches Plattengerät oder ein Lese-/Schreibgerät für Speicherkarten verwendet werden. Das Magnetplattengerät 1920 wird über eine vorgegebene Festplattenschnittstelle angeschlossen.
  • Sowohl der ROM 1913 als auch die Magnetplattenvorrichtung 1920 sind Beispiele für nichtflüchtige Speicher. Der RAM 1914 ist ein Beispiel für einen flüchtigen Speicher. Der ROM 1913, der RAM 1914 und die Magnetplattenvorrichtung 1920 sind Beispiele für Speichervorrichtungen (Speicher). Die Tastatur 1902 und die Kommunikationskarte 1915 sind jeweils ein Beispiel für eine Eingabevorrichtung. Die Kommunikationskarte 1915 ist ein Beispiel für eine Kommunikationsvorrichtung (Netzwerkschnittstelle). Außerdem ist das LCD 1901 ein Beispiel für eine Anzeigevorrichtung.
  • In der Magnetplattenvorrichtung 1920, dem ROM 1913 oder ähnlichem sind ein Betriebssystem (OS) 1921, ein Fenstersystem 1922, Programme 1923 und Dateien 1924 gespeichert. Jedes Programm der Programme 1923 wird von der CPU 1911, dem Betriebssystem 1921 oder dem Fenstersystem 1922 ausgeführt.
  • Die Programme 1923 speichern Software und Programme, die die Funktionen ausführen, die als „die Hauptschlüsselerzeugungseinheit 202“, „die Einheit 204 zur Erzeugung des geheimen Benutzerschlüssels“, „die Einheit 205 zur Verwaltung der Benutzerattributinformationen-Verwaltungseinheit“, „die Einheit 206 zur Erzeugung von Verschlüsselungsinformationen“, „die Vektorerzeugungseinheit 207“ beschrieben werden, „die Speichereinheit 208 für verschiedene Schlüssel“, „die PKG-seitige Datenübertragungs- und Empfangseinheit 209“, „die Speichereinheit 302 für geheime Benutzerschlüssel“, „die Trapdoor-Erzeugungseinheit 303“, „die Datenverschlüsselungsschlüssel-Entschlüsselungseinheit 305“, „die Verschlüsselungsinformationen-Erzeugungseinheit 306“, „die Vektorerzeugungseinheit 307“, „die Verschlüsselungsschlüssel-Erzeugungseinheit 308 für Tags und verschlüsselte Daten“, „die Datenverschlüsselungseinheit 309“, „die Datenentschlüsselungseinheit 310“, „die endgerätseitige Datenübertragungs- und -empfangseinheit 311“, „die zentrumsseitige Datenübertragungs- und -empfangseinheit 402“, „die Datenverwaltungseinheit 403“, „die Suchanfrage-Empfangseinheit 404“, „die Suchausführungseinheit 405“, „die Suchergebnis-Übertragungseinheit 406“, „die Suchhilfsschlüssel-Verwaltungseinheit 407“ und so weiter in der obigen Beschreibung, oder andere Programme. Die Programme werden von der CPU 1911 gelesen und ausgeführt.
  • In den Dateien 1924 werden in Form von „Dateien“ oder „Datenbanken“ Informationen wie der „Hauptschlüssel“, „öffentliche Parameter“, „verschlüsselte Daten“, „geheime Benutzerschlüssel“, „Suchhilfsschlüssel“, „Schlüssel-IDs“ (siehe oben), Daten, Signalwerte, Variablenwerte oder Parameter gespeichert. Die „Dateien“ und „Datenbanken“ werden auf einem Aufzeichnungsmedium wie einer Diskette oder einem Speicher gespeichert. Die Informationen, Daten, Signalwerte, Variablenwerte oder Parameter, die in einem Speichermedium wie einer Diskette oder einem Speicher gespeichert sind, werden von der CPU 1911 über eine Lese-/Schreibschaltung in einen Hauptspeicher oder einen Cache-Speicher ausgelesen und für den Betrieb der CPU 1911 wie Extraktion, Suche, Referenz, Vergleich, Berechnung, Kalkulation, Verarbeitung, Ausgabe, Druck und Anzeige verwendet. Während des Betriebs der CPU 1911, d. h. während der Extraktion, der Suche, des Verweises, des Vergleichs, der Berechnung, der Kalkulation, der Verarbeitung, der Ausgabe, des Drucks und der Anzeige, werden Informationen, Daten, Signalwerte, Variablenwerte oder Parameter vorübergehend im Hauptspeicher, im Cache-Speicher oder in einem Pufferspeicher gespeichert.
  • Die Pfeile in den Flussdiagrammen in der obigen Beschreibung zeigen hauptsächlich die Eingabe/Ausgabe von Daten oder Signalen an, und die Daten- oder Signalwerte werden im Speicher des RAM 1914, in anderen Aufzeichnungsmedien wie einer optischen Platte oder einem IC-Chip aufgezeichnet. Daten oder Signale werden online über den Bus 1912, Signalleitungen, Kabel, andere Übertragungsmedien oder Funkwellen übertragen.
  • Was in der obigen Beschreibung als „Einheit“ bezeichnet wird, kann ein „Schaltkreis“, eine „Vorrichtung“, eine „Ausrüstung“, ein „Mittel“ oder eine „Funktion“ sein, und es kann auch ein „Schritt“, ein „Verfahren“ oder ein „Prozess“ sein. Was als „Vorrichtung“ bezeichnet wird, kann ein „Schaltkreis“, eine „Ausrüstung“, ein „Mittel“ oder eine „Funktion“ sein, oder ein „Schritt“, ein „Verfahren“ oder ein „Prozess“. Außerdem kann das, was als „Prozess“ bezeichnet wird, ein „Schritt“ sein. Das heißt, was als „Einheit“ bezeichnet wird, kann durch eine im ROM 1913 gespeicherte Firmware realisiert werden. Alternativ kann sie ausschließlich durch Software, ausschließlich durch Hardware wie ein Element, ein Gerät, ein Substrat oder eine Verdrahtung, durch eine Kombination aus Software und Hardware oder eine Kombination, die auch Firmware enthält, realisiert werden. Firmware und Software sind als Programme in einem Aufzeichnungsmedium wie dem ROM 1913 gespeichert. Die Programme werden von der CPU 1911 gelesen und von der CPU 1911 ausgeführt. Das heißt, die Programme lassen einen Computer oder ähnliches als die oben beschriebenen „Einheiten“ funktionieren. Alternativ dazu veranlassen die Programme einen Computer oder ähnliches, Verfahren oder Methoden der oben beschriebenen „Einheiten“ auszuführen.
  • In der obigen Beschreibung werden die funktionalen Bestandteile durch Software realisiert. Als Variante können die funktionalen Bestandteile jedoch auch durch Hardware realisiert werden.
  • Wenn die funktionalen Bestandteile durch Hardware realisiert werden, enthält das durchsuchbare Verschlüsselungssystem 100 (der Schlüsselverwaltungsserver 201, das Zugangsterminal 301, das Rechenzentrum 401) eine elektronische Schaltung anstelle der CPU 1911 und des RAM 1914. Der elektronische Schaltkreis ist ein spezieller Schaltkreis, der die Funktionen der Funktionsbausteine und des RAM 1914 realisiert.
  • Die elektronische Schaltung kann eine einzelne Schaltung, eine zusammengesetzte Schaltung, ein programmierter Prozessor, ein parallel programmierter Prozessor, ein Logik-IC, ein Gate-Array (GA), ein anwendungsspezifischer integrierter Schaltkreis (ASIC) oder ein feldprogrammierbares Gate-Array (FPGA) sein.
  • Die funktionalen Bestandteile können von einer einzigen elektronischen Schaltung realisiert werden, oder die funktionalen Bestandteile können auf mehrere elektronische Schaltungen verteilt und von diesen realisiert werden.
  • Ein Teil der funktionalen Bestandteile kann durch Hardware realisiert werden, der Rest der funktionalen Bestandteile kann durch Software realisiert werden.
  • Die CPU 1911, der RAM 1914 und die elektronische Schaltung 16 werden als Verarbeitungsschaltungen bezeichnet. Das heißt, die Funktionen der funktionalen Bestandteile werden durch die Verarbeitungsschaltung realisiert.
  • BEZUGSZEICHENLISTE
  • 100: durchsuchbares Verschlüsselungssystem, 101: Netzwerk, 102: Unternehmen-LAN, 201: Schlüsselverwaltungsserver, 202: Hauptschlüsselerzeugungseinheit, 204: Einheit zur Erzeugung des geheimen Benutzerschlüssels, 205: Benutzerattributinformationen-Verwaltungseinheit, 206: Verschlüsselungsinformationen-Erzeugungseinheit, 207: Vektorerzeugungseinheit, 208: Speichereinheit für verschiedene Schlüssel, 209: PKG-seitige Datenübertragungs- und Empfangseinheit, 301: Zugangsterminal, 302: Speichereinheit für geheimen Benutzerschlüssel, 303: Trapdoor-Erzeugungseinheit, 305: Datenverschlüsselungsschlüssel-Entschlüsselungseinheit, 306: Verschlüsselungsinformationen-Erzeugungseinheit, 307: Vektorerzeugungseinheit, 308: Verschlüsselungsschlüssel-Erzeugungseinheit für Tags und verschlüsselte Daten, 309: Datenverschlüsselungseinheit, 310: Datenentschlüsselungseinheit, 311: endgerätseitige Datenübertragungs- und -empfangseinheit, 401: Rechenzentrum, 402: zentrumsseitige Datenübertragungs- und Empfangseinheit, 403: Datenverwaltungseinheit, 404: Suchanforderungs-Empfangseinheit, 405: Suchausführungseinheit, 406: Suchergebnis-Übertragungseinheit, 407: Suchhilfsschlüssel-Verwaltungseinheit, 501: Attributinformationen-Verschlüsselungs-Array, 502: individuelle ID, 503: Zugehörigkeitsinformationen-Verschlüsselungs-Array, 504: Stellungsinformationen-Verschlüsselungs-Array, 505: Kategorie-Verschlüsselungs-Array, 506: Vertraulichkeitsstufen-Verschlüsselungs-Array, 511: Suchwort-Verschlüsselungs-Array, 601: Unternehmens-ID, 602: Büro-ID, 603: Abteilungs-ID, 604: Sektions-ID, 605: Einheits-ID, 701: Vorstandsklassen-Flag, 702: Büroleiterklassen-Flag, 703: Abteilungsleiterklassen-Flag, 704: Sektionsleiterklassen-Flag, 705: Einheitsleiterklassen-Flag, 706: Mitarbeiterklassen-Flag, 801: Große-Klassifizierungs-ID, 802: Mittlere-Klassifizierungs-ID, 803: Kleine-Klassifizierungs-ID, 901: „streng vertraulich“-Flag, 902: „vertraulich“-Flag, 903: „vertraulich - nur intern“-Flag, 904: „nicht zutreffend“-Flag.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 2002278970 A [0010]
    • JP 2008176040 A [0010]
    • JP 2008288837 A [0010]
    • WO 2011086687 A [0010]
    • JP 2018097034 A [0010]
    • WO 2019215818 A [0010]
  • Zitierte Nicht-Patentliteratur
    • T. Okamoto, K. Takashima, „Homomorphic encryption and signatures from vector decomposition“, Pairing 2008, Lecture Notes in Computer Science, Vol.5209, 2008 [0010]
    • T. Okamoto, K. Takashima, „Hierarchical Predicate Encryption for Inner-Products“, ASIACRYPT 2009, Lecture Notes in Computer Science, Vol.5912, 2009 [0010]
    • D. Boneh, G. D. Crescenzo, R. Ostrovsky, G. Persiano, „Public Key Encryption with Keyword Search“, EUROCRYPT 2004, Lecture Notes in Computer Science, Vol.3027, 2004 [0010]
    • J. Katz, A. Sahai, B. Waters, „Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products“, EUROCRYPT 2008, Lecture Notes in Computer Science, Vol.4965, 2008 [0010]
    • H. A. Park, J. W. Byun, D. H. Lee, „Secure Index Search for Groups“, TrustBus 2005, Lecture Notes in Computer Science, Vol.3592, 2005 [0010]
    • P. Wang, H. Wang, J. Pieprzyk, „Keyword Field-Free Conjunctive Keyword Searches on Encrypted Data and Extension for Dynamic Groups“, CANS 2008, Lecture Notes in Computer Science, Vol.5339, 2008 [0010]
    • A. Lewko, T. Okamoto, A. Sahai, K. Takashima, B. Waters, „Fully Secure Functional Encryption: Attribute-Based Encryption and (Hierarchical) Inner Product Encryption“, EUROCRYPT 2010, Lecture Notes in Computer Science, Vol.6110, 2010 [0010]

Claims (8)

  1. Suchausführungseinrichtung, aufweisend: eine Suchanfrage-Empfangseinheit zum Empfangen einer Trapdoor, die auf der Grundlage eines geheimen Benutzerschlüssels, in dem ein Suchhilfsschlüssel und ein Attribut eines Benutzers festgelegt sind, und eines Suchschlüsselworts erzeugt wurde, zusammen mit einem Schlüsselidentifikator (ID), der den Suchhilfsschlüssel identifiziert; und eine Suchausführungseinheit, um einen verschlüsselten Tag zu entschlüsseln, in dem ein Attribut eines Benutzers, dem ein Abruf gestattet ist, und ein Suchwort festgelegt sind, unter Verwendung der von der Suchanfrage-Empfangseinheit empfangenen Trapdoor und des Suchhilfsschlüssels, der durch die von der Suchanfrage-Empfangseinheit empfangene Schlüssel-ID angegeben wird, um einen Tag zu identifizieren, der für das in dem geheimen Benutzerschlüssel festgelegte Attribut abrufbar ist und ein dem Suchschlüsselwort entsprechendes Suchwort enthält.
  2. Suchausführungseinrichtung nach Anspruch 1, ferner umfassend eine Suchhilfsschlüssel-Verwaltungseinheit zum Löschen des Suchhilfsschlüssels, wenn der geheime Benutzerschlüssel widerrufen wird.
  3. Suchausführungseinrichtung nach Anspruch 1 oder 2, wobei die Trapdoor ein Element eines geheimen Schlüssels einer unteren Schicht des geheimen Benutzerschlüssels ist, wobei der geheime Schlüssel der unteren Schicht in der Lage ist, nur einen Tag zu entschlüsseln, in dem ein Suchwort, das dem Suchschlüsselwort entspricht, unter den Tags festgelegt ist, die mit dem geheimen Benutzerschlüssel entschlüsselt werden können.
  4. Suchausführungseinrichtung nach einem der Ansprüche 1 bis 3, wobei die Suchanfrage-Empfangseinheit die in Formel 1 angegebene Trapdoor k*2,dec empfängt, und wobei die Suchausführungseinheit einen Tag (c1, c2) entschlüsselt, wie in Formel 2 angegeben, k l + 1, dec : = k l , dec + t = 1 l σ dec , t k l , ran , t + σ dec ( i = μ l + 1 μ l + 1 v i k l , del , i ) wobei k l , dec : = t = 1 l σ dec , t ( i = μ t 1 + 1 μ t v i b i ) + θ 1 b 2 n + 1 + η dec + b 2 n + 2, k l , ran , j : = t = 1 l σ ran , j , t ( i = μ t 1 + 1 μ t v i b i ) + η ran , j b 2 n + 2  f u ¨ j = 1, , l + 1, k l , del , j : = t = 1 l σ del , j , t ( i = μ t 1 + 1 μ t v i b i ) + ψ b j + η del , j b 2 n + 2  f u ¨ j = μ l + 1, , n , σ dec , σ dec , t , η dec , σ ran , j , t , η ran , j ( j = 1, , l + 1 ) , σ del , j , t ,   η del , j ( j = 1, , n ) , ψ , θ U F q  f u ¨ t = 1, , l , ( ( v 1 , , v μ 1 ) , , ( v μ l 1 + 1 , , v μ l ) ) ist ein Attribut θ  ist ein Suchhilfsschl u ¨ ssel ,  und b 1 , , b n , b 2 + n 1 , b 2 n + 2  sind Basisvektoren
    Figure DE112021007711T5_0034
    m : = c 2 / e ( c 1 , k l , dec ) θ
    Figure DE112021007711T5_0035
    wobei ( x l + 1 , , x d ) U F q μ l + 1 μ l × × F q n μ d 1 , δ 1 , , δ l , δ 2 n + 3 ζ U F q , c 1 : = t = 1 l δ t ( i = μ t 1 + 1 μ t x i b i ) + ζ b 2 n + 1 + δ 2 n + 3 b 2 n + 3 , c 2 : = g T ζ m , b 1 , , b n , b 2 n + 1 , b 2 n + 2  sind Basisvektoren .
    Figure DE112021007711T5_0036
  5. Suchausführungsverfahren, umfassend: Empfangen einer Trapdoor, die auf der Grundlage eines geheimen Benutzerschlüssels, in dem ein Suchhilfsschlüssel und ein Attribut eines Benutzers festgelegt sind, und eines Suchschlüsselworts erzeugt wurde, zusammen mit einem Schlüsselidentifikator (ID), der den Suchhilfsschlüssel identifiziert, durch einen Computer; und Entschlüsseln eines verschlüsselten Tags, in dem ein Attribut eines Benutzers, der für einen Abruf berechtigt ist, und ein Suchwort festgelegt sind, unter Verwendung der Trapdoor und des Suchhilfsschlüssels, der durch die Schlüssel-ID angegeben wird, um einen Tag zu identifizieren, der für das im geheimen Benutzerschlüssel festgelegte Attribut abrufbar ist und ein Suchwort enthält, das dem Suchschlüsselwort entspricht, durch den Computer.
  6. Suchausführungsprogramm, das einen Computer veranlasst, als eine Suchausführungseinrichtung zu funktionieren, um durchzuführen: einen Suchanfrage-Empfangsprozess zum Empfangen einer Trapdoor, die auf der Grundlage eines geheimen Benutzerschlüssels, in dem ein Suchhilfsschlüssel und ein Attribut eines Benutzers festgelegt sind, und eines Suchschlüsselworts erzeugt wurde, zusammen mit einem Schlüsselidentifikator (ID), der den Suchhilfsschlüssel identifiziert; und einen Suchausführungsprozess des Entschlüsselns eines verschlüsselten Tags, in dem ein Attribut eines Benutzers, dem ein Abruf gestattet ist, und ein Suchwort festgelegt sind, unter Verwendung der durch den Suchanforderungs-Empfangsprozess empfangenen Trapdoor und des Suchhilfsschlüssels, der durch die durch den Suchanfrage-Empfangsprozess empfangene Schlüssel-ID angegeben wird, um einen Tag zu identifizieren, der für das in dem geheimen Benutzerschlüssel festgelegte Attribut abrufbar ist und ein dem Suchschlüsselwort entsprechendes Suchwort enthält.
  7. Durchsuchbares Verschlüsselungssystem, umfassend: eine Schlüsselerzeugungsvorrichtung zum Erzeugen eines Suchhilfsschlüssels und eines geheimen Benutzerschlüssels, in dem der Suchhilfsschlüssel und ein Attribut eines Benutzers festgelegt sind; ein Zugangsterminal zum Erzeugen einer Trapdoor auf der Grundlage des von der Schlüsselerzeugungsvorrichtung erzeugten geheimen Benutzerschlüssels und eines Suchschlüsselworts; und eine Suchausführungseinrichtung zum Entschlüsseln eines verschlüsselten Tags, in dem ein Attribut eines Benutzers, der für einen Abruf berechtigt ist, und ein Suchwort festgelegt sind, unter Verwendung der durch das Zugangsterminal erzeugten Trapdoor und des Suchhilfsschlüssels, um einen Tag zu identifizieren, der für das im geheimen Benutzerschlüssel festgelegte Attribut abrufbar ist und ein Suchwort enthält, das dem Suchschlüsselwort entspricht.
  8. Durchsuchbares Verschlüsselungssystem nach Anspruch 7, wobei die Suchausführungseinrichtung den Suchhilfsschlüssel löscht, wenn der geheime Benutzerschlüssel widerrufen wird.
DE112021007711.2T 2021-07-27 2021-07-27 Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem Pending DE112021007711T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/027806 WO2023007595A1 (ja) 2021-07-27 2021-07-27 検索実行装置、検索実行方法、検索実行プログラム及び秘匿検索システム

Publications (1)

Publication Number Publication Date
DE112021007711T5 true DE112021007711T5 (de) 2024-03-21

Family

ID=85086412

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021007711.2T Pending DE112021007711T5 (de) 2021-07-27 2021-07-27 Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem

Country Status (5)

Country Link
US (1) US20240126915A1 (de)
JP (1) JP7350220B2 (de)
CN (1) CN117651983A (de)
DE (1) DE112021007711T5 (de)
WO (1) WO2023007595A1 (de)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278970A (ja) 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2008176040A (ja) 2007-01-18 2008-07-31 Hirokazu Ogi 鍵管理方法、鍵生成方法、暗号処理方法、復号権限委譲方法、通信ネットワークシステム
JP2008288837A (ja) 2007-05-17 2008-11-27 Hirokazu Ogi 鍵管理方法、鍵生成方法、暗号処理方法、復号処理方法、アクセス管理方法、通信ネットワークシステム
WO2011086687A1 (ja) 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
JP2018097034A (ja) 2016-12-08 2018-06-21 株式会社日立製作所 計算機システム及びデータ管理方法
WO2019215818A1 (ja) 2018-05-08 2019-11-14 三菱電機株式会社 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5420085B2 (ja) 2011-01-13 2014-02-19 三菱電機株式会社 データ処理装置及びデータ保管装置
JP5606642B2 (ja) * 2012-01-25 2014-10-15 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
CN110457915B (zh) * 2019-07-17 2020-12-29 华中科技大学 高效且具有前后向安全性的可搜索对称加密方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278970A (ja) 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2008176040A (ja) 2007-01-18 2008-07-31 Hirokazu Ogi 鍵管理方法、鍵生成方法、暗号処理方法、復号権限委譲方法、通信ネットワークシステム
JP2008288837A (ja) 2007-05-17 2008-11-27 Hirokazu Ogi 鍵管理方法、鍵生成方法、暗号処理方法、復号処理方法、アクセス管理方法、通信ネットワークシステム
WO2011086687A1 (ja) 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
JP2018097034A (ja) 2016-12-08 2018-06-21 株式会社日立製作所 計算機システム及びデータ管理方法
WO2019215818A1 (ja) 2018-05-08 2019-11-14 三菱電機株式会社 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
A. Lewko, T. Okamoto, A. Sahai, K. Takashima, B. Waters, „Fully Secure Functional Encryption: Attribute-Based Encryption and (Hierarchical) Inner Product Encryption", EUROCRYPT 2010, Lecture Notes in Computer Science, Vol.6110, 2010
D. Boneh, G. D. Crescenzo, R. Ostrovsky, G. Persiano, „Public Key Encryption with Keyword Search", EUROCRYPT 2004, Lecture Notes in Computer Science, Vol.3027, 2004
H. A. Park, J. W. Byun, D. H. Lee, „Secure Index Search for Groups", TrustBus 2005, Lecture Notes in Computer Science, Vol.3592, 2005
J. Katz, A. Sahai, B. Waters, „Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products", EUROCRYPT 2008, Lecture Notes in Computer Science, Vol.4965, 2008
P. Wang, H. Wang, J. Pieprzyk, „Keyword Field-Free Conjunctive Keyword Searches on Encrypted Data and Extension for Dynamic Groups", CANS 2008, Lecture Notes in Computer Science, Vol.5339, 2008
T. Okamoto, K. Takashima, „Hierarchical Predicate Encryption for Inner-Products", ASIACRYPT 2009, Lecture Notes in Computer Science, Vol.5912, 2009
T. Okamoto, K. Takashima, „Homomorphic encryption and signatures from vector decomposition", Pairing 2008, Lecture Notes in Computer Science, Vol.5209, 2008

Also Published As

Publication number Publication date
JP7350220B2 (ja) 2023-09-25
JPWO2023007595A1 (de) 2023-02-02
WO2023007595A1 (ja) 2023-02-02
US20240126915A1 (en) 2024-04-18
CN117651983A (zh) 2024-03-05

Similar Documents

Publication Publication Date Title
US11425171B2 (en) Method and system for cryptographic attribute-based access control supporting dynamic rules
EP2409255B1 (de) Verfahren zur erzeugung von asymmetrischen kryptografischen schlüsselpaaren
US8615668B2 (en) Confidential search system and cryptographic processing system
DE60311036T2 (de) Verfahren zur Authentisierung potentieller Mitglieder eingeladen, eine Gruppe anzuschliessen
DE69736310T2 (de) Erzeugung und Verteilung digitaler Dokumente
DE69917356T2 (de) Sicherheitstechnik an einem Computernetzwerk
DE112017006020T5 (de) Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE19925910A1 (de) Verfahren zum Be- oder Verarbeiten von Daten
DE102012218576B4 (de) Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben
DE102019113249A1 (de) Wertevergleichsserver, wertevergleichsverschlüsselungssystem und wertevergleichsverfahren
DE112018007433T5 (de) Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm
DE112012002991T5 (de) Schützen von Daten einer Netzentität bei gleichzeitigem Beibehalten von Netzwerkeigenschaften
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE112020002859T5 (de) Verschlüsselter wissens-graph
EP3607485B1 (de) Verschlüsselter such-cloud-dienst mit kryptographischer teilung
DE102015103251B4 (de) Verfahren und System zum Verwalten von Nutzerdaten eines Nutzerendgeräts
DE102016224470A1 (de) Server-Computersystem zur Bereitstellung von Datensätzen
DE112021007711T5 (de) Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem
DE112019003808B4 (de) Zweckspezifische Zugriffssteuerung auf Grundlage einer Datenverschlüsselung
WO2015074745A1 (de) Verfahren, vorrichtungen und system zur online-datensicherung
Hue et al. An experimental evaluation for a new column–level access control mechanism for electronic health record systems
EP3883215B1 (de) Pseudonymverknüpfungen zwischen registern
DE202022100359U1 (de) Ein sicheres cloudbasiertes E-Healthcare-System für eine mandantenfähige Architektur
Kamalakannan et al. Privacy conserving and secure distribution of personal health information using cloud
DE102020121984A1 (de) Verschlüsselte Suche in einer Datenbank

Legal Events

Date Code Title Description
R012 Request for examination validly filed