DE102019208032A1 - Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz - Google Patents

Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz Download PDF

Info

Publication number
DE102019208032A1
DE102019208032A1 DE102019208032.4A DE102019208032A DE102019208032A1 DE 102019208032 A1 DE102019208032 A1 DE 102019208032A1 DE 102019208032 A DE102019208032 A DE 102019208032A DE 102019208032 A1 DE102019208032 A1 DE 102019208032A1
Authority
DE
Germany
Prior art keywords
parties
secret parts
phase
secret
parts
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.)
Ceased
Application number
DE102019208032.4A
Other languages
English (en)
Inventor
Sven Trieflinger
Shalabh Jain
Jorge Guajardo Merchan
Sebastian Becker
Qingji Zheng
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 DE102019208032A1 publication Critical patent/DE102019208032A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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)
  • Storage Device Security (AREA)

Abstract

Ein Verfahren zur Implementierung eines sicheren Mehrparteienberechnungsprotokolls zwischen einer Vielzahl von Parteien für eine Mehrparteienberechnung, umfasst das Durchführen einer Offline-Phase eines SPDZ-Protokolls für jede der Parteien, die an der Mehrparteienberechnung beteiligt ist. Eine Phase der Neuverteilung der geheimen Teile wird dann durchgeführt, wobei die geheimen Teile der Parteien an eine Untermenge der Parteien neu verteilt werden. Eine Phase der Neukombination der geheimen Teile wird durchgeführt, während der die Untermenge der Parteien die neu verteilten geheimen Teile neu kombiniert, um die geheimen Teile der nicht der Untermenge angehörenden Parteien wiederherzustellen. Eine Online-Phase des SPDZ-Protokolls wird dann durchgeführt, während der die Funktion in Bezug auf die privaten Eingaben der Parteien und unter Verwendung der geheimen Teile aller Parteien berechnet wird.

Description

  • VERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung mit der Seriennr. 62/680.364 mit dem Titel „METHOD AND SYSTEM FOR FAULT TOLERANT AND SECURE MULTIPARTY COMPUTATION WITH SPDZ“ von Zheng et al., eingereicht am 4. Juni 2018, deren Offenbarung durch Verweis vollständig hierin aufgenommen ist.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Mehrparteienberechnungs- (MPC-) Protokolle, insbesondere auf das SPDZ-(ausgesprochen „speedz“) MPC-Protokoll.
  • HINTERGRUND
  • In einem sicheren Mehrparteienberechnungs- (MPC-) Protokoll berechnen mehrere Parteien gemeinsam eine Funktion auf Grundlage ihrer privaten Eingaben und erfahren nur die Ausgabe der Funktion. Das SPDZ-Protokoll ist eines der praktischsten und aktiv sichersten MPC-Protokolle und erzielt Sicherheit gegen eine Vielzahl von korrumpierten Parteien mit böswilligen Absichten. Genauer gesagt arbeitet das SPDZ-Protokoll gemäß dem Vorverarbeitungsmodell: Ohne zukünftige Eingaben zu kennen, werden in der Offline-Phase die zeitaufwändigen Aufgaben zum Erzeugen von Tupeln durchgeführt; und in der Online-Phase werden die spezifischen Funktionen mit den privaten Eingaben durchgeführt und jene Tupel aus der Offline-Phase verwendet. Insbesondere ist SPDZ ein universelles MPC-Protokoll, das die gemeinsame Berechnung von arithmetischen Schaltungen ermöglicht.
  • Das SPDZ-Protokoll bietet zwar große Vorteile in Hinblick auf Sicherheit und Leistung, unterstützt aber keinerlei Fehlertoleranz: Es verlangt, dass alle Parteien in der Offline-Phase in der Online-Phase präsent sind. Das könnte aus Sicht des verteilten Systems problematisch werden, da nach der Offline-Phase ein oder mehrere Parteien nicht mehr verfügbar sein könnten. Der einfache Ansatz zur Lösung dieses Problems besteht darin, die Offline-Phase erneut durchzuführen, was jedoch nicht vielversprechend ist, da dadurch alle erzeugten Tupel (sowie private Eingabeteile, wenn SPDZ als Dienst genutzt wird, siehe Abschnitt 3.4) vergeudet werden.
  • Benötigt wird ein fehlertolerantes SPDZ-Protokoll, das sichere Mehrparteienberechnung ermöglicht, auch wenn manche Parteien während der Online-Phase nicht mehr verfügbar sind.
  • Figurenliste
    • 1 zeigt die Schritte des SPDZ-Protokolls, Share(cts, P1, ..., Pn) wobei cts = Encpk(s) öffentlich bekannt ist und P1, ..., Pn n für Parteien stehen.
    • 2 zeigt die Schritte des SPDZ-Protokolls Add([x1], [x2], ... , [xl]), wobei [xj] der Teil des Werts xj, 1 ≤ j ≤ l ist.
    • 3 zeigt den Schritt des SPDZ-Protokolls Mult([x], [y]), wobei [x] der Teil des Werts x ist und [y] der Teil des Werts y ist.
    • 4 den Algorithmus für ein ReShare-Protokoll für fehlertolerantes SPDZ gemäß der vorliegenden Offenbarung zeigt.
    • 5 zeigt den Algorithmus für ein ReCombine-Protokoll für fehlertolerantes SPDZ.
    • 6 zeigt eine Tabelle der Zwischenergebnisse, nachdem eine Partei den von ihr gehaltenen geheimen Teil an andere Parteien neu verteilt.
    • 7 zeigt eine Tabelle, die die Endergebnisse zeigt, nachdem jede Partei ihren geheimen Teil an die anderen Parteien neu verteilt hat.
    • 8 zeigt eine Tabelle, die das Endergebnis nach Durchführung des ReShare-Protokolls zeigt.
    • 9 zeigt den Algorithmus für die Phase der Neuverteilung der geheimen Teile, der auf dem ReShare-Protokoll basiert.
    • 10 zeigt den Algorithmus für die Phase der Neuverteilung der geheimen Teile, der auf dem ReCombine-Algorithmus basiert.
    • 11 zeigt eine schematische Darstellung der Architektur des SPDZ-Protokolls in Gegenüberstellung zu der Architektur des vorgeschlagenen fehlertoleranten SPDZ-Protokolls.
    • 12 zeigt eine Tabelle, die einen Vergleich des SPDZ-Protokolls und des vorgeschlagenen fehlertoleranten SPDZ-Protokolls zeigt.
    • 13 ist eine schematische Darstellung eines Systems, das konfiguriert ist, um sichere Mehrparteienberechnung unter Verwendung von SPDZ gemäß der vorliegenden Offenbarung durchzuführen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Für ein besseres Verständnis der Grundsätze der Offenbarung wird nun auf die in den Zeichnungen dargestellten und in der nachstehenden schriftlichen Beschreibung beschriebenen Ausführungsformen Bezug genommen. Es ist klar, dass dadurch keine Einschränkung des Schutzumfangs der Offenbarung beabsichtigt wird. Es ist auch klar, dass die vorliegende Offenbarung etwaige Änderungen und Modifikationen in Bezug auf die veranschaulichten Ausführungsformen umfasst und ferner Anwendungen der Grundsätze der Offenbarung umfasst, wie sie Fachleuten auf dem Gebiet, das die vorliegende Offenbarung betrifft, gewöhnlicherweise in den Sinn kommen würden.
  • Die vorliegende Offenbarung ist auf die Lösung des Problems der Fehlertoleranz für das SPDZ-Protokoll ausgerichtet. Ein Ziel der vorliegenden Offenbarung besteht darin, sicherzustellen, dass das SPDZ-Protokoll in der Lage ist, korrekt zu funktionieren, nachdem manche Parteien in der Online-Phase nicht mehr verfügbar sind. Wie nachstehend beschrieben, wird ein ReShare-Protokoll vorgeschlagen, in dem der durch jede Partei gehaltene geheime Teil (in Bezug auf einen geheimen Wert) auf andere Parteien neu verteilt wird, und ein ReCombine-Protokoll, in dem die neu verteilten geheimen Teile entsprechend den verfügbaren Parteien neu kombiniert werden. Auf Grundlage der beiden Protokolle werden eine Phase der Neuverteilung der geheimen Teile und eine Phase der Neukombination der geheimen Teile offenbart, die im SPDZ-Protokoll zwischen der Offline- und der Online-Phase angeordnet werden können. Das erweiterte SPDZ-Protokoll stellt das vielversprechende Fehlertoleranzmerkmal bereit, das sicherstellt, dass, auch wenn einige Parteien nach der Offline-Phase nicht mehr verfügbar sind, die übrigen Parteien die Online-Phase weiterhin korrekt durchführen können.
  • Wie hierin verwendet, bezieht sich der Begriff „Beaver-Tripel“ auf eine Menge von drei Werten (a, b, c), wobei a und b einheitlich nach dem Zufallsprinzip ausgewählt werden und c gleich dem Produkt von a multipliziert mit b ist: c = ab. Alle drei Zahlen im Beaver-Tripel gehören zu einem endlichen Körper Fp, wobei p ein Modulo-Wert ist. In einigen veranschaulichenden Ausführungsformen, bei denen p = 2n - 1, der endliche Körper Fp alle ganzen Zahlen in einem Bereich von [-2n/2, 2n/2 - 1] umfasst, wobei n 64, 80 oder 128 ist, wobei auch andere endliche Körper verwendet werden können. Wie nachstehend näher beschrieben ist, erzeugen die Parteien in einem modifizierten SPDZ-Protokoll während einer Offline-Rechenphase Beaver-Tripel und verteilen Teile der Beaver-Tripel sicher für die spätere Verwendung im Rahmen einer Online-Rechenphase für die Mehrparteienberechnung innerer Produkte.
  • Wie hierin verwendet, beziehen sich die Begriffe „Homomorphismus“ und „Homomorphie“ auf eine Eigenschaft mancher kryptografischer Systeme, in denen mathematische Operationen auf verschlüsselte Werte angewendet werden können, um ein verschlüsseltes Ergebnis zu erzeugen, das dem Ergebnis der Durchführung derselben Operationen mit den Klartextwerten entspricht, ohne den Inhalt der verschlüsselten Werte oder das Ergebnis der Rechenvorrichtung, die die Operation durchführt, zu offenbaren. So speichert beispielsweise der verschlüsselte Wert c' = a' + b', wenn zwei Werte a = 1 und b = 2 und ihre jeweiligen verschlüsselten Entsprechungen a'und b'in einem kryptografischen System gegeben sind, das additive Homomorphismen bereitstellt, eine verschlüsselte Darstellung der Zahl „3“ (1 + 2 = 3). Der Wert c' kann von einem Computer berechnet werden, der die Klartextwerte von a' oder b' nicht bestimmen kann, und in einigen Fällen kann der Computer, der c' erzeugt, c'entschlüsseln, um die Klartextsumme (3) abzurufen, ohne in der Lage zu sein, die ursprünglichen Klartextwerte von a oder b zu bestimmen. Subtraktiver Homomorphismus gilt auf ähnliche Weise für eine Operation, bei der zwei verschlüsselte Werte (z.B. a = 2, b = 1, c' = a' - b', Entschlüsselung (c) = 1) subtrahiert werden, und in den hierin beschriebenen Ausführungsformen entspricht subtraktiver Homomorphismus auch additivem Homomorphismus, bei dem ein oder mehrere ausgewählte Werte negiert werden, um eine Additionsoperation durchzuführen, die der Subtraktion entspricht. Auf ähnliche Weise ist in einem kryptografischen System, das multiplikativen Homomorphismus bereitstellt, das Produkt von zwei verschlüsselten Werten (a' und b) ein weiterer verschlüsselter Wert (c), der in denselben Wert entschlüsselt wird wie das Produkt von den beiden Klartextwerten (a und b) (z.B. a = 2, b = 3, c' = (a'b'), Entschlüsselung (c) = 6). In den hierin beschriebenen Ausführungsformen bezieht sich die Notation
    Figure DE102019208032A1_0001
    auf eine Addition zwischen zwei verschlüsselten Werten in einem kryptographischen System, das additiven Homomorphismus bereitstellt,
    Figure DE102019208032A1_0002
    bezieht sich auf eine Subtraktionsoperation zwischen zwei verschlüsselten Werten in einem kryptographischen System, das subtraktiven Homomorphismus bereitstellt, wobei Subtraktion als Addition eines negierten Wertes betrachtet werden kann, und die Darstellung   bezieht sich auf ähnliche Weise auf eine Multiplikation zwischen zwei verschlüsselten Werten in einem kryptographischen System, das multiplikativen Homomorphismus bereitstellt.
  • Wie hierin verwendet, bezieht sich der Begriff λ auf einen Nachrichtenauthentifizierungscode- (MAC-) Kryptoschlüssel, der aus dem endlichen Körper Fp (λ ∈ Fp) ausgewählt ist. Jeder der Parteien Pi, 1 ≤ i ≤ n, die den inneren Produktvorgang durchführen, wird ein individueller Teil λi des gesamten Geheimnisses λ bereitgestellt, wobei λ die Summe aller einzelnen Geheimnisse (λ = λ1 + ... + λn) ist. Keine der Parteien hat Zugriff auf den vollständigen MAC-Kryptoschlüssel λ. Der MAC-Kryptoschlüssel λ kann durch Multiplikation λx einen verschlüsselten MAC-Wert erzeugen, der einem Nachrichtenauthentifizierungscode für einen Wert x entspricht, und, wie nachstehend beschrieben, kann der MAC-Schlüssel λ selbst unter Verwendung eines öffentlichen Schlüssels verschlüsselt werden, um einen verschlüsselten Ciphertext des MAC-Schlüssels ctλ zu erzeugen, der von mehreren Parteien gemeinsam genutzt werden kann. Der verschlüsselte MAC-Wert wird zur Überprüfung von Informationen verwendet, die von anderen Parteien empfangen werden, und um Abwehr gegen Parteien mit böswilligen Absichten zu leisten, die gemeinsam genutzte Daten während der Mehrparteienberechnung ändern. Bei einigen Ausführungsformen, die hierin beschrieben sind, kann die Verwendung des MAC-Schlüssels λ in Konfigurationen von Mehrparteienberechnungssystemen unterlassen werden, die den Schutz der ursprünglichen Eingabedaten gewährleisten, aber den Teilnehmern vertrauen, dass diese während der Mehrparteienberechnungen akkurate Datenausgaben bereitstellen.
  • Wie hierin verwendet, bezieht sich der Begriff ε = (Enc, Dec) auf ein asymmetrisches Verschlüsselungssystem für öffentliche Schlüssel, das zumindest additiven/subtraktiven und multiplikativen Homomorphismus mit Schwellenentschlüsselung bereitstellt. Der Begriff sk bezieht sich auf den privaten Schlüssel in ε, der für die Entschlüsselung von Ciphertext mit der Dec-Funktion verwendet wird, und der Begriff pk bezieht sich auf den öffentlichen Schlüssel in ε, der für die Verschlüsselung von Klartext verwendet wird, um unter Verwendung der Enc-Funktion Ciphertext zu erzeugen. Jede der Parteien Pi, 1 ≤ i ≤ n, die die Mehrparteienberechnung des inneren Produkts durchführt, hat Zugriff auf den vollständigen öffentlichen Schlüssel pk und einen Teil des privaten Schlüssels ski, wobei sk = sk1 + ... + skn keine der Parteien Zugriff auf den vollständigen privaten Schlüssel sk hat.
  • Wie hierin verwendet, bezeichnet die Notation [] für einen Wert (z.B. [x]), einen „Teil“ des Werts oder dass mehrere Parteien jeweils über einen Teil [x] des Gesamtwerts x verfügen, wobei der Zugriff auf einen Teil [x] keine Rückschlüsse auf den tatsächlichen Wert von x zulässt. In den nachstehend beschriebenen Ausführungsformen ist der Wert x ein verschlüsselter Ciphertext-Wert, und die additiven homomorphen Eigenschaften der hierin verwendeten kryptographischen Systeme ermöglichen es, den Gesamtwert x in einzelne Teile mit einem Gesamtwert von x aufzuteilen. Bei der Berechnung von inneren Produkten aus zwei Vektoren, die mehrere Elemente aufweisen, stellt jedes Element eines Vektors einen Wert dar, der von zwei oder mehreren Knoten auf sichere Weise gemeinsam genutzt wird. Mathematisch ist [x]={(x11(x)),...,(xnn(x))} für insgesamt n Parteien Pi, 1 ≤ i ≤ n, wobei jeder Teil[xi] ein Teil des Gesamtwertes [x] ist, wobei gilt x = x1 + x2 ... + xn, der Term yi(x) für jede Partei ein anderer individueller Teil des Wertes Hx, der die Ausgabe des Kryptoschlüssels λ multipliziert mit dem Wert x (Hx= λx) ist, und sind die einzelnen Teile γi(x), ist die Summe Hx = γ1(x) + γ2(x) + ... + γn(x). Jede Partei speichert einen Teilwert [x] als eines der Tupel (xi, γi(x)) und gibt dieses Tupel nicht direkt an andere Parteien in der Gruppe weiter.
  • Das SPDZ-Protokoll verwendet einen Ansatz mit zwei Phasen, der eine „Offline“-Phase von Berechnungen umfasst, die mehrere Parteien für den sicheren Austausch von zufällig generierten Zahlen, die als Beaver-Tripel bekannt sind, untereinander verwenden. Die Beaver-Tripel sind nicht die eigentlichen Daten, die für die Knoten von Interesse sind, sondern werden in der nachfolgenden Online-Phase verwendet, um die Berechnung gemeinsamer Ergebnisse zu ermöglichen und gleichzeitig zu verhindern, dass jede Partei die privaten Daten von einer oder mehreren weiteren Parteien ermitteln kann. Die Offline-Phase leitet Berechnungen zur Berechnung und gemeinsamen Nutzung der Beaver-Tripel ein, wobei dies Verschlüsselungsoperationen umfasst, und gilt im Allgemeinen als die rechenintensivere Phase des SPDZ-Protokolls. In einer zweiten „Online“-Phase nutzen die Parteien die Beaver-Tripel und die eigentlichen Daten von Interesse, um sichere Mehrparteienberechnungen durchzuführen, einschließlich der oben beschriebenen Berechnung des inneren Produkts. Während das SPDZ-Protokoll bei der Durchführung von Berechnungen des inneren Produkts effektiv ist, leitet die große Anzahl von Multiplikationsoperationen, die bei der Berechnung des inneren Produkts während der Online-Phase stattfinden, zusätzliche Kommunikationsoperationen ein, die jeweils den Einsatz von Beaver-Tripeln erfordern und aufgrund der zugrunde liegenden Operationen, die SPDZ für Mehrparteienmultiplikationen implementiert, Rechenaufwand unter den Parteien erzeugen.
  • Vor der Offline- und Online-Phase müssen Kryptoschlüssel generiert werden, einschließlich öffentlicher kryptographischer Parameter, öffentlicher Schlüssel, privater Schlüsselteile (im Besitz jeder Partei) und MAC-Schlüsselteile (im Besitz jeder Partei). Insbesondere erhält jede Partei einen von n Teilen des MAC-Schlüssels, wobei n die Gesamtzahl der Parteien ist. Angenommen, dass λ der MAC-Schlüssel ist und λ1, + ... + λn geheime (MAC-) Teile sind, besitzt die Partei Pi, 1 ≤ i ≤ n, den geheimen Teil λi. Es ist anzumerken, dass dieser Schritt nur einmal ausgeführt wird, es sei denn, der MAC-Schlüssel muss aktualisiert werden.
  • Während der Offline-Phase des SPDZ-Protokolls wird eine ausreichende Anzahl von Multiplikationtripeln, insbesondere Beaver-Multiplikationstripeln, erzeugt, die es den Parteien ermöglichen, Produkte zu berechnen. Die Beaver-Multiplikationstripel bestehen aus drei Werten ([a], [b], [c]), die jeweils Teile von a, b, c sind, wobei a, b, c ∈ Fp zufällige Werte und c = ab sind. Diese Werte können durch den Kryptoanbieter generiert werden, und die daraus resultierenden Teile können vor der Online-Phase auf die Parteien aufgeteilt werden.
  • Bei einem Ciphertext cts = Encpk(s) für manche Werte s kann das SPDZ-Protokoll Share den geheimen Teil von s sicher verteilen, wie in 1 dargestellt. Protokoll Share(cts, P1,...,Pn), wobei cts = Encpk(s) öffentlich bekannt ist und P1,...,Pn für n Parteien stehen. Unter Bezugnahme auf 1 erzeugt jede Partei einen Wert fi ∈ Fp, der nach dem Zufallsprinzip einen einheitlichen Wert hat, und verschlüsselt ihn zu einem Ciphertext ctf1 = Encpk(fi) (Block 100). Alle Parteien verbreiten dann ihre Ciphertexte, so dass jede Partei den Ciphertext cts+f = cts ctf1 ... ctfn berechnen kann. (Block 102). Alle Parteien entschlüsseln dann gemeinsam cts+f mit ihrem eigenen geheimen Teil des privaten Schlüssels sk und erhalten s + f, wobei gilt f = i = 1 n f i
    Figure DE102019208032A1_0003
    (Block 104). Partei P1 legt den geheimen Teil von s als s + f - f1 fest und Partei Pi(i ≠ 1) legt den geheimen Teil von s als -fi fest (Block 106).
  • Mit dem Protokoll Share und unter der Annahme, dass ctλ = Encpk(λ) der Ciphertext des MAC-Schlüssels λ ist, wird der Prozess des Generierens der Tripel ([a], [b], [c]) durchgeführt. Die folgenden Schritte können zum Generieren von [a] angewendet werden:
    • • Partei Pi wählt einen Wert ai ∈ Fp nach dem Zufallsprinzip einheitlich aus und verschlüsselt diesen zu cta i = Encpk(ai)
    • • Eine ausgewählte Partei berechnet cta = cta 1 ... cta n sowie ctλa = ctλ   cta.
    • • Alle Parteien zusammen führen Share(ctλa, P1, ..., Pn) aus, so dass Partei Pi, 1 ≤ i ≤ n einen geheimen Teil γi(a) von λa hält. Somit hält Partei i (ai, γi(a)), wobei a = a1 + ··· + an und λ × a = γ1(a) + ··· + γn(a).
  • Dieselben Schritte, die angewendet werden, um [a] zu generieren, werden wiederholt, um [b] zu generieren. Der Wert [c] wird so generiert, dass c = ab. Angenommen cta und ctb aus den Schritten 1 und 2, so gilt ctc = cta   ctb. Das Protokoll Share(ctc, P1, ..., Pn) wird ausgeführt, so dass Partei i den geheimen Teil ci von c hält. Angenommen c + f bei der Ausführung eines Protokolls Share in Bezug auf ctc, kann ein neuer Ciphertext ct'c = Encpk(c+f) ctf 1 ... ctfn berechnet werden, wobei Encpk(c + f) ein neuer Ciphertext ist, in dem c + f sowie ctλc = ctλ   ctc verschlüsselt werden. Alle Parteien zusammen führen Share(ctλc, P1, ..., Pn) aus, so dass Partei Pi, 1 ≤ i ≤ n einen geheimen Teil γi(c) von λc hält. Letztlich hält Partei i (ci, γi(c)), so dass gilt c = c1 + ... + cn und λc = γi(c) + ... + γn(c).
  • Wie auf dem Gebiet der Erfindung bekannt ist, erfordert das Generieren von Tripeln die Durchführung von Operationen mit öffentlichem Schlüssel (d.h. homomorphe Addition und Multiplikation über Ciphertext), weshalb die Offline-Phase für eine große Anzahl von Tripeln zeitaufwändig ist. Es ist anzumerken, dass ein Beaver-Multiplikationstripel eine Art Tupel ist; mehrere andere Tupel, wie z.B. inverse Tupel ([x], [1/x]), liegen auch im Protokoll SPDZ für andere Zwecke vor.
  • Da jede arithmetische Schaltung als eine Reihe von Additions- und Multiplikations-Gates dargestellt werden kann, konzentriert sich die Online-Phase darauf, wie man die Addition und Multiplikation sicher berechnet. Eine Mehrparteienaddition ermöglicht es mehreren Parteien, verschiedene Teile von / verschiedenen Werten zu addieren, um eine Summe zu erzeugen, und die Mehrparteienaddition umfasst auch Subtraktion durch das Negativsetzen der entsprechenden Werte, um eine Subtraktion durchzuführen. Eine Ausführungsform des SPDZ-Protokolls Add ist in 2 dargestellt. In einem einfachen Beispiel, wobei gilt / = 2, werden durch die Mehrparteienaddition die Teile von zwei Zahlen addiert, obwohl durch eine Mehrparteienaddition auch die Teile von mehr als zwei Zahlen addiert werden können. Die Terme [x1], [x2], ..., [xl] stellen jeweils Teile von l verschiedenen Werten x1,x2, ..., xl dar, die im Rahmen des Mehrparteienadditionsprozesses addiert werden. Im Kontext des vorliegenden Dokuments gibt die hochgestellte Darstellung keinen mathematischen Exponenten an. Wie oben beschrieben, umfasst jeder Teil ein Tupel (xi, γi(x)). Während der Mehrparteienaddition berechnet jede Partei einen Wert zi, der auf einer Summe der xi Terme aus allen Teilen basiert: z i = x i 1 + x i 2 + + x x l
    Figure DE102019208032A1_0004
    und ein Wert γi(z), der auf einer Summe der γi(x) Terme aus allen Teilen basiert: γi(z) = γi(x1) + γi(x2) + ··· + γi(xl). Diese Operationen ermöglichen es jeder der Parteien Pi, 1 ≤ i ≤ n, einen Teil [zi] des Gesamtsummenwerts z und den Teil γi(z) des MAC-Werts ctλz zu haben, wobei jede Partei das Tupel (zi, γi(z)) hält. Wie oben angemerkt, hat jede Partei einen Teil [zi] der Summe z, aber keine Partei hat Zugang zum tatsächlichen Summenwert von z, wodurch sichergestellt wird, dass selbst in einem Zweiparteienadditionsprozess eine Partei den Wert der anderen Partei nicht bestimmen kann, wenn die Summe und der Klartext eines der beiden Werte, die addiert werden, bekannt sind.
  • In der oben beschriebenen Mehrparteienaddition ist die Rechenkomplexität für jede Addition
    Figure DE102019208032A1_0005
    (l) für l Teile, die addiert werden, und die Berechnungen umfassen vergleichsweise einfache Additionsoperationen, ohne die Verwendung des öffentlichen Schlüssels pk für weitere Verschlüsselungsoperationen zu erfordern. Darüber hinaus entfällt nach der Verteilung der Teile [x1], [x2], ..., [xl] an die Parteien die Notwendigkeit der Kommunikation zwischen den Parteien oder der Verwendung eines Beaver-Tripels zur Berechnung des Teils der Summe [zi] für jede Partei.
  • Eine Mehrparteienmultiplikation aktiviert jene Parteien, die die Teile [x] und [y] von zwei Werten x und y haben. Das Protokoll Mult in 3 zeigt, wie die Multiplikation sicher durchgeführt werden kann. Im Gegensatz zur Mehrparteienaddition, bei der Teile von mehr als zwei Werten addiert werden können, wird die Mehrparteienmultiplikation auf genau zwei Werte angewendet. Der Mehrparteienmultiplikationsprozess verwendet ein Beaver-Tripel ([a],[b],[c]), das in einer Offline-Phase geteilt wurde, die nachstehend beschrieben ist. Während des Mehrparteienmultiplikationsprozesses verwendet jede Partei Pi, 1 ≤ i ≤ n den oben beschriebenen Additionsprozess, um Teile der Eingabe [x] und einen negierten Beaver-Tripel-Teilwert [a] zu addieren: Add([xi], - [ai]). Auf ähnliche Weise verwendet jede Partei den Additionsprozess, der oben beschrieben ist, um Teile der Eingabe [y] und einen negierten Beaver-Tripel-Teilwert [b] zu addieren: Add([yi], -[bi]). Jede Partei verbreitet die Ergebnisse der beiden oben beschriebenen Additionen an alle der anderen Parteien: □ = □ - □ und □ = □ - □. Wie oben beschrieben, zeigen die Ergebnisse ε und ρ wegen des additiven Homomorphismus die Gesamtdifferenzen zwischen den Tupeln von x und a und den Tupeln von y und b. Der Mehrparteienmultiplikationsprozess wird unter Verwendung des ci-Werts jedes Teils [c] in dem Beaver-Tripel fortgesetzt, wobei jede Partei zwei lokale Werte zi und γi(z) erzeugt: z i = { c i + ε b i + ρ a i + ε ρ ( i = 1 ) c i + ε b i + ρ a i ( i 1 )
    Figure DE102019208032A1_0006
    und γ i ( z ) = γ i ( c ) + ε γ i ( b ) + ρ γ i ( a ) + λ i ε ρ
    Figure DE102019208032A1_0007
  • Der Mehrparteienmultiplikationsprozess ermöglicht es jeder Partei, einen Teil [zi] des Produkts der ursprünglichen Werte x und y (z = xy) zu halten, wobei erneut gilt [zj] = (zi, γi(z)), Wie bei dem Mehrparteienadditionsprozess verhindert der Teil [zi] aus dem Multiplikationsprozess, selbst wenn es nur zwei Parteien gibt, die an einer Mehrparteienmultiplikation teilnehmen und von denen angenommen wird, dass jede Partei Zugriff auf eine der Klartexteingaben x oder y hat, dass beide Parteien den Wert bestimmt, den die jeweils andere Partei hält, da der Teil [zi] nicht den echten Produktwert z offenbart. Der Mehrparteienmultiplikationsprozess erfordert sowohl Kommunikation zwischen den Parteien, um gemeinsame Werte ε und ρ zu erzeugen. Zusätzlich dazu braucht der Multiplikationsprozess die Teile ([a],[b],[c]) eines Beaver-Tripels, wobei jedes Beaver-Tripel nur einmal verwendet wird.
  • Das geheime Teilungsschema im SPDZ-Protokoll ist n aus n additiven geheimen Teilungsschemata. Gemäß dem additiven geheimen Teilungsschema wird unter Annahme eines geheimen Werts α und einer Reihe von Parteien {P1, ..., Pn} ein einheitlicher Wert α1, ..., αn-1 nach dem Zufallsprinzip ausgewählt, und an wird so ausgewählt, dass α1 + ··· + αn = α erfüllt ist, wobei α an die Partei Pi verteilt wird. Infolgedessen sind n Parteien (d.h. alle Parteien) erforderlich, um den geheimen Wert α wiederherzustellen.
  • Um maximal n - t nicht verfügbare Parteien zu tolerieren, sollten t verfügbare Parteien in der Lage sein, die geheimen Teile dieser n - t nicht verfügbaren Parteien wiederherzustellen. Basierend auf dieser Beobachtung wird ein Protokoll ReShare vorgeschlagen, bei dem jede Partei den durch sie gehaltenen geheimen Teil an eine beliebige Untermenge von t Parteien neu verteilt, und das Protokoll ReCombine, bei dem t Parteien die geheimen Teile der nicht verfügbaren Parteien wiederherstellen und dann bei Bedarf den geheimen Wert rekonstruieren können. Auf Grundlage der beiden Protokolle werden eine Phase der Neuverteilung der geheimen Teile und Phase der Neuverteilung der geheimen Teile vorgeschlagen, die zwischen der Offline- und der Online-Phase des SPDZ-Protokolls angeordnet werden können, so dass das resultierende SPDZ-Protokoll über ein Fehlertoleranzmerkmal verfügt.
  • Das sichere Protokoll ReShare ermöglicht es zwei oder mehr Knoten, Teile eines Werts zu erzeugen, der allen Knoten bereits bekannt ist (d.h. der gesamte Wert steht den Knoten bereits „gemeinsam“ zur Verfügung und durch diesen Prozess werden Teile des Gesamtwerts „neu aufgeteilt“), wobei jeder Knoten einen Teil an dem Gesamtwert hält, ohne den Teil zu kennen, den irgendein anderer Knoten hält. In den hierin beschriebenen Ausführungsformen ist die Operation der neuen Aufteilung („ReShare“) definiert als: Reshare (cts, P1, ...,Pn), wobei ctsein verschlüsselter Ciphertext (ct) eines geheimen Werts s ist und P1...Pn stehen für die n Parteien, die an der Neuaufteilungsoperation teilnehmen. Der verschlüsselte Ciphertext-Wert ct ist allen Parteien als Ganzes bekannt, und die Neuaufteilungsoperation ermöglicht es den Parteien, jeweils einen Teil des ursprünglichen Datensatzes zu empfangen, ohne die Teile der anderen Knoten zu kennen, selbst in einem Zwei-Knoten-System. Die Neuverteilungsoperation beginnt mit der Verschlüsselung des geheimen Werts s unter Verwendung des öffentlichen Schlüssels pk zur Erzeugung eines Ciphertexts cts = Encpk(s), und der Ciphertext cts wird an alle der n Parteien in der Gruppe der Parteien übertragen, die einen verschlüsselten Teil des geheimen Werts s empfangen. Jede Partei i in den n Parteien erzeugt einen einheitlichen Zufallswert fi ∈ Fp und verwendet den öffentlichen Schlüssel pk, um den Zufallswert zu verschlüsseln, um einen Ciphertext des Zufallswerts zu erzeugen: ctfi = Encpk(fi). Jede Partei überträgt den jeweiligen Ciphertext-Wert ctfi über ein Datennetzwerk an alle anderen Parteien, und jede Partei berechnet eine Ciphertext-Summe cts+f aus dem verschlüsselten Wert von s und den einzelnen verschlüsselten Werten ctfi: cts+f = cs ctf 1 ctf 2 ... ctf n wobei der Operator erneut die Addition von Ciphertexten in einem kryptographischen System anzeigt, das additiven Homomorphismus bereitstellt. Die Parteien führen dann einen kooperativen Entschlüsselungsprozess unter Verwendung der einzelnen Teile des privaten Schlüssels ski durch, um den Wert ctfi zu entschlüsseln und die Summe von s + f zu erhalten, wobei f die Summe aller einzelnen Zufallswerte fi ist. Die endgültigen Teile unter den n Parteien für Partei 1 [s1] = s + f - f1 sind und für jede der anderen i Parteien [si] = -fi sind.
  • Das ReShare-Protokoll ist in 4 dargestellt. In der ersten Schleife werden die durch jede Partei gehaltenen geheimen Teile über authentifizierte vertrauliche Kanäle an alle verfügbaren Parteien neu verteilt. In der zweiten Schleife werden die neu verteilten geheimen Teile summiert und die Summen in Verbindung mit den eindeutigen Identifikatoren, die jeder Partei für jede Partei zugewiesen werden, gespeichert. Die Aggregatoperation reduziert hier den Speicheraufwand. Es ist anzumerken, dass die Bezeichnungszeichenfolge „Label“ verwendet wird, um die Parteien in der Untermenge und die zugehörigen neu verteilten geheimen Teile eindeutig zu identifizieren und die Rekonstruktion von geheimen Teilen zu erleichtern. Es ist anzumerken, dass jeder geheime Teil auf die Untermengen von t Parteien in additiver Weise neu verteilt wird, weshalb alle t-1 Parteien (mit Ausnahme der Partei, die diesen geheimen Teil hält) den geheimen Teil nicht wiederherstellen können. Bei n Parteien ist die Anzahl der Untermengen mit t Parteien ( n | | t ) ;
    Figure DE102019208032A1_0008
    daher ist die Anzahl der Untermengen mit einer bestimmten Partei ( ( n | | t ) ) /n= ( ( n 1 ) | | t )
    Figure DE102019208032A1_0009
    Jede Partei muss somit ( ( n 1 ) | t )
    Figure DE102019208032A1_0010
    1 ) | | t)
    Figure DE102019208032A1_0011
    neu verteilte geheime Teile und die entsprechenden Label speichern.
  • Protokoll ReCombine ist in 5 dargestellt. Das Protokoll ReCombine ermöglicht es t Parteien, die durch sie gehaltenen geheimen Teile und neu verteilte geheime Teile zu verwenden, um geheime Teile des geheimen Werts zu berechnen. Jede Partei Pi, 1 ≤ i ≤ n hält den geheimen Teil αi und die Menge der neu verteilten geheimen Teile AggSeti.
  • Ein Beispiel wird nachstehend erläutert, um das Protokoll ReShare und ReCombine zu veranschaulichen. Angenommen, es gibt vier Parteien (d.h. n = 4), die die geheimen Teile x1, x2, x3 bzw. x4 halten, so dass x = x1 + x2 + x3 + x4, wobei x der geheime Wert ist. Angenommen, das System erfordert die Toleranz von maximal zwei nicht verfügbaren Parteien (d.h. n - t = 2), was bedeutet, dass beliebige t = 2 Parteien in der Lage sein sollten, den geheimen Wert zu rekonstruieren.
  • Ein Beispiel wird nachstehend erläutert, um das Protokoll ReShare und ReCombine zu veranschaulichen. Angenommen, es gibt vier Parteien (d.h. n = 4), die die geheimen Teile x1, x2, x3 bzw. x4 halten, so dass x = x1 + x2 + x3 + x4, wobei x der geheime Wert ist. Angenommen, das System erfordert die Toleranz von maximal zwei nicht verfügbaren Parteien (d.h. n - t = 2), was bedeutet, dass beliebige t = 2 Parteien in der Lage sein sollten, den geheimen Wert zu rekonstruieren.
  • 6 zeigt eine Tabelle, die die Zwischenergebnisse anführt, nachdem die Partei P1 den durch sie gehaltenen geheimen Teil x1 an andere Parteien neu verteilt. Es ist anzumerken, dass „Label“ die Zeichenkette ist, die die Indizes aller Parteien konkateniert, und sie kann jede Untermenge von t Parteien eindeutig identifizieren. In dem Beispiel ist die Menge aller Untermengen mit 2 Parteien t = 2, da {{P1, P3}, {P2, P4}, {P3, P4}}. Die Summe der neu verteilten Teile in derselben Zeile entspricht dem geheimen Teil x1. Beispielsweise x1,2,Label 2,3 + x1,3,Label 2,3 = x1,2,Label 2,3 + x1,4,Label 2,4 = x1 und x1,3,Label 3,4 + x1,4,Label 3,4 = x1. 7 zeigt das Endergebnis, nachdem alle Parteien die durch sie gehaltenen geheimen Teile an die anderen Parteien neu verteilt haben.
  • 8 zeigt das Endergebnis nach dem Durchführen des Protokolls ReShare. Gemäß 8 hält jede Partei drei neu verteilte geheime Teile und die jeweiligen Labels sowie den durch sie gehaltenen geheimen Teil. Dementsprechend können in diesem Fall zwei beliebige Parteien den geheimen Wert konstruieren. Angenommen, Parteien P1 und P2 sind online, aber Parteien P3 und P4 sind nicht verfügbar. Mit dem Protokoll ReCombine berechnen die Parteien P1 und P2 x1 + x3,1,Label 1,2 + x4,1,Label 1,2 bzw. x2 + x3,2,Label 1,2 + x4,2,Label 1,2 . Es ist ersichtlich, dass diese beiden lokal berechneten Werte den geheimen Wert x wiederherstellen können, da x3,1,Label 1,2 + x3,2,Label 1,2 = x3, x4,1,Label 1,2 + x4,2,Label 1,2 = x4 und x1 + x2 + x3 + x4 = x.
  • Nach dem Ausführen der Offline-Phase müssen zwei verschiedene Arten von Datenteilen neu verteilt werden: Kryptoschlüsselteile (d.h. private Schlüsselteile und MAC-Schlüsselteile) und die Tupelteile. Für die Kryptoschlüsselteile werden nur die MAC-Schlüsselteile berücksichtigt, da private Schlüsselteile in der Online-Phase nicht verwendet werden. Es ist anzumerken, dass für jeden Tupelteil jedes Element innerhalb des von den Parteien gehaltenen Tupels in der Form [x] vorliegt, die aus dem geheimen Datenteil und dem MAC-Wertteil besteht. Daher muss das Protokoll ReShare nur auf den geheimen Datenteil bzw. den MAC-Wertteil angewandt werden. 9 beschreibt die Phase der Neuverteilung der geheimen Teile, in der die MAC-Schlüsselteile und Tupelteile, die in der Offline-Phase erzeugt werden, neu verteilt werden.
  • Während der Phase der Neukombination der geheimen Teile, die in 10 dargestellt ist, wird das Protokoll ReCombine angewandt, um den MAC-Schlüsselteil und Tupelteile zu berechnen. Es ist anzumerken, dass es möglich ist, dass mehr als t Parteien verfügbar sind, aber nur t Parteien ausgewählt werden müssen.
  • Wie in 11 dargestellt, kann das fehlertolerante SPDZ-Protokoll in Anbetracht der beiden oben beschriebenen Phasen aufgebaut werden, indem die oben erläuterte Phase der Neuverteilung der geheimen Teile und die oben erläuterte Phase der Neukombination der geheimen Teile zwischen der Offline- und der Online-Phase integriert werden. Es ist anzumerken, dass vor der Durchführung der Phase der Neukombination der geheimen Teile t Parteien ausgewählt werden müssen. Aus diesem Grund müssen t Parteien verfügbar sein.
  • Ausgehend von den Parametern n (d.h. der Gesamtanzahl der Parteien) und t (d.h. der Mindestanzahl verfügbarer Parteien) werden folgende Größen berücksichtigt, um das SPDZ-Protokoll mit dem fehlertoleranten SPDZ-Protokoll zu vergleichen:
    • • Speicherverbrauch: der Speicherverbrauch jeder Partei für das Speichern eines geheimen Werts.
    • • Anzahl der Parteien mit böswilligen Absichten: die Anzahl von Parteien mit böswilligen Absichten, die anwesend sein dürfen, um die Sicherheit des Protokolls zu gewährleisten.
    • • Fehlertoleranz: die Anzahl verfügbarer Parteien, die anwesend sein dürfen, um die Korrektheit des Protokolls zu gewährleisten.
  • 12 zeigt den Vergleich zwischen den beiden Protokollen. Es ist ersichtlich, dass das Fehlertoleranzmerkmal für das fehlertolerante SPDZ (d.h. n - t vs. 0 für SPDZ) um den Preis erreicht wird, dass der Speicherverbrauch erhöht (d.h. ( n 1 t ) + 1
    Figure DE102019208032A1_0012
    vs.n-1 für SPDZ) und die Anzahl der im Protokoll zulässigen Parteien mit böswilliger Absicht reduziert wird (d.h. t - 1 vs. n - 1 für SPDZ). Der Wert n - t sollte sorgfältig ausgewählt werden, da der Speicherverbrauch sich fast exponentiell zu dem Wert verhält.
  • In dem Abschnitt oben wird angenommen, dass die teilnehmenden Parteien nicht nur die Offline- und Online-Phasen durchführen, sondern auch ihre privaten Eingaben für die Berechnung bereitstellen. Das oben beschriebene fehlertolerante SPDZ-Schema kann auch als Dienst implementiert werden, bei dem mehrere Dienstanbieter viele dedizierte Server hosten, die für die Durchführung der Offline- und Online-Phase verantwortlich sind, und Endnutzer ihre privaten Eingaben in Form von geheimen Teilen hochladen und sie auf mehreren dedizierten Servern speichern. Es ist anzumerken, dass die gespeicherten geheimen Eingabeteile in den dedizierten Servern auch in Form von [x] = {(x1, γ1(x)), ..., (xn, γn(x))} vorliegen, wobei die Partei Pi, 1 ≤ i ≤ n das Tupel (x1, γ1(x)) hält, so dass x = x1 + ... + xn und λx = γ1(x) + ··· + γn(x), und λ der MAC-Schlüssel ist. Aus diesem Grund ist es weiterhin zulässig, Protokoll ReShare und ReCombine auf private Eingabeteile in der Phase der Neuverteilung der geheimen Teile und der Phase der Neukombination der geheimen Teile anzuwenden, so dass das erweiterte SPDZ-Protokoll gemäß diesem Modell Fehlertoleranz bietet.
  • 13 zeigt ein exemplarisches System 100 für die Durchführung von Mehrparteienberechnungs- (MPC-) Protokolle unter Anwendung der oben beschriebenen erweiterten SPDZ-Protokolle. Das System umfasst eine Vielzahl von Computerknoten 104A und 104B, die über ein Datennetzwerk 150 kommunikativ miteinander verbunden sind. Im System 100 ist jeder der Knoten 104A und 104B eine Partei in den hierin beschriebenen SPDZ-Prozessen. Jeder Knoten ist eine Rechenvorrichtung, die als eine einzelne Partei in den hierin beschriebenen sicheren Mehrparteienberechnungsprozessen agiert, und der Begriff „Knoten“ wird in den nachstehend beschriebenen Ausführungsformen synonym mit dem Begriff „Partei“ verwendet. 13 zeigt den Knoten 104A im Detail, und der Knoten 104B ist auf ähnliche Weise mit verschiedenen Sätzen gespeicherter Daten konfiguriert, um eine sichere Mehrparteienberechnung eines inneren Produkts unter Anwendung der hierin beschriebenen Ausführungsformen zu implementieren. Während 13 ein System mit zwei Knoten 104A - 104B zur Veranschaulichung darstellt, können die hierin beschriebenen Ausführungsformen auch von Gruppen von drei oder mehr Knoten durchgeführt werden.
  • Unter ausführlicherer Bezugnahme auf den Knoten 104A umfasst der Knoten einen Prozessor 108, der mit einer Netzwerkschnittstellenvorrichtung 112 und einem Arbeitsspeicher 120 operativ verbunden ist. Der Prozessor 108 ist typischerweise eine zentrale Verarbeitungseinheit (CPU) mit einem oder mehreren Verarbeitungskernen, die gespeicherte Programmbefehle 124 in dem Arbeitsspeicher 120 ausführen, um die hierin beschriebenen Ausführungsformen zu implementieren. Weitere Ausführungsformen des Prozessors 108 verwenden jedoch andere Verarbeitungselemente anstelle von oder zusätzlich zu einer CPU, einschließlich Graphikverarbeitungseinheiten (GPU), feldprogrammierbare Gate-Anordnungen (FPGA), anwendungsspezifische integrierte Schaltungen (ASIC), digitale Signalprozessoren (DSP) und jede andere Logikvorrichtung, die konfiguriert ist, um die hierin beschriebenen Operationen durchzuführen. In manchen Ausführungsformen implementiert der Prozessor 108 einen Hardware-Zufallszahlenzahlengenerator (RNG) oder verwendet einen Software-Zufallszahlengenerator oder Pseudozufallszahlengenerator (PRNG) zur Erzeugung der Zufallswerte. In der Beschreibung hierin bezieht sich jeder Verweis auf das Erzeugen eines Zufallswerts oder die Verwendung eines Zufallswerts auf den Betrieb eines RNG oder PRNG zur Erzeugung eines Werts einheitlich nach dem Zufallsprinzip ausgewählt aus einem vorab festgelegten Zahlenbereich (z.B. dem festen Körper Fp).
  • Die Netzwerkschnittstellenvorrichtung 112 verbindet den Knoten 104A mit einem Datennetzwerk 150, wie z.B. einem Local Area Network (LAN) oder einem Wide Area Network (WAN), um Kommunikation zwischen dem Knoten 104A und dem Knoten 104B aus 13 zu ermöglichen, und mit zusätzlichen Knoten, die die hierin beschriebenen sicheren Mehrparteienberechnungen des inneren Produkts durchführen. Nicht einschränkende Ausführungsformen der Netzwerkschnittstellenvorrichtung 112 umfassen drahtgebundene Netzwerkvorrichtungen, wie z.B. einen Ethernet-Adapter, oder drahtlose Netzwerkvorrichtungen, wie z.B. einen WLAN- oder drahtlosen WAN-Netzwerkadapter. In dem System 100 wird angenommen, dass alle Datenübertragungen, die über das Netzwerk 150 erfolgen, durch Dritte-Partei-Gegner (in 13 nicht dargestellt) beobachtet werden, die alle Daten aufzeichnen können, die von den Knoten 104A und 104B übertragen werden, obwohl die Knoten 104A und 104B unter Verwendung eines Transport-Layer-Security- (TLS-) verschlüsselten und authentifizierten Kanals oder eines gleichwertigen Kommunikationskanals kommunizieren können, der verhindert, dass Kommunikationen über das Netzwerk 150 durch Mitlesende beobachtet oder verändert werden können. Die hierin beschriebenen Ausführungsformen verhindern, dass ein Gegner, der Kommunikation zwischen den Knoten 104A und 104B beobachten kann, den Wert irgendwelcher privaten Daten bestimmen kann, zusätzlich dazu dass verhindert wird, dass während Mehrparteienberechnungen von inneren Produkten der Knoten 104B die privaten Klartextdaten 128 des Knotens 104A ermittelt und umgekehrt.
  • Der Arbeitsspeicher 120 umfasst eine oder mehrere flüchtige Arbeitsspeichervorrichtungen, wie z.B. Random Access Memory (RAM), und nicht flüchtige Arbeitsspeichervorrichtungen, wie z.B. Magnetdisketten oder Festspeichervorrichtungen, die Programmbefehle 124, private Klartextdaten 128, Wertteildaten 132, Kryptoschlüsseldaten 163 und das berechnete Ergebnis des inneren Produkts 140 speichern. Die privaten Klartextdaten 128 umfassen einen vollständigen Vektor oder einen Abschnitt eines Vektors von zwei Vektoren, die die Eingaben für die Berechnung des inneren Produkts darstellen. Die zwei Vektoren in den Klartextdaten 128 werden hierin als x und w bezeichnet. Die Wertteildaten 132 umfassen den Teil, den jeder Knoten während des Betriebs des Systems 100 erhält, einschließlich Teile von Beaver-Tripelwerten, die während einer Offline-Phase erzeugt werden, und Teile von Werten, die während des Berechnungsprozesses des inneren Produkts ausgetauscht werden. Wie oben beschrieben stellt jeder Teil jedem Knoten eine verschlüsselte Fassung eines Abschnitts jedes Werts bereit. Die Kryptoschlüsseldaten 136 umfassen einen Teil des verschlüsselten MAC-Kryptoschlüssels für den Knoten 104A, den öffentlichen Schlüssel pk und den Teil des privaten Schlüssels ski, der mit dem Knoten 104A geteilt wird. Das berechnete Ergebnis des inneren Produkts 140 ist die finale Ausgabe der Mehrparteienberechnung des Werts des inneren Produkts.
  • Der Knoten 104B umfasst einen Arbeitsspeicher mit ähnlichen Datenstrukturen, nur dass der Knoten 104B einen anderen Satz privater Klartextdaten 128 speichert, die dem zweiten Vektor entsprechen, der zum Generieren des inneren Produkts verwendet wird, andere Sätze der Teile geheimer Werte 132 und andere Teile des privaten Schlüssels und des MAC-Schlüssels in den Kryptoschlüsseldaten 136. Wie nachstehend beschrieben berechnen die Knoten 104A und 104B beide dasselbe Ergebnis des inneren Produkts 140. In der veranschaulichenden Ausführungsform in 13 speichert der Knoten 104A alle Klartextelemente des Vektors x und der Knoten 104B speichert alle Klartextelemente des Vektors w, wobei in anderen Ausführungsformen die Klartextdaten für einen oder beide Vektoren jedoch auf mehrere Konten verteilt sind, um zu ermöglichen, dass eine größere Anzahl von Knoten sichere Mehrparteienberechnungen von inneren Produkten durchführt.
  • Wenngleich die Offenbarung in den Zeichnungen und der oben stehenden Beschreibung veranschaulicht und ausführlich beschrieben wurde, sollten diese als veranschaulichend und nicht einschränkend erachtet werden. Es ist klar, dass nur die bevorzugten Ausführungsformen vorgestellt wurden und dass alle Veränderungen, Modifikationen und weiteren Anwendungen, die in den Schutzumfang der Offenbarung fallen, auch geschützt sein sollen.
  • 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
    • Zheng et al., eingereicht am 4. Juni 2018 [0001]

Claims (14)

  1. Verfahren zur Implementierung eines sicheren Mehrparteienberechnungsprotokolls zwischen einer Vielzahl von Parteien für eine Mehrparteienberechnung, wobei die Mehrparteienberechnung eine zu berechnende Funktion definiert, wobei jede der Parteien eine private Eingabe für die Funktion umfasst, wobei das Verfahren Folgendes umfasst: das Durchführen einer Offline-Phase eines SPDZ-Protokolls für jede der an der Mehrparteienberechnung beteiligten Parteien, bei der zufällige Multiplikationstripels erzeugt werden, die geheime Teile für die Parteien definieren, wobei die geheimen Teile zu einem kryptografischen Schlüssel kombinierbar sind; das Durchführen einer Phase der Neuverteilung der geheimen Teile nach der Online-Phase, wobei die geheimen Teile der Parteien an eine Untermenge der Parteien neu verteilt werden; das Durchführen einer Phase der Neukombination der geheimen Teile nach der Phase der Neuverteilung der geheimen Teile, während der die Untermenge der Parteien die neu verteilten geheimen Teile neu kombiniert, um die geheimen Teile der nicht der Untermenge angehörenden Parteien wiederherzustellen; und das Durchführen einer Online-Phase des SPDZ-Protokolls, während der die Funktion in Bezug auf die privaten Eingaben der Parteien und unter Verwendung der geheimen Teile der Parteien in der Untermenge von Parteien und der geheimen Teile der nicht der Untermenge angehörenden Parteien, die während der Phase der Neukombination der geheimen Teile wiederhergestellt werden, berechnet wird.
  2. Verfahren nach Anspruch 1, wobei die Multiplikationstripel Beaver-Multiplikationstripel sind.
  3. Verfahren nach Anspruch 1, wobei die zu berechnende Funktion eine Addition ist.
  4. Verfahren nach Anspruch 1, wobei die zu berechnende Funktion eine Multiplikation ist.
  5. Verfahren nach Anspruch 1, wobei die geheimen Teile additiv sind, um dem kryptografischen Schlüssel zu entsprechen.
  6. Verfahren nach Anspruch 1, wobei das Offline- bzw. das Online-Protokoll bei jeder der Parteien lokal durchgeführt wird.
  7. Verfahren nach Anspruch 1, wobei das Offline- und das Online-Protokoll bei zumindest einer der Parteien rechnerfern durchgeführt werden.
  8. Computersystem zur Teilnahme an einer Mehrparteienberechnung, wobei das Computersystem Folgendes umfasst: einen Prozessor, der konfiguriert ist, um programmierte Befehle auszuführen; und einen Arbeitsspeicher zum Speichern der programmierten Befehle, wobei die programmierten Befehle Befehle umfassen, die, wenn sie durch den Prozessor ausgeführt werden, es dem Computersystem ermöglichen, ein sicheres Mehrparteienberechnungsprotokoll für eine Mehrparteienberechnung zu implementieren, wobei die Mehrparteienberechnung eine zu berechnende Funktion definiert, wobei das sichere Mehrparteienberechnungsprotokoll umfasst: das Durchführen einer Offline-Phase eines SPDZ-Protokolls für jede der an der Mehrparteienberechnung beteiligten Parteien, bei der zufällige Multiplikationstripels erzeugt werden, die geheime Teile für die Parteien definieren, wobei die geheimen Teile zu einem kryptografischen Schlüssel kombinierbar sind; das Durchführen einer Phase der Neuverteilung der geheimen Teile nach der Online-Phase, wobei die geheimen Teile der Parteien an eine Untermenge der Parteien neu verteilt werden; das Durchführen einer Phase der Neukombination der geheimen Teile nach der Phase der Neuverteilung der geheimen Teile, während der die Untermenge der Parteien die neu verteilten geheimen Teile neu kombiniert, um die geheimen Teile der nicht der Untermenge angehörenden Parteien wiederherzustellen; und das Durchführen einer Online-Phase des SPDZ-Protokolls, während der die Funktion in Bezug auf die privaten Eingaben der Parteien und unter Verwendung der geheimen Teile der Parteien in der Untermenge von Parteien und der geheimen Teile der nicht der Untermenge angehörenden Parteien, die während der Phase der Neukombination der geheimen Teile wiederhergestellt werden, berechnet wird.
  9. System nach Anspruch 8, wobei die Multiplikationstripel Beaver-Multiplikationstripel sind.
  10. System nach Anspruch 8, wobei die zu berechnende Funktion eine Addition ist.
  11. System nach Anspruch 8, wobei die zu berechnende Funktion eine Multiplikation ist.
  12. System nach Anspruch 8, wobei die geheimen Teile additiv sind, um dem kryptografischen Schlüssel zu entsprechen.
  13. System nach Anspruch 8, wobei das Offline- bzw. das Online-Protokoll bei jeder der Parteien lokal durchgeführt wird.
  14. System nach Anspruch 8, wobei das Offline- und das Online-Protokoll bei zumindest einer der Parteien rechnerfern durchgeführt werden.
DE102019208032.4A 2018-06-04 2019-08-01 Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz Ceased DE102019208032A1 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862680364P 2018-06-04 2018-06-04
US16/263,285 US11201734B2 (en) 2018-06-04 2019-01-31 Method and system for fault tolerant and secure multiparty computation with SPDZ
US16/263,285 2019-01-31

Publications (1)

Publication Number Publication Date
DE102019208032A1 true DE102019208032A1 (de) 2020-08-06

Family

ID=68693275

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019208032.4A Ceased DE102019208032A1 (de) 2018-06-04 2019-08-01 Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz

Country Status (3)

Country Link
US (1) US11201734B2 (de)
CN (1) CN110557245A (de)
DE (1) DE102019208032A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7272363B2 (ja) 2017-08-30 2023-05-12 インファー,インク. 高精度プライバシ保護実数値関数評価
WO2020172683A1 (en) * 2019-02-22 2020-08-27 Inpher, Inc. Arithmetic for secure multi-party computation with modular integers
ES2871053T3 (es) * 2019-03-18 2021-10-28 Advanced New Technologies Co Ltd Prevención de la tergiversación de los datos de entrada por parte de los participantes en una computación segura multipartita
US11553335B2 (en) * 2019-05-07 2023-01-10 Qualcomm Incorporated Secure multiparty computation for Internet of Things communications
US10790961B2 (en) * 2019-07-31 2020-09-29 Alibaba Group Holding Limited Ciphertext preprocessing and acquisition
CN114503105A (zh) * 2019-09-25 2022-05-13 联邦科学和工业研究组织 用于浏览器应用的密码服务
WO2021119099A1 (en) * 2019-12-09 2021-06-17 Badge Inc. Privacy-preserving biometric authentication
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US10924460B2 (en) 2019-12-13 2021-02-16 TripleBlind, Inc. Systems and methods for dividing filters in neural networks for private data computations
US11973743B2 (en) 2019-12-13 2024-04-30 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US11528259B2 (en) 2019-12-13 2022-12-13 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US11599671B1 (en) 2019-12-13 2023-03-07 TripleBlind, Inc. Systems and methods for finding a value in a combined list of private values
CN111027086B (zh) * 2019-12-16 2021-04-20 支付宝(杭州)信息技术有限公司 一种私有数据保护方法和系统
CN111026359B (zh) * 2019-12-17 2021-10-15 支付宝(杭州)信息技术有限公司 多方联合判定隐私数据的数值范围的方法和装置
WO2021230771A2 (en) * 2020-05-12 2021-11-18 Ubic Technologies Llc Method of piece data synchronization describing a single entity and stored in different databases
CN111506933A (zh) * 2020-05-28 2020-08-07 零知识科技(北京)有限公司 安全多方计算的方法和系统
CN111813544A (zh) * 2020-06-19 2020-10-23 华控清交信息科技(北京)有限公司 计算任务的处理方法、装置、调度及管理系统和介质
CN111832074B (zh) * 2020-07-14 2023-04-07 西安电子科技大学 基于spdz安全多方计算的安全验证协作学习方法及系统
CN112231561A (zh) * 2020-10-14 2021-01-15 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质
CN112532383B (zh) * 2020-11-18 2023-01-17 南京信息工程大学 一种基于秘密分享的隐私保护计算方法
US11507693B2 (en) 2020-11-20 2022-11-22 TripleBlind, Inc. Systems and methods for providing a blind de-identification of privacy data
US11799643B2 (en) * 2021-01-19 2023-10-24 Bank Of America Corporation Collaborative architecture for secure data sharing
US11722292B2 (en) * 2021-01-29 2023-08-08 Robert Bosch Gmbh System and method for improving the efficiency of advanced encryption standard in multi-party computation with precomputed data
EP4044496A1 (de) 2021-02-10 2022-08-17 Robert Bosch GmbH Verteilte sichere mehrparteienberechnung
US11792646B2 (en) * 2021-07-27 2023-10-17 TripleBlind, Inc. Systems and methods for providing a multi-party computation system for neural networks
CN114444069B (zh) * 2021-12-17 2023-04-07 中国科学院信息工程研究所 一种恶意模型下高效的阈值安全多方计算方法
CN114884709B (zh) * 2022-04-25 2024-01-23 北京原语科技有限公司 一种多方安全计算协议的数据转换方法
CN114584396B (zh) * 2022-04-25 2024-01-26 北京原语科技有限公司 一种多方安全计算协议的数据转换方法
CN115865311B (zh) * 2022-09-16 2023-09-26 河南理工大学 一种恒定轮次安全多方计算协议的优化方法和系统
CN115982785B (zh) * 2023-03-17 2023-06-30 北京富算科技有限公司 多方安全的数据重排方法、装置、电子设备及存储介质
CN117692144B (zh) * 2024-02-04 2024-05-07 确信信息股份有限公司 一种阈值条件下多方私有集合操作的隐私保护方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019115697A1 (en) * 2017-12-14 2019-06-20 Robert Bosch Gmbh Method for faster secure multiparty inner product with spdz

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729554B (zh) * 2008-11-27 2013-05-29 北京大学 一种分布式计算中基于密码学的除法协议构造方法
US9077539B2 (en) 2011-03-09 2015-07-07 Microsoft Technology Licensing, Llc Server-aided multi-party protocols
WO2014007311A1 (ja) 2012-07-05 2014-01-09 日本電信電話株式会社 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
WO2015062904A1 (en) 2013-10-28 2015-05-07 Kmaas Aps A system and a method for management of confidential data
CN104270448B (zh) * 2014-10-09 2017-10-13 青岛大学 可外包重构的电子医疗记录的秘密共享云存储方法
US10423806B2 (en) * 2014-11-12 2019-09-24 Calctopia Limited Secure multiparty computation on spreadsheets
JP6447870B2 (ja) * 2015-03-20 2019-01-09 日本電気株式会社 秘密情報分散システム、情報処理装置および情報処理プログラム
EP3329455A1 (de) 2015-07-30 2018-06-06 David CEREZO SANCHEZ Kryptographisch sichere finanzinstrumente
DE102016208451A1 (de) * 2016-05-17 2017-11-23 Robert Bosch Gmbh Verfahren zur Erzeugung eines Geheimnisses oder eines Schlüssels in einem Netzwerk
US10910087B2 (en) * 2017-06-27 2021-02-02 Hyunghoon Cho Secure secret-sharing-based crowdsourcing for large-scale association studies of genomic and phenotypic data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019115697A1 (en) * 2017-12-14 2019-06-20 Robert Bosch Gmbh Method for faster secure multiparty inner product with spdz

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Zheng et al., eingereicht am 4. Juni 2018

Also Published As

Publication number Publication date
CN110557245A (zh) 2019-12-10
US11201734B2 (en) 2021-12-14
US20190372760A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
DE102019208032A1 (de) Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz
EP3725023B1 (de) Verfahren für schnelleres sicheres mehrparteien-innenprodukt mit spdz
DE60313704T2 (de) Verfahren und Vorrichtung zur Erzeugung eines Geheimschlüssels
DE69917356T2 (de) Sicherheitstechnik an einem Computernetzwerk
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE112018000779T5 (de) Tokenbereitstellung für Daten
DE60215332T2 (de) System und Verfahren zum Verabreiten eines gemeinsamen Geheimnisses
DE102012206341B4 (de) Gemeinsame Verschlüsselung von Daten
DE60313519T2 (de) Verfahren zur Erzeugung eines Schlüssels, Inhaltsbereitstellungsverfahren, Entschlüsselungsverfahren für verschlüsselte Inhalte, Verfahren zur Erkennung von illegalen Benutzern, System zum Bereitstellen von Inhalten, Benutzersystem, Verfahren zur Ablaufverfolgung, Verschlüsselungsgerät, Entschlüsselungsgerät, und Computerprogramm
DE602004001273T2 (de) Verfahren und Vorrichtung zur Identifiezierungsbasierten Verschlüsselung
DE102018127126A1 (de) Erneute Registrierung von physikalisch unklonbaren Funktionen aus der Ferne
DE112015005893B4 (de) Systeme und Verfahren für ein Mehrfachwert-Packungsschema für homomorphe Verschlüsselung
DE102009001719B4 (de) Verfahren zur Erzeugung von asymmetrischen kryptografischen Schlüsselpaaren
DE102005012098A1 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE60025401T2 (de) Erzeugung eines mathematischen eingeschränkten schlüssels unter verwendung einer einwegfunktion
DE102008021933B4 (de) Verfahren zur Bestimmung einer Kette von Schlüsseln, Verfahren zur Übertragung einer Teilkette der Schlüssel, Computersystem und Chipkarte I
DE60207691T2 (de) Verfahren zur prüfbaren teilung eines geheimnisses in potentiell asynchronen netzwerken
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
DE10143728A1 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
DE10248004A1 (de) Verfahren und Vorrichtung zum Verschlüsseln von Daten
DE102019113249A1 (de) Wertevergleichsserver, wertevergleichsverschlüsselungssystem und wertevergleichsverfahren
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
EP3480724A1 (de) Computerimplementiertes verfahren zum ersetzen eines datenstrings durch einen platzhalter
EP2678772B1 (de) Verschlüsseltes rechnen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final