DE102016217537A1 - Sichere und verteilte Berechnung eines Ergebnisses auf einem Dritt-Dienstknoten zur Bereitstellung auf einem mehreren Nutzerknoten - Google Patents

Sichere und verteilte Berechnung eines Ergebnisses auf einem Dritt-Dienstknoten zur Bereitstellung auf einem mehreren Nutzerknoten Download PDF

Info

Publication number
DE102016217537A1
DE102016217537A1 DE102016217537.8A DE102016217537A DE102016217537A1 DE 102016217537 A1 DE102016217537 A1 DE 102016217537A1 DE 102016217537 A DE102016217537 A DE 102016217537A DE 102016217537 A1 DE102016217537 A1 DE 102016217537A1
Authority
DE
Germany
Prior art keywords
cloud service
node
result
secret
nodes
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
DE102016217537.8A
Other languages
English (en)
Inventor
Sebastian Becker
Jamshid Shokrollahi
Sven Trieflinger
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
Priority to DE102016217537.8A priority Critical patent/DE102016217537A1/de
Publication of DE102016217537A1 publication Critical patent/DE102016217537A1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

Die Erfindung betrifft ein kryptologisches System und Verfahren zur sicheren und verteilten Berechnung eines Ergebnisses auf einem Dritt-Dienstknoten (S), das auf mehreren Cloud-Dienstknoten (CD) bereitgestellt werden soll und für dessen Berechnung Eingangsdaten von den Cloud-Dienstknoten (CD) erforderlich sind, die als geheime Nachrichten vor unberechtigten Zugriffen zu schützen sind. Dazu wird die jeweilige geheime Nachricht nach einem additiven Secret Sharing Algorithmus in Teilnachrichten auf eine Gruppe von Cloud-Dienstknoten (CD) verteilt, die aus allen empfangenen Teilnachrichten einen Vektor erstellen und an einen Gateway-Knoten (G) senden, der wiederum alle Vektoren in einsammelt und daraus Funktionsaufrufe (f) zur Ausführung auf einem Dritt-Dienstknoten (S) erstellt und zur Ausführung bringt, um die Ergebnisse einzusammeln und nach einem Sharing Algorithmus auf die Cloud-Dienstknoten (CD) zu verteilen. Diese berechnen dann gemeinsam nach Verteilung von Positionsteilnachrichten ein Ergebnis (E).

Description

  • Die Erfindung liegt auf dem Gebieten der Netzwerktechnik und der Kryptologie und betrifft insbesondere ein Verfahren und ein System zur sicheren und verteilten Berechnung eines Ergebnisses auf einem Cloud-basierten Dritt-Dienstknoten. Dabei erfordert die Berechnung die Eingabe von geheimen Nachrichten, die auf einem oder mehreren Nutzerknoten vorgehalten werden und diese(n) nicht ungeschützt verlassen dürfen und für alle anderen Knoten geheim sind.
  • Das Internet der Dinge führt zu einer erhöhten Konnektivität von Geräten und dementsprechend zu einem vermehrten Datenaustausch zwischen beteiligten Instanzen. Dienste werden zunehmend in die Cloud ausgelagert und als Netzwerkdienste (z.B. „cloud-based services“ oder „location based services“) bereitgestellt. Dabei übertragene Daten beinhalten auch private, also geheimhaltungsbedürftige Daten, die vor unberechtigten Zugriffen zu schützen sind.
  • Möchte beispielsweise ein Anwender von seinem Mobilfunkgerät aus einen Navigationsdienst beanspruchen, um von seiner aktuellen Position an eine Zielposition zu gelangen, so ist es notwendig, zumindest seine aktuelle Position und die gewünschte Zielposition zur Berechnung eines günstigen Verbindungsweges zu erfassen. Diese Datensätze sind – gegebenenfalls zusammen mit anderen privaten Datensätzen (z.B. die Person identifizierende Daten und Zeitdaten) – sensible Daten, die es einem Angreifer ermöglichen, weitere Daten über den Anwender zu rekonstruieren oder zu erfassen, um diesen zu schädigen oder private Datensätze unberechtigt zu erlangen, zu speichern oder weiterzuverarbeiten.
  • Im Stand der Technik sind Verfahren bekannt, um die Privatheit der Daten sicherzustellen bzw. um die Daten vor unberechtigten Zugriffen zu schützen. Ein Ansatz besteht darin, die Daten zu ver- und zu entschlüsseln. Die Schlüsselverwaltung ist dabei jedoch ein Problem. Ein weiterer Ansatz liegt darin, homomorphe Verschlüsselungsmethoden anzuwenden, die allerdings den Nachteil haben, dass sie ineffizient sind und nur eingeschränkt die Ausführung von Operationen und Funktionen erlauben (z.B. keine Bool’schen- und keine Vergleichs-Operationen).
  • Ein weiterer Ansatz im Stand der Technik ist die sichere Mehr-Parteien-Kommunikation (secure multiparty communication), kurz auch als MPC bezeichnet. Das MPC-Protokoll ist ein Verfahren, bei dem ein sensitiver oder geheimhaltungsbedürftiger Datensatz auf mehrere Parteien (parties), wie z.B. auf Software-Module oder auf Hardwareknoten, so aufgeteilt wird, dass die Knoten jeweils nur Operationen auf ihren privaten (eigenen) Daten ausführen können. Die beteiligten Parteien oder Knoten können die sensitiven Daten nur dann berechnen, wenn sie Funktionen oder Berechnungen gemeinsam ausführen. Ein Knoten alleine kann die sensitiven Daten nicht berechnen.
  • Die alleinige Anwendung eines MPC-Verfahrens genügt jedoch nicht, um alle Sicherheitslücken zu schließen, weil aus der Zuordenbarkeit von an sich nicht gemeinhaltungsbedürftigen Daten auch auf geheimhaltungsbedürftige Daten zurück geschlossen werden kann. Ein weiterer Nachteil liegt darin, dass bei komplexeren Anwendungen die Performance zu stark sinkt.
  • Ausgehend von diesem Stand der Technik hat sich die vorliegende Erfindung zur Aufgabe gestellt, einen Weg aufzuzeigen, mit dem eine sichere und verteilte Berechnung von Ergebnisdaten auf einem entfernten Dritt-Dienstknoten ermöglicht wird, bei dem geheime Nachrichten von einem oder mehreren Nutzerknoten erforderlich sind, und bei dem sichergestellt werden soll, dass die geheime Nachricht die Sphäre des jeweiligen Nutzerknotens nicht unverschlüsselt verlässt und, dass keiner der beteiligten Instanzen alleine die geheime Nachricht entschlüsseln kann. Des Weiteren sollen die Kosten und die Latenzzeiten gegenüber bekannten Verfahren aus dem Stand der Technik verbessert werden.
  • Diese Aufgabe wird gelöst durch die beiliegenden, einander nebengeordneten Patentansprüche, insbesondere durch ein Verfahren und ein System zum sicheren und verteilten Berechnen eines Ergebnisses.
  • Im Folgenden wird die Erfindung anhand der verfahrensgemäßen Aufgabenlösung, und somit u.a. anhand des Verfahrens zum Berechnen eines Ergebnisses beschrieben. Dabei erwähnte Merkmale, Vorteile oder alternative Ausführungsformen sind ebenso auch auf die anderen beanspruchten Gegenstände zu übertragen und umgekehrt. Mit anderen Worten kann auch der gegenständlichen Ansprüche (der beispielsweise auf ein System gerichtet ist) mit den Merkmalen weitergebildet sein, die in Zusammenhang mit dem Verfahren beschrieben oder beansprucht sind. Die entsprechenden funktionalen Merkmale des Verfahrens werden dabei durch entsprechende gegenständliche Module, insbesondere durch elektronische Hardware-Module oder Mikroprozessor-Module, des Systems ausgebildet und umgekehrt. Ebenso können beanspruchte oder beschrieben Aspekte des Systems auf das Verfahren übertragen werden durch Umsetzung bzw. Anwendung der funktionalen Aspekte.
  • Gemäß einem Aspekt betrifft die Erfindung ein Verfahren zum Berechnen eines Ergebnisses auf einem Dritt-Dienstknoten für eine Gruppe von Cloud-Dienstknoten. Dabei kann jeder Cloud-Dienstknoten von einem Nutzerknoten angesprochen werden. Zur Berechnung des Ergebnisses wird zumindest eine geheime Nachricht benötigt. Die jeweilige geheime Nachricht steht in unverschlüsselter Form ausschließlich (nur) auf dem jeweiligen Cloud-Dienstknoten zur Verfügung. Der Cloud-Dienstknoten verfügt über eine Recheneinheit, die für die geheime Nachricht und für zufällig erzeugte Rauschnachrichten (mehrere) Teilnachrichten nach einem additiven Secret Sharing Algorithmus erzeugt und auf die Gruppe von Cloud-Dienstknoten verteilt.
  • Jeder Cloud-Dienstknoten erfasst die Teilnachrichten, die ihnen von den anderen Cloud-Dienstknoten gesendet werden, um die Teilnachrichten in einem Vektor zu konsolidieren bzw. zu kombinieren und den Vektor an einen Gateway-Knoten zu senden.
  • Der Gateway-Knoten führt daraufhin folgendes aus:
    • – Er sammelt alle Vektoren von allen Cloud-Dienstknoten,
    • – Er berechnet ein Datenfeld aus den Werten von allen gesammelten Vektoren
    • – Er erstellt für alle Einträge des Datenfeldes jeweils einen Funktionsaufruf zur Berechnung eines Teilergebnisses auf dem Dritt-Dienstknoten und bringt diese auf dem Dritt-Dienstknoten zur Ausführung
    • – Er legt alle auf dem Dritt-Dienstknoten berechneten Teilergebnisse in einem Ergebnisdatenfeld ab und speichert diese vorzugsweise in einem Pufferspeicher
    • – Er verteilt alle Einträge des Ergebnisdatenfeldes nach dem additiven Secret Sharing Algorithmus an die Cloud-Dienstknoten.
  • Daraufhin werden auf allen Cloud-Dienstknoten folgende Schritte ausgeführt, wobei die ersten beiden Schritte auch in einer anderen Reihenfolge ausgeführt werden können:
    • – Empfangen der von dem Gateway-Knoten verteilten Einträge des Ergebnisdatenfeldes
    • – Berechnen einer Positionsteilnachricht für eine richtige Position der geheimen Nachricht des jeweiligen Cloud-Dienstknotens nach dem additiven Secret Sharing Algorithmus an alle anderen Cloud-Dienstknoten der Gruppe von Cloud-Dienstknoten
    • – Gemeinsames Berechnen des Ergebnisses auf allen Cloud-Dienstknoten auf Basis der empfangenen Einträge des Ergebnisdatenfeldes und der verteilten Positionsteilnachrichten nach dem MPC-Protokoll.
  • Im Folgenden werden die im Rahmen dieser Anmeldung verwendeten Begrifflichkeiten definiert.
  • Der Cloud-Dienstknoten (Cloud Service Provider), der Gateway-Knoten und/oder der Dritt-Dienstknoten sind computerbasierte Instanzen. Es kann sich auch um Computer, Computernetzwerke, Server oder Serverfarmen handeln, die über das Internet in Datenaustausch mit anderen Knoten stehen. Der Cloud-Dienstknoten kann somit ein erster Computer in einem Netzwerk sein. Der Dritt-Dienstknoten kann entsprechend ein zweiter Computer in dem Netzwerk sein.
  • Der Nutzerknoten ist ein elektronisches Gerät. Der Nutzerknoten kann ein mobiles Gerät sein. Es kann beispielsweise ein Mobilfunktelefon oder ein Computer sein. Der Nutzerknoten kann einer Person zugeordnet sein und verfügt über geheime Nachrichten, die zur Berechnung des Ergebnisses auf dem Dritt-Knoten notwendig sind. Die geheimen Nachrichten oder Daten sind einem Nutzerknoten auf eineindeutige Weise zugeordnet. Die geheimen Nachrichten sind nur auf dem eigenen Nutzerknoten im Klartext, also in unverschlüsselter Form, verfügbar. „Eigen“ meint in diesem Kontext, die geheimen Nachrichten, die auf dem jeweiligen Nutzerknoten erzeugt oder eingelesen worden sind. Die geheime Nachricht (z.B. Standort, Zeitangaben etc.) des Nutzerknotens A ist somit nur auf diesem verfügbar und auf fremden Nutzerknoten B und C nicht. Ein Nutzerknoten kann eine oder auch mehrere geheime Nachrichten haben, die für die Berechnung verrechnet werden müssen. Für die Berechnung des Ergebnisses kann auf nur einen Nutzerknoten mit seiner zumindest einen geheimen Nachricht zugegriffen werden, so dass das berechnete Ergebnis dann wieder nach Berechnung auf dem Dritt-Dienstknoten an denselben Nutzerknoten ausgekehrt wird, ohne, dass seine zur Berechnung notwendige geheime Nachricht, den Nutzerknoten verlässt. Für die Berechnung des Ergebnisses kann auch auf mehrere Nutzerknoten zugegriffen werden. Vorzugsweise kann konfiguriert werden, welcher der Nutzerknoten das berechnete Ergebnis zugesendet bekommt.
  • In einer bevorzugten Ausführungsform der Erfindung kann der Nutzerknoten „seine“ geheime Nachricht an einen Cloud-Dienstknoten senden. Der Cloud-Dienstknoten muss dann diese geheime Nachricht schützen und darf sie für Berechnungen nicht weiterleiten. Er behandelt sie demnach auch als eigene geheime Nachricht.
  • Es soll ein Ergebnis berechnet werden. Insbesondere handelt es sich bei der Berechnung um eine komplexe Funktion, die den Einsatz eines speziellen Dritt-Knotens erfordert, der als Dritt-Cloud Service Provider ausgebildet sein kann, der über das Internet zugreifbar ist und zur Ausführung von speziellen Diensten spezialisiert ist (z.B. Navigationsdiensten, Wettervorhersageberechnungen, etc.). Zur Berechnung des Ergebnisses ist die Eingabe von zumindest einer geheimen Nachricht notwendig, die in unverschlüsselter Form nur auf den jeweiligen Nutzerknoten (oder einem der Cloud-Dienstknoten) vorgehalten ist und die Sicherheitssphäre des jeweiligen Knotens nicht verlassen darf. Des Weiteren soll die Berechnung auf dem Dritt-Dienstknoten korrekt ausgeführt werden und der Dritt-Dienstknoten darf auf Basis der an ihn übermittelten Daten und Nachrichten nicht auf geheime Nachrichten rückschließen können. Auch Teilnachrichten oder Zwischenergebnisse, die bei der Berechnung anfallen, werden vorteilhafterweise nicht verfügbar gemacht werden, da aus ihnen geheime Daten rekonstruiert werden könnten. Es können auch mehrere geheime Nachrichten von mehreren Cloud-Dienstknoten verrechnet werden. Die jeweilige geheime Nachricht soll dabei ausschließlich (nur) auf dem jeweiligen Ursprungsknoten, also dem jeweiligen Cloud-Dienstknoten, zur Verfügung stehen und dessen Sicherheitssphäre nicht unverschlüsselt verlassen, obwohl sie zur Berechnung des Ergebnisses auf einem anderen Knoten benötigt wird.
  • Vorzugsweise erfolgt das gemeinsame Berechnen des Ergebnisses auf allen Cloud-Dienstknoten durch Auswertung einer Polynomfunktion unter Berücksichtigung der vom Dritt-Dienstknoten erzeugten Teilergebnisdaten (Teilergebnisse) und der von den anderen Cloud-Dienstknoten übermittelten Anteile (shares) der korrekten Position der geheimen Nachricht.
  • Vorzugsweise wird die Berechnung auf dem Dritt-Dienstknoten nur mittelbar durch die Nutzerknoten und die Cloud-Dienstknoten ausgelöst bzw. aufgerufen oder befehligt, sondern ausschließlich durch den Gateway-Knoten. Dazu führt der Gateway-Knoten eine Menge von Funktionsaufrufen zur Ausführung auf dem Dritt-Dienstknoten aus. Die Funktionsaufrufe erfolgen für unterschiedliche Nachrichten, umfassend geheime Nachrichten und Rauschnachrichten. Bei den Rauschnachrichten handelt es sich um randomisierte Nachrichten, die dazu dienen, die eigentliche, geheime Nachricht zu „verstecken“, so z.B. diese an einer bestimmten, randomisierten Position in einer Polynomfunktion abzulegen.
  • Die Teilnachricht basiert auf der geheimen Nachricht. Sie wurde vorzugsweise durch Anwendung eines additiven Secure Secret Sharing Algorithmus erstellt. Die Teilnachricht kennzeichnet sich dadurch, dass aus der Teilnachricht nicht die geheime Nachricht rekonstruiert werden kann, aber, dass aus allen Teilnachrichten zusammen auf den unterschiedlichen beteiligten Knoten die geheime Nachricht rekonstruiert werden kann.
  • Jeder Nutzerknoten erzeugt für seine geheime Nachricht und für zufällig erzeugte Rauschnachrichten Teilnachrichten, die er an alle Cloud-Dienstknoten sendet bzw. verteilt, so dass auf allen Cloud-Dienstknoten nur Teilnachrichten erfasst und verarbeitet werden, aus denen nur dann die geheime Nachricht rekonstruiert werden kann, wenn alle Cloud-Dienstknoten gemeinsam interagieren. Damit kann eine hohe Sicherheit des Systems gewährleistet werden.
  • Vorzugsweise wird sichergestellt, dass die jeweilige geheime Nachricht, die auf einem Nutzerknoten generiert wird oder dort verfügbar ist (z.B. Positionsangaben, Zeitangaben des Anwenders etc.) den jeweiligen Nutzerknoten nicht unverschlüsselt verlässt, wobei jeweils eine geheime Nachricht nur auf dem ihr zugeordneten („eigenen“) Nutzerknoten im Klartext verfügbar ist.
  • Es können auch mehrere geheime Nachrichten eines Nutzerknotens für die Berechnung notwendig sein (z.B. Positions- und Zeitangaben einer Person). Die geheime Nachricht kann somit ein Nachrichtenkonvolut sein, umfassend mehrere geheime Nachrichten. Der Einfachheit halber wird in dieser Anmeldung nur von einer geheimen Nachricht gesprochen. Dieser Begriff ist somit als „zumindest eine geheime Nachricht“ zu interpretieren.
  • Die geheime Nachricht und die zufällig erzeugten Rauschnachrichten werden als Teilnachrichten nach einem additiven Secure Secret Sharing Algorithmus verschlüsselt. Die geheime Nachricht wird an einer randomisierten Position innerhalb eines Polynoms unter andere Rauschnachrichten „versteckt“ auf eine Gruppe von Cloud-Dienstknoten verteilt, so dass auf keinem Cloud-Dienstknoten ohne Mitwirkung von allen anderen Cloud-Dienstknoten aus den verteilten Daten auf die geheime Nachricht geschlossen werden kann.
  • Der Secure Secret Sharing Algorithmus ist eine Methode, um ein Geheimnis zwischen Parteien so zu verteilen, dass nur mindestens eine bestimmte Anzahl der Parteien das Ergebnis zusammen – also gemeinsam – berechnen können, während nur eine Partei alleine das Ergebnis nicht errechnen kann. Insbesondere können die Parteien ohne eine Interaktion untereinander nicht das Ergebnis der verteilten Geheimnisse berechnen. Ein Secure Secret Sharing Algorithmus kann zwei Aspekte umfassen: Erstens, einen Verteil-Algorithmus, um das Geheimnis auf die Parteien zu verteilen und zweitens einen Rekonstruktions-Algorithmus, um das Geheimnis aus den Teilen (Shares) zu rekonstruieren. Secret Sharing im Allgemeinen ist eine Technik, durch die geheime Daten oder Nachrichten in mehrere Anteile oder Teilnachrichten umgewandelt werden, so dass die ursprünglichen geheimen Daten nicht rekonstruiert werden können. Ein Beispiel dafür ist das Shamir Secret Sharing. Für weitere Details zu dem Shamir Secret Sharing sei auf die im Internet verfügbare Veröffentlichung von Adi Shamir, „How to share a secret", Communications of the ACM, 22(11): 612–613, 1979 verwiesen.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung wird ein homomorpher Secure Secret Sharing Algorithmus angewendet. Bei Anwendung eines homomorphen Verschlüsselungsalgorithmus können vorteilhafterweise mathematische Operationen und komplexe Berechnungen direkt auf den Shares (auf den verschlüsselten Daten) ausgeführt werden, ohne die Verschlüsselung zu kompromittieren. Dabei haben die Ergebnisse der mathematischen Operationen auf den Shares eine Entsprechung (Homomorphie-Eigenschaft) in den unverschlüsselten Daten (also dem Geheimnis). Die Verschlüsselungsfunktion kann vorzugsweise additiv homomorph sein. Ein additiver Secure Secret Sharing Algorithmus verfügt zusätzlich zu den oben erwähnten Eigenschaften des Secure Secret Sharing Algorithmus über das Merkmal, dass die Summen (auf den Shares) ohne Interaktion berechnet werden können, jedoch nicht die Produkte.
  • Ein sicheres MPC-Protokoll ist ein Ansatz, um eine Berechnung auf einer Gruppe von Rechnerknoten verteilt und gemeinsam so auszuführen, dass die Eingangsdaten zur Berechnung geheim bleiben. Das Ergebnis wird somit auf sichere Weise und korrekt berechnet, ohne auf den zur Berechnung beteiligten Rechnerknoten die originalen, geheimen Daten rekonstruieren zu können. Für weitere Details zu dem MPC-Protokoll wird auf die im Internet verfügbare Veröffentlichung von Ivan Damgård verwiesen, Ivan Damgård, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, and Tomas Toft. Unconditionally secure constant-rounds multi-party computation for equality, comparison, bits and exponentiation, In Theory of Cryptography, Third Theory of Cryptography Conference, TCC2006, volume 3876 of Lecture Notes in Computer Science, pages 285–304, Springer, 2006.
  • Das MPC-Protokoll legt fest und dient dazu, dass die Cloud-Dienstknoten zusammen in einer sicheren Weise gemeinsam ein Ergebnis berechnen, so dass die geheime Nachricht des Nutzerknotens, die als Eingabe für die auf dem Dritt-Dienstknoten auszuführende Berechnung dient, und berechnete Ergebnisse oder Zwischenergebnisse von anderen Knoten geheim bleiben.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung umfasst das Verfahren zusätzlich einen Verfahrensschritt, nämlich, dass das auf allen Cloud-Dienstknoten gemeinsam berechnete Ergebnis an alle oder an ausgewählte Nutzerknoten – z.B. an Nutzerknoten, die die Berechnung angefragt haben – übertragen wird. Damit kann die verfügbare Bandbreite effizient ausgenutzt werden, indem das Ergebnis nur an die Nutzerknoten verteilt wird, die das Ergebnis auch benötigen bzw. angefragt haben. Es ist möglich zu konfigurieren, dass vorbestimmbare andere Nutzerknoten, die möglicherweise auch Eingaben zur Berechnung geliefert haben, nicht oder nicht automatisch das Ergebnis gesendet erhalten, sondern z.B. erst auf explizite zusätzliche Anfrage durch Ausgabe eines Anforderungsbefehls.
  • Gemäß einer vorteilhaften Ausführungsform der Erfindung werden die von dem Gateway-Knoten erstellten Funktionsaufrufe parallel oder sequentiell zur Ausführung an den Dritt-Dienstknoten gesendet. Die parallele Versendung hat den Vorteil, dass das Ergebnis bei ausreichend verfügbarer Bandbreite schneller bereitgestellt werden kann. Diese Ausführungsform der Erfindung wird deshalb bevorzugt.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung werden alle Zwischenergebnisse der Berechnung, die auf den unterschiedlichen Knoten (Nutzerknoten, Cloud-Dienstkonten, Gateway-Knoten und Dritt-Dienstknoten) errechnet werden, zwischengespeichert. Insbesondere wird auf dem Gateway-Knoten das berechnete Datenfeld gespeichert, bevor die Funktionsaufrufe erstellt werden.
  • Gemäß einer anderen, vorteilhaften Weiterbildung der Erfindung wird auf dem Cloud-Dienstknoten eine Polynomfunktion als Vektor bereitgestellt. Der Cloud-Dienstknoten speichert seine geheime Nachricht an einer geheimen, randomisierten Position des Vektors. Andere Positionen des Vektors werden mit zufällig bzw. randomisiert erzeugten Rauschnachrichten aufgefüllt. Auf die geheime Position wird der additive Secret Sharing Algorithmus angewendet, um Positionsteilnachrichten zu erstellen, die unter den Cloud-Dienstknoten verteilt werden.
  • Gemäß einer anderen, vorteilhaften Weiterbildung der Erfindung wendet der Gateway-Knoten zur Verteilung der Einträge des Ergebnisdatenfeldes auf die Cloud-Dienstknoten eine Lagrange Interpolation an, wobei Koeffizienten der Polynomfunktion nach dem additiven Secret Sharing Algorithmus an die Cloud-Dienstknoten verteilt werden.
  • In einem weiteren Aspekt betrifft die Erfindung ein computerbasiertes, kryptographisches, verteiltes System zum Berechnen eines Ergebnisses, mit:
    • – Eine Gruppe von Cloud-Dienstknoten, die mit einer Menge von Nutzerknoten interagieren können
    • – Einem Gateway-Knoten
    • – Einem Dritt-Dienstknoten.
  • Das Ergebnis wird auf dem Dritt-Dienstknoten berechnet und soll auf dem Cloud-Dienstknoten zur Weiterleitung an den zumindest einen Nutzerknoten bereitgestellt werden, wobei zur Berechnung des Ergebnisses eine geheime Nachricht zumindest eines Cloud-Dienstknotens benötigt wird.
  • Dazu werden für die geheime Nachricht des Cloud-Dienstknotens und für zufällig erzeugte Rauschnachrichten auf dem jeweiligen Cloud-Dienstknoten mehrere Teilnachrichten nach einem additiven Secret Sharing Algorithmus erzeugt und auf eine Gruppe von Cloud-Dienstknoten verteilt, wobei alle Cloud-Dienstknoten deren jeweils erfasste Teilnachrichten in einem Vektor an einen Gateway-Knoten senden, wobei der Gateway-Knoten:
    • – Eine Eingangsschnittstelle hat, die dazu bestimmt ist, alle Vektoren von allen Cloud-Dienstknoten zu sammeln,
    • – Einen Prozessor hat, um die Werte von allen Vektoren zu kombinieren, um ein Datenfeld zu berechnen
    • – Eine Ausgangsschnittstelle hat, um für alle Einträge des Datenfeldes jeweils einen Funktionsaufruf zur Berechnung eines Teilergebnisses auf dem Dritt-Dienstknoten zu erstellen
    • – Eine Ergebnisschnittstelle, die dazu bestimmt ist, alle auf dem Dritt-Dienstknoten berechneten Teilergebnisse in einem Ergebnisdatenfeld auf dem Gateway-Knoten abzulegen und gegebenenfalls zwischen zu speichern
    • – wobei der Prozessor des Gateway-Knotens dazu bestimmt ist, alle Einträge des Ergebnisdatenfeldes nach dem additiven Secret Sharing Algorithmus an die Cloud-Dienstknoten zu verteilen
    wobei allen Cloud-Dienstknoten:
    • – Eine Empfangsschnittstelle umfassen zum Empfangen der von dem Gateway-Knoten verteilten Einträge des Ergebnisdatenfeldes
    • – Eine Recheneinheit, die zum Verteilen einer jeweiligen Positionsteilnachricht für eine korrekte Position der geheimen Nachricht an alle anderen Cloud-Dienstknoten der Gruppe von Cloud-Dienstknoten nach dem additiven Secret Sharing Algorithmus bestimmt ist
    • – und wobei die Recheneinheit zum gemeinsamen Berechnen des Ergebnisses auf allen Cloud-Dienstknoten auf Basis der empfangenen Einträge des Ergebnisdatenfeldes und der verteilten Positionsteilnachrichten nach dem MPC-Protokoll bestimmt ist.
  • In einer bevorzugten Ausführungsform der Erfindung ist der Gateway-Knoten in den Dritt-Dienstknoten integriert. Dann wird die Funktionalität des Gateway-Knotens mit der Vermittlerrolle in dem Dritt-Dienstknoten implementiert. Dazu muss aber der Dritt-Dienstknoten mit zusätzlicher Funktionalität ausgebildet werden.
  • In einer weiteren, bevorzugten Ausführungsform der Erfindung kommunizieren mehrere Nutzerknoten zur Berechnung des Ergebnisses nur indirekt über die Cloud-Dienstknoten miteinander.
  • Gemäß einer weiteren, vorteilhaften Ausführungsform der Erfindung wird auf dem Gateway-Knoten ein Datenfeld aus allen empfangenen Vektoren mit deren Einträgen bzw. Werten berechnet.
  • Gemäß einer weiteren, vorteilhaften Ausführungsform der Erfindung speichert der Gateway-Knoten das Datenfeld auf dem Gateway-Knoten.
  • Gemäß einer weiteren, vorteilhaften Ausführungsform der Erfindung wird zur Verteilung der geheimen Nachricht des Nutzerknotens auf die Cloud-Dienstknoten eine randomisierte Position berechnet und eine Polynomfunktion bereitgestellt, so dass die geheime Nachricht an der randomisierten Position innerhalb der Polynomfunktion abgelegt wird und andere Positionen mit Rauschnachrichten aufgefüllt werden.
  • Gemäß einer Variante wird zur Verteilung der geheimen Nachricht des Nutzerknotens auf die Cloud-Dienstknoten die geheime Nachricht in Teilnachrichten (Shares) zerlegt, die dann nach dem Secret Sharing Verfahren an die Cloud-Dienstknoten verteilt werden.
  • Gemäß einer weiteren Ausbildung der Erfindung werden die auf dem Gateway-Knoten von dem Dritt-Dienstknoten empfangenen Ergebnisse in einem Ergebnisdatenfeld gespeichert bevor sie vor Verteilung nach dem Secret Sharing Algorithmus an die Cloud-Dienstknoten verteilt werden.
  • Eine weitere Aufgabenlösung besteht in einem Computerprogrammprodukt, das in einen Speicher eines Computers oder eines elektronischen Gerätes geladen oder ladbar ist mit einem Computerprogramm zur Durchführung des oben näher beschriebenen Verfahrens, wenn das Computerprogramm auf dem Computer oder dem elektronischen Gerät ausgeführt wird.
  • Eine weitere Aufgabenlösung sieht ein Computerprogramm vor zur Durchführung aller Verfahrensschritte des oben näher beschriebenen Verfahrens, wenn das Computerprogramm auf einem Computer oder einem elektronischen Gerät ausgeführt wird. Dabei ist es auch möglich, dass das Computerprogramm auf einem für den Computer oder das elektronische Gerät lesbaren Medium gespeichert ist.
  • In der folgenden detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung besprochen.
  • Kurze Beschreibung der Figuren
  • 1 zeigt in einer schematischen Übersichtsdarstellung ein verteiltes System zur Berechnung eines Ergebnisses gemäß einer vorteilhaften Ausführungsform der Erfindung.
  • 2 ist eine schematische Darstellung eines Nutzerknotens mit einer geheimen Nachricht.
  • 3 zeigt eine schematische Darstellung eines Client-Dienstknotens aus einer Gruppe von Client-Dienstknoten.
  • 4 zeigt eine schematische Darstellung eines Gateway-Knotens.
  • 5 ist ein Ablaufdiagramm nach der Art eines UML-Interaktionsdiagramms mit Verfahrensschritten, die auf den jeweiligen Knoten verteilt ausgeführt werden.
  • Detaillierte Beschreibung der Figuren
  • Im Folgenden wird die Erfindung anhand von Ausführungsbeispielen im Zusammenhang mit den Figuren näher beschrieben.
  • Die Erfindung betrifft die verteilte Berechnung eines Ergebnisses, das auf einem Dritt-Dienstknoten S berechnet werden soll und auf einem oder mehreren Nutzerknoten NK bereitgestellt werden soll. Zur Berechnung des Ergebnisses sind geheime Nachrichten von einem oder von mehreren Nutzerknoten NK notwendig. Eine besondere Schwierigkeit bei Berechnung liegt darin, dass die Eingangsdaten zur Berechnung, also die geheimen Nachrichten, verteilt auf unterschiedlichen Geräten oder Instanzen abgelegt sind und zum anderen, dass die geheimen Nachrichten nicht unverschlüsselt die Sicherheitssphäre des jeweiligen Nutzerknotens NK verlassen dürfen. Dies hat den Hintergrund, dass persönliche oder private Datensätze, die auf einem Nutzerknoten NK vorgehalten sind, als sensible Daten behandelt werden, da aus diesen privaten Datensätzen durch Angreifer geheimhaltungsbedürftige Daten rekonstruiert werden können. Deshalb soll in einer bevorzugten Ausführungsform der Erfindung sichergestellt werden, dass keine persönlichen Datensätze des jeweiligen Nutzerknotens NK unverschlüsselt (bzw. in Klartext) auf anderen Knoten verfügbar sind. Die jeweiligen privaten Datensätze des Nutzerknotens sind also nur auf dem „eigenen“ Nutzerknoten verfügbar und weder auf anderen Nutzerknoten NK noch auf anderen beteiligten Instanzen, die zur Berechnung des Ergebnisses verwendet werden.
  • Um diese Sicherheitsanforderungen erfüllen zu können, schlägt die Erfindung ein System vor, das eine Gruppe von Client-Dienstknoten CD, einen Gateway-Knoten G und einen Drittdienstknoten S umfasst. Die beteiligten Instanzen CD1, CD2, CD3, CD4, ..., G, S sind in 1 dargestellt. In dem in 1 dargestellten Beispiel sind zusätzlich zwei Nutzerknoten NK1, NK2 dargestellt. Die Nutzerknoten können von Anwendern betrieben werden, die ein Ergebnis auf den Client-Dienstknoten CS anfragen bzw., um ein Ergebnis E auf den Drittdienstknoten S berechnen zu lassen. Beispielsweise kann dies die Anwendung betreffen, dass der Anwender des ersten Nutzerknotens NK1 als Servicepersonal einer Service-Firma sich zurzeit an einer Position A befindet und seinen nächsten Kunden an Position B besuchen möchte, der wiederum den Nutzerknoten NK2 bedient. Das Servicepersonal, das am mobilen Knoten NK1 arbeitet, möchte einen Internet-basierten Navigationsdienst nutzen, um den besten Zeitpunkt zum Treffen des Kunden und den besten Weg dorthin in Erfahrung zu bringen. Die Berechnung soll auf dem Dritt-Dienstknoten S ausgeführt werden. Der Kunde NK2 möchte die erwartete Ankunftszeit des Servicepersonals in Erfahrung bringen. Dabei dürfen die aktuellen Positionsdaten des Servicepersonals und weitere identitätsbezogene Daten nicht an den zweiten Knoten NK2 weitergeleitet werden, um die Privatsphäre des Servicepersonals bzw. der Bedienperson zu schützen und umgekehrt. In diesem Fall werden also die zeitbezogenen Daten und die Positionsdaten des ersten und zweiten Anwenders NK1, NK2 als geheime Daten verarbeitet. So sind z.B. die geheimen Daten des Servicepersonals NK1 nur auf diesem Knoten NK1 verfügbar und können auf keinem der beteiligten Cloud-Dienstknoten CD oder dem Gateway G oder dem Drittdienstanbieter S oder dem Kommunikationspartnerknoten NK2 eingelesen und verarbeitet werden. Um nun die geheimen Nachrichten der Nutzerknoten NK an die Gruppe von Cloud-Dienstknoten CD zu verteilen, wird vorzugsweise ein additiver Secret Sharing Algorithmus angewendet, um das jeweilige Geheimnis (die geheime Nachricht, die als Eingangsdatensatz für die Berechnung des Ergebnisses E erforderlich ist) zwischen den Parteien zu verteilen, so dass nur mindestens eine vorbestimmte Anzahl der Parteien (in diesem Fall die Cloud-Dienstknoten CD) das Ergebnis gemeinsam berechnen können. Die Cloud-Dienstknoten CD können ohne eine Interaktion und eine gemeinsame Berechnung nicht auf die geheime Nachricht rückschließen. Die Cloud-Dienstknoten CD können allerdings Operationen (z.B. Multiplikationen und Additionen) auf den so erstellten Teilnachrichten TN ausführen. Wie in 1 schematisch gezeigt, werden also von einem Nutzerknoten NK mehrere Teilnachrichten TN an die Gruppe von Cloud-Dienstknoten CD übermittelt. Die Erfindung liegt in der gemeinsamen Berechnung des Ergebnisses auf der Gruppe von Cloud-Dienstknoten CD. Die anfragenden Nutzerknoten NK sind demnach für die Ausführung der Erfindung nicht zwingend erforderlich.
  • In dem in 1 dargestellten Beispiel besteht die Gruppe aus Cloud-Dienstknoten aus den vier Cloud-Dienstknoten CD1, CD2, CD3 und CD4. Nach Erhalt der jeweiligen Teilnachrichten ist jeweils ein Cloud-Dienstknoten CD dazu bestimmt, einen Vektor Γ zu erzeugen, um diesen Vektor Γ an den Gateway-Knoten G zu senden. Auf Basis von allen empfangenen Teilnachrichten TN, die in dem jeweiligen Cloud-Dienstknoten CD konsolidiert und kombiniert werden, erzeugt der Cloud-Dienstknoten CD den Vektor Γ und verteilt diesen, insbesondere ebenfalls nach einem additiven Secret Sharing Algorithmus auf den Gateway-Knoten G. Zur Verarbeitung der empfangenen Vektoren Γ umfasst der Gateway-Knoten G einen Prozessor PG, der dazu bestimmt ist, alle Vektoren Γ von allen Cloud-Dienstknoten CD einzusammeln und vorzugsweise zwischen zu speichern. Aus allen Werten von allen Vektoren Γ wird dann ein Datenfeld Θ berechnet. Für alle Einträge des erzeugten Datenfeldes Θ wird jeweils ein Funktionsaufruf f zur Berechnung eines Teilergebnisses TE auf dem Drittdienstknoten S erstellt und an diesen mit einem Ausführungsbefehl gesendet. Der jeweilige Funktionsaufruf f wird somit auf den Drittdienstknoten S zur Ausführung gebracht, um ein Teilergebnis TE zu berechnen. Im obigen Beispiel kann der Drittdienstknoten S dazu bestimmt sein, einen optimalen Besuchsweg zwischen zwei beteiligten Personen zu ermitteln und eine optimale Besuchszeit, unter Berücksichtigung der jeweiligen Terminkalender der beteiligten Personen. Für jeden Funktionsabruf f wird ein Teilergebnis TE generiert und an den Gateway-Knoten G zurückgesendet. In dem in 1 dargestellten Beispiel sind drei Funktionsaufrufe f1, f2, f3 schematisch eingezeichnet, die wiederum zu drei Teilergebnissen TE1, TE2, TE3 führen und an den Gateway-Knoten zurückgesendet werden. Nachdem der Gateway-Knoten G alle Teilergebnisse TE empfangen hat, wird daraus auf dem Gateway-Knoten G ein Ergebnisdatenfeld Θ’ erzeugt und vorzugsweise wird das Ergebnisdatenfeld Θ’ auch in einem Zwischenspeicher gespeichert. Für alle Einträge des Ergebnisdatenfeldes Θ’ wird ein additiver Secret Sharing Algorithmus angewendet, um den jeweiligen Eintrag an die Gruppe von Cloud-Dienstknoten CD zu verteilen.
  • Jeder der Cloud-Dienstknoten CD ist dazu bestimmt, die von dem Gateway-Knoten G verteilten Einträge des Ergebnisdatenfeldes Θ’ zu empfangen. Alle Cloud-Dienstknoten CD sind des Weiteren dazu bestimmt, ihre jeweilige geheime Nachricht zur richtigen Position (Positionswert) als Positionsteilnachricht an alle anderen Cloud-Dienstknoten CD der Gruppe von Cloud-Dienstknoten zu verteilen. Zur Verteilung der jeweiligen Positionsteilnachrichten wird wiederum der additive Secret Sharing Algorithmus angewendet.
  • Grundsätzlich ist es möglich, dass in einem ersten Schritt die Einträge des Ergebnisdatenfeldes Θ’ empfangen werden und in einem zweiten Schritt die jeweiligen geheimen Nachrichten (Positionswerte) des Cloud-Dienstknoten CD an die anderen Cloud-Dienstknoten verteilt werden. In einer alternativen Ausführungsform der Erfindung kann es jedoch auch vorgesehen sein, diese beiden Schritte in einer anderen, abweichenden Reihenfolge auszuführen, so dass zunächst die jeweiligen Positionswerte als Shares untereinander nach einem additiven Secret Sharing Algorithmus verteilt werden und erst in einem zweiten Schritt die Ergebnisse des Gateway-Knoten G empfangen werden.
  • Die Cloud-Dienstknoten CD interagieren untereinander nach einem Multi Party Communication Protokoll, das im Folgenden kurz als MPC-Protokoll bezeichnet wird. Das MPC-Protokoll ist ein Verfahren, das es ermöglicht, dass mehrere computerbasierte Knoten ein Ergebnis gemeinsam berechnen, wobei das Ergebnis im Informatik-Sinn berechenbar und korrekt ist und wobei die jeweiligen Eingaben zur Berechnung und die berechneten Ergebnisse und Zwischenergebnisse geheim bleiben.
  • Nachdem alle notwendigen Eingangsdaten zur gemeinsamen Berechnung des Ergebnisses E auf allen Cloud-Dienstknoten CD bereitstehen, kann durch gemeinsame Berechnung das Ergebnis berechnet werden und ebenfalls über das MPC-Protokoll unter den Cloud-Dienstknoten CD verteilt werden.
  • Das berechnete Ergebnis E, das auf dem Cloud-Dienstknoten CD bereitgestellt wird, kann dann als Ergebnis bzw. Endergebnis an die beteiligten Nutzerknoten NK übermittelt werden. Das Ergebnis E kann beispielsweise auf einer Benutzeroberfläche des jeweiligen Nutzerknotens NK ausgegeben werden.
  • 2 bezieht sich auf einen Nutzerknoten NK. Auf dem Nutzerknoten NK wird eine geheime Nachricht gN bereitgestellt. Die geheime Nachricht gN wird an einem Prozessor PNK des Nutzerknotens zur Berechnung weitergeleitet. Insbesondere ist auf dem Prozessor PNK ein additiver Secret Sharing Algorithmus implementiert. Somit kann die Geheimnachricht GN auf ein Bündel von mehreren Teilnachrichten TN1, TN2, TN3, TN... aufgeteilt werden. Die jeweiligen Teilnachrichten TN werden dann an die Gruppe von Gateway-Knoten CD verteilt. Nach Berechnung des Ergebnisses E durch Ausführung von mehreren Zwischenschritten auf den Cloud-Dienstknoten CD, den Gateway-Knoten G und den Dritt-Dienstknoten S, wird das Ergebnis E wiederum an den Nutzerknoten NK weitergeleitet und kann dort bereitgestellt werden. Wie in den 2 und 1 dargestellt, ist es wichtig, darauf hinzuweisen, dass die beteiligten Nutzerknoten NK nicht direkt untereinander im Datenaustausch stehen, um das Ergebnis E zu berechnen, obwohl deren jeweilige private Datensätze als geheime Nachrichten für die Berechnung notwendig sind und ausgetauscht werden müssen. Vorzugsweise stehen die Nutzerknoten NK lediglich indirekt über die Vermittlung der Gruppe von Cloud-Dienstknoten CD und dem Gateway-Knoten G und dem Dritt-Dienstknoten S in Datenaustausch.
  • In 3 ist ein Cloud-Dienstknoten CD dargestellt. Er umfasst einen Prozessor PCD, auf dem ebenfalls ein additiver Secret Sharing Algorithmus implementiert ist. Darüber hinaus ist auf dem Prozessor PCD ein Interaktions-Interface implementiert, um ein MPC-Protokoll ausführen zu können. Das MPC-Protokoll dient dazu, dass die beteiligten Cloud-Dienstknoten CD untereinander Daten austauschen können.
  • Wie vorstehend bereits im Zusammenhang zu 1 beschrieben, empfängt ein Cloud-Dienstknoten CD mehrere Teilnachrichten TN von dem beteiligten Nutzerknoten NK. Ebenso ist es möglich, dass die Teilnachrichten bereits auf dem Cloud-Dienstknoten vorliegen. Aus allen Teilnachrichten TN erstellt er dann einen Vektor Γ, der dann über eine Ausgangsschnittstelle an den Gateway-Knoten G gesendet wird. Der Cloud-Dienstknoten CD umfasst des Weiteren eine Ergebnisschnittstelle, um das Ergebnisdatenfeld Θ’ von dem Gateway-Knoten G zu empfangen alle Teilnachrichten TN aller Cloud-Dienstknoten CD werden unter der Gruppe von Cloud-Dienstknoten CD nach dem MPC-Protokoll verteilt. Nachdem sowohl alle Shares für die richtige Position (die Positionswerte) als geheimen Nachrichten TN als auch das Ergebnisdatenfeld Θ’ auf allen beteiligten Cloud-Dienstknoten CD vorliegen, kann das Ergebnis E berechnet werden. Das Ergebnis E wird dann an die Nutzerknoten NK verteilt. Hier kann konfiguriert werden, ob das Ergebnis E an alle Nutzerknoten NK oder nur an eine ausgewählte Menge von Nutzerknoten gesendet werden soll. Letzteres kann beispielsweise dann sinnvoll sein, wenn das Ergebnis E nur auf bestimmten Nutzerknoten NK bereitgestellt werden soll, obwohl mehrere Nutzerknoten NK Eingangsdaten zur Berechnung geliefert haben. Damit kann eine weitere Sicherheitsvorkehrung getroffen werden.
  • In 4 ist der Gateway-Knoten G schematisch dargestellt. Er umfasst einen Prozessor PG, auf dem ebenfalls ein additiver Secret Sharing Algorithmus implementiert ist. Der Gateway-Knoten interagiert mit der Gruppe von Cloud-Dienstknoten CD. Er empfängt alle Vektoren Γ, um daraus die jeweiligen Funktionsaufrufe f1, f2, f3 zu erzeugen und an den Dritt-Dienstknoten S zu übermitteln. Der Gateway-Knoten G empfängt daraufhin die erzeugten Teilergebnisse TE1, TE2, TE3 vom Dritt-Dienstknoten S und verteilt das Ergebnisdatenfeld Θ’ nach dem additiven Secret Sharing Algorithmus auf die Gruppe von Cloud-Dienstknoten CD.
  • In 5 ist ein Ablaufdiagramm in der Art eines UML-Interaktions- bzw. Sequenzdiagramms dargestellt. Es zeigt die in üblichen Anwendungsfällen beteiligten computerbasierten Instanzen: den Nutzerknoten NK, einen jeweiligen Cloud-Dienstknoten CD aus der Gruppe von Cloud-Dienstknoten, den Gateway-Knoten G und den Dritt-Dienstknoten S. Im Folgenden wird eine Ausführungsform der Erfindung beschrieben, bei der ein Nutzerknoten NK beteiligt ist. Die Erfindung kann jedoch auch umgesetzt werden, indem die Funktionalität des Nutzerknotens in einem der Cloud-Dienstknoten CD implementiert ist. In diesem Fall werden die im Folgenden beschriebenen Verfahrensschritte 501 bis 504 auf dem Cloud-Dienstknoten CD ausgeführt.
  • Nach dem Start des Verfahrens wird in Schritt 501 eine Anfrage zur Berechnung eines Ergebnisses erfasst. Dies kann beispielsweise dadurch umgesetzt werden, indem auf einer Benutzeroberfläche des jeweiligen Nutzerknotens NK ein Feld bzw. ein Button geklickt wird, mit dem der Anwender signalisiert, dass er den Weg zu einer bestimmten Zielposition berechnet haben möchte.
  • In Schritt 502 wird zumindest eine geheime Nachricht auf dem Nutzerknoten NK eingelesen. Im vorstehend genannten Beispiel wird es ausreichend sein, wenn die aktuelle Position des Nutzers als geheime Nachricht eingelesen wird. Möchte der Nutzer allerdings auf schnellstem Weg zu einer Zielperson gelangen, so sind weitere geheime Nachrichten (z.B. aktuelle Position der Zielperson etc.) zur Berechnung erforderlich. Die weiteren geheimen Nachrichten stehen sowohl auf dem jeweiligen Nutzerknoten NK als auch auf weiteren Nutzerknoten NKi zur Verfügung. Alternativ ist es auch möglich, dass die jeweiligen geheimen Nachrichten auf dem Nutzerknoten NK über eine Schnittstelle eingelesen werden. Vorzugsweise wird jedoch die geheime Nachricht auf dem jeweiligen Nutzerknoten NK erzeugt und liegt unmittelbar vor.
  • In Schritt 502 werden zusätzlich Rauschnachrichten erzeugt.
  • In Schritt 503 wird auf die eingelesene geheime Nachricht (es können auch mehrere geheime Nachrichten sein) und auf die Rauschnachrichten der additive Secret Sharing Algorithmus angewendet, um auf dem jeweiligen Nutzerknoten NK eine Menge von Teilnachrichten TN zu erzeugen.
  • In Schritt 504 werden die erzeugten Teilnachrichten TN an die Gruppe von Cloud-Dienstknoten CD verteilt. Wie in 5 ersichtlich, werden die Schritte 501 bis 504 auf dem Nutzerknoten NK ausgeführt. Wie vorstehend bereits erwähnt, ist es auch möglich, dass die geheime Information des Nutzerknotens bereits auf dem Cloud-Dienstknoten vorliegt, so dass die Schritte 501504 auf dem Cloud-Dienstknoten ausgeführt werden.
  • In Schritt 505 werden alle Teilnachrichten TN aller beteiligten Nutzerknoten NK auf dem jeweiligen Cloud-Dienstknoten CD erfasst.
  • In Schritt 506 wird ein Vektor Γ aus allen erfassten Teilnachrichten TN erzeugt.
  • In Schritt 507 wird der erzeugte Vektor Γ an den Gateway-Knoten G versendet. Die Schritte 505 bis 507 werden auf dem jeweiligen Cloud-Dienstknoten CD ausgeführt. Der Einfachheit halber wurden die vorstehenden Verfahrensschritte nur für einen Cloud-Dienstknoten beschrieben – es liegt jedoch für den Fachmann auf der Hand, dass die vorstehenden Verfahrensschritte 505 bis 507 auf allen Cloud-Dienstknoten CD ausgeführt werden.
  • In Schritt 508 werden auf dem Gateway-Knoten G alle Vektoren Γ erfasst und von allen Cloud-Dienstknoten CD konsolidiert.
  • In Schritt 509 wird ein Datenfeld Θ berechnet. Dazu werden alle Werte von allen Vektoren Γ berücksichtigt. Der Gateway-Knoten G kombiniert also die Werte der Vektoren Γ(i), um ein Datenfeld Θ der Länge qnn zu berechnen.
  • Als optionaler Verfahrensschritt kann das berechnete Datenfeld Θ in einem Zwischenschritt gespeichert werden, bevor die Funktionsaufrufe f erstellt und versendet werden, was in Schritt 510 erfolgt.
  • In dem Schritt 510 werden also für alle Einträge des Datenfeldes Θ jeweils ein Funktionsaufruf f erzeugt und zur Berechnung des Teilergebnisses TE auf dem Dritt-Dienstknoten S versendet. Es werden qn Funktionsaufrufe erzeugt und zur Ausführung gebracht. Falls beispielsweise das Datenfeld Θ qn Einträge umfasst (q = 3) bei n = 4 Cloud-Dienstknoten CS, so werden 34(also 81) Funktionsaufrufe f1, f2, f81 erzeugt und auf dem Dritt-Dienstknoten S zur Ausführung gebracht.
  • In Schritt 511 wird für jeden erzeugten Funktionsaufruf f ein Teilergebnis TE auf dem Dritt-Dienstknoten S berechnet und an den Gateway-Knoten G zurückgesendet.
  • In Schritt 512 werden alle berechneten Teilergebnisse TE auf dem Gateway-Knoten G konsolidiert. Alle berechneten Teilergebnisse TE werden in einem Ergebnisdatenfeld Θ’ abgelegt.
  • In einer bevorzugten Ausführungsform ist es vorgesehen, dass das so erzeugte Ergebnisdatenfeld Θ’ in einem Speicher zwischengespeichert wird. Dies erfolgt in Schritt 513.
  • In Schritt 514 wird auf alle Einträge des Ergebnisdatenfeldes Θ’ der additive Secret Sharing Algorithmus angewendet, um die jeweils erzeugten Shares als Ergebnis-Teilnachrichten an die Cloud-Dienstknoten CD zu verteilen.
  • Die Schritte 508, 509, 509a, 510, 512, 513 und 514 werden auf dem Gateway-Knoten G ausgeführt, während die Berechnungsschritte 511 auf dem Dritt-Dienstknoten S ausgeführt wird.
  • In Schritt 515 wird das Ergebnisdatenfeld Θ’ auf dem allen Cloud-Dienstknoten CD empfangen.
  • In Schritt 516 werden die jeweiligen Positionswerte für die Position der geheimen Nachricht auf dem Cloud-Dienstknoten als Positionsteilnachricht unter allen Cloud-Dienstknoten CD verteilt. Jeder Cloud-Dienstknoten CD sendet somit seine eigene Positionsteilnachricht nach Anwendung des additiven Secret Sharing Algorithmus an alle anderen Cloud-Dienstknoten CD nach dem MPC-Protokoll.
  • Die Schritte 515 und 516 können auch in einer anderen Reihenfolge ausgeführt werden.
  • In Schritt 517 erfolgt dann das gemeinsame Berechnen des Ergebnisses E auf allen Cloud-Dienstknoten CD auf Basis der empfangenen Einträge des Ergebnisdatenfeldes Θ’ und der untereinander verteilten Positionsteilnachrichten nach dem MPC-Protokoll.
  • In Schritt 518 kann das berechnete Ergebnis E an alle oder ausgewählte Nutzerknoten NK übertragen werden.
  • Wie in 5 dargestellt, werden die Schritte 515 bis 519 allen Cloud-Dienstknoten CD ausgeführt.
  • In Schritt 519 kann das berechnete Ergebnis E auf dem jeweiligen Nutzerknoten NK, zum Beispiel auf einer (graphischen) Benutzeroberfläche dargestellt werden. Daraufhin kann das Verfahren enden oder wiederholt ausgeführt werden.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung umfasst das Verfahren zur sicheren verteilten Berechnung des Ergebnisses E folgende Schritte:
    • 1. Randomisierung
    • 2. Aufruf des Gateway-Knotens G
    • 3. Aufruf der Cloud-Dienstknoten CD
    • 4. Verteilung durch den Gateway-Knoten G
    • 5. Verteilung der Indizes
    • 6. Ausgabe des Ergebnisses E
  • Die vorstehenden sechs Schritte werden nachstehend nochmals detaillierter erläutert. Grundsätzlich wird auf die geheime Nachricht des Cloud-Dienstknotens CD ein additiver Secret Sharing Algorithmus angewendet. Jeder der beteiligten Knoten verfügt also nur über seine eigene, private Teilnachricht (share).
  • Randomisierung:
  • Bei der Randomisierung erzeugt jeder Cloud-Dienstknoten CD i q – 1 Zufallszahlen s (i) / j , für 1 ≤ j ≤ q – 1. Des Weiteren wird eine Polynomfunktion bereitgestellt. Der jeweilige Cloud-Dienstknoten CD legt seine geheime Nachricht an der randomisierten Position r(i) < q < q innerhalb der Polynomfunktion ab, um ein q-Tupel bzw. einen Vektor Γ(i) zu erzeugen:
    Figure DE102016217537A1_0002
  • In der obigen Formel steht also die geheime Nachricht an der dritten Position im Polynom als si.
  • Aufruf des Gateway-Knotens G:
  • Jeder Cloud-Dienstknoten CDi hält seinen erzeugten Zufallswert für die Position r(i) (im Folgenden auch Positionswert genannt) zunächst für sich selbst und sendet den Vektor Γ(i) an den Gateway-Knoten G. Später erzeugt er – vorzugsweise durch Anwendung des additiven Secret Sharing Algorithmus – eine Positionsteilnachricht, um diese unter den Cloud-Dienstknoten CD zu verteilen.
  • Aufruf des Dritt-Dienstknotens:
  • Der Gateway-Knoten G kombiniert die Werte der Vektoren Γ(i) um das Datenfeld Θ zu berechnen. Das Datenfeld Θ hat die Länge qn und wird an den Dritt-Dienstknoten S gesendet. Jeder Eintrag in dem Datenfeld Θ wird verwendet, um einen Funktionsbefehl bzw. -aufruf f auf dem Dritt-Dienstknoten S auszuführen. Dabei wird der jeweilige Eintrag ΘT an der Position t, 0 ≤ t < qn unter Verwendung des folgenden Algorithmus mit einer FOR-DO-Schleife berechnet:
    • 1: for 0 ≤ t < qn do
    • 2: (tn-1, tn-2, ..., t0) ← die Repräsentation von t in der Basis q, also, t = ∑tiqi
    • 3: Rekonstruiere die geheime Nachricht Θt als Geheimnis zu dem share bzw. zur Teilnachricht
      Figure DE102016217537A1_0003
      des Cloud-Dienstknotens i, for 0 ≤ i < n
    • 4: end for
  • Dabei ist zu beachten, dass das Datenfeld Θ mehrere Zufallsnachrichten bzw. Zufallseinträge als Rauschnachrichten umfasst. Dabei ist der jeweilige Eintrag an der Position t(secret) = Σr(i)qi die Nachricht an der richtigen Position bzw. die geheime Nachricht, wobei ri der private randomisierte Positionswert des Servers i ist, wie vorstehend beschrieben berechnet worden ist. Deshalb können die Cloud-Dienstknoten CD die geheime Nachricht t(secret) nur gemeinsam berechnen.
  • Der Gateway-Knoten G führt qn Funktionsaufrufe f für jeden Eintrag des Datenfeldes Θ aus. Falls der Dritt-Dienstknoten S mehrere Eingangsdaten oder Inputgrößen erfordert, so werden diese auf derselben Weise erzeugt. In Antwort auf die Berechnung der Teilergebnisse TE des Dritt-Dienstknotens S empfängt der Gateway-Knoten G die jeweiligen Teilergebnisse TE zurück und setzt diese in das Ergebnisdatenfeld Θ’ der Länge qn.
  • Verteilung des Gateway-Knotens G:
  • Der Gateway-Knoten G verwendet vorzugsweise die Lagrange Interpolation, um das Ergebnisdatenfeld Θ’ als Polynomfunktion vom Grad qn – 1 zu repräsentieren, dessen Auswertung am Punkt 0 ≤ t < qn der Eintrag an der Position t des Datenfeldes Θ’ ist, insbesondere Θ't. Der Gateway-Knoten G berücksichtigt die Koeffizienten der Polynomfunktion als geheime Nachricht und verteilt diese als Teilnachricht an die Gruppe von Cloud-Dienstknoten CD.
  • Verteilung der Indizes (Anteile der Positionswerte):
  • Jeder Cloud-Dienstknoten CDi kann den additiven Secret Sharing Algorithmus verwenden, um seinen Index r(i) unter den anderen Cloud-Dienstknoten CD zu verteilen. Insbesondere sendet der Cloud-Dienstknoten CDi seine Share- bzw. Teilnachricht [r(i)]j zu dem j-ten Cloud-Dienstknoten CDj. Der Index entspricht der Positionsteilnachricht und bezieht sich somit auf einen Positionswert, wo die geheime Nachricht abgelegt ist. Der Positionswert wird gemäß dem additiven Secret Sharing Verfahren und vorzugsweise mit dem MPC-Protokoll unter den Cloud-Dienstknoten CD verteilt. Der Positionswert ist zur Auswertung und zur Berechnung des Ergebnisses erforderlich. Aus der Positionsteilnachricht kann nicht auf die Position geschlossen werden. Nur wenn alle Knoten interagieren kann aus allen Positionsteilnachrichten der Positionswert berechnet werden.
  • Rekonstruktion des Ergebnisses E:
  • Unter Verwendung der verteilten Indizes der jeweiligen Cloud-Dienstknoten CD ist jeder Cloud-Dienstknoten CD in der Lage, gemeinsam die Teilnachrichten der richtigen Position t(secret) zu berechnen. Da alle Cloud-Dienstknoten CD auch die Shares bzw. Teilnachrichten der Polynomdarstellung des Ergebnisdatenfeldes Θ’ haben, können sie die verteilte Polynomfunktion zum Punkt t(secret) = ∑ n / i=0riqi, auswerten, wobei ri gemäß der oben beschriebenen Formel berechnet wird (unter dem Stichwort Randomisierung, zum Vektor Γ) gemeinsam berechnen und jeder Cloud-Dienstknoten CD verfügt somit über eine Teilnachricht bzw. ein Share des Ergebnisses E auf dem jeweiligen Client-Serviceprovider CD. Das Datenfeld Θ enthält eine Liste der Länge qn von randomisierten Werten, wobei nur einer dieser Werte korrekt ist. Die korrekte Position des richtigen Wertes ist dem Gateway-Knoten G nicht bekannt. Falls der Gateway-Knoten G jedoch mit einem der Cloud-Dienstknoten CD kooperiert, zum Beispiel mit dem ersten Cloud-Dienstknoten CD1, ist dieser in der Lage, den Wert r(0) zu berechnen und die Anzahl der potentiellen Kandidaten von richtigen Einträgen des Datenfeldes Θ von qn auf qn-1 zu reduzieren. Falls der Gateway-Knoten G mit allen anderen Cloud-Dienstknoten CD kooperiert, kann er den richtigen Wert berechnen.
  • Im Folgenden wird ein Ausführungsbeispiel beschrieben, bei dem der q = 2 und die Anzahl n der Cloud-Dienstknoten 3 beträgt und bei dem angenommen wird, dass die geheime Nachricht s auf Teilnachrichten TN aufgeteilt wird, die als [s]0, [s]1 und [s]2 bezeichnet werden.
  • Randomisierung:
  • Die drei Cloud-Dienstknoten CD1, CD2 und CD3 erzeugen Zufallswerte r(0) = 0, r(1) = 1 und r(2) = 0, wobei die Zufallszahlen kleiner als 2 sind. Zusätzlich erzeugt jeder als Server fungierende Cloud-Dienstknoten CDi, mit 0 ≤ i < n Zufallswerte s (i) / 1 und sortiert die Werte entsprechend. Entsprechend entsteht folgende Tabelle:
    Figure DE102016217537A1_0004
  • Aufruf des Gateway-Knotens G:
  • Die Werte des Datenfeldes Γ werden an den Gateway-Knoten G gesendet, der die Werte kombiniert, um die Werte des Datenfeldes Θ zu berechnen, indem die Anteile bzw. shares gemäß der folgenden Tabelle verwendet werden:
    Figure DE102016217537A1_0005
  • Die Tabelle zeigt die Shares/Teilnachrichten, die von jedem Cloud-Dienstknoten CD versendet werden und die entsprechenden Daten, die von dem jeweiligen Cloud-Dienstknoten CD wieder zurückgesendet werden. In dem oben erwähnten Beispielfall, in dem r(0) = 0, r(0) = 1 und r(0) = 0 ist, ist die Zeile bzw. der Eintrag, der der richtigen bzw. der geheimen Nachricht entspricht, t(secret) = 2, grau hinterlegt. Der Gateway-Knoten K kennt den Wert ri nicht und weiß daher nicht, welche Zeile den korrekten Wert umfasst. Falls der Gateway-Knoten G mit einem Cloud-Dienstknoten kooperiert bzw. interagiert, kann er den Wert eines r(i) herausfinden und die mögliche Anzahl von richtigen Ergebnissen auf vier Zeilen begrenzen. Wenn beispielsweise der Gateway-Knoten G herausfindet, dass r(2) = 1 beträgt, kann der Gateway-Knoten G darauf schließen, dass die richtige Zeile eine der letzten vier unteren Zeilen der Tabelle ist.
  • Funktionsaufruf des Dritt-Dienstknotens S:
  • Der Gateway-Knoten G sendet die Werte des Datenfeldes Θ der Länge 8 zu dem Dritt-Dienstknoten S und empfängt die Werte des Ergebnisdatenfeldes Θ’ der Länge 8.
  • Verteilung durch den Gateway-Knoten G:
  • Der Gateway-Knoten G verwendet in dem Ausführungsbeispiel die Lagrange-Interpolation um die Koeffizienten der Polynomfunktion f(t) = a0 + a1t + ... + a6t6 + a7t7 zu berechnen.
  • Der Gateway-Knoten G verteilt die Koeffizienten der Polynomfunktion f unter den Cloud-Dienstknoten CD.
  • Verteilung der Positionswerte bzw. Indizes unter den Cloud-Dienstknoten CD:
  • Jeder Cloud-Dienstknoten CDi verteilt seinen Positionswert bzw. seine Zufallsposition r(i) unter den Cloud-Dienstknoten. Insbesondere sendet er seinen Anteil [r(i)]j an den j-ten Cloud-Dienstknoten CDj. Daraufhin kann jeder Cloud-Dienstknoten seinen Anteil t(secret) berechnen als: [t(secret)]i = ∑ n-1 / j=0[r(i)]iqj
  • Die Bereitstellung des Ergebnisses E bzw. die Rekonstruktion dessen erfolgt auf dem jeweiligen Cloud-Dienstknoten CDi, der seinen Anteil an der richtigen Position des Ergebnisdatenfelds Θ’ berechnet, indem er [f(t(secret))]i berechnet. Diese Berechnung wird ausgeführt unter Zugriff auf den Share bzw. Anteil von t(secret), und der Koeffizienten der Funktionsaufrufe f durch Ausführen von Addition und Multiplikationsvorgängen.
  • 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
    • Adi Shamir, „How to share a secret“, Communications of the ACM, 22(11): 612–613, 1979 [0026]
    • Ivan Damgård verwiesen, Ivan Damgård, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, and Tomas Toft. Unconditionally secure constant-rounds multi-party computation for equality, comparison, bits and exponentiation, In Theory of Cryptography, Third Theory of Cryptography Conference, TCC2006, volume 3876 of Lecture Notes in Computer Science, pages 285–304, Springer, 2006 [0028]

Claims (11)

  1. Verfahren zum Berechnen eines Ergebnisses (E) auf einem Dritt-Dienstknoten (S) zur Bereitstellung des Ergebnisses (E) auf einer Gruppe von Cloud-Dienstknoten (CD), wobei zur Berechnung des Ergebnisses (E) eine geheime Nachricht benötigt wird, die nur auf einem Cloud-Dienstknoten (CD) verfügbar ist, wobei auf dem Cloud-Dienstknoten (CD) zufällig erzeugte Rauschnachrichten bereitgestellt werden und wobei für die geheime Nachricht und für die Rauschnachrichten Teilnachrichten (TN) nach einem additiven Secret Sharing Algorithmus erzeugt und auf die Gruppe von Cloud-Dienstknoten (CD) verteilt werden, und wobei alle Cloud-Dienstknoten (CD) deren jeweils erfasste Teilnachrichten (TN) in einem Vektor (Γ) an einen Gateway-Knoten (G) senden, wobei der Gateway-Knoten (G): – alle Vektoren (Γ) von allen Cloud-Dienstknoten (CD) sammelt, um für alle Einträge von allen Vektoren (Γ) jeweils einen Funktionsaufruf (f) zur Berechnung eines Teilergebnisses (TE) auf dem Dritt-Dienstknoten (S) zu erstellen und alle auf dem Dritt-Dienstknoten (S) berechneten Teilergebnisse (TE) in einem Ergebnisdatenfeld (Θ‘) abzulegen und – alle Einträge des Ergebnisdatenfeldes (Θ‘) nach dem additiven Secret Sharing Algorithmus an alle Cloud-Dienstknoten (CD) verteilt, wobei daraufhin auf allen Cloud-Dienstknoten (CD) folgende Schritte ausgeführt werden: – Empfangen der von dem Gateway-Knoten (G) verteilten Einträge des Ergebnisdatenfeldes (Θ‘) – Verteilen von Positionswerten für die jeweilige geheime Nachricht des jeweiligen Cloud-Dienstknotens als Positionsteilnachricht an alle anderen Cloud-Dienstknoten (CD) der Gruppe von Cloud-Dienstknoten nach dem additiven Secret Sharing Algorithmus – Gemeinsames Berechnen des Ergebnisses (E) auf allen Cloud-Dienstknoten (CD) auf Basis der empfangenen Einträge des Ergebnisdatenfeldes (Θ‘) und der verteilten Positionsteilnachricht nach dem MPC-Protokoll.
  2. Verfahren nach Patentanspruch 1, bei dem das MPC-Protokoll festlegt, dass die Cloud-Dienstknoten (CD) gemeinsam auf sichere Weise ein Ergebnis berechnen, so dass die geheime Nachricht, die als Eingabe für die Berechnung dient, und berechnete Ergebnisse und Teilergebnisse auf den Cloud-Dienstknoten (CD), dem Gateway-Knoten (G) und dem Dritt-Dienstknoten (S) geheim bleiben.
  3. Verfahren nach einem der vorangehenden Patentansprüche, bei dem das auf allen Cloud-Dienstknoten (CD) gemeinsam berechnete Ergebnis (E) an zumindest einen die Berechnung anfragenden Nutzerknoten (NK) übertragen wird.
  4. Verfahren nach einem der vorangehenden Patentansprüche, bei dem die von dem Gateway-Knoten (G) erstellten Funktionsaufrufe (f) parallel oder sequentiell zur Ausführung an den Dritt-Dienstknoten (S) gesendet werden.
  5. Verfahren nach einem der vorangehenden Patentansprüche, bei dem auf dem Cloud-Dienstknoten (CD) eine Polynomfunktion als Vektor (Γ) bereitgestellt wird und bei dem der Cloud-Dienstknoten (CD) seine geheime Nachricht an einer geheimen Position des Vektors (Γ) speichert und andere Positionen des Vektors (Γ) mit Zufallsnachrichten auffüllt.
  6. Verfahren nach einem der vorangehenden Patentansprüche, bei dem der Gateway-Knoten (G) zur Verteilung der Einträge des Ergebnisdatenfeldes (Θ‘) auf die Cloud-Dienstknoten (CD) eine Lagrange Interpolation anwendet.
  7. Verfahren nach einem der vorangehenden Patentansprüche, bei dem der Gateway-Knoten (G) die Werte von allen Vektoren (Γ) kombiniert, um ein Datenfeld (Θ) zu berechnen und für alle Einträge des Datenfeldes (Θ) die Funktionsaufrufe (f) erzeugt.
  8. Verfahren nach einem der vorangehenden Patentansprüche, bei dem der Gateway-Knoten (G) ein berechnetes Datenfeld (Θ) speichert, bevor die Funktionsaufrufe (f) erstellt werden.
  9. Kryptographisches, verteiltes System zum Berechnen eines Ergebnisses (E), mit: – Eine Gruppe von Cloud-Dienstknoten (CD), – Einem Gateway-Knoten (G) – Einem Dritt-Dienstknoten (S), wobei das Ergebnis (E) auf dem Dritt-Dienstknoten (S) berechnet wird, wobei zur Berechnung des Ergebnisses (E) eine geheime Nachricht zumindest eines Cloud-Dienstknotens (CD) benötigt wird, wobei für die geheime Nachricht und für zufällig erzeugte Rauschnachrichten auf dem jeweiligen Cloud-Dienstknoten (CD) Teilnachrichten (TN) nach einem additiven Secret Sharing Algorithmus erzeugt und auf die Gruppe von Cloud-Dienstknoten (CD) verteilt werden, und wobei alle Cloud-Dienstknoten (CD) deren jeweils erfasste Teilnachrichten (TN) in einem Vektor (Γ) an einen Gateway-Knoten (G) senden, wobei der Gateway-Knoten (G): – Eine Eingangsschnittstelle hat, die dazu bestimmt ist, alle Vektoren (Γ) von allen Cloud-Dienstknoten (CD) zu sammeln, – Einen Prozessor (PG) hat, um die Werte von allen Vektoren (Γ) zu kombinieren, um ein Datenfeld (Θ) zu berechnen – Eine Ausgangsschnittstelle hat, um für alle Einträge des Datenfeldes (Θ) jeweils einen Funktionsaufruf (f) zur Berechnung eines Teilergebnisses (TE) auf dem Dritt-Dienstknoten (S) zu erstellen – Eine Ergebnisschnittstelle, die dazu bestimmt ist, alle auf dem Dritt-Dienstknoten (S) berechneten Teilergebnisse (TE) in einem Ergebnisdatenfeld (Θ‘) auf dem Gateway-Knoten (G) abzulegen und – wobei der Prozessor (PG) dazu bestimmt ist, alle Einträge des Ergebnisdatenfeldes (Θ‘) nach dem additiven Secret Sharing Algorithmus an die Cloud-Dienstknoten (CD) zu verteilen wobei allen Cloud-Dienstknoten (CD): – Eine Empfangsschnittstelle umfassen zum Empfangen der von dem Gateway-Knoten (G) verteilten Einträge des Ergebnisdatenfeldes (Θ‘) – Eine Recheneinheit (PCD), die zum Berechnen einer Positionsteilnachricht für einen Positionswert für die jeweilige geheime Nachricht des jeweiligen Cloud-Dienstknotens (CD) nach dem additiven Secret Sharing Algorithmus und zum Verteilen der Positionsteilnachricht an alle anderen Cloud-Dienstknoten (CD) der Gruppe von Cloud-Dienstknoten bestimmt ist – und wobei die Recheneinheit (PCD) zum gemeinsames Berechnen des Ergebnisses (E) auf allen Cloud-Dienstknoten (CD) auf Basis der empfangenen Einträge des Ergebnisdatenfeldes (Θ‘) und der verteilten positionsteilnachrichten nach dem MPC-Protokoll bestimmt ist.
  10. System nach dem unmittelbar vorangehenden Systemanspruch, bei dem der Gateway-Knoten (G) in den Dritt-Dienstknoten (S) integriert ist.
  11. System nach einem der vorangehenden Systemansprüche, bei dem mehrere Nutzerknoten (NK) mit der Gruppe von Cloud-Dienstknoten (CD) zur Berechnung des Ergebnisses (E) kommunizieren, wobei die Nutzerknoten (NK) nur indirekt über die Cloud-Dienstknoten (CD) miteinander kommunizieren.
DE102016217537.8A 2016-09-14 2016-09-14 Sichere und verteilte Berechnung eines Ergebnisses auf einem Dritt-Dienstknoten zur Bereitstellung auf einem mehreren Nutzerknoten Pending DE102016217537A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016217537.8A DE102016217537A1 (de) 2016-09-14 2016-09-14 Sichere und verteilte Berechnung eines Ergebnisses auf einem Dritt-Dienstknoten zur Bereitstellung auf einem mehreren Nutzerknoten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016217537.8A DE102016217537A1 (de) 2016-09-14 2016-09-14 Sichere und verteilte Berechnung eines Ergebnisses auf einem Dritt-Dienstknoten zur Bereitstellung auf einem mehreren Nutzerknoten

Publications (1)

Publication Number Publication Date
DE102016217537A1 true DE102016217537A1 (de) 2018-03-15

Family

ID=61247114

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016217537.8A Pending DE102016217537A1 (de) 2016-09-14 2016-09-14 Sichere und verteilte Berechnung eines Ergebnisses auf einem Dritt-Dienstknoten zur Bereitstellung auf einem mehreren Nutzerknoten

Country Status (1)

Country Link
DE (1) DE102016217537A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254956A (zh) * 2021-05-07 2021-08-13 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Adi Shamir, „How to share a secret", Communications of the ACM, 22(11): 612–613, 1979
Ivan Damgård verwiesen, Ivan Damgård, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, and Tomas Toft. Unconditionally secure constant-rounds multi-party computation for equality, comparison, bits and exponentiation, In Theory of Cryptography, Third Theory of Cryptography Conference, TCC2006, volume 3876 of Lecture Notes in Computer Science, pages 285–304, Springer, 2006

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254956A (zh) * 2021-05-07 2021-08-13 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Similar Documents

Publication Publication Date Title
DE102019208032A1 (de) Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz
DE112018001285B4 (de) Kryptografische Schlüsselerzeugung mit Anwendung auf Datendeduplizierung
DE60313704T2 (de) Verfahren und Vorrichtung zur Erzeugung eines Geheimschlüssels
EP3033855B1 (de) Unterstützung einer entschlüsselung von verschlüsselten daten
DE69725659T2 (de) Verfahren und Einrichtung zur Ablage eines in einem RSA-Kryptosystem benutzten Geheimschlüssels
DE102019123253A1 (de) System und einrichtung für datenvertraulichkeit im distributed ledger
DE112018000779T5 (de) Tokenbereitstellung für Daten
DE69917356T2 (de) Sicherheitstechnik an einem Computernetzwerk
EP2409255B1 (de) Verfahren zur erzeugung von asymmetrischen kryptografischen schlüsselpaaren
CH708239B1 (de) Schlüsseleinigungsprotokoll.
DE102008021933B4 (de) Verfahren zur Bestimmung einer Kette von Schlüsseln, Verfahren zur Übertragung einer Teilkette der Schlüssel, Computersystem und Chipkarte I
WO2015024763A1 (de) Unterstützung der nutzung eines geheimen schlüssels
DE102016102295A1 (de) Sicherer Authentifizierungsmechanismus mittels Quick-Response-Codes
WO2018099577A1 (en) System and method for providing a collective decentralized authority for sharing sensitive data
DE112021004770T5 (de) Ultraschallübertragung von aufgeteilten schlüsseln für verbesserte sicherheit
EP3672142B1 (de) Verfahren und system zur sicheren übertragung eines datensatzes
WO1999025090A1 (de) Verfahren zum identifizieren von verrätern proprietärer daten
WO2016139371A1 (de) Verfahren und system zum verwalten von nutzerdaten eines nutzerendgeräts
AT519025A4 (de) Verfahren zum Austausch von Datenfeldern von zertifizierten Dokumenten
DE102016217537A1 (de) Sichere und verteilte Berechnung eines Ergebnisses auf einem Dritt-Dienstknoten zur Bereitstellung auf einem mehreren Nutzerknoten
DE102011012328A1 (de) Verschlüsseltes Rechnen
EP3832950A1 (de) Kryptographisches signatursystem
EP3376419B1 (de) System und verfahren zum elektronischen signieren eines dokuments
WO2019180152A1 (de) Automatisiertes verfahren zum schutz von elektronischen daten zum zwecke der datenverarbeitung durch dritte unter einbezug transparenter und unterbrechungssicherer vergütung
CN113657615B (zh) 联邦学习模型的更新方法和装置

Legal Events

Date Code Title Description
R012 Request for examination validly filed