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 ) ).
Ψ ( b1, b2, … , B.N.) = ∑i ≠ j[ bich( 1 - bj) ] .
E.( bich)E.( Ψ ( b1, … , B.N.) ). Beachten Sie auch, dass
, also versuchen wir, den Wert dieses Polynoms genau zu berechnen.
R = Ψ ( b1, … , 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:
- Jeder generiert gemeinsam ein öffentliches / privates Schlüsselpaar für eine Schwellenwertversion dieses Schemas, sodass der öffentliche Schlüssel allen bekannt ist, der private Schlüssel jedoch von allen gemeinsam genutzt wird (es erfordert die Zusammenarbeit aller Parteien, um einen unter diesem öffentlichen Schlüssel verschlüsselten Chiffretext zu entschlüsseln ). Der öffentliche Schlüssel wird an alle N Teilnehmer gesendet .N.N.
- Jeder Teilnehmer berechnet E ( b i ) und sendet E ( b i ) an alle anderen Teilnehmer. Jeder überprüft, ob dies ehrlich getan wurde.ichE.( bich)E.( bich)
- Jeder Teilnehmer berechnet Verwendung der homomorphen Eigenschaften dieses Verschlüsselungsschemas und der Kenntnis von E ( b 1 ) , … , E ( b N ) . Jeder prüft, ob er den gleichen Wert hat.E.( R ) = E.( Ψ ( b1, … , B.N.) )E.( b1) , … , E.( bN.)
- Die Teilnehmer verwenden gemeinsam das Schwellenwertentschlüsselungsprotokoll, um R von E ( R ) wiederherzustellen . (Beachten Sie, dass sie das Schwellenwert-Entschlüsselungsprotokoll nur auf diesen einen Chiffretext anwenden. Die ehrlichen Teilnehmer werden sich weigern, an der Entschlüsselung anderer Chiffretexte teilzunehmen.)N.R.E.( R )
- Jeder beweist irgendwie (vielleicht durch ZK-Beweise), dass er jeden Schritt korrekt ausgeführt hat.
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
S.< N/ 2
S.R.S.R.Q.S.∈ { Q , N.- Q }
ich , jE.( cich , j)cich , j= bich⊕ bj⊕E.∑i < jcich , j= R.davon. Es müssen einige Details herausgearbeitet werden, und das Bedrohungsmodell entspricht möglicherweise nicht Ihren Erwartungen, aber es ist möglich, dass Sie in der Lage sind, so etwas zum Laufen zu bringen.