Angenommen, es gibt Parteien mit jeweils einem Bit . Ich möchte die Multiplikation der Anzahl von Einsen mit der von Nullen berechnen, dh . R = ( ∑ b j ) × ( N - ∑ b j )
Die Berechnung sollte in dem Sinne sicher sein, dass keine Partei mehr als das Endergebnis lernen kann . Zum Beispiel ist es nicht in Ordnung, eine sichere Summe auszuführen, da dann bekannt wird und die Summe in meinem Problem empfindlich ist. Gibt es also ein sicheres Berechnungsprotokoll, das den Anforderungen entspricht?∑ b j
Bearbeiten: Die Zahl im Problem ist groß, mindestens über . Daher ist eine effiziente sichere Mehrparteienberechnung erforderlich. Ein sicheres Summenprotokoll könnte effizient sein, aber generische SMC-ähnliche Boolesche Schaltungen könnten zu rechenintensiv sein. Ich brauche also ein effizientes Protokoll.1000
quelle
Antworten:
Bei dieser Antwort handelt es sich um praktikable Lösungen, die auf einer homomorphen Verschlüsselung basieren, die NICHT vollständig homomorph ist, da letztere äußerst ineffizient sein kann (wenn es effiziente vollständig homomorphe Kryptosysteme gibt, die hinsichtlich der Effizienz mit den unten angegebenen vergleichbar sind, würde ich mich freuen von ihnen hören).
Da Sie nur eine Multiplikation benötigen, gibt es Lösungen, die möglicherweise kostengünstiger sind als eine vollständig homomorphe Verschlüsselung: [1] und [2]. Letzteres funktioniert mit verschlüsselten Bitzerlegungen der Eingabe, sodass ein Bitzerlegungsprotokoll wie [3] und [6] erforderlich ist, ersteres jedoch mit ganzen Werten. Der Vollständigkeit halber wurde Ersteres in [4] auf die Operanden-Multiplikation ausgedehnt , obwohl das OP dies möglicherweise nicht benötigt. Diese Lösungen sind nicht interaktiv und sollten im Zwei-Parteien-Fall funktionieren.d
Wenn Sie mehr als zwei Parteien haben und sich eine Interaktion leisten könnten, bietet [5] ein "sicheres Multiplikationsgatter", das möglicherweise effizienter ist und eine unbegrenzte Anzahl von Multiplikationen ermöglicht. Es funktioniert im Wesentlichen, indem die homomorph verschlüsselten Werte in eine Art Geheimfreigabe konvertiert werden, das Ergebnis (interaktiv) multipliziert und dann wieder in homomorphe Verschlüsselung konvertiert wird.
[1] Auswertung von 2-DNF-Formeln für Chiffretexte
[2] Nicht interaktives Kryptocomputing für NC1
[3] Bedingungslos sichere Mehrparteienberechnung mit konstanten Runden für Gleichheit, Vergleich, Bits und Potenzierung
[4] Additiv homomorphe Verschlüsselung mit d-Operanden-Multiplikationen
[5] Mehrparteienberechnung aus homomorpher Schwellenwertverschlüsselung
[6] Effiziente binäre Konvertierung für Paillier-verschlüsselte Werte
quelle
Neue Antwort (24.10.): Ich denke, das folgende Papier bietet eine elegante und effiziente Lösung für Ihr Problem:
Sie zeigen, wie ein Verschlüsselungsalgorithmus mit öffentlichem Schlüssel mit den folgenden zwei nützlichen Eigenschaften erstellt wird:E(⋅)
Additiv homomorph. Mit und E ( y ) kann jeder E ( x + y ) berechnen .E(x) E(y) E(x+y)
Kann (einmal) multiplizieren. Mit und E ( y ) (von denen keines als Ergebnis einer Multiplikationsoperation erzeugt wurde) kann jeder E ( x ⋅ y ) berechnen . Sie können das Ergebnis in Additionsoperationen verwenden, aber Sie können es nicht in Multiplikationsoperationen verwenden (das Ergebnis einer Multiplikation ist fehlerhaft, und fehlerhafte Werte können nicht als Eingabe für eine andere Multiplikation verwendet werden).E(x) E(y) E(x⋅y)
Die Folge ist, dass bei einem quadratischen multivariaten Polynom und bei E ( x 1 ) , … , E ( x n ) jeder eine Verschlüsselung von Ψ ( x 1 , … , berechnen kann ). x n ) . Dies ist sehr nützlich für Ihre Situation.Ψ ( x1, … , X.n) E.( x1) , … , E.( xn) Ψ ( x1, … , X.n)
Insbesondere können wir in Ihrer Situation das Polynom Beachten Sie, dass dies ein quadratisches multivariates Polynom ist. Wenn also alle E ( b i ) gegeben sind, kann jeder E berechnen ( Ψ ( b 1 , … , b N ) ).
Dies schlägt ein natürliches Protokoll für Ihr Problem vor, bei dem eine Schwellenwertversion des Verschlüsselungsschemas in dem oben genannten Dokument verwendet wird:
Sie müssten einige Details eingeben, aber ich wette, Sie könnten diese Skizze / Gliederung erweitern, um ein Protokoll zu erhalten, das Ihr Problem effizient und sicher löst.
Meine alte Antwort:
Ich würde mir noch ein sicheres Mehrparteienprotokoll für die Berechnung der Summe ansehen .S.= ∑jbj
quelle