DE102020213105A1 - Sichere und effiziente oblivious-direktzugriffsmaschine mit mehreren servern in einer böswilligen ausführungsumgebung - Google Patents

Sichere und effiziente oblivious-direktzugriffsmaschine mit mehreren servern in einer böswilligen ausführungsumgebung Download PDF

Info

Publication number
DE102020213105A1
DE102020213105A1 DE102020213105.8A DE102020213105A DE102020213105A1 DE 102020213105 A1 DE102020213105 A1 DE 102020213105A1 DE 102020213105 A DE102020213105 A DE 102020213105A DE 102020213105 A1 DE102020213105 A1 DE 102020213105A1
Authority
DE
Germany
Prior art keywords
oram
servers
server
data
tree
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
DE102020213105.8A
Other languages
English (en)
Inventor
Jorge Guajardo Merchan
Thang Hoang
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 DE102020213105A1 publication Critical patent/DE102020213105A1/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

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

Abstract

Es wird ein verteiltes Oblivious-Verteilsystem bereitgestellt, das eine Oblivious-Direktzugriffsmaschine (ORAM) mit einer ausgeglichenen ORAM-Baumstruktur verwendet, wobei jeder Knoten in dem Baum dafür ausgelegt ist, Datenblöcke zu speichern, wobei die Struktur mindestens zwei Anteile umfasst. Das System umfasst außerdem mindestens zwei ORAM-Server, wobei jeder der Server dafür ausgelegt ist, mit einer Client-ORAM-Vorrichtung zu kommunizieren, und dafür programmiert ist, Speicherung einer verschiedenen Teilmenge der Anteile der Baumstruktur unter Verwendung eines verteilten Dateisystems zu ermöglichen und eine Zugriffsprozedur eines ORAM auf Baumbasis unter Verwendung der Baumstruktur zu implementieren, die eine Abrufphase und eine Ausräumphase umfasst. In der Abrufphase benutzen die Server ein Protokoll des authentifizierten Privat-Informationsabrufs (PIR), um Datenblöcke abzurufen, wenn sie von der Client-ORAM-Vorrichtung angefordert werden. In der Ausräumphase benutzen die Server ein lineares Geheimnis-Teilschema.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft Aspekte einer sicheren und effizienten Oblivious-Direktzugriffsmaschine mit mehreren Servern in einer böswilligen Ausführungsumgebung.
  • STAND DER TECHNIK
  • Oblivious-Direktzugriffsmaschinen (ORAM, Oblivious Random Access Machines) ermöglichen es einem Client, auf in der Cloud gespeicherte Daten zuzugreifen, ohne Zugriffsmuster auf den Cloud-Anbieter durchsickern zu lassen. Bei existierenden ORAM-Konstruktionen kommt es entweder zu O(logN)-Client-Server-Kommunikationsaufblähung oder O(1)-Aufblähung, aber mit kostspieligen homomorphen Verschlüsselungen. Um diese Beschränkungen zu überwinden, wurden mehrere ORAM mit mehreren Servern vorgeschlagen, von denen einige O(1)-Client-Bandbreitenaufblähung mit effizienter Berechnung bieten. Trotz ihrer Vorteile bieten solche verteilte ORAM-Techniken nur Sicherheit gegenüber einem halbehrlichen Widersacher. Diese Annahme könnte für praktische reale Anwendungen, bei denen böswillige Widersacher anwesend sein können, praxisfern sein.
  • KURZFASSUNG
  • In einem oder mehreren Anschauungsbeispielen wird ein verteiltes Oblivious-Dateisystem bereitgestellt, das eine Oblivious-Direktzugriffsmaschine (ORAM) verwendet, mit einer ausgeglichenen ORAM-Baumstruktur, wobei jeder Knoten im Baum da für ausgelegt ist, Datenblöcke zu speichern, wobei die Struktur mindestens zwei Anteile umfasst. Das System umfasst außerdem mindestens zwei ORAM-Server, wobei jeder der Server dafür ausgelegt ist, mit einer Client-ORAM-Vorrichtung zu kommunizieren, und dafür programmiert ist, Speicherung einer verschiedenen Teilmenge der Anteile der Baumstruktur unter Verwendung eines verteilten Dateisystems zu ermöglichen und eine Zugriffsprozedur eines ORAM auf Baumbasis unter Verwendung der Baumstruktur zu implementieren, die eine Abrufphase und eine Ausräumphase umfasst. In der Abrufphase benutzen die Server ein auf XOR basierendes Protokoll des Privat-Informationsabrufs (PIR), um Datenblöcke abzurufen, wenn sie von der Client-ORAM-Vorrichtung angefordert werden. In der Ausräumphase benutzen die Server ein lineares Geheimnis-Teilschema.
  • In einem oder mehreren Anschauungsbeispielen umfasst ein Verfahren zum Bereitstellen eines verteilten Oblivious-Dateisystems, das eine Oblivious-Direktzugriffsmaschine (ORAM) verwendet, Aufrechterhalten einer ausgeglichenen ORAM-Baumstruktur T, wobei jeder Knoten in dem Baum T[i] dafür ausgelegt ist, Z reelle Datenblöcke zu speichern, wobei die Struktur T drei Anteile [T]0, [T]1, [T]2 umfasst; Benutzen eines ersten, zweiten und dritten ORAM-Servers (S0, S1 und S2), wobei jeder der Server mit einer Client-ORAM-Vorrichtung kommuniziert, wobei die Server Speicherung von zwei der Anteile der Baumstruktur, darunter [T]i und [T]i+1(mod 3), unter Verwendung eines verteilten Dateisystems ermöglichen und eine Zugriffsprozedur eines ORAM auf Baumbasis unter Verwendung der Baumstruktur T implementieren, die eine Abrufphase und eine Ausräumphase umfasst, wobei in der Abrufphase die Server ein auf XOR basierendes Protokoll des Privat-Informationsabrufs (PIR) benutzen, um Datenblöcke Z abzurufen, wenn sie von der Client-ORAM-Vorrichtung angefordert werden, und in der Ausräumphase die Server eine homomorphe Berechnung eines linearen Geheimnis-Teilschemas benutzen.
  • In einem oder mehreren Anschauungsbeispielen umfasst ein nichttransitorisches computerlesbares Medium Anweisungen, die, wenn sie durch Prozessoren mindestens zweiter ORAM-Server ausgeführt werden, wobei jeder der Server mit einer Client-ORAM-Vorrichtung kommuniziert, die Server veranlassen zum Aufrechterhalten einer ausgeglichenen ORAM-Baumstruktur, wobei jeder Knoten im Baum dafür ausgelegt ist, Datenblöcke zu speichern, wobei die Struktur mindestens zwei Anteile umfasst; und Speicherung einer Teilmenge der Anteile der Baumstruktur unter Verwendung eines verteilten Dateisystems ermöglichen und eine Zugriffsprozedur einer ORAM auf Baumbasis unter Verwendung der Baumstruktur implementieren, die eine Abrufphase und eine Ausräumphase umfasst, wobei in der Abrufphase die Server ein auf XOR basierendes Protokoll des Privat-Informationsabrufs (PIR) benutzen, um Datenblöcke Z abzurufen, wenn sie von der Client-ORAM-Vorrichtung angefordert werden, und in der Ausräumphase die Server eine homomorphe Berechnung eines linearen Geheimnis-Teilschemas benutzen.
  • Figurenliste
    • 1 zeigt ein beispielhaftes System eines verteilten O R A M X O R S S
      Figure DE102020213105A1_0001
      zur Verwendung in einem verteilten Dateisystem;
    • 2 zeigt ein Beispiel für eine O R A M X O R S S
      Figure DE102020213105A1_0002
      Datenstruktur;
    • 3 zeigt ein Beispiel für einen O R A M X O R S S
      Figure DE102020213105A1_0003
      Einrichtalgorithmus;
    • 4 zeigt ein Beispiel für ein O R A M X O R S S
      Figure DE102020213105A1_0004
      Zugriffsprotokoll;
    • 5 zeigt ein Beispiel für ein O R A M X O R S S
      Figure DE102020213105A1_0005
      Abrufprotokoll;
    • 6 zeigt ein Beispiel für die Funktionsweise eines auf XOR basierenden PIR-Schemas;
    • 7 zeigt ein Beispiel für weitere Einzelheiten von SPDZ-Geheimnisteilen;
    • 8 zeigt ein Beispiel 800 für die O R A M X O R S S
      Figure DE102020213105A1_0006
      Lesephase;
    • 9 zeigt ein Beispiel 900 für die O R A M X O R S S
      Figure DE102020213105A1_0007
      Schreibphase;
    • 10 zeigt ein Beispiel für ein O R A M X O R S S
      Figure DE102020213105A1_0008
      Ausräumprotokoll;
    • 11 zeigt ein Beispiel für eine O R A M X O R S S
      Figure DE102020213105A1_0009
      Ausräumung;
    • 12 zeigt ein Beispiel für einen deterministischen Ausräumpfad für O R A M X O R S S ;
      Figure DE102020213105A1_0010
    • 13 zeigt ein Beispiel für weitere Einzelheiten der O R A M X O R S S
      Figure DE102020213105A1_0011
      Drillingsausräumung;
    • 14 zeigt ein Beispiel für das Verringern der Anzahl der Server, die zum Durchführen von O R A M X O R S S
      Figure DE102020213105A1_0012
      für eine gegebene Privatsphärenebene erforderlich ist;
    • 15 zeigt ein Beispiel für Integration von O R A M X O R S S
      Figure DE102020213105A1_0013
      in ein verteiltes Dateisystem;
    • 16 zeigt ein Beispiel für Integration von O R A M X O R S S
      Figure DE102020213105A1_0014
      in ein verteiltes Dateisystem, das Parallelisierung verwendet; und
    • 17 zeigt ein anderes Beispiel für Integration von O R A M X O R S S
      Figure DE102020213105A1_0015
      in ein verteiltes Dateisystem, das Parallelisierung verwendet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden hier Ausführungsformen der vorliegenden Offenbarung beschrieben. Es versteht sich jedoch, dass die offenbarten Ausführungsformen lediglich Beispiele sind und andere Ausführungsformen verschiedene und alternative Formen annehmen können. Die Figuren sind nicht unbedingt maßstabsgetreu; einige Merkmale könnten übertrieben oder minimiert sein, um Einzelheiten bestimmter Komponenten zu zeigen. Deshalb sind hier offenbarte spezifische Struktur- und Funktionsdetails nicht als Beschränkung zu deuten, sondern lediglich als repräsentative Grundlage, um es Fachleuten zu lehren, die Ausführungsformen verschiedenartig einzusetzen. Um Sicherheit bei Anwesenheit eines böswilligen Widersachers zu erzielen, betreffen Aspekte der Offenbarung das Nutzen von Techniken des authentifizierten privaten Informationsabrufs zur Implementierung der Abrufphase des ORAM-Baumparadigmas und des Protokolls der authentifizierten homomorphen Matrixmultiplikation in der geteilten Umgebung, um seine Ausräumphase zu implementieren. Wie für Durchschnittsfachleute erkennbar ist, können verschiedene mit Bezug auf eine beliebige der Figuren dargestellte und beschriebene Merkmale mit in einer oder mehreren anderen Figuren dargestellten Merkmalen kombiniert werden, um Ausführungsformen zu produzieren, die nicht explizit dargestellt oder beschrieben sind. Die Kombinationen von Merkmalen, die dargestellt sind, stellen repräsentative Ausführungsformen für typische Anwendungen bereit. Für konkrete Anwendungen oder Implementierungen könnten jedoch verschiedene Kombinationen und Modifikationen der Merkmale vereinbar mit den Lehren der vorliegenden Offenbarung erwünscht sein.
  • Eine neue ORAM mit mehreren Servern, die wünschenswerte Effizienzeigenschaften als verteilte ORAM auf dem neuesten Stand der Technik erreicht, zusammen mit einer Sicherheitsgarantie gegenüber böswilligen Widersachern wird vorgeschlagen. Die besprochene Technik kann ferner als kryptografischer Kernbaublock zum Konstruieren effizienter verteilter Oblivious-Dateisysteme verwendet werden, die einen hohen Grad an Datenbenutzbarkeit, Sicherheit und Privatsphäre bieten, wie etwa Datenverfügbarkeit, Vertraulichkeit, Integrität und Zugriffsmuster-Vergesslichkeit.
  • Oblivious-Direktzugriffsmaschinen (ORAM) erlauben es Clients, Zugriffsmuster beim Zugreifen auf persönliche Daten auf der Cloud zu verschleiern. Eine beispielhafte Besprechung von ORAM findet sich in Oded Goldreich und Rafail Ostrovsky. Software protection and simulation on oblivious rams, Journal of the ACM (JACM), 43(3):431-473, 1996, das hiermit durch Bezugnahme vollständig aufgenommen wird. Trotz des neueren Fortschritts hat es sich gezeigt, dass existierende ORAM-Entwürfe aufgrund ihres hohen Kommunikations- und/oder Berechnungsoverheads kostspielig sind. Siehe zum Beispiel die folgenden Veröffentlichungen, die hiermit durch Bezugnahme vollständig aufgenommen werden: Ittai Abraham, Christopher W Fletcher, Kartik Nayak, Benny Pinkas und Ling Ren. Asymptotically tight bounds for composing oram with pir, IACR International Workshop on Public Key Cryptography, Seiten 91-120, Springer, 2017; Vincent Bindschaedler, Muhammad Naveed, Xiaorui Pan, XiaoFeng Wang und Yan Huang. Practicing oblivious access on cloud storage: the gap, the fallacy, and the new way forward, Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, Seiten 837-849, ACM, 2015; Thang Hoang, Attila Altay Yavuz und Jorge Guajardo. Practical and secure dynamic searchable encryption via oblivious access on distributed data structure, Proceedings cf the 32nd Annual Corference on Computer Security Applications, Seiten 302-313, ACM, 2016; Tarik Moataz, Travis Mayberry und Erik-Oliver Blass. Constant communication oram with small blocksize, Proceedings of the 22nd ACM SIGSAC Corference on Computer and Communications Security, Seiten 862-873, ACM, 2015; und Muhammad Naveed, The fallacy of composition of oblivious ram and searchable encryption, IACR Cryptology ePrint Archive, 2015:668, 2015. Es folgt eine Besprechung bestimmter ORAM-Konstruktionen sowie ihrer Beschränkungen, gefolgt von einer Beschreibung eines neuen und verbesserten ORAM-Entwurfs, der diese Beschränkungen angeht.
  • Eine Art von ORAM ist eine passive ORAM (ohne Serverberechnung). ORAM wurde zuerst von Goldreich und Ostrovsky in der Einzelserverumgebung mit einer festgelegten logarithmischen Kommunikations-Untergrenze (d.h. (log N), wobei N die Anzahl der Datenblöcke ist) für beliebige sichere ORAM-Konstruktionen eingeführt (in Oded Goldreich, Towards a theory of Software protection and simulation by oblivious rams, Proceedings cf the nineteenth annual ACM symposium on Theory cf computing, Seiten 182-194, ACM, 1987, das hiermit durch Bezugnahme vollständig aufgenommen wird). Vorläufige ORAM-Entwürfe (z.B. die erwähnte Arbeit und auch Oded Goldreich and Rafail Ostrovsky, Software protection and simulation on oblivious rams, Journal of the ACM (JACM) und Benny Pinkas und Tzachy Reinman. Oblivious ram revisited, Advances in Cryptology-CRYPTO 2010, Seiten 502-519, Springer, 2010, die hiermit jeweils durch Bezugnahme vollständig aufgenommen werden) sind kompliziert und sehr kostspielig, und ihr asymptotisches Kommunikationsoverhead erfüllt nicht die Untergrenze. Im Jahre 2011 haben Shi et al. (in Elaine Shi, T-H Hubert Chan, Emil Stefanov und Mingfei Li. Oblivious ram with o ((logn) 3) worst-case cost, Advances in Cryptology-ASIACRYPT 2011, Seiten 197-214, Springer, 2011, das hiermit durch Bezugnahme vollständig aufgenommen wird) einen bahnbrechenden ORAM-Entwurf vorgeschlagen, wobei das ORAM-Layout als die Baumstruktur organisiert wird. Seitdem wurden viele effiziente ORAM-Entwürfe vorgeschlagen, die dem Baumparadigma folgen, von denen viele erfolgreich das Untergrenzen-Kommunikationsoverhead erzielt haben. Unter diesen Konstruktionen ist Path-ORAM von Stefanov et al. (in Emil Stefanov, Marten Van Dijk, Elaine Shi, Christopher Fletcher, Ling Ren, Xiangyao Yu und Srinivas Devadas, Path ORAM: an extremely simple oblivious ram protocol. Proceedings of the 2013 ACM SIGSAC corference on Computer and Communications security, Seiten 299-310, ACM, 2013, das hiermit durch Bezugnahme vollständig aufgenommen wird) die einfachste und effizienteste passive Einzelserver-ORAM zum Daten-Outsourcing, die die optimale Grenze von O(logN)-Kommunikationsaufblähung unter O(1)-Blöcken der Client-Speicherung erzielt. Trotz ihrer Vorteile wird die Path-ORAM immer noch für bestimmte Anwendungen aufgrund der Übertragungskosten von O(logN)-Blöcken pro Zugriffsanforderung als zu kostspielig betrachtet (wie besprochen in Vincent Bindschaedler, Muhammad Naveed, Xiaorui Pan, XiaoFeng Wang und Yan Huang, Practicing oblivious access on cloud storage: the gap, the fallacy, and the new way forward, Proceedings cf the 22nd ACM SIGSAC Corference on Computer and Communications Security, Seiten 837-849, ACM, 2015; Muhammad Naveed, The fallacy of composition of oblivious ram and searchable encryption, IACR Cryptology ePrint Archive, 2015:668, 2015; Emil Stefanov, Charalampos Papamanthou und Elaine Shi, Practical dynamic searchable encryption with small leakage, NDSS, Band 71, Seiten 72-75, 2014, die hiermit jeweils durch Bezugnahme vollständig aufgenommen werden).
  • Eine andere Art von ORAM ist eine aktive Einzelserver-ORAM. Um die Client-Kommunikationsaufblähung zu verringern, begannen Forscher, über einen aktiven Server nachzudenken, wo er einige bestimme Berechnungen ausführen kann. Frühe Versuche (z.B. wie in Jonathan Dautrich und Chinya Ravishankar, Combining ORAM with PIR to minimize bandwidth costs, Proceedings of the 5th ACM Corference on Data and Application Security and Privacy, Seiten 289-296, ACM, 2015; Travis Mayberry, Erik-Oliver Blass und Agnes Hui Chan, Efficient private file retrieval by combining ORAM and PIR, NDSS, Citeseer, 2014; und Ling Ren, Christopher W Fletcher, Albert Kwon, Emil Stefanov, Elaine Shi, Marten van Dijk und Srinivas Devadas, Ring ORAM: Closing the gap between small and large client storage oblivious ram, IACR Cryptology ePrint Archive, 2014:997, 2014, die jeweils mit Bezugnahme vollständig aufgenommen werden, beschrieben), können die Client-Bandbreitenaufblähung nur um eine Konstante reduzieren, indem der XOR-Trick oder Techniken der Art des Einzelserver-Privatinformationsabrufs (PIR) verwendet werden (z.B. Jonathan Trostle und Andy Parrish. Efficient computationally private information retrieval from anonymity or trapdoor groups, International Conference on Information Security, Seiten 114-128, Springer, 2010, das hiermit durch Bezugnahme vollständig aufgenommen wird). Daher können sie die logarithmische Bandbreitenbarriere immer noch nicht überwinden, wovon einiges signifikante Zusatzkosten der Einzelserver-PIR-Berechnung zu der Gesamtverzögerung hinzufügen kann. Obwohl einige neuere ORAM-Konstruktionen erfolgreich O(1)-Bandbreitenaufblähung erzielt haben (z.B. Onion-ORAM, wie beschrieben in Srinivas Devadas, Marten van Dijk, Christopher W. Fletcher, Ling Ren, Elaine Shi und Daniel Wichs, Onion oram: A constant bandwidth blowup oblivious ram, Theory cf Cryptography Conference, Seiten 145-174, Springer, 2016, das hiermit durch Bezugnahme vollständig aufgenommen wird, und in Bucket-ORAM, wie in Christopher Fletcher, Muhammad Naveed, Ling Ren, Elaine Shi und Emil Stefanov, Bucket oram: single online roundtrip, constant bandwidth oblivious ram, Technical report, IACR Cryptology ePrint Archive, Report 2015, 1065, 2015 und Daniel Apon, Jonathan Katz, Elaine Shi und Aishwarya Thiruvengadam. Verifiable oblivious storage, International Workshop on Public Key Cryptography, Seiten 131-148, Springer, 2014 beschrieben, die jeweils hiermit vollständig durch Bezugnahme aufgenommen werden), beruhen sie auf kostspieligen kryptografischen Primitiven, wie etwa partiell/vollständig homomorphe Verschlüsselung (HE) (z.B. Pascal Paillier, Public-key cryptosystems based on composite degree residuosity classes, International Corference on the Theory and Applications of Cryptographic Techniques, Seiten 223-238, Springer, 1999, das hiermit durch Bezugnahme vollständig aufgenommen wird). Es wurde experimentell gezeigt, dass solche HE-Operationen viel mehr Ausführungszeit benötigen als einfaches Streaming von O(logN)-Blöcken, selbst mit der langsamen Netzwerkeinstellung (wie gezeigt in Ittai Abraham, Christopher W Fletcher, Kartik Nayak, Benny Pinkas und Ling Ren, asymptotically tight bounds for composing oram with pir, IACR International Workshop on Public Key Cryptography, Seiten 91-120, Springer, 2017 und Thang Hoang, Ceyhun D Ozkaptan, Attila A Yavuz, Jorge Guajardo und Tam Nguyen. S3oram: A computation efficient and constant client bandwidth blowup oram with shamir secret sharing, Proceedings cf the 2017 ACM SIGSAC Conference on Computer and Communications Security, Seiten 491-505, ACM, 2017, die jeweils hiermit durch Bezugnahme vollständig aufgenommen werden).
  • Eine andere Art von ORAM ist die aktive Mehrserver-ORAM. Um kostspielige kryptografische Operationen zu vermeiden, konzentriert sich die neuere Forschungslinie auf die Entwicklung des ORAM-Protokolls in der verteilten Umgebung. Stefanov et al. (in Emil Stefanov und Elaine Shi. Multi-cloud oblivious storage, Proceedings cf the 2013 ACM SIGSAC conference on Computer & communications security, Seiten 247-258, ACM, 2013, das hiermit durch Bezugnahme vollständig aufgenommen wird) haben ein ORAM-Protokoll mit zwei Servern vorgeschlagen, das O(1)-Client-Server-Bandbreitenaufblähung mit O(logN)-Server-Server-Kommunikation erzielt. Dieses Protokoll kann jedoch für speicherbegrenzte Clients (z.B. mobil) ungeeignet sein, weil es dem Partitions-ORAM-Entwurfsprinzip folgt, das O(sqrt(N))-Blöcke von Client-Speicherung erfordert (wie besprochen in Emil Stefanov, Elaine Shi und Dawn Song. Towards practical oblivious ram. arXiv preprint arXiv:1106.3652, 2011, das hiermit durch Bezugnahme vollständig aufgenommen wird). Abraham et al. (in Ittai Abraham, Christopher W Fletcher, Kartik Nayak, Benny Pinkas und Ling Ren. Asymptotically tight bounds for composing oram with pir, IACR International Workshop on Public Key Cryptography, Seiten 91-120, Springer, 2017, das hiermit durch Bezugnahme vollständig aufgenommen wird) haben eine verteilte ORAM vorgeschlagen, die PIR auf XOR-Basis verwendet (z.B. wie beschrieben in Benny Chor, Eyal Kushilevitz, Oded Goldreich und Madhu Sudan, Private information retrieval, Journal of the ACM (JACM), 45(6):965-981, 1998, das hiermit durch Bezugnahme vollständig aufgenommen wird) und haben auch angegeben, dass es eine sublogarithmische Kommunikationsaufblähungsgrenze von (logcD N) für ORAM-PIR-Komposition gibt, wobei c, D die Anzahlen von Blöcken sind, die durch den Client gespeichert bzw. durch PIR-Operationen ausgeführt werden. Erst kürzlich schlugen Hoang et al. S3ORAM vor (in Thang Hoang, Ceyhun D Ozkaptan, Attila A Yavuz, Jorge Guajardo und Tam Nguyen, S3ORAM: A computation efficient and constant client bandwidth blowup oram with shamir secret sharing, Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, Seiten 491-505, ACM, 2017, das hiermit durch Bezugnahme vollständig aufgenommen wird), ein ORAM-Schema mit drei Servern auf der Basis von Mehrteilnehmerberechnung, das wünschenswerte Leistungsfähigkeitseigenschaften bietet, wie etwa O(1)-Client-Bandbreitenaufblähung, O(1)-Blockspeicherung und geringes Berechnungsoverhead sowohl auf der Client- als auch der Serverseite. Trotz ihrer Effizienzvorteile ist die Hauptbeschränkung von S3ORAM, dass sie die Sicherheitsgarantie nur unter der Voraussetzung bietet, dass alle Server dem Protokoll treu folgen. Diese Annahme kann in der praktischen Ausführungsumgebung ungeeignet sein, wo böswillige Widersacher anwesend sein könnten. Aufgrund ihrer Grundbaublöcke kann S3ORAM böswillige Verhaltensweisen, die die Zugriffsmusterprivatsphäre mit überwältigender Wahrscheinlichkeit kompromittieren können, nicht detektieren.
  • In der vorliegenden Offenbarung wird eine neue verteilte ORAM zusammen mit ihrer Anwendung auf die Implementierung eines verteilten Dateisystems beschrieben. Das vorgeschlagene System basiert auf einer neuartigen Zusammensetzung des privaten Informationsabrufs mit mehreren Servern und des linearen Geheimnis-Teilens. Deshalb gewährleistet das vorgeschlagene System starken Schutz für die Kundenprivatsphäre selbst bei Anwesenheit eines böswilligen Widersachers. Außerdem erlaubt das System nicht nur Oblivious-Speicherung, sondern bei einigen Implementierungen auch Berechnung an den Daten, während sie Oblivious-gespeichert werden.
  • Bei ORAM gibt es zwei übliche Protokolle, Abruf und Ausräumung. Abruf dient zum privaten Abrufen des Blocks/der Datei, an dem/der man interessiert ist, während Ausräumung zum Schreiben des abgerufenen Blocks zurück in den Speicherungsserver verwendet wird. Diese Prozeduren sollten beide auf Oblivious-Weise durchgeführt werden.
  • Es kann eine neue verteilte ORAM (die hier als O R A M X O R S S
    Figure DE102020213105A1_0016
    bezeichnet wird) entworfen werden, bei der die Abruf- und Ausräumprozeduren folgendermaßen implementiert werden. Für die Abrufphase kann PIR auf XOR-Basis (wie oben erwähnt) benutzt werden. Diese Technik erlaubt Abruf des interessierenden Datenblocks auf private Weise, kann aber auch böswillige Verhaltensweisen detektieren, die versuchen, die Benutzerzugriffsmuster-Privatsphäre zu kompromittieren. Für die Ausräumphase nutzt das ORAM-Schema homomorphe Eigenschaften des Schemas des linearen Geheimnis-Teilens (z.B. SPDZ, wie besprochen in Ivan Damgård, Valerio Pastro, Nigel Smart und Sarah Zakarias, Multiparty computation from somewhat homomorphic encryption, Advances in Cryptology-CRYPTO 2012, Seiten 643-662. Springer, 2012, und Marcel Keller, Valerio Pastro und Dragos Rotaru. Overdrive: making spdz great again. Annual International Conference on the Theory and Applications cf Cryptographic Techniques, Seiten 158-189, Springer, 2018, die jeweils hiermit durch Bezugnahme vollständig aufgenommen werden). Dies erlaubt sichere Berechnung in der Ausräumphase, die auf viel berechnungs- und kommunikationseffizientere Weise über ein Online-Offline-Modell mit einem optimalen Privatsphärenniveau durchgeführt werden kann.
  • Wie hier ausführlich besprochen werden wird, benutzt die O R A M X O R S S
    Figure DE102020213105A1_0017
    zwei oder mehr Server für eine solche Zusammenstellung. Die O R A M X O R S S
    Figure DE102020213105A1_0018
    bietet weiterhin viele wünschenswerte Eigenschaften. Erstens ist O R A M X O R S S
    Figure DE102020213105A1_0019
    bei Anwesenheit böswilliger Widersacher sicher. O R A M X O R S S
    Figure DE102020213105A1_0020
    bietet informationstheoretische Sicherheit für die outgesourcten Daten und Benutzerzugriffsmuster bei Anwesenheit böswilliger Widersacher. Jeder Versuch, die Datenbank/Anfrage zu manipulieren, um die Zugriffsmusterprivatsphäre zu kompromittieren, wird detektiert. Zweitens bietet O R A M X O R S S
    Figure DE102020213105A1_0021
    geringes Rechenoverhead sowohl auf der Client- als auch der Serverseite. In der Online-Phase führen Server nur Berechnungen aus, die XOR, modulare Additionen und Multiplikationen umfassen. Dies ist viel effizienter als andere aktive ORAM-Schemata, die Berechnung auf der Serverseite erfordern (z.B. partielle HE, wie besprochen in Ivan Damgård und Mads Jurik, A generalisation, a simplification and some applications of paillier's probabilistic public-key system, International Workshop on Public Key Cryptography, Seiten 119-136, Springer, 2001, das hiermit durch Bezugnahme vollständig aufgenommen wird). Andererseits führt der Client in O R A M X O R S S
    Figure DE102020213105A1_0022
    nur eine XOR- und zwei modulare Additionsoperationen pro Block, auf den zugegriffen wird, aus. Dies ist auch effizienter als viele ORAM-Schemata, bei denen eine Anzahl partieller HE-Operationen aufkommt. Drittens gewährleistet O R A M X O R S S
    Figure DE102020213105A1_0023
    konstante Client-Speicherungs- und -Bandbreitenaufblähung. O R A M X O R S S
    Figure DE102020213105A1_0024
    bietet O(1)-Client-Bandbreitenaufblähung, verglichen mit O(logN) der effizientesten Einzelserver-nur-Kommunikation-ORAM-Schemata mit fester Anzahl von Servern (z.B. wie besprochen in Ling Ren, Christopher W Fletcher, Albert Kwon, Emil Stefanov, Elaine Shi, Marten van Dijk und Srinivas Devadas, Ring oram: Closing the gap between small and large client storage oblivious ram, IACR Cryptology ePrint Archive, 2014:997, 2014 und Emil Stefanov, Marten Van Dijk, Elaine Shi, Christopher Fletcher, Ling Ren, Xiangyao Yu und Srinivas Devadas, Path oram: an extremely simple oblivious ram protocol, Proceedings cf the 2013 ACM SIGSAC conference on Computer and Communications security, Seiten 299-310. ACM, 2013, die hiermit jeweils durch Bezugnahme vollständig aufgenommen werden). Außerdem hat O R A M X O R S S
    Figure DE102020213105A1_0025
    eine kleinere Blockgröße als andere ORAM-Schemata, wodurch dieselbe konstante Bandbreitenaufblähung erzielt wird (z.B. Onion-ORAM und Bucket-ORAM, wie oben erwähnt). Viertens erfreut sich O R A M X O R S S
    Figure DE102020213105A1_0026
    einer äußerst niedrigen Verzögerung von Ende zu Ende. Aufgrund der hocheffizienten Berechnung sowohl auf der Client- als auch auf der Serverseite, zusammen mit der konstanten Client-Bandbreitenaufblähung, erzielt O R A M X O R S S
    Figure DE102020213105A1_0027
    extrem niedrige Verzögerung von Ende zu Ende.
  • 1 zeigt ein beispielhaftes System 100 eines verteilten O R A M X O R S S
    Figure DE102020213105A1_0028
    zur Verwendung in einem verteilten Dateisystem. Wie gezeigt umfasst das System 100 einen Client 102 und drei Server 104 (die als S0, S1 und S2 bezeichnet werden können). Jeder Server 104 unterhält einen oder mehrere Daten-Speicher 106, die die zu speichernden und abzurufenden Informationen umfassen. (Es sollte beachtet werden, dass in anderen Beispielen mehr Server 104, Clients 102 und Daten-Speicher 106 enthalten sein könnten). Der Besprechung halber wird angenommen, dass die Kanäle (dargestellt als Pfeile) zwischen allen Elementen des Systems 100 paarweise sicher sind, d.h. kein Spieler den Inhalt des Kommunikationskanals von anderen Elementen manipulieren, lesen oder modifizieren kann.
  • Jeder des Client 102 und des Servers 104 kann einen oder mehrere Prozessoren, ausgelegt zum Ausführen von Computeranweisungen, und ein Speicherungsmedium, worauf die computerausführbaren Anweisungen und/oder Daten unterhalten werden können, umfassen. Ein computerlesbares Speicherungsmedium (das hier auch als prozessorlesbares Medium oder Speicherung bezeichnet wird) umfasst jedes nichttransitorische (z.B. greifbare) Medium, das an der Bereitstellung von Daten (z.B. Anweisungen), die durch einen Computer (z.B. durch den bzw. die Prozessor(en)) gelesen werden können, teilnimmt. Im Allgemeinen empfängt der Prozessor Anweisungen und/oder Daten, z.B. aus der Speicherung usw., in einem Speicher und führt die Anweisungen unter Verwendung der Daten aus, um dadurch einen oder mehrere Prozesse auszuführen, darunter einen oder mehrere der hier beschriebenen Prozesse. Computerausführbare Anweisungen können aus Computerprogrammen kompiliert oder interpretiert werden, die unter Verwendung vielfältiger Programmiersprachen und/oder Technologien erstellt werden, darunter ohne Beschränkung und entweder alleine oder in Kombination Java, C, C++, C#, Fortran, Pascal, Visual Basic, Python, JavaScript, Perl, PL/SPL, usw.
  • Mit Bezug auf Sicherheit wird in dem System 100 nur der Client 102 als vertrauenswürdig betrachtet. Alle Server 104 können sich auf böswillige Weise verhalten, wobei sie die Eingangsdaten manipulieren können, um das Zugriffsmuster des Clients 102 zu erfahren. Ein Sicherheitsmodell der Mehrserver-ORAM kann deshalb folgendermaßen (z.B. wie bei S3ORAM) definiert sein:
    • Es sei x = ((op0, bid0, data0), ..., (opq-1, bidq-1, dataq-1)) eine Datenanforderungssequenz der Länge q, wobei:
      • opj ∈ {Read, Write}, bidj die zu lesende oder zu schreibende Blockkennung ist; und dataj sind die durch bidj identifizierten Daten, die zu lesen oder zu schreiben sind.
    • Man nehme an, dass es / Server S = {S0, ..., Sℓ-1} in dem System 100 gibt.
    • Hinsichtlich Korrektheit soll ORAMi(x) eine Sequenz von Interaktionen von dem ORAM-Client 102 zu dem Server Si bei gegebener Datenanforderungssequenz x repräsentieren.
    • Eine Mehrserver-ORAM ist korrekt, wenn für jede Zugriffssequenz x: {ORAM1(x), ..., ORAM(x)}i mit x vereinbare Daten zurückgibt, mit Ausnahme einer vernachlässigbaren Wahrscheinlichkeit.
    • Hinsichtlich t-Sicherheit. Eine Mehrserver-ORAM ist t-sicher, wenn ∀I ⊆ {0, ..., |ℓ - 1} dergestalt, dass |I| ≤ t für zwei beliebige Datenzugriffssequenzen x, y mit |x| = |y| gilt und wobei ihre entsprechenden Transkriptionen {ORAMi∈I(x)} und {ORAMi∈I(y)}, die durch eine Koalition von bis zu t Servern {Si∈I} beobachtet werden, statistisch oder rechnerisch ununterscheidbar sind.
  • 2 zeigt ein Beispiel 200 für eine O R A M X O R S S
    Figure DE102020213105A1_0029
    Datenstruktur. Die O R A M X O R S S
    Figure DE102020213105A1_0030
    Datenstruktur kann über den oben besprochenen Onion-ORAM-Layoutentwurf beschrieben werden; die Methodologie kann jedoch über anderen ORAM-Layouts auf Baumbasis angewandt werden, wie nachfolgend skizziert wird (siehe z.B. Circuit-ORAM, wie beschrieben in XiaoWang, Hubert Chan und Elaine Shi. Circuit oram: On tightness ofthe goldreich-ostrovsky lower bound, Proceedings cf the 22nd ACM SIGSAC Conference on Computer and Communications Security, Seiten 850-861, ACM, 2015, das hiermit durch Bezugnahme vollständig aufgenommen wird). Im Prinzip kann die O R A M X O R S S
    Figure DE102020213105A1_0031
    Strukturals ein ausgeglichener Baum definiert werden, der als T bezeichnet wird, mit einer Höhe von H. Jeder Knoten im Baum kann als T[i] bezeichnet werden, wobei 0 ≤ i < 2H+1 ≤ 1) gilt, und kann als Bucket bezeichnet werden. Jedes Bucket kann Z reelle Datenblöcke speichern, auf die als T[i, j] zugegriffen werden kann, wobei 0 ≤ j < Z ist. Jeder Knoten hat eine Metadatenkomponente, die die Pfad- und Positionsinformationen reeller Blöcke unter den Z Schlitzen speichert. Sofern es nicht anders angegeben wird, soll Bucket nur den darin gespeicherten Datenblock angeben, und die vorliegende Offenbarung wird über Erwähnung der Metadatenkomponenten explizit sein, wenn diese Daten beabsichtigt sind. Die O R A M X O R S S
    Figure DE102020213105A1_0032
    Struktur kann höchstens N ≤ A · 2H-1 Datenblöcke speichern, wobei A eine konstante Zahl ist. Ähnlich wie bei anderen ORAM-Konstruktionen auf Baumbasis hat O R A M X O R S S
    Figure DE102020213105A1_0033
    eine Positionsabbildungskomponente pm := (bid, pid) mit 0 ≤ pid < 2H zum Speichern der Pfadinformationen von Datenblöcken in T. Diese Komponente kann rekursiv in kleineren ORAM-Bäumen gespeichert werden, so wie es mit Bezug auf die oben erwähnte Path-ORAM vorgeschlagen wird.
  • 3 zeigt ein Beispiel 300 für einen O R A M X O R S S
    Figure DE102020213105A1_0034
    Einrichtalgorithmus. Somit kann die Konstruktion der O R A M X O R S S
    Figure DE102020213105A1_0035
    Datenstruktur gemäß den in dem Beispiel 300 skizzierten Operationen erfolgen. Es sollte beachtet werden, dass dies ein Beispiel ist und zusätzlich oder als Alternative andere beispielhafte Implementierungen verwendet werden können.
  • Wenn eine Datenbank DB gegeben ist, die aus N Datenblöcken bi jeweils mit der Größe von B-Bit besteht, erzeugt der O R A M X O R S S
    Figure DE102020213105A1_0036
    Einrichtalgorithmus Anteile von T als Ausgabe für l Server folgendermaßen. Als Erstes initialisiert der Client 102 jeden Schlitz in jedem Bucket von T mit einer 0en Kette der Länge B (Schritt 2). Dann organisiert der Client 102 alle Datenbankblöcke zu T, wobei jedes bi unabhängig einem zufälligen Blatt-Bucket von T zugewiesen wird. Der Client 102 erzeugt dann Anteile von T durch Ausführen des SSSSPDZ: Erzeugungsalgorithmus für jeden Block in T (Schritt 9-11).
  • Der Einfachheit halber und zum leichteren Verständnis kann angenommen werden, dass |b| ≤ [log2p] ist. Im Fall |b| > [log2p] teilt der Client jeden Block in Stücke cj gleicher Größe auf, so dass c j F p
    Figure DE102020213105A1_0037
    gilt.
  • Das O R A M X O R S S
    Figure DE102020213105A1_0038
    Systemmodell kann z.B. drei Server S = (S0, S1, S2) verwenden. Daher besteht die verteilte O R A M X O R S S
    Figure DE102020213105A1_0039
    Struktur aus drei Anteilen von T als {[T]0, [T]1, [T]2}. In O R A M X O R S S  
    Figure DE102020213105A1_0040
    speichert jeder Server Si zwei Anteile des Baums, einschließlich T i nd .
    Figure DE102020213105A1_0041
    T i + 1 ( mod3 )
    Figure DE102020213105A1_0042
  • 4 zeigt ein Beispiel 400 für ein O R A M X O R S S
    Figure DE102020213105A1_0043
    Zugriffsprotokoll. Es sollte beachtet werden, dass dies ein Beispiel ist und zusätzlich oder als Alternative andere beispielhafte Implementierungen verwendet werden können. Wie gezeigt folgt die O R A M X O R S S
    Figure DE102020213105A1_0044
    der generischen Zugriffsprozedur von ORAMs auf Baumbasis (oben besprochen), die zwei Subroutinen enthält: Abruf und Ausräumung. Allgemein ausgedrückt ruft für jeden Block, auf den zugegriffen werden soll, der Client seinen Pfad aus einer Positionsabbildung (pm) ab und weist ihn einem gleichförmig zufällig ausgewählten neuen Pfad zu. Der Client führt dann das Abrufprotokoll auf dem ehemaligen Pfad des Blocks, auf den zugegriffen wird, aus, um den Block in lokalen Speicher einzulesen (Schritt 3). Der Abrufprozess wird ausführlicher mit Bezug auf 4 beschrieben. Danach aktualisiert der Client den Block und führt dann das Ausräumprotokoll aus, um den Block aus dem lokalen Speicher in die ORAM-Baumstruktur zu schreiben (Schritt 6). Der Ausräumprozess wird ausführlicher mit Bezug auf 7 beschrieben. Intuitiv nutzt O R A M X O R S S
    Figure DE102020213105A1_0045
    auf XOR basierende Mehrserver-PIR- und homomorphe Eigenschaften des Geheimnis-Teilens von SPDZ, um die Abruf- bzw. Ausräumprotokolle zu implementieren.
  • Wieder mit Bezug auf 2 können, wie weiter gezeigt ist, diese drei Operationen an der O R A M X O R S S
    Figure DE102020213105A1_0046
    Datenstruktur wie gezeigt ausgeführt werden. Dazu gehören die Operation zum Lesen eines Datenblocks aus dem Baum, die Operation zum Schreiben eines Blocks, auf den zugegriffen wird, zurück in den Baum an der Wurzel und die Operation zum Ausräumen von Datenblöcken aus dem Baum.
  • 5 zeigt ein Beispiel 500 für ein O R A M X O R S S
    Figure DE102020213105A1_0047
    Abrufprotokoll. Das O R A M X O R S S
    Figure DE102020213105A1_0048
    Abrufprotokoll des Beispiels 500 verwendet drei Algorithmen des auf XOR basierenden PIR-Schemas. Es sollte beachtet werden, dass dies ein Beispiel ist und zusätzlich oder als Alternative andere beispielhafte Implementierungen verwendet werden können.
  • 6 zeigt ein Beispiel 600 für die Funktionsweise eines auf XOR basierenden PIR-Schemas. Wie gezeigt, speichert jeder Server 104 ein Duplikat einer Datenbank. Während des Betriebs erzeugt der Client 102 (i) eine Auswahlanfrage für einen Block Daten, (ii) erzeugt n -1 Zufalls-Binärketten, (iii) XOR-verknüpft die n-1 Zufallsketten mit der Auswahlanfrage, (iv) verteilt die Ketten an entsprechenden Server 104 und (v) XOR-verknüpft die Antworten, um den Block zurückzuerhalten. Jeder entsprechende Server 104 (hier zum Beispiel als S1 und S2 bezeichnet) (i) XOR-verknüpft Datenbankposten entsprechend einem 1-wertigen Element in der Kette und (ii) sendet ein Ergebnis der Operation zurück zum Client 102.
  • Wieder mit Bezug auf 5 und unter fortgesetzter Bezugnahme auf 6 werden, wenn ein Block mit seiner Kennung (BID) und seinem Pfad (PID), auf den zugegriffen werden soll, gegeben ist, die Anteile von Metadatenkomponenten von Buckets entlang PID-Daten von drei Servern von dem Client heruntergeladen (Schritt 2). Der Client rekonstruiert die Metadaten, um den Ort von BID abzurufen, und berechnet dann den Index (z) von BID im Pfad. (Schritte 3-4). Danach erzeugt der Client 6 Anfragen durch dreimaliges Ausführen des Algorithmus PIR:ErzeugeAnfrage, wodurch jeweils zwei Abfragen für einen Anteil des ( e i ( 0 ) , e i ( 1 ) )
    Figure DE102020213105A1_0049
    erzeugt werden. (Schritte 5-6). In diesem Fall interpretiert der Client Buckets auf dem Abrufpfad als die Datenbankeingabe in dem auf XOR basierenden PIR-Protokoll. Daher ist die Datenbankgröße und die Länge des Anfragevektors n = Z · (H + 1). Als Nächstes sendet der Client 102 zwei Anfragen (ei, ei+1) zu jedem Server Si für 0 ≤ i ≤ 2. Jeder Server Si führt den Algorithmus PIR:ErzeugeAnfrage für jede Eingabe ei bzw. ei+1 mit seinem entsprechenden Anteil [T]i bzw. [T]i+1, gebildet durch Verketten von Buckets entlang PID im ORAM-Baum [T]i bzw. [T]i+1, aus (Schritte 7-8) und sendet die berechneten Werte zum Client 102. Als Letztes stellt der Client die Anteile des abgerufenen Blocks durch Ausführen des Algorithmus PIR:Rekonstruieren wieder her (Schritte 9-10) und rekonstruiert dann den Block durch Aufrufen des Algorithmus SSSSPDZ: Wiederherstellen über drei wiederhergestellten Anteilen (Schritt 11).
  • 7 zeigt ein Beispiel 700 weiterer Einzelheiten des SPDZ-Geheimnisteilens. Im Allgemeinen kann ein Geheimnis x so definiert werden, dass x F p  und  x 1 F p , x 2 F p
    Figure DE102020213105A1_0050
    ist, so dass x = x1 + x2 ist. Außerdem kann ein erster Server x1 und y1 speichern, während ein zweiter Server x2 und y2 speichern kann. Die Summe x1 + y1 kann lokal durch den ersten Server berechnet werden, während die Summe x2 + y2 lokal durch den zweiten Server berechnet werden kann. Außerdem kann der erste Server ein erstes Triple (a1, b1, c1) erzeugen, und der zweite Server kann ein zweites Triple (a2, b2, c2) erzeugen, dergestalt, dass a = a1 + a2, b = b1 + b2, c = c1 + c2 und c = ab gilt. Dann kann berechnet und enthüllt werden, dass d = d1 + d2 und f = f1 + f2 ist, mit d 1 = x 1 a 1 ,
    Figure DE102020213105A1_0051
    d 2 = x 2 a 2 ,
    Figure DE102020213105A1_0052
    f 1 = y 1 b 1
    Figure DE102020213105A1_0053
    und f 2 = y 2 b 2 .
    Figure DE102020213105A1_0054
  • Außerdem gilt: z 1 + z 2 =               = c 1 + b 1 d + a 1 f + d f + c 2 + b 2 d + a 2 f = c + b d + a f + d f = c + b ( x a ) + + ( y b ) + ( x a ) ( y b ) = x y
    Figure DE102020213105A1_0055
  • Dementsprechend kann Folgendes berechnet werden: z 1 = c 1 + b 1 d + a 1 f + d f
    Figure DE102020213105A1_0056
    und z 2 = c 2 + b 2 d + a 2 f .
    Figure DE102020213105A1_0057
  • 8 zeigt ein Beispiel 800 für die O R A M X O R S S
    Figure DE102020213105A1_0058
    Lesephase. Wie gezeigt wird XOR-PIR ausgeführt, um jeden Anteil von SPDZ zu erhalten. Diese Anteile sind als [A]1 und [A]2 gezeigt. Dann kann das Geheimnis aus den SPDZ-Anteilen wiederhergestellt werden. Wie gezeigt, können die Anteile [A]1 and [A]2 summiert werden, um das geteilte Geheimnis A abzurufen.
  • 9 zeigt ein Beispiel 900 für die O R A M X O R S S
    Figure DE102020213105A1_0059
    Schreibphase. Wie gezeigt, wird das Geheimnis erneut von A an [A]1 und [A]2 geteilt. Als Nächstes werden die Anteile neu in die Wurzel der entsprechenden Server geschrieben.
  • 10 zeigt ein Beispiel 700 für ein O R A M X O R S S
    Figure DE102020213105A1_0060
    Ausräumprotokoll. Wie in dem dargestellten Beispiel gezeigt, folgt O R A M X O R S S
    Figure DE102020213105A1_0061
    dem Drillings-Ausräumprinzip im Onion-ORAM-Entwurf der in S3ORAM vorgeschlagenen homomorphen Permutation des Geheimnisteilens. Im Allgemeinen erzeugt, nachdem der Block abgerufen und aktualisiert ist, der Client 102 seine Anteile mit SPDZ und schreibt dann den Anteil in einen leeren Schlitz in dem Wurzelbucket der ORAM-Struktur. Nach A sukzessiven Abrufungen wird die Drillingsausräumung an einem deterministischen Ausräumpfad ausgeführt, der der umgekehrten lexikografischen Reihenfolge folgt (z.B. wie vorgeschlagen in Craig Gentry, Kenny A Goldman, Shai Halevi, Charanjit Julta, Mariana Raykova, und Daniel Wichs. Optimizing ORAM and using it efficiently for secure computation, International Symposium on Privacy Enhancing Technologies Symposium, Seiten 1-18, Springer, 2013, das hiermit durch Bezugnahme vollständig aufgenommen wird).
  • Es sind drei Buckets an einer Drillingsbeziehung beteiligt: (i) ein Quellen-Bucket, wobei seine Daten zu seinen Kindern verlagert wird; (ii) ein Ziel-Bucket, das das Kind des Quellen-Buckets ist, das im Ausräumpfad residiert; und (iii) ein Geschwister-Bucket, das das andere Kind ist. Die Funktionsweise ist folgendermaßen.
  • Mit Bezug auf Quelle zu Ziel sei [u] ein 2Z-dimensionaler Anteilvektor, der durch [u]-Verketten der Daten im Quellen-Bucket und Ziel-Bucket gebildet wird. Anteile der Permutationsmatrix können ähnlich wie bei S3ORAM erzeugt werden, um das Element am Index i auf Oblivious-Weise über homomorphe Addition und Multiplikation des SPDZ-Geheimnisteilens an die Position j in -- zu verlagern.
  • Mit Bezug auf Quelle zu Geschwister werden gemäß dem Drillings-Ausräumprinzip Nicht-Blatt-Geschwister-Buckets aufgrund der vorherigen Ausräumungen garantiert leer sein, und jedes weist eine vernachlässigbare Bucket-Überlaufwahrscheinlichkeit auf. Daher können die Server 104 nur alle Daten aus dem Quellen-Bucket auf diesen Ebenen in das Geschwister-Bucket kopieren. Auf der Blattebene kann, da Blatt-Buckets nicht leer sind, das Matrixpermutationsprinzip verwendet werden, um Daten auf Oblivious-Weise aus Quellen-Buckets wie im Fall von Quelle zu Ziel in Geschwister-Buckets zu verlagern.
  • Man beachte, dass in dem beschriebenen System 100 jeder Server 104 ein Replikat des Baum-ORAM-Anteils von dem anderen Server über seinen eigenen Anteil hinaus speichert; somit ist es erforderlich, sicherzustellen, dass alle Replikate für das auf XOR basierende Mehrserver-PIR-Protokoll stimmig sind. Sobald das Ausräumprotokoll beendet ist, sendet deshalb der Server Si seinen eigenen Baum-ORAM-Anteil [T]i zu Server Si-1, um die Stimmigkeit zwischen Replikaten aufrechtzuerhalten.
  • 11 zeigt ein Beispiel 1100 für eine O R A M X O R S S
    Figure DE102020213105A1_0062
    Ausräumung. Wie gezeigt, wird Drillingsausräumung verwendet und ein Matrixprodukt ausgeführt, um reelle Blöcke auf Oblivious-Weise auf tiefere Ebenen im Baum zu schieben. Außerdem ist ersichtlich, dass alle Server dieselben Operationen ausführen.
  • 12 zeigt ein Beispiel 1200 für einen deterministischen Ausräumpfad für O R A M X O R S S .
    Figure DE102020213105A1_0063
    Wie gezeigt, kann der deterministische Ausräumpfad mit einer umgekehrten lexikografischen Reihenfolge gemäß der Gleichung v = DigitReverse2(ne mod 2H) ausgeführt werden, wie in der Funktion DrillingsAusräumung von 10 gezeigt, wobei DigitReverse2 die Reihenfolgeumkehr von Basis-2-Stellen einer ganzen Zahl bedeutet und ne die Anzahl der Ausräumoperationen bisher bedeutet. 13 zeigt ein Beispiel 1300 für weitere Einzelheiten der O R A M X O R S S
    Figure DE102020213105A1_0064
    Srillingsausräumung.
  • 14 zeigt ein Beispiel 1400 für das Verringern der Anzahl der zum Durchführen von O R A M X O R S S
    Figure DE102020213105A1_0065
    für ein gegebenes Privatsphärenniveau erforderlichen Server. Durch Hinzufügen einer dritten Menge von Baum-ORAM-Anteilen können wie gezeigt drei Server anstelle von vier benutzt werden. Insbesondere wird in dieser Offenbarung Onion-ORAM als Blaupause für einen spezifischen Entwurf zur Beschreibung von O R A M X O R S S
    Figure DE102020213105A1_0066
    verwendet. Die Nutzung des auf XOR basierenden PIR-Protokolls und homomorpher Eigenschaften des Geheimnisteilens können jedoch weiter über anderen ORAM-Entwurfsprinzipien angewandt werden, wie etwa Tree-ORAM oder Circuit-ORAM, die jeweils eine konstante Client-Bandbreitenaufblähung bei Anwesenheit böswilliger Widersacher ermöglichen können. Während O R A M X O R S S
    Figure DE102020213105A1_0067
    mit einem Drei-Server-Ansatz benutzt werden kann, kann außerdem O R A M X O R S S
    Figure DE102020213105A1_0068
    auch erweitert werden, um mit k Servern (k > 3) zu arbeiten, um ein höheres Privatsphärenniveau (d.h. Kollusion) von auf XOR basierendem PIR und Geheimnisteilen zu bieten.
  • 15 zeigt ein Beispiel 1500 für die Integration von O R A M X O R S S
    Figure DE102020213105A1_0069
    in ein verteiltes Dateisystem. Wie in dem dargestellten Beispiel 1500 gezeigt, wird O R A M X O R S S
    Figure DE102020213105A1_0070
    in das HDFS (Hadoop Distributed File System) integriert. HDFS stellt wünschenswerte Eigenschaften eines verteilten Dateisystems (DFS) bereit (z.B. Transparenz, Mobilität, Leistungsfähigkeit, Skalierbarkeit, Verfügbarkeit, Heterogenität, Zugriffskontrolle), obwohl es keine Sicherheitsdienste bereitstellt. Wie weiter gezeigt ist, kann ein Mehrserver-ORAM in das HDFS integriert werden. Durch den Zusatz von O R A M X O R S S
    Figure DE102020213105A1_0071
    kann das Dateisystem die Eigenschaften der Vertraulichkeit, Integrität und Oblivious-Heitigkeit gewinnen.
  • Spezieller kann zur Integration von O R A M X O R S S
    Figure DE102020213105A1_0072
    ein Client 1502, der wünscht, das Dateisystem zu benutzen, auf einen ORAM-Client 102 zugreifen, wobei der Client 102 wie hier ausführlich besprochen mit den ORAM-Servern 104-A, 104-B, 104-C (kollektiv 104) in Interaktion tritt. Verglichen mit den in 1 dargestellten Daten-Speichern 106 kommuniziert jedoch in dem Beispiel 1500 jeder ORAM-Server 104 mit einer jeweiligen HDFS-Instanz 1504-A, 1504-B, 1504-C (kollektiv 1504).
  • Obwohl das in dem Beispiel 1500 gezeigte System ein sicheres verteiltes Dateisystem bereitstellt, bringt es keine Last auf den einzigen mit dem Client 1502 interagierenden Knoten. Der Grund dafür besteht darin, dass alle ORAM-Berechnungen (z.B. XOR-PIR, Matrixprodukte, usw.) durch einen einzigen Knoten durchgeführt werden. Eine solche Einrichtung nutzt mehrere Knoten in einem Cluster nicht aus. Dennoch können die ORAM-Operationen voll parallelisierbar sein.
  • 16 zeigt ein Beispiel 1600 für Integration von O R A M X O R S S
    Figure DE102020213105A1_0073
    in ein verteiltes Dateisystem, das Parallelisierung verwendet. Wie gezeigt, können Map-Reduce-Tasks in Java durchgeführt werden, wobei Reduce-Jobs ORAM-C++-Funktionen über JNI (Java Native Interface) aufrufen. In diesem spezifischen Beispiel können die ORAM-Funktionen in C++ implementiert werden, wobei die Server Map-Reduce-Tasks über Systemaufruf übermitteln. Wie in dem Beispiel 1600 gezeigt, können unter Verwendung dieses Layouts ORAM-Leseoperationen und ORAM-Ausräumoperationen ausgeführt werden.
  • 17 zeigt ein anderes Beispiel 1700 für Integration von O R A M X O R S S
    Figure DE102020213105A1_0074
    in ein verteiltes Dateisystem, das Parallelisierung verwendet. Wie gezeigt, wird eine ORAM-Schreibe-in-Wurzel-Operation beschrieben. Insbesondere kann MapReduce ein als SequenceFile bezeichnetes spezielles Dateiformat erfordern. Die HDFS C++ APIs unterstützen jedoch nicht das SequenceFile-Dateiformat. Dementsprechend kann stattdessen eine Java-Implementierung verwendet werden. Außerdem kann HDFS keinen Überschreibmodus, sondern nur den Anhängemodus, unterstützen, wobei in diesem Fall das Schreiben in die Wurzel einer sequentiellen Reihenfolge folgen kann, so dass ein Überschreiben über den Anhängmodus durchgeführt werden kann.
  • Zusammengefasst, wird ein neues Mehrserver-ORAM-Schema mit Sicherheit gegenüber böswilligen Attackierern vorgeschlagen. Die ORAM kann in ein verteiltes Oblivious-Dateisystem mit wünschenswerter Effizienz und wünschenswerten Sicherheitseigenschaften integriert werden.
  • Die hier offenbarten Prozesse, Verfahren oder Algorithmen können lieferbar sein an/implementiert werden durch eine Verarbeitungsvorrichtung, eine Steuerung oder einen Computer, welche bzw. welcher eine beliebige existierende programmierbare elektronische Steuereinheit oder dedizierte elektronische Steuereinheit beinhalten kann. Gleichermaßen können die Prozesse, Verfahren oder Algorithmen als Daten und durch eine Steuerung oder einen Computer ausführbare Anweisungen in vielen Formen gespeichert werden, unter anderem einschließlich Informationen, die auf nichtbeschreibbaren Speichermedien, wie etwa ROM-Vorrichtungen, permanent gespeichert sind, und Informationen, die auf beschreibbaren Speichermedien, wie etwa Disketten, Magnetbändern, CDs, RAM-Vorrichtungen und anderen magnetischen und optischen Medien, änderbar gespeichert sind. Die Prozesse, Verfahren oder Algorithmen können auch in einem ausführbaren Software-Objekt implementiert sein. Alternativ können die Prozesse, Verfahren oder Algorithmen in Gänze oder teilweise unter Verwendung geeigneter Hardwarekomponenten umgesetzt werden, wie etwa anwendungsspezifischer integrierter Schaltungen (ASICs), feldprogrammierbarer Gate-Arrays (FPGAs), Zustandsmaschinen, Steuerungen oder anderer Hardwarekomponenten oder -vorrichtungen oder einer Kombination von Hardware-, Software- und Firmwarekomponenten.
  • Obgleich oben beispielhafte Ausführungsformen beschrieben sind, ist es nicht beabsichtigt, dass diese Ausführungsformen alle möglichen durch die Ansprüche eingeschlossenen Formen beschreiben. Die in der Beschreibung verwendeten Ausdrücke sind eher Ausdrücke der Beschreibung statt der Beschränkung und es versteht sich, dass verschiedene Änderungen vorgenommen werden können, ohne von dem Gedanken und dem Schutzumfang der Offenbarung abzuweichen. Wie zuvor beschrieben wurde, können die Merkmale verschiedener Ausführungsformen kombiniert werden, um weitere Ausführungsformen der Erfindung auszubilden, die möglicherweise nicht explizit beschrieben oder veranschaulicht wurden. Obgleich verschiedene Ausführungsformen als Vorteile ergebend oder gegenüber anderen Ausführungsformen oder Implementierungen im Stand der Technik bezüglich einer oder mehrerer erwünschter Charakteristiken bevorzugt beschrieben worden sein können, erkennen Durchschnittsfachleute auf dem Gebiet, dass ein oder mehrere Merkmale oder Charakteristiken beeinträchtigt werden können, um erwünschte Gesamtsystemattribute zu erzielen, die von der speziellen Anwendung und Implementierung abhängen. Diese Attribute können unter anderem Kosten, Stärke, Haltbarkeit, Lebenszykluskosten, Vermarktungsfähigkeit, Erscheinungsbild, Aufmachung, Größe, Wartbarkeit, Gewicht, Herstellbarkeit, Montagefreundlichkeit usw. beinhalten. Von daher liegen jegliche in dem Maße als weniger wünschenswert als andere Ausführungsformen oder Implementierungen im Stand der Technik bezüglich einer oder mehrerer Charakteristiken beschriebene Ausführungsformen nicht außerhalb des Schutzumfangs der Offenbarung und können für gewisse Anwendungen wünschenswert sein.
  • 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 Nicht-Patentliteratur
    • Oded Goldreich und Rafail Ostrovsky. Software protection and simulation on oblivious rams, Journal of the ACM (JACM), 43(3):431-473, 1996 [0008]
    • Abraham, Christopher W Fletcher, Kartik Nayak, Benny Pinkas und Ling Ren. Asymptotically tight bounds for composing oram with pir, IACR International Workshop on Public Key Cryptography, Seiten 91-120, Springer, 2017 [0008]
    • Vincent Bindschaedler, Muhammad Naveed, Xiaorui Pan, XiaoFeng Wang und Yan Huang. Practicing oblivious access on cloud storage: the gap, the fallacy, and the new way forward, Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, Seiten 837-849, ACM, 2015 [0008]
    • Thang Hoang, Attila Altay Yavuz und Jorge Guajardo. Practical and secure dynamic searchable encryption via oblivious access on distributed data structure, Proceedings cf the 32nd Annual Corference on Computer Security Applications, Seiten 302-313, ACM, 2016 [0008]
    • Tarik Moataz, Travis Mayberry und Erik-Oliver Blass. Constant communication oram with small blocksize, Proceedings of the 22nd ACM SIGSAC Corference on Computer and Communications Security, Seiten 862-873, ACM, 2015 [0008]
    • Muhammad Naveed, The fallacy of composition of oblivious ram and searchable encryption, IACR Cryptology ePrint Archive, 2015:668, 2015 [0008]
    • Oded Goldreich, Towards a theory of Software protection and simulation by oblivious rams, Proceedings cf the nineteenth annual ACM symposium on Theory cf computing, Seiten 182-194, ACM, 1987 [0009]
    • Oded Goldreich and Rafail Ostrovsky, Software protection and simulation on oblivious rams, Journal of the ACM (JACM) und Benny Pinkas und Tzachy Reinman. Oblivious ram revisited, Advances in Cryptology-CRYPTO 2010, Seiten 502-519, Springer, 2010 [0009]
    • Shi et al. (in Elaine Shi, T-H Hubert Chan, Emil Stefanov und Mingfei Li. Oblivious ram with o ((logn) 3) worst-case cost, Advances in Cryptology-ASIACRYPT 2011, Seiten 197-214, Springer, 2011 [0009]
    • Stefanov et al. (in Emil Stefanov, Marten Van Dijk, Elaine Shi, Christopher Fletcher, Ling Ren, Xiangyao Yu und Srinivas Devadas, Path ORAM: an extremely simple oblivious ram protocol. Proceedings of the 2013 ACM SIGSAC corference on Computer and Communications security, Seiten 299-310, ACM, 2013 [0009]
    • Vincent Bindschaedler, Muhammad Naveed, Xiaorui Pan, XiaoFeng Wang und Yan Huang, Practicing oblivious access on cloud storage: the gap, the fallacy, and the new way forward, Proceedings cf the 22nd ACM SIGSAC Corference on Computer and Communications Security, Seiten 837-849, ACM, 2015 [0009]
    • Muhammad Naveed, The fallacy of composition of oblivious ram and searchable encryption, IACR Cryptology ePrint Archive, 2015:668, 2015; Emil Stefanov, Charalampos Papamanthou und Elaine Shi, Practical dynamic searchable encryption with small leakage, NDSS, Band 71, Seiten 72-75, 2014 [0009]
    • Jonathan Dautrich und Chinya Ravishankar, Combining ORAM with PIR to minimize bandwidth costs, Proceedings of the 5th ACM Corference on Data and Application Security and Privacy, Seiten 289-296, ACM, 2015 [0010]
    • Travis Mayberry, Erik-Oliver Blass und Agnes Hui Chan, Efficient private file retrieval by combining ORAM and PIR, NDSS, Citeseer, 2014 [0010]
    • Ling Ren, Christopher W Fletcher, Albert Kwon, Emil Stefanov, Elaine Shi, Marten van Dijk und Srinivas Devadas, Ring ORAM: Closing the gap between small and large client storage oblivious ram, IACR Cryptology ePrint Archive, 2014:997, 2014 [0010]
    • Jonathan Trostle und Andy Parrish. Efficient computationally private information retrieval from anonymity or trapdoor groups, International Conference on Information Security, Seiten 114-128, Springer, 2010 [0010]
    • Srinivas Devadas, Marten van Dijk, Christopher W. Fletcher, Ling Ren, Elaine Shi und Daniel Wichs, Onion oram: A constant bandwidth blowup oblivious ram, Theory cf Cryptography Conference, Seiten 145-174, Springer, 2016 [0010]
    • Christopher Fletcher, Muhammad Naveed, Ling Ren, Elaine Shi und Emil Stefanov, Bucket oram: single online roundtrip, constant bandwidth oblivious ram, Technical report, IACR Cryptology ePrint Archive, Report 2015, 1065, 2015 und Daniel Apon, Jonathan Katz, Elaine Shi und Aishwarya Thiruvengadam. Verifiable oblivious storage, International Workshop on Public Key Cryptography, Seiten 131-148, Springer, 2014 [0010]
    • Pascal Paillier, Public-key cryptosystems based on composite degree residuosity classes, International Corference on the Theory and Applications of Cryptographic Techniques, Seiten 223-238, Springer, 1999 [0010]
    • Ittai Abraham, Christopher W Fletcher, Kartik Nayak, Benny Pinkas und Ling Ren, asymptotically tight bounds for composing oram with pir, IACR International Workshop on Public Key Cryptography, Seiten 91-120, Springer, 2017 und Thang Hoang, Ceyhun D Ozkaptan, Attila A Yavuz, Jorge Guajardo und Tam Nguyen. S3oram: A computation efficient and constant client bandwidth blowup oram with shamir secret sharing, Proceedings cf the 2017 ACM SIGSAC Conference on Computer and Communications Security, Seiten 491-505, ACM, 2017 [0010]
    • Stefanov et al. (in Emil Stefanov und Elaine Shi. Multi-cloud oblivious storage, Proceedings cf the 2013 ACM SIGSAC conference on Computer & communications security, Seiten 247-258, ACM, 2013 [0011]
    • Emil Stefanov, Elaine Shi und Dawn Song. Towards practical oblivious ram. arXiv preprint arXiv:1106.3652, 2011 [0011]
    • Ittai Abraham, Christopher W Fletcher, Kartik Nayak, Benny Pinkas und Ling Ren. Asymptotically tight bounds for composing oram with pir, IACR International Workshop on Public Key Cryptography, Seiten 91-120, Springer, 2017 [0011]
    • Benny Chor, Eyal Kushilevitz, Oded Goldreich und Madhu Sudan, Private information retrieval, Journal of the ACM (JACM), 45(6):965-981, 1998 [0011]
    • Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, Seiten 491-505, ACM, 2017 [0011]
    • Ivan Damgård, Valerio Pastro, Nigel Smart und Sarah Zakarias, Multiparty computation from somewhat homomorphic encryption, Advances in Cryptology-CRYPTO 2012, Seiten 643-662. Springer, 2012, und Marcel Keller, Valerio Pastro und Dragos Rotaru. Overdrive: making spdz great again. Annual International Conference on the Theory and Applications cf Cryptographic Techniques, Seiten 158-189, Springer, 2018 [0014]
    • Ivan Damgård und Mads Jurik, A generalisation, a simplification and some applications of paillier's probabilistic public-key system, International Workshop on Public Key Cryptography, Seiten 119-136, Springer, 2001 [0015]
    • Ling Ren, Christopher W Fletcher, Albert Kwon, Emil Stefanov, Elaine Shi, Marten van Dijk und Srinivas Devadas, Ring oram: Closing the gap between small and large client storage oblivious ram, IACR Cryptology ePrint Archive, 2014:997, 2014 und Emil Stefanov, Marten Van Dijk, Elaine Shi, Christopher Fletcher, Ling Ren, Xiangyao Yu und Srinivas Devadas, Path oram: an extremely simple oblivious ram protocol, Proceedings cf the 2013 ACM SIGSAC conference on Computer and Communications security, Seiten 299-310. ACM, 2013 [0015]
    • XiaoWang, Hubert Chan und Elaine Shi. Circuit oram: On tightness ofthe goldreich-ostrovsky lower bound, Proceedings cf the 22nd ACM SIGSAC Conference on Computer and Communications Security, Seiten 850-861, ACM, 2015 [0019]
    • Craig Gentry, Kenny A Goldman, Shai Halevi, Charanjit Julta, Mariana Raykova, und Daniel Wichs. Optimizing ORAM and using it efficiently for secure computation, International Symposium on Privacy Enhancing Technologies Symposium, Seiten 1-18, Springer, 2013 [0034]

Claims (29)

  1. System zum Bereitstellen eines verteilten Oblivious-Verteilsystems, das eine Oblivious-Direktzugriffsmaschine (ORAM) verwendet, umfassend: eine ausgeglichene ORAM-Baumstruktur, wobei jeder Knoten im Baum dafür ausgelegt ist, Datenblöcke zu speichern, wobei die Struktur mindestens zwei Anteile umfasst; und mindestens einen ersten, zweiten und dritten ORAM-Server, wobei jeder der Server dafür ausgelegt ist, mit einer Client-ORAM-Vorrichtung zu kommunizieren, und dafür programmiert ist, Speicherung einer verschiedenen Teilmenge der Anteile der Baumstruktur unter Verwendung eines verteilten Dateisystems zu ermöglichen und eine Zugriffsprozedur eines ORAM auf Baumbasis unter Verwendung der Baumstruktur zu implementieren, die eine Abrufphase und eine Ausräumphase umfasst, wobei in der Abrufphase die Server ein auf XOR basierendes Protokoll des Privat-Informationsabrufs (PIR) benutzen, um Datenblöcke abzurufen, wenn sie von der Client-ORAM-Vorrichtung angefordert werden, und in der Ausräumphase die Server ein lineares Geheimnis-Teilschema benutzen.
  2. System nach Anspruch 1, wobei das lineare Geheimnis-Teilschema Additions- und Multiplikationsoperationen an den mindestens zwei Anteilen unterstützt.
  3. System nach Anspruch 1, wobei das lineare Geheimnis-Teilschema ein repliziertes lineares Geheimnis-Teilschema ist.
  4. System nach Anspruch 1, wobei das lineare Geheimnis-Teilschema in einer Umgebung, die einen böswilligen Widersacher umfasst, Sicherheit bietet.
  5. System nach Anspruch 1, wobei die Anzahl der Anteile exakt drei Anteile ([T]0, [T]1, [T]2) beträgt, die Anzahl der ORAM-Server drei beträgt und der erste, zweite und dritte ORAM-Server (S0, S1 und S2) dafür ausgelegt sind, Speicherung der Anteile [T]i und [T]i+1(mod 3) zu ermöglichen, wobei i die Nummer des jeweiligen ORAM-Servers ist.
  6. System nach Anspruch 5, wobei die Server ferner dafür programmiert sind, ein Element von Daten A in einem Datenblock Z als zwei Teile [A]1, [A]2 zu speichern, wobei jeder Teil in einem anderen der drei Anteile [T]0, [T]1, [T]2 gespeichert wird, wobei die Teile [A]1 und [A]2 summiert werden, um das geteilte Geheimnis A abzurufen.
  7. System nach Anspruch 6, wobei die Server ferner dafür programmiert sind, dass als Reaktion auf Abschluss von Ausräumungen der die Ausräumung durchführende Server Si den Anteil [T]i zu Server Si-1 sendet, um Stimmigkeit zwischen Replikaten der Anteile [T]0, [T]1, [T]2 aufrechtzuerhalten.
  8. System nach Anspruch 1, wobei die Server ferner für Folgendes programmiert sind: als Reaktion auf Abrufen und Aktualisieren eines Blocks, Schreiben des aktualisierten Werts in einen leeren Schlitz im Wurzel-Bucket der Struktur; und als Reaktion auf A sukzessive Abrufungen, Durchführen von Drillingsausräumung unter Verwendung eines deterministischen Ausräumpfads, der einer umgekehrten lexikografischen Reihenfolge der Struktur folgt.
  9. System nach Anspruch 8, wobei die umgekehrte lexikografische Reihenfolge gemäß der Gleichung v = DigitReverse2(ne mod 2H) definiert ist, wobei DigitReverse2 die Ordnungsumkehr von Stellen zur Basis 2 einer ganzen Zahl bedeutet und ne die Anzahl der Ausräumoperationen bisher bedeutet.
  10. System nach Anspruch 1, wobei das verteilte Dateisystem ein verteiltes Hadoop-Dateisystem (HDFS) ist.
  11. Verfahren zum Bereitstellen eines verteilten Oblivious-Dateisystems unter Verwendung einer Oblivious-Direktzugriffsmaschine (ORAM), umfassend: Aufrechterhalten einer ausgeglichenen ORAM-Baumstruktur, wobei jeder Knoten im Baum dafür ausgelegt ist, Datenblöcke zu speichern, wobei die Struktur mindestens zwei Anteile umfasst; und Benutzen von mindestens zwei ORAM-Servern, wobei jeder der Server mit einer Client-ORAM-Vorrichtung kommuniziert, wobei die Server Speicherung einer verschiedenen Teilmenge der Anteile der Baumstruktur unter Verwendung eines verteilten Dateisystems ermöglichen und eine Zugriffsprozedur einer ORAM auf Baumbasis unter Verwendung der Baumstruktur T implementieren, die eine Abrufphase und eine Ausräumphase umfasst, wobei in der Abrufphase von den Servern ein auf XOR basierendes Protokoll des Privat-Informationsabrufs (PIR) benutzt wird, um Datenblöcke abzurufen, wenn sie von der Client-ORAM-Vorrichtung angefordert werden, und in der Ausräumphase ein lineares Geheimnis-Teilschema von den Servern benutzt wird.
  12. Verfahren nach Anspruch 11, wobei das lineare Geheimnis-Teilschema Additions- und Multiplikationsoperationen an den mindestens zwei Anteilen unterstützt.
  13. Verfahren nach Anspruch 11, wobei das lineare Geheimnis-Teilschema ein repliziertes lineares Geheimnis-Teilschema ist.
  14. Verfahren nach Anspruch 11, wobei das lineare Geheimnis-Teilschema in einer Umgebung, die einen böswilligen Widersacher umfasst, Sicherheit bietet.
  15. Verfahren nach Anspruch 11, wobei die Anzahl der Anteile exakt drei Anteile ([T]0, [T]1, [T]2) beträgt, die Anzahl der ORAM-Server drei beträgt und der erste, zweite und dritte ORAM-Server (S0, S1 und S2) dafür ausgelegt sind, Speicherung der Anteile [T]i und [T]i+1(mod 3) zu ermöglichen, wobei i die Nummer des jeweiligen ORAM-Servers ist.
  16. Verfahren nach Anspruch 15, wobei die Server ferner dafür programmiert sind, ein Element von Daten A in einem Datenblock Z als zwei Teile [A]1, [A]2 zu speichern, wobei jeder Teil in einem anderen der drei Anteile [T]0, [T]1, [T]2 gespeichert wird, wobei die Teile [A]1 und [A]2 summiert werden, um das geteilte Geheimnis A abzurufen.
  17. Verfahren nach Anspruch 15, das ferner umfasst, dass als Reaktion auf Abschluss der Ausräumungen der die Ausräumung durchführende Server Si den Anteil [T]i zu Server Si-1 sendet, um Stimmigkeit zwischen Replikaten der Anteile [T]0, [T]1, [T]2 aufrechtzuerhalten.
  18. Verfahren nach Anspruch 11, ferner umfassend: als Reaktion auf Abrufen und Aktualisieren eines Blocks, Schreiben des aktualisierten Werts in einen leeren Schlitz im Wurzel-Bucket der Struktur; und als Reaktion auf A sukzessive Abrufungen, Durchführen von Drillingsausräumung unter Verwendung eines deterministischen Ausräumpfads, der einer umgekehrten lexikografischen Reihenfolge der Struktur folgt.
  19. Verfahren nach Anspruch 18, wobei die umgekehrte lexikografische Reihenfolge gemäß der Gleichung v = DigitReverse2(ne mod 2H) definiert ist, wobei DigitReverse2 die Ordnungsumkehr von Stellen zur Basis 2 einer ganzen Zahl bedeutet und ne die Anzahl der Ausräumoperationen bisher bedeutet.
  20. Verfahren nach Anspruch 11, wobei das verteilte Dateisystem ein verteiltes Hadoop-Dateisystem (HDFS) ist.
  21. Nichttransitorisches computerlesbares Medium mit Anweisungen, die, wenn sie durch Prozessoren mindestens zweiter-ORAM-Server ausgeführt werden, wobei jeder der Server mit einer Client-ORAM-Vorrichtung kommuniziert, die Server veranlassen zum Aufrechterhalten einer ausgeglichenen ORAM-Baumstruktur, wobei jeder Knoten im Baum dafür ausgelegt ist, Datenblöcke zu speichern, wobei die Struktur mindestens zwei Anteile umfasst; und Ermöglichen von Speicherung einer Teilmenge der Anteile der Baumstruktur unter Verwendung eines verteilten Dateisystems und Implementieren einer Zugriffsprozedur einer ORAM auf Baumbasis unter Verwendung der Baumstruktur, die eine Abrufphase und eine Ausräumphase umfasst, wobei in der Abrufphase die Server ein auf XOR basierendes Protokoll des Privat-Informationsabrufs (PIR) benutzen, um Datenblöcke Z abzurufen, wenn sie von der Client-ORAM-Vorrichtung angefordert werden, und in der Ausräumphase die Server eine homomorphe Berechnung eines linearen Geheimnis-Teilschemas benutzen.
  22. Medium nach Anspruch 21, wobei das lineare Geheimnis-Teilschema Additions- und Multiplikationsoperationen an den mindestens zwei Anteilen unterstützt.
  23. Medium nach Anspruch 21, wobei das lineare Geheimnis-Teilschema ein repliziertes lineares Geheimnis-Teilschema ist.
  24. Medium nach Anspruch 21, wobei das lineare Geheimnis-Teilschema in einer Umgebung, die einen böswilligen Widersacher umfasst, Sicherheit bietet.
  25. Medium nach Anspruch 21, das ferner Anweisungen umfasst, die, wenn sie durch die Server ausgeführt werden, die Server veranlassen zum Speichern eines Elements von Daten A in einem Datenblock Z als zwei Teile [A]1, [A]2, wobei jeder Teil in einem anderen der drei Anteile [T]0, [T]1, [T]2 gespeichert wird, wobei die Teile [A]1 und [A]2 summiert werden, um das geteilte Geheimnis A abzurufen.
  26. Medium nach Anspruch 25, das ferner Anweisungen umfasst, die, wenn sie durch die Server ausgeführt werden, die Server dazu veranlassen, dass als Reaktion auf Abschluss der Ausräumungen der die Ausräumung durchführende Server Si den Anteil [T]i zu Server Si-1 sendet, um Stimmigkeit zwischen Replikaten der Anteile [T]0, [T]1 [T]2 aufrechtzuerhalten.
  27. Medium nach Anspruch 21, das ferner Anweisungen umfasst, die, wenn sie durch die Server ausgeführt werden, die Server zu Folgendem veranlassen: als Reaktion auf Abrufen und Aktualisieren eines Blocks, Schreiben des aktualisierten Werts in einen leeren Schlitz im Wurzel-Bucket der Struktur; und als Reaktion auf A sukzessive Abrufungen, Durchführen von Drillingsausräumung unter Verwendung eines deterministischen Ausräumpfads, der einer umgekehrten lexikografischen Reihenfolge der Struktur folgt.
  28. Medium nach Anspruch 27, wobei die umgekehrte lexikografische Reihenfolge gemäß der Gleichung v = DigitReverse2(ne mod 2H) definiert ist, wobei DigitReverse2 die Ordnungsumkehr von Stellen zur Basis 2 einer ganzen Zahl bedeutet und ne die Anzahl der Ausräumoperationen bisher bedeutet.
  29. Medium nach Anspruch 21, wobei das verteilte Dateisystem ein verteiltes Hadoop-Dateisystem (HDFS) ist.
DE102020213105.8A 2019-11-06 2020-10-16 Sichere und effiziente oblivious-direktzugriffsmaschine mit mehreren servern in einer böswilligen ausführungsumgebung Pending DE102020213105A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/675,705 US11290264B2 (en) 2019-11-06 2019-11-06 Secure and efficient multi-server oblivious random access machine in a malicious execution environment
US16/675,705 2019-11-06

Publications (1)

Publication Number Publication Date
DE102020213105A1 true DE102020213105A1 (de) 2021-05-06

Family

ID=75485452

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020213105.8A Pending DE102020213105A1 (de) 2019-11-06 2020-10-16 Sichere und effiziente oblivious-direktzugriffsmaschine mit mehreren servern in einer böswilligen ausführungsumgebung

Country Status (3)

Country Link
US (1) US11290264B2 (de)
CN (1) CN112783851A (de)
DE (1) DE102020213105A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11799643B2 (en) * 2021-01-19 2023-10-24 Bank Of America Corporation Collaborative architecture for secure data sharing
US11308226B1 (en) * 2021-02-22 2022-04-19 CipherMode Labs, Inc. Secure collaborative processing of private inputs
US11907392B2 (en) * 2021-05-12 2024-02-20 Seagate Technology Llc System and method utilizing function secret sharing with conditional disclosure of secrets
CN114969406B (zh) * 2022-05-26 2023-03-14 哈尔滨工业大学(深圳) 一种隐私保护的子图匹配方法及系统
WO2024075301A1 (ja) * 2022-10-07 2024-04-11 日本電信電話株式会社 データアクセスシステム、クライアント装置、データアクセス方法及びプログラム
CN117349801B (zh) * 2023-12-04 2024-02-13 南京磐数志星科技有限公司 一种隐私计算方法、装置、介质及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
US10229068B2 (en) 2015-12-29 2019-03-12 The Trustees Of Princeton University Tunable oblivious RAM
US10255454B2 (en) * 2016-02-17 2019-04-09 Microsoft Technology Licensing, Llc Controlling security in relational databases
US10592685B2 (en) * 2017-04-27 2020-03-17 Google Llc Encrypted search cloud service with cryptographic sharing
US11379263B2 (en) * 2018-08-13 2022-07-05 Ares Technologies, Inc. Systems, devices, and methods for selecting a distributed framework

Also Published As

Publication number Publication date
US11290264B2 (en) 2022-03-29
CN112783851A (zh) 2021-05-11
US20210135850A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
DE102020213105A1 (de) Sichere und effiziente oblivious-direktzugriffsmaschine mit mehreren servern in einer böswilligen ausführungsumgebung
DE112018001285B4 (de) Kryptografische Schlüsselerzeugung mit Anwendung auf Datendeduplizierung
DE112013006723B4 (de) Integritätsprüfung und selektive Deduplizierung auf Grundlage von Netzwerkparametern
DE112017006020T5 (de) Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
DE112018000779T5 (de) Tokenbereitstellung für Daten
DE202011110870U1 (de) Erzeugung portabler Globen für ein Geo-Informationssystem
DE69917356T2 (de) Sicherheitstechnik an einem Computernetzwerk
DE112013000865T5 (de) Konsolidieren von unterschiedlichen Cloud-Dienst-Daten und -Verhaltensweisen auf der Grundlage von Vertrauensbeziehungen zwischen Cloud-Diensten
DE112021002797T5 (de) Datenschutzerhaltende architektur für genehmigungspflichtige blockchains
DE112012005533T5 (de) Unterstützende Abfrage und ein Abfragen
DE112021004937T5 (de) Sicheres erneutes verschlüsseln von homomorph verschlüsselten daten
DE112020005620T5 (de) Sichere föderation verteilter stochastischer gradientenabstiege
DE202012013455U1 (de) Kartenerstellung
DE202015104128U1 (de) Datenzugriffssystem
DE112020002164T5 (de) Sichere datenspeicherung auf der grundlage von verschleierung durch verteilung
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE102012218576A1 (de) Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben
DE112018007433T5 (de) Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm
DE102020111199B4 (de) Sicherungen von dateisystem-instanzen verschlüsselter datenobjekte
DE102021130812A1 (de) Implementieren einer opportunistischen authentifizierung von verschlüsselten daten
DE112009005209T5 (de) Gruppenschlüsselmanagementzugang auf der Grundlage linearer Geomnetrie
DE112018007468T5 (de) Geheime-Suche-Einrichtung und Geheime-Suche-Verfahren
DE112020003357T5 (de) Undurchsichtige verschlüsselung für datendeduplizierung
DE112017005512T5 (de) Datenübertragung innerhalb von geschäftsräumen und ausserhalb von geschäftsräumen

Legal Events

Date Code Title Description
R012 Request for examination validly filed