DE112017003740T5 - Durchsuchbare-Symmetrische-Verschlüsselung-System und Verfahren zum Verarbeiten eines invertierten Indexes - Google Patents

Durchsuchbare-Symmetrische-Verschlüsselung-System und Verfahren zum Verarbeiten eines invertierten Indexes Download PDF

Info

Publication number
DE112017003740T5
DE112017003740T5 DE112017003740.9T DE112017003740T DE112017003740T5 DE 112017003740 T5 DE112017003740 T5 DE 112017003740T5 DE 112017003740 T DE112017003740 T DE 112017003740T DE 112017003740 T5 DE112017003740 T5 DE 112017003740T5
Authority
DE
Germany
Prior art keywords
client
entry
server
index
encrypted
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
DE112017003740.9T
Other languages
English (en)
Inventor
Jorge Guajardo Merchan
Qingji Zheng
Xinxin FAN
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of DE112017003740T5 publication Critical patent/DE112017003740T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

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

Abstract

Ein Durchsuchbare-Symmetrische-Verschlüsselung(SSE)-System und ein Verfahren zum Verarbeiten eines invertierten Indexes werden bereitgestellt. Das SSE-System beinhaltet genKey-, buildSecureIndex-, genToken- und Suchoperationen. Ein compress X ist in die buildSecureIndex- und/oder Suchoperationen integriert. Das komprimiere-dann-X (compress then X) nimmt jeden Eintrag eines verschlüsselten Indexes, komprimiert den Eintrag des verschlüsselten Indexes in einen komprimierten Eintrag und verarbeitet dann den komprimierten Eintrag mit einer Funktion. Die Funktion umfasst eine Linked-List-Funktion und eine Array-Funktion. Die Suchoperation dekomprimiert den verarbeiteten Eintrag und gibt den dekomprimierten Eintrag aus. Die SSE umfasst eine Client-Vorrichtung und einen Server. Die genKey-, buildSecureIndex- und genToken-Operationen sind in die Client-Vorrichtung integriert und die Suchoperation ist in den Server integriert.

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung betrifft allgemein durchsuchbare Verschlüsselung und, insbesondere, ein System für Durchsuchbare-Symmetrische-Verschlüsselung (SSE) und ein Verfahren zum Verarbeiten eines invertierten Indexes.
  • KURZDARSTELLUNG
  • Eine Kurzdarstellung gewisser hier offenbarter Ausführungsformen ist im Folgenden dargelegt. Es versteht sich, dass diese Aspekte lediglich präsentiert werden, um dem Leser eine kurze Kurzfassung dieser gewissen Ausführungsformen zu geben und dass diese Aspekte nicht dafür gedacht sind, den Schutzumfang dieser Offenbarung zu beschränken. Tatsächlich kann diese Offenbarung eine Vielfalt von Aspekten einschließen, die im Folgenden möglicherweise nicht dargelegt werden.
  • Ausführungsformen der Offenbarung betreffen ein System für Durchsuchbare-Symmetrische-Verschlüsselung (SSE) und ein Verfahren zum Verarbeiten eines invertierten Indexes. Das SSE-System beinhaltet beispielsweise genKey-, buildSecureIndex-, genToken- und Suchoperationen. Ein compress X ist in die buildSecureIndex- und/oder Suchoperationen integriert. Das komprimiere-dann-X (compress then X) nimmt jeden Eintrag eines verschlüsselten Indexes, komprimiert den Eintrag des verschlüsselten Indexes in einen komprimierten Eintrag und verarbeitet dann den komprimierten Eintrag mit einer Funktion. Die Funktion umfasst eine Linked-List-Funktion und eine Array-Funktion. Die Suchoperation dekomprimiert den verarbeiteten Eintrag und gibt den dekomprimierten Eintrag aus. Die SSE umfasst eine Client-Vorrichtung und einen Server. Die genKey-, buildSecureIndex- und genToken-Operationen sind in die Client-Vorrichtung integriert und die Suchoperation ist in den Server integriert.
  • Gemäß einem weiteren Aspekt der Offenbarung umfasst ein Client-Server-System einen Server, eine Client-Vorrichtung, beinhaltend einen verschlüsselten Schlüssel zum Durchsuchen einer verschlüsselten Datei, und ein computerlesbares Medium, gekoppelt mit der Client-Vorrichtung, wobei die Client-Vorrichtung ausgelegt ist zum Durchsuchen der auf dem computerlesbaren Medium gespeicherten verschlüsselten Datei unter Verwendung des verschlüsselten Schlüssels. Die Client-Vorrichtung umfasst ferner einen zweiten Eingabeschlüssel, wobei der zweite Eingabeschlüssel eine Dateikennung, ein Schlüsselwort und ein invertierter Index ist. Die Client-Vorrichtung ist ausgelegt zum Durchsuchen der auf dem computerlesbaren Medium gespeicherten verschlüsselten Datei unter Verwendung des verschlüsselten Schlüssels mit der Kennung oder dem Schlüsselwort oder dem invertierten Index. Das computerlesbare Medium ist in den Server oder in ein Cloud-Netzwerk integriert.
  • Ein Verfahren zum Durchsuchen einer entfernt gespeicherten verschlüsselten Datei gemäß einem anderen Aspekt der Offenbarung, durchgeführt von einer Client-Vorrichtung, wobei das Verfahren Folgendes umfasst: Erzeugen eines genKey, umfassend einen Suchindex und einen kryptographischen Schlüssel, Erzeugen eines buildSecureIndex, umfassend einen Verschlüsselungsschlüssel und einen Klartextindex, Erzeugen eines Tokens, und Zusammenstellen des Klartextindexes. Der Klartextindex umfasst mindestens ein eindeutiges Schlüsselwort und eine Liste von Dokumentenkennungen, wobei jede Dokumentenkennung einen Eintrag aufweist, wobei der Eintrag mindestens ein Element aufweist. Das Element des Eintrags ist einer zufällig ausgewählten Einheit eines vorzugewiesenen Arrays zugeordnet. Das Verfahren umfasst ferner Verbinden der Auswahleinheit mit einer anderen Auswahleinheit unter Verwendung eines Indikators, wobei die Auswahleinheit und die andere Auswahleinheit aus demselben Eintrag erzeugt werden.
  • Figurenliste
  • Diese und andere Merkmale, Aspekte und Vorteile dieser Offenbarung werden besser verstanden werden, wenn die folgende ausführliche Beschreibung gewisser Ausführungsbeispiele unter Bezugnahme auf die begleitenden Zeichnungen, in welchen gleiche Zeichen über die Zeichnungen hinweg gleiche Teile repräsentieren, gelesen wird.
    • 1 ist ein Blockdiagramm einer Architektur auf hohem Niveau, die eine durchsuchbare symmetrische Verschlüsselung (SSE) gemäß einer beschriebenen Ausführungsform der Offenbarung implementiert; und
    • 2 ist ein Blockdiagramm des SSE-Systems gemäß einem Ausführungsbeispiel der Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung wird dargelegt, um einem Fachmann auf dem Gebiet zu ermöglichen, die beschriebenen Ausführungsformen herzustellen und zu verwenden, und wird im Zusammenhang einer speziellen Anwendung und ihrer Anforderungen bereitgestellt. Verschiedene Modifikationen an den beschriebenen Ausführungsformen sind Fachleuten auf dem Gebiet leicht erkenntlich und die allgemeinen vorliegend definierten Prinzipien können bei anderen Ausführungsformen und Anwendungen angewendet werden, ohne vom Gedanken und Schutzumfang der beschriebenen Ausführungsformen abzuweichen. Somit sind die beschriebenen Ausführungsformen nicht auf die dargestellten Ausführungsformen beschränkt, sondern sollen den breitesten Umfang, der mit den vorliegend offenbarten Prinzipien und Merkmalen konsistent ist, gewährt werden.
  • 1 schildert ein Client-Server-System 100, das ein System für eine durchsuchbare symmetrische Verschlüsselung (SSE) implementiert, um eine Client-Computervorrichtung (Client) 104 zu befähigen, verschlüsselte Dateien, die in einem Speicher eines Servers 144 gespeichert sind, zu durchsuchen. Das SSE-System erlaubt es dem Client 104, die Daten in der verschlüsselten Form an den Server 144, d. h. an einen Drittpartei-Diensteanbieter oder ein Netzwerk 180, d. h. ein Cloud-Netzwerk, auszulagern, während der Client 104 einen Verschlüsselungsschlüssel behält. Die Verschlüsselung nimmt beispielsweise einen Klartext, wie etwa eine Dateikennung und den Verschlüsselungsschlüssel, als eine Eingabe. Bei manchen Ausführungsformen nimmt der Client 104 ein Schlüsselwort und den Verschlüsselungsschlüssel als Eingabe und liefert ein Such-Token für das Schlüsselwort. Bei einer anderen Ausführungsform wird das Such-Token an den Client 104 des Drittpartei-Diensteanbieters 144 mit einer Suchanfrage geliefert und der Client 104 verwendet das Such-Token zum Empfangen einer Menge von bei dem Drittpartei-Diensteanbieter 144 gespeicherten verschlüsselten Dokumenten, die eine Antwort auf das zugrundeliegende Schlüsselwort darstellen. Der Drittpartei-Diensteanbieter 144 gibt alle verschlüsselten Dokumente zurück, ohne irgendwelche Informationen über Schlüsselwörter und die Dokumente zu erfahren. Durchsuchbare Verschlüsselung kann Auslagern von Daten sichern, indem der verschlüsselte Schlüssel beim Client 104 verbleibt. Bei einer Ausführungsform wird der verschlüsselte Schlüssel in dem Speicher 112 der Client-Vorrichtung 104 gespeichert. In Abhängigkeit von der Anwendung wird ein auf einem invertierten Index basierendes SSE-System zum Durchsuchen der verschlüsselten Daten bereitgestellt. Beispielsweise wird ein Index mit jedem Such-Token und den zurückgegebenen verschlüsselten Daten bevölkert. Bei manchen Ausführungsformen kann der Index zum Suchen mit konstanter Zeit verwendet werden, wenn ein Schlüsselwort erneut gesucht wird. Mit anderen Worten gesagt, kann das dem Schlüsselwort entsprechende Such-Token als eine Eingabe für den Index verwendet werden, um die verschlüsselten Daten abzurufen.
  • Das System 100 beinhaltet den Client 104, den Server 144 und ein Netzwerk 180, wie etwa ein lokales Netzwerk (LAN), ein Weitbereichsnetzwerk (WAN), ein Mobilfunknetzwerk, das Internet, ein Telefonnetzwerk, ein Cloud-Netzwerk oder ein anderes geeignetes Datennetzwerk, das Kommunikation zwischen dem Client 104 und dem Server 144 ermöglicht. Der Client 104 beinhaltet einen Client-Prozessor 108 und einen Speicher 112. Der Prozessor 108 ist ein Mikroprozessor oder eine andere digitale Logikvorrichtung, die gespeicherte Programmanweisungen ausführt, und der Speicher 112 beinhaltet sowohl flüchtige Datenspeicherungsvorrichtungen, wie etwa Direktzugriffsspeicher (RAM), als auch nichtflüchtige Datenspeicherungsvorrichtungen, wie etwa Magnetscheiben und Festplattenlaufwerke. Manche Ausführungsformen des Client-Prozessors 108 beinhalten
    Parallelausführungshardware, die mehrere Verarbeitungskerne einschließt, oder andere Parallelverarbeitungskomponenten zum Durchführen von Dateiverschlüsselung und -entschlüsselung, Suchtermverschlüsselung, Dateiaktualisierungsoperationen und anderen Operationen, die als Teil eines DSSE-Schemas gleichzeitig implementiert sind. Beispiele für Client-Rechenvorrichtungen beinhalten tragbare und Tisch-Personalcomputer (PCs), Smartphones, Tablet-Rechenvorrichtungen, anziehbare Rechenvorrichtungen, Thick-Clients, Thin-Clients und jegliche beliebige geeignete digitale Rechenvorrichtung.
  • Der Server 144 beinhaltet einen Serverprozessor 148 und einen Speicher 152. Der Prozessor 148 in dem Server 144 ist ein Mikroprozessor oder eine andere digitale Logikvorrichtung, die gespeicherte Programmanweisungen ausführt, um Suchen und Dateispeicherungs- und -abfragedienste für den Client 104 durchzuführen. Der Server 144 kann optional in das Netzwerk 180 integriert sein. Bei manchen Ausführungsformen können ein oder mehrere Server über das Netzwerk 180 kommunizierend mit der Client-Rechenvorrichtung 104 gekoppelt sein. Obgleich es keine Anforderung ist, weist der Serverprozessor 148 bei manchen Ausführungsformen eine größere Rechenleistung als die des Client-Prozessors 108 auf. Manche Ausführungsformen des Serverprozessors 148 beinhalten Parallelausführungshardware, die mehrere Verarbeitungskerne oder andere Parallelverarbeitungskomponenten einschließt, um Suchen und andere Operationen, die als Teil eines SSE-Systems implementiert sind, gleichzeitig durchzuführen. Der Speicher 152 in dem Server 144 beinhaltet sowohl flüchtige Datenspeicherungsvorrichtungen, wie etwa Direktzugriffsspeicher (RAM), als auch nichtflüchtige Datenspeicherungsvorrichtungen, wie etwa Magnetscheiben und Festplattenlaufwerke. Obgleich es keine Anforderung ist, weist der Serverspeicher 152 bei manchen Ausführungsformen eine größere Kapazität als der Client-Speicher 112 auf, um den Serverspeicher 152 zu befähigen, eine große Anzahl von verschlüsselten Dateien zu speichern. Obgleich 1 einen Einzel-Client 104 zu veranschaulichenden Zwecken darstellt, speichert der Server 144 in vielen Ausführungsformen verschlüsselte Daten für mehrere Client-Rechenvorrichtungen. Jede Client-Rechenvorrichtung erzeugt verschlüsselte Daten, sendet die verschlüsselten Daten zur Speicherung über das Netzwerk 180 an den Server 144. Die verschlüsselten Daten werden dann in dem Serverspeicher 152 gespeichert.
  • In dem System 100 kommuniziert der Client 104 mit dem Server 144 über das Netzwerk 180. Sowohl der Client 108 als auch der Server 144 beinhalten Netzwerkkommunikationsgeräte, wie etwa drahtgebundene Netzwerkgeräte (z. B. Ethernet oder eine andere geeignete drahtgebundene Netzwerkschnittstelle) und drahtlose Netzwerkgeräte (z. B. Bluetooth oder IEEE 802.11 drahtloses LAN und 3G-, 4G-, LTE-Drahtlos-WAN oder ein WAN mit einem beliebigen drahtlosen Mobilfunkprotokoll). Bei der nachfolgenden Erörterung wird angenommen, dass der Client 104 und der Server 144 unter Verwendung von authentifizierten und verschlüsselten Kommunikationsprozessen kommunizieren, die im Stand der Technik bekannt sind und hier nicht weiter ausführlich beschrieben werden. Somit kann eine abhörende Rechenvorrichtung, die Verkehr über das Netzwerk 180 überwacht, den Inhalt von Kommunikationen zwischen dem Client 104 und dem Server 144 nicht bestimmen. Ein „Angreifer“ bezieht sich auf eine Rechenvorrichtung oder -entität, die Zugang zu dem Server 144 und/oder dem Netzwerk 180 hat und die Fähigkeit zum Lesen von zumindest Teilen der in dem Serverspeicher 152 und/oder dem Netzwerk 180 gespeicherten Daten aufweist, wie etwa ein Drittpartei-Diensteanbieter auf eine nicht von dem Client 104 genehmigte Weise. Der Angreifer hat ein Ziel, Informationen über in dem Serverspeicher 152 und/oder dem Netzwerk 180 gespeicherte verschlüsselte Client-Dateien zu extrahieren, um die Privatsphäre des Inhalts dieser Dateien zu verringern oder zu eliminieren. Der Angreifer beobachtet auch die Inhalte der verschlüsselten Suche und der während des Betriebs in dem Server 144 erzeugten Daten, um Informationen über die verschlüsselten Dateien zu erzeugen. Es wird auch angenommen, dass der Angreifer über die Fähigkeit verfügt, Netzwerkkommunikationen am Server 144 und/oder dem Netzwerk 180 zu überwachen, um die Verschlüsselung von Kommunikationsnachrichten zwischen dem Client 104 und dem Server 144 zu umgehen. Obgleich der Angreifer Kommunikationen von dem Client 104 beobachten kann, hat der Angreifer keinen direkten Zugang zu den Inhalten des Client-Speichers 112, des Servers 144 noch des Netzwerks 180.
  • 2 veranschaulicht ein Blockdiagramm eines SSE-Systems 100 gemäß eines Ausführungsbeispiels der Offenbarung. Das SSE-System 100 beinhaltet vier Operationen: genKey, buildSecureIndex, genToken und Suchen. Anwendungsabhängig können andere geeignete Operationen in dem SSE-System enthalten sein. Die ersten drei Operationen laufen auf einer Client-Vorrichtung 204 und die letztere läuft auf einem Cloud-Server 244, d. h. einem Drittpartei-Diensteanbieter. Gen ist eine Operation zum Erzeugen eines Suchindexes und eines Suchschlüssels, genKey ist eine Erzeugungsoperation für einen Kryptographieschlüssel, buildSecureIndex ist eine Erzeugungsoperation für einen build-Secure-Index, genToken ist eine Token-Erzeugungsoperation und Suchen ist eine Suchoperation. Innerhalb dem buildSecureIndex sind eine Verschlüsselungsoperation und eine Zusammenstellungsoperation enthalten. Die Verschlüsselungsoperation nimmt einen Klartextindex und einen verschlüsselten Schlüssel , d. h. einen Kryptographieschlüssel, zum Erstellen von verschlüsselten Daten zum Schützen der Indexprivatsphäre. Die Zusammenstellungsoperation stellt den Klartextindex zusammen, um statistische Informationen zu schützen, wie etwa Schlüsselwortfrequenz usw. Anwendungsabhängig kann die Reihenfolge der Verschlüsselungsoperation und der Zusammenstellungsoperation zufällig sein. Mit anderen Worten gesagt kann jegliche Operation zuerst kommen.
  • Beispielsweise wird ein Eingabeklartextindex in die Zusammenstellungsoperation dargestellt als: DB = { DB ( w 1 ) , , DB ( w n ) }
    Figure DE112017003740T5_0001
    DB ( w i ) = { F il , , F ic }
    Figure DE112017003740T5_0002
    wobei w1,...,wn eindeutige Schlüsselwörter sind, DB(w) die Liste der Dokumentenkennungen Fij ist, die das Schlüsselwort w enthalten, DB(wi) ein Eintrag in die DB für 1 ≤ i ≤ n ist und Fij die Dokumentenkennung DB(wi) für 1 ≤ j ≤ c ist.
  • Um die Zusammenstellungsoperation zu implementieren, kann eine Linked-List-Funktion oder eine Array-Funktion, die dem Fachmann bekannt sind, verwendet werden. Die Linked-List-Funktion weist jedes Element der Einträge in DB einer zufällig ausgewählten Einheit eines vorzugeordneten Arrays zu und linkt die ausgewählte Einheit über einen Indikator, falls die jeweiligen Elemente demselben Eintrag angehören. Besteht DB = {DB(w1),..., DB(wn)} aus n Einträgen und N = i = 1 n | D B ( w i ) |
    Figure DE112017003740T5_0003
    Elementen, d.h. gesamten Dokumentenkennungen, so weist die Client-Vorrichtung 204 beispielsweise ein Array der Größe N im Voraus zu, packt jedes Element in eine Einheit der Array-Größe N und verbindet diese Einheiten mit Indikatoren, wenn die Elemente demselben Eintrag angehören. Mit anderen Worten gesagt wird die Einheit in dem Array zwei Werte Speichern, d. h. der erste Wert ist das Element des Eintrags, welcher eine Dokumentenkennung in der DB(w) ist, und der zweite Wert ist entweder der Indikator, der den Wert der nächsten Einheit, die zu demselben Eintrag gehört, angibt oder der NULL-Indikator, falls es keine weiteren den selben Eintrag verknüpfende Elemente gibt. Die Array-Funktion bildet jeden Eintrag von DB auf ein Array einer designierten Länge ab und fügt jene Arrays in einer beliebigen Reihenfolge, d. h. einer zufälligen Reihenfolge, zusammen. Die designierte Länge ist aus Sicherheitsgründen gewöhnlich auf die Größe des Eintrags eingestellt, der eine Maximalanzahl der Elemente aufweist, ohne dass Struktur- oder Statistikinformationen zum Cloud-Server 244 rüberlecken. Bei DB = {DB(w1),..., DB(wn)}, bei dem L = m a x i = 1 n | D B ( w i ) |
    Figure DE112017003740T5_0004
    die Maximalgröße des Eintrags in DB ist, weist die Client-Vorrichtung 204 beispielsweise jeden Eintrag DB(w) einem Array von L zu, indem nicht belegte Einheiten mit „Stopf‟”-Zeichenketten aufgefüllt werden, und fügt dann diese Arrays zusammen.
  • Ein beispielhaftes komprimiere-dann-X-Schema ist in der Zusammenstellungsoperation des SSE-Systems 200 implementiert. X ist entweder als eine Linked-List-Funktion oder eine Array-Funktion definiert. Das komprimiere-dann-X-Schema komprimiert jeden Eintrag des Indexes DB in einen komprimierten Eintrag und verarbeitet dann den komprimierten Eintrag mit entweder der Linked-List-Funktion oder der Array-Funktion in der buildSecureIndex. Umgekehrt dekomprimiert die Suchoperation den verarbeiteten Eintrag. Zum Beispiel sei LCA = (Komprimieren, Dekomprimieren) eine beliebige verlustlose Komprimierungscodieroperation, wie etwa eine Arithmetik-Codieroperation oder eine Huffman-Codieroperation, wobei Komprimieren die Binärzeichenkette in die komprimierte Zeichenkette komprimiert und das Dekomprimieren die komprimierte Zeichenkette wieder zu einer unkomprimierten Zeichenkette wiederherstellt. Wie oben eingeführt, ist buildSecureIndex eine Erzeugungsoperation für build-Secure-Index. Für jeden Eintrag von DB fügt die buildSecureIndex alle Elemente in einer Zeichenkette stri = Fi1 ||...||Fic zusammen, unter der Annahme, dass der Eintrag beispielsweise c Elemente aufweist. Die verlustlose KomprimierungsCodieroperation LCA.compress wird auf die Zeichenkette stri angewandt und eine komprimierte Zeichenkette str'i wird erzeugt. Die buildSecureIndex teilt dann str'i in Segmente gleicher Länge str'i = str'i1 ||...|| str'iz auf, so dass str'ij, 1 ≤ j ≤ z, dieselbe Länge wie die der Dokumentenkennung aufweist, d. h. |str'ij| = |Fij|. Nachdem der Eintrag von DB verarbeitet wurde, wendet das komprimiere-dann-X-Schema entweder die Linked-List-Funktion oder die Array-Funktion auf die resultierende komprimierte Zeichenkette str'i an. Bei Anfrage ruft das Suchen die komprimierte Zeichenkette str'i ab, dekomprimiert die komprimierte Zeichenkette str'i zu stn, unter Verwendung von LCA.decompress. Man sieht, dass das komprimiere-dann-X-Schema nicht nur Eingabe- und Ausgabeeffizienz verbessert, sondern dass das komprimiere-dann-X-Schema den Speicherüberhang minimiert. Als ein Ergebnis wurde die Verringerung der Anzahl an Plattenzugriffen beim Abrufen einer Reihe von Einträgen verbessert.
  • Die oben beschriebenen Ausführungsformen sind beispielhaft dargestellt worden und es versteht sich, dass diese Ausführungsformen verschiedenen Modifikationen und Alternativformen unterzogen werden können. Weiterhin versteht sich, dass die Ansprüche nicht durch die offenbarten bestimmten Formen beschränkt werden sollen, sondern stattdessen alle Modifikationen, Äquivalente und Alternativen, die in das Wesen und den Schutzumfang dieser Offenbarung fallen, abdecken sollen.
  • Ausführungsformen innerhalb des Schutzumfangs der Offenbarung können auch nichtvergängliche computerlesbare Speichermedien oder ein maschinenlesbares Medium zum Führen von darauf gespeicherten oder zu speichernden computerausführbaren Anweisungen oder Datenstrukturen beinhalten. Solche nichtvergängliche computerlesbare Speichermedien oder solch ein maschinenlesbares Medium können beliebige verfügbare Medien sein, auf die durch einen Mehrzweck- oder Sonderzweckcomputer zugegriffen werden kann. Als Beispiel und nicht als Beschränkung können derartige nichtvergängliche computerlesbare Speichermedien oder ein maschinenlesbares Medium RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeicher-, magnetische Plattenspeicher- oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium, die zum Tragen oder Speichern von gewünschten Programmcodemitteln in der Form von computerausführbaren Anweisungen oder Datenstrukturen verwendet werden können, umfassen. Kombinationen der Obigen sollen ebenfalls in den Schutzumfang der nichtvergänglichen computerlesbaren Speichermedien oder des maschinenlesbaren Mediums fallen.
  • Ausführungsformen können auch in verteilten Rechenumgebungen praktiziert werden, in denen Aufgaben von lokalen und fernen Verarbeitungsvorrichtungen durchgeführt werden, die über ein Kommunikationsnetzwerk (entweder durch festverdrahtete Verbindungsstrecken, drahtlose Verbindungsstrecken oder eine Kombination davon) verlinkt sind.
  • Computerausführbare Anweisungen beinhalten beispielsweise Anweisungen und Daten, die einen Allzweckcomputer, einen Sonderzweckcomputer oder eine Sonderzweckverarbeitungsvorrichtung veranlassen, eine gewisse Funktion oder Gruppe von Funktionen durchzuführen. Computerausführbare Anweisungen beinhalten auch Programmmodule, die von Computern in eigenständigen oder Netzwerkumgebungen ausgeführt werden. Im Allgemeinen beinhalten Programmmodule Routinen, Programme, Objekte, Komponenten und Datenstrukturen usw., die besondere Aufgaben durchführen ober besondere abstrakte Datenarten implementieren. Computerausführbare Anweisungen, verknüpfte Datenstrukturen, und Programmmodule stellen Beispiele für Programcodemittel zum Ausführen von Schritten hier offenbarter Verfahren dar. Die besondere Abfolge solcher ausführbaren Anweisungen oder verknüpften Datenstrukturen stellt Beispiele für entsprechende Handlungen zum Implementieren der in solchen Schritten beschriebenen Funktionen dar.
  • Obgleich das Patent unter Bezugnahme auf verschiedene Ausführungsformen beschrieben worden ist, versteht sich, dass diese Ausführungsformen veranschaulichend sind und dass der Schutzumfang der Offenbarung nicht auf diese beschränkt ist. Viele Variationen, Modifikationen, Ergänzungen und Verbesserungen sind möglich. Allgemeiner gesagt, sind Ausführungsformen gemäß dem Patent im Kontext oder in gewissen Ausführungsformen beschrieben worden. Die Funktionalität kann in verschiedenen Ausführungsformen der Offenbarung unterschiedlich getrennt oder in Blöcken kombiniert oder mit anderer Terminologie beschrieben werden. Diese und andere Varianten, Modifikationen, Ergänzungen und Verbesserungen können in den Schutzumfang der Offenbarung fallen, wie er in den folgenden Ansprüchen definiert ist.

Claims (10)

  1. Client-Server-System, umfassend: einen Server; eine Client-Vorrichtung, beinhaltend einen verschlüsselten Schlüssel zum Durchsuchen einer verschlüsselten Datei; und ein computerlesbares Medium, gekoppelt mit der Client-Vorrichtung; wobei die Client-Vorrichtung ausgelegt ist zum Durchsuchen der auf dem computerlesbaren Medium gespeicherten verschlüsselten Datei unter Verwendung des verschlüsselten Schlüssels.
  2. Client-Server-System nach Anspruch 1, wobei die Client-Vorrichtung ferner einen zweiten Eingabeschlüssel umfasst.
  3. Client-Server-System nach Anspruch 2, wobei der zweite Eingabeschlüssel eine Dateikennung, ein Schlüsselwort und ein invertierter Index ist.
  4. Client-Server-System nach Anspruch 3, wobei die Client-Vorrichtung ausgelegt ist zum Durchsuchen der auf dem computerlesbaren Medium gespeicherten verschlüsselten Datei unter Verwendung des verschlüsselten Schlüssels mit der Kennung oder dem Schlüsselwort oder dem invertierten Index.
  5. Client-Server-System nach Anspruch 4, wobei das computerlesbare Medium in den Server integriert ist.
  6. Client-Server-System nach Anspruch 1, wobei das computerlesbare Medium in ein Cloud-Netzwerk integriert ist.
  7. Verfahren zum Durchsuchen einer entfernt gespeicherten verschlüsselten Datei, durchgeführt von einer Client-Vorrichtung, wobei das Verfahren Folgendes umfasst: Erzeugen eines genKey, umfassend einen Suchindex und einen kryptographischen Schlüssel; Erzeugen eines buildSecureIndex, umfassend einen Verschlüsselungsschlüssel und einen Klartextindex; Erzeugen eines Tokens; und Zusammenstellen des Klartextindexes.
  8. Verfahren nach Anspruch 7, wobei der Klartextindex Folgendes umfasst: mindestens ein eindeutiges Schlüsselwort; und eine Liste von Dokumentenkennungen, wobei jede Dokumentenkennung einen Eintrag aufweist; wobei der Eintrag mindestens ein Element beinhaltet.
  9. Verfahren nach Anspruch 8, wobei das Element des Eintrags einer zufällig ausgewählten Einheit eines vorzugewiesenen Arrays zugeordnet ist.
  10. Verfahren nach Anspruch 9, ferner umfassend Verbinden der Auswahleinheit mit einer anderen Auswahleinheit unter Verwendung eines Indikators, wobei die Auswahleinheit und die andere Auswahleinheit aus demselben Eintrag erzeugt werden.
DE112017003740.9T 2016-08-24 2017-08-24 Durchsuchbare-Symmetrische-Verschlüsselung-System und Verfahren zum Verarbeiten eines invertierten Indexes Pending DE112017003740T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662378942P 2016-08-24 2016-08-24
US62/378,942 2016-08-24
PCT/US2017/048472 WO2018039481A1 (en) 2016-08-24 2017-08-24 Searchable symmetric encryption system and method of processing inverted index

Publications (1)

Publication Number Publication Date
DE112017003740T5 true DE112017003740T5 (de) 2019-05-09

Family

ID=61246262

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017003740.9T Pending DE112017003740T5 (de) 2016-08-24 2017-08-24 Durchsuchbare-Symmetrische-Verschlüsselung-System und Verfahren zum Verarbeiten eines invertierten Indexes

Country Status (4)

Country Link
US (1) US11405192B2 (de)
CN (1) CN109923549B (de)
DE (1) DE112017003740T5 (de)
WO (1) WO2018039481A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9484954B1 (en) * 2015-09-10 2016-11-01 Intel Corporation Methods and apparatus to parallelize data decompression
FR3107416B1 (fr) * 2020-02-14 2022-02-04 Amadeus Sas Tokenisation aléatoire efficace dans un environnement dématérialisé

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278992B1 (en) * 1997-03-19 2001-08-21 John Andrew Curtis Search engine using indexing method for storing and retrieving data
KR100944769B1 (ko) * 2007-11-06 2010-03-03 한국전자통신연구원 프라이버시를 보장하는 암호화와 복호화를 이용한 파일공유 방법 및 시스템
CN101593196B (zh) * 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
US8032495B2 (en) * 2008-06-20 2011-10-04 Perfect Search Corporation Index compression
CN101694672B (zh) * 2009-10-16 2011-05-18 华中科技大学 一种分布式安全检索系统
KR101302137B1 (ko) * 2009-12-16 2013-09-16 한국전자통신연구원 대칭 키 기반 검색 가능 암호 방법
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
JP5412414B2 (ja) * 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
EP2680251B1 (de) * 2011-02-22 2016-05-25 Mitsubishi Electric Corporation Suchsystem, suchverfahren für das suchsystem, informationsverarbeitungsvorrichtung, suchprogramm, entsprechende stichwortverwaltungsvorrichtung und entsprechendes stichwortverwaltungssystem
US8930691B2 (en) * 2011-08-16 2015-01-06 Microsoft Corporation Dynamic symmetric searchable encryption
US8832427B2 (en) * 2012-03-30 2014-09-09 Microsoft Corporation Range-based queries for searchable symmetric encryption
US9449178B2 (en) * 2012-07-24 2016-09-20 ID Insight System, method and computer product for fast and secure data searching
US9646166B2 (en) * 2013-08-05 2017-05-09 International Business Machines Corporation Masking query data access pattern in encrypted data
US9355271B2 (en) * 2013-10-18 2016-05-31 Robert Bosch Gmbh System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
CN103593476B (zh) * 2013-11-28 2017-01-25 中国科学院信息工程研究所 一种面向云存储的多关键词明密文检索方法和系统
US9740879B2 (en) * 2014-10-29 2017-08-22 Sap Se Searchable encryption with secure and efficient updates
EP3320447A4 (de) * 2015-07-07 2019-05-22 Private Machines Inc. System und verfahren zur sicheren durchsuchbaren und gemeinsam verwendbaren fernspeicherung
CN105069358B (zh) * 2015-07-13 2018-09-04 杭州共享汇信息技术有限公司 基于带有存储结构的Bloom过滤器的关键词可搜索加密方法
CN105678189B (zh) * 2016-01-15 2018-10-23 上海海事大学 加密数据文件存储和检索系统及方法
US10255454B2 (en) * 2016-02-17 2019-04-09 Microsoft Technology Licensing, Llc Controlling security in relational databases

Also Published As

Publication number Publication date
WO2018039481A1 (en) 2018-03-01
CN109923549A (zh) 2019-06-21
US11405192B2 (en) 2022-08-02
US20190190709A1 (en) 2019-06-20
CN109923549B (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
DE112015005893B4 (de) Systeme und Verfahren für ein Mehrfachwert-Packungsschema für homomorphe Verschlüsselung
DE112012004873B4 (de) Hohe Bandbreitendekomprimierung von mit variabler Länge verschlüsselten Datenströmen
DE112017006020T5 (de) Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE112013006723B4 (de) Integritätsprüfung und selektive Deduplizierung auf Grundlage von Netzwerkparametern
DE112012005533B4 (de) Unterstützende Abfrage und ein Abfragen
DE112017006021T5 (de) Verfahren und System zur unscharfen Schlagwortsuche in verschlüsselten Daten
DE102011010613B4 (de) Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
DE102015208142A1 (de) Kompakter unscharfer privater Abgleich unter Verwendung einer vollhomomorphen Verschlüsselungsmethode
DE102017117907A1 (de) Durchführen einer kryptografischen Operation
DE112014007083T5 (de) Servervorrichtung, Suchsystem, Endgerätevorrichtung, Suchverfahren, Serverprogramm und Endgeräteprogramm
DE112012005557B4 (de) Erzeugen eines Code-Alphabets von Symbolen zum Erzeugen von Codewörtern für Wörter, die mit einem Programm verwendet werden
DE202020005703U1 (de) Auf verteilten Metadaten basierendes Cluster-Computing
DE112020000091T5 (de) Systeme und Verfahren zur Wahrung der Privatsphäre durch Bestimmung der Schnittstellen von Sätzen von Benutzererkennungen
DE102020213105A1 (de) Sichere und effiziente oblivious-direktzugriffsmaschine mit mehreren servern in einer böswilligen ausführungsumgebung
DE102013203126A1 (de) Transparentes Zugreifen auf verschlüsselte nicht-relationale Daten in Echtzeit
DE112016004274T5 (de) Systeme und Verfahren zur Datenverlustvermeidung unter Wahrung von Vertraulichkeit
DE102013204515A1 (de) Schnelle Prädikattabellensuchen unter Verwendung einer Architektur mit einer Einzelanweisung und mehrfachen Daten
DE202015104128U1 (de) Datenzugriffssystem
DE112017003740T5 (de) Durchsuchbare-Symmetrische-Verschlüsselung-System und Verfahren zum Verarbeiten eines invertierten Indexes
DE112022003853T5 (de) Privatsphäre bewahrendes computing mit drittanbieterdiensten
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE202023101653U1 (de) Organisations- und cloudübergreifende automatisierte Datenpipelines
DE112019005865T5 (de) Datenverarbeitungsvorrichtung und datenverarbeitungsverfahren
DE102015103251B4 (de) Verfahren und System zum Verwalten von Nutzerdaten eines Nutzerendgeräts
DE202021004328U1 (de) Mit Daten-Cloud verbundene Anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed