Secure Multiparty Computation

Werbung
Secure Multiparty
Computation
Daniel Reutter
9.6.2004
Einführung

Was ist Secure Computation?

Wozu braucht man Secure Computation?
Secure Two-Party Computation

Zwei Spieler A,B besitzen zwei Bits a,b

Problem: Die zwei Bits sollen verglichen werden

Ziel: Berechnung von a•b wobei gelten soll:

Correctness

Fairness

Privacy
Oblivious Transfer
Lösung: Oblivious Transfer
Sender
In: b0,b1∈{0,1}
Reciever
In: s ∈{0,1}
Out: bs
Rabin-OT
Sender
In: b∈{0,1}
Reciever
n,ENCODE(b,n)
x ∈Z*n:random
y≡x2 mod n
y
z:random s.t.
z2 ≡y mod n
z
IF z≠±x, factor n, get b
Out: b
ELSE Out: ?
RSA-OT





Existenz von Hardcore-Bits
Reciever erstellt 2 Nachrichten: cs und c1-s, wobei
cs=RSA(m), cs=i; m=Zufallstext mit rs
unsignifikantestes Bit; i=Zufallszahl
Sender berechnet b´0=b0+r0 und b´1=b0+r1
Reciever kann bs berechnen, da rs bekannt
r1-s bleibt unbekannt
OT von Strings


OT von mehreren Bytes nicht sicher
Verwendung von Zickzack-Funktionen:
h:{0,1}m→{0,1}n

Beliebige Untermengen des Eingabewertes lassen
keine Rückschlüsse auf die Gültigkeit des
Ausgabewertes zu
OT von Strings
Oblivious String Transfer
Sender
In: y0=h(x0),y1=h(x1)
OT(y0i,y1i,s)
Empfänger
In: s
Out: ys
xs=h(ys)
Generalisierung

Generelle Berechnungen möglich

Voraussetzung: One-Way Funktionen

Verwendung Boolescher Gatter

Nicht effizient
Security Issues

Alle Teilnehmer müssen „semi-honest“ sein

Lösung: Commitments

Alternativ: Mutually Random Coins
Secure Multiparty Computation

Problem bis jetzt: nur zwei Teilnehmer

Gesucht: Funktion f(xa,xb,xc,...)=y, wobei xfoo nur
foo bekannt ist.

Benötigt für:

Auktionen

Abstimmungen

Bankgeschäfte
Secure Multiparty Computation

Mögliche Lösung: Secret Sharing

Basierend auf Lagrange-Interpolation
Alternativ-Beispiel

Yao‘s Millionärsproblem

Alice kennt Integer i, Bob kennt Integer j

Ist i>j?
Alternativ-Beispiel
1.
2.
3.
4.
5.
6.
Alice wählt eine eine große Zufallszahl x und verschlüsselt sie mit Bobs
Public Key. c=Eb(x).
Alice berechnet c-i und sendet das Ergebnis an Bob.
Bob berechnet n >max(i,j) Zahlen: yu=DB(c-i+u); 1≤u≤n. Bob wählt eine
Primzahl p<x und berechnet die n Zahlen zu=(yu mod p); 1≤u≤n und
verifiziert, ob 2≤|zu-zv| und 0<zu<p-1 für alle u≠v gilt. Sonst muss er eine
andere Primzahl wählen.
Bob sendet Alice die Sequenz in der exakten Reihenfolge:
z0,z1,...,zj,zj+1+1,zj+2+1,...,zn+1,p
Alice überprüft, ob die i-te Zahl kongruent zu x mod p ist. Wenn ja, ist i
≤j. Sonst ist i>j.
Alice teilt ihr Ergebnis Bob mit.
Ende des Vortrags
Noch Fragen?
Herunterladen