Algorithmische Kryptographie Kapitel 19
Zusammenfassung 2
Walter Unger
Lehrstuhl f¨ur Informatik 1
3. Februar 2009
Wie arbeitet das Geburtstagsprotokoll
Wie geht der Schl¨usselaustausch nach Diffie Hellman Wie kann man den Austausch noch verbessern
Wie ist die Idee zur Zufallszahlengenerierung Wie ist die Idee zur Kartenverteilung
Wie ist die Idee zur Kartenverteilung
Welche Protokolle zur Vergesslichen ¨Ubertragung gibt es Wie mache ich eine vergessliche ¨Ubertragung
Wie kaufe ich eins von zwei Geheimnisen
Welche Protokolle zum Bit Commitment gibt es Wie geht Bit Commitment mit quadratischem Rest Wie geht Bit Commitment mit diskreten Logarithmus Wie sicher sind diese Verfahren
Gibt es gleichzeitige perfekte Sicherheit f¨ur beide Parteien beim Bit Commitment Wie geht das Identifikationsverfahren von Shamir
Wie geht ein Betrug beim Identifikationsverfahren von Shamir ZKP
Wie ist die formale Definition eines ZKP Wie geht ein ZKP f¨ur: Graphisomorphismus Wie geht ein ZKP f¨ur: Independent Set
Wie geht ein ZKP f¨ur: Hamilton Kreis Wie geht ein ZKP f¨ur: 3-F¨arbung
Wie geht der ZPK nach Shamir
Wie geht der ZPK Beweis f¨ur Fiat-Shamir Welche Sicherheit hat der Verifizierer
F¨ur welche Probleme aus NPC gibt es ZKP
Ist die Parallelausf¨uhrung eines ZKP auch wieder ZKP Ist die Seriellausf¨uhrung eines ZKP auch wieder ZKP Wie macht man eine Identifikation mit ZKP als Basis Wie arbeitet Fiat-Shamir
Wie macht man eine Unterschrift mit ZKP als Basis Wahlen
Welche einfachen Wahlprotokolle gibt es Welche einfachen Wahlprotokolle gibt es
Wie geht das Protokoll mit vertrauensunw¨urdigem Legitimator Wie wird einfach mit mehreren Mischern gemischt
Was ist die Idee beim ersten Protokoll mit Mischern (mit Stimmkauf) Was ist die Idee beim ersten Protokoll mit Mischern (mit Stimmkauf) Wozu dient die phi Funktion beim W¨ahlen mit Mischern
Was ist die Idee beim zweiten Protokoll mit Mischern (ohne Stimmkauf) Wie geht der ZPK beim zweiten Protokoll mit Mischern
Was geht das zweite Protokoll mit Mischern (ohne Stimmkauf) Was geht das zweite Protokoll mit Mischern (ohne Stimmkauf)
Welche Idee wird genutzt, um eine Wahl zu machen, bei der die W¨ahler nicht erpressba Wo benutzt man die Lagrange Interpolation
Wozu dient eine Homomorphe Verschl¨usselung Wozu dient ein Threshold-Scheme
Wie baut man ein Threshold-Scheme
Was ist die Idee des Homomorphen Wahlverfahrens Wie beweisen die Ausz¨ahler die Korrektheit ihrer Werte Wie beweisen die Ausz¨ahler die Korrektheit ihrer Werte
Wie ist die Idee des gemeinsamen Aufbau eines Verschl¨usselungsverfahrens Was ist die Idee des gemeinsamen Aufbau eines Threshold-Scheme
Geld
Wie ist die Idee einer Elektronischen Brieftasche nach Even Was ist die Idee bei fairem Elektronischen Geld (on-line)
Wie erfolgt die R¨uckverfolgung beim fairem Elektronischen Geld (on-line) Wie sind die Sicherheitsaspekte beim fairem Elektronischen Geld (on-line)
Wie arbeitet das Geburtstagsprotokoll (19:1) Walter Unger Z
Frage 1:
Wie arbeitet das Geburtstagsprotokoll?
A: i,1 6 i 6 100, EA,DA,s B: j,1 6 j 6 100, EA,s
x := zuf¨allige Zahl (x > s) k := EA(x)
F¨ur 1 6 u 6 100: j′
¾
j′ := k − j yu := DA(j′ + u) = DA(k − j + u)
Beachte: yj = x (aber A weiß es nicht)
p := Primzahl mit p < s zu := yu mod p mit
|zu − zu′| > 2 f¨ur 1 6 u′ 6 100 und 0 < zu < p − 1
Falls u 6 i: zu := zu, Falls u > i: zu := zu + 1
Beachte: zj ≡ yj (mod p)) ⇐⇒ i > j zu,p
1 6 u 6
-
100 j′′ := zj mod p
Teste, ob j′′ ≡ x (mod p) Falls ja : i > j
Ergebnis
¾
Falls nein : i < jWie geht der Schl¨usselaustausch nach Diffie Hellman (19:2) Walter Unger Z
Frage 2:
Wie geht der Schl¨usselaustausch nach Diffie Hellman?
A: p,g B: p,g
W¨ahlt a (0 6 a 6 p − 2) c := ga mod p
c
-
W¨ahlt b (0 6 b 6 p − 2) d := gb mod p
k := cb = (ga)b d
¾
k := da = (gb)a
Wie kann man den Austausch noch verbessern (19:3) Walter Unger Z
Frage 3:
Wie kann man den Austausch noch verbessern?
A: p,g,EA,DA,EB,Esym,Dsym B: p,g,EB,DB,EA,Esym,Dsym W¨ahlt a 0 6 a 6 p − 2
c := ga mod p
c
-
W¨ahlt b 0 6 b 6 p − 2 d := gb mod p
k := cb = gab s := DB(ga ◦ gb) d,Eksym(s)
¾
k := da = (gb)a
ga ◦ gb =? EB(Dksym(Eksym(s))) s′ := DA(ga ◦ gb)
Eksym(s′)
-
ga ◦ gb =? EA(Dksym(Eksym(s)))
Wie ist die Idee zur Zufallszahlengenerierung (19:4) Walter Unger Z
Frage 4:
Wie ist die Idee zur Zufallszahlengenerierung?
A: p,q = zuf¨allige Primzahlenˆ B:
n := p · q n
-
w¨ahle u ∈ {1, ...,n 2} z
¾
z := u2 mod n
Berechne Quadratwurzeln ±x, ±y mit:
(±x)2 ≡ z mod n; (±y)2 ≡ z mod n x′ := min{+x,−x}; y′ := min{+y,−y} mit Position i, die x′,y′ unterscheidet, d.h.
x′ = w0w′, y′ = w1w′′ mit |w| = i
W¨ahle r ∈ {0,1} (d.h. w¨ahle x ∈ {x′,y′})
A r¨at, ob x die von B geratene war. i,
-
r e,u¾
e = 0 ⇐⇒ u ∈ {0,1}ir{0,1}⋆ Teste x′,y′,u,e
p,
-
qTeste p,q
Teste n = p · q
Wie ist die Idee zur Kartenverteilung (19:5) Walter Unger Z
Frage 5:
Wie ist die Idee zur Kartenverteilung?
◮ A w¨urfelt an B 5 Karten.
◮ Nur B kennt seine 5 Karten.
◮ Aus den verbleibenden 47 Karten w¨urfelt B an A 5 Karten.
◮ Nur A kennt seine 5 Karten.
◮ A und B machen eine Spielrunde.
◮ A und B legen die Daten der obigen Protokolle offen.
◮ A und B testen die Protokolle.
Wie ist die Idee zur Kartenverteilung (19:6) Walter Unger Z
Frage 6:
Wie ist die Idee zur Kartenverteilung?
A: ni,pi,qi, tij
ni
!
, B: tij
ni
! ,xi Mischt die Karten
F¨ur i ∈ {1, . . . ,52} bestimme:
Primzahlen pi,qi mit pi ≡ qi ≡ 3 mod 4 ni = pi · qi
Ti = (t1it2i . . .t6i) mit tij
ni
!
= 1
und tji ∈ QRni ⇐⇒ Bit j in bin(i) ist 1
ni,1 6 i 6 52 tji,1 6 j 6 6
-
W¨urfeln xi 1 6 i 6 52
- -
nur B kennt die xi kann xi nicht w¨ahlen w¨ahlt I ⊂ {1, . . . ,52}
mit |I| = 5 xi2 mod ni,
“xi ni
”
f¨ur i 6∈ I xk2 mod nk,−“
nkxk
”
f¨ur i ∈ I
¾
Bestimmt xi′ : xi′2 ≡ xi2 (mod ni)
xi′,
„x′ i ni
«
= “xi
ni
”
f¨ur i 6∈ I xi′,
„x′ i ni
«
= −“xi
ni
” f¨ur i ∈ I
-
faktorisiert nj f¨ur j ∈ I Bestimmt Karten f¨ur j ∈ I aus tlj,1 6 l 6 6
Welche Protokolle zur Vergesslichen ¨Ubertragung gibt es (19:7) Walter Unger Z
Frage 7:
Welche Protokolle zur Vergesslichen ¨Ubertragung gibt es?
◮ Mit gegebener Wahrscheinlichkeit ¨ubertragen.
◮ Ein Geheimnis kaufen.
Wie mache ich eine vergessliche ¨Ubertragung (19:8) Walter Unger Z
Frage 8:
Wie mache ich eine vergessliche ¨Ubertragung?
A: p,q,n = p · q B: n
x := Zufallszahl
¾
y y := x2 mod n Bestimme x,x′ mit
(±x)2 ≡ y mod n (±x′) ≡ y mod n
w¨ahle z ∈ {x,x′} z
-
Fall a: z ≡ ±x (mod n) Fall b: z 6≡ ±x (mod n)
Nur im Fall b kann n faktorisiert werden
Wie kaufe ich eins von zwei Geheimnisen (19:9) Walter Unger Z
Frage 9:
Wie kaufe ich eins von zwei Geheimnisen?
A: s0,s1 B: i ∈ {0,1} zuf¨allig
w¨ahlt x : 0 6 x 6 p − 2 βi = gx mod p
β0, β1
¾
β1−i = c(gx)−1 mod p Teste β0 · β1
≡? c f¨ur j ∈ {0,1}:
yj ∈ {0, . . . , p − 2}
αj := gyj γj := βjyj
rj := sj ⊕ γj αj,rj 0 6 j 6 1
-
αxi ≡ gxyi ≡ βiyi =: γi (mod p) si := γi ⊕ ri
Welche Protokolle zum Bit Commitment gibt es (19:10) Walter Unger Z
Frage 10:
Welche Protokolle zum Bit Commitment gibt es?
◮ Mit quadratischem Rest.
◮ Mit diskreten Logarithmus
Wie geht Bit Commitment mit quadratischem Rest (19:11) Walter Unger Z
Frage 11:
Wie geht Bit Commitment mit quadratischem Rest?
P: b ∈ {0,1} V:
w¨ahlt p,q große Primzahlen n := p · q
w¨ahlt v ∈ QNRn+1
w¨ahlt r ∈ ZZ∗n
c := r2vb mod n n,c,v
Commit(b)
-
p,q,r,b Open(b)
-
Teste p,q Primzahlen Teste n = p · q
Teste r ∈ ZZ∗n
Teste v ∈ QNRn+1
Teste c ≡? r2vb (mod n)
Wie geht Bit Commitment mit diskreten Logarithmus (19:12) Walter Unger Z
Frage 12:
Wie geht Bit Commitment mit diskreten Logarithmus?
P: m ∈ {0, . . . ,q − 1} V:
w¨ahle r ∈ {0, . . . , q − 1}
c := grvm mod p
c
-
r,m
-
Test c≡? grvm (mod p)
Wie sicher sind diese Verfahren (19:13) Walter Unger Z
Frage 13:
Wie sicher sind diese Verfahren?
Verfahren mit diskreten Logarithmus:
Die Box kann nicht ge¨offnet werden, die Sicherheit ergab sich durch die nicht-L¨osbarkeit von quadratischen Resten.
Es gab keine Aussage, das die Box nicht ver¨andert werden konnte.
Verfahren mit quadratischen Resten:
Die Box kann nicht ver¨andert werden, die Sicherheit ergab sich durch die nicht-L¨osbarkeit vomdiskreten Logarithmus.
Es gab keine Aussage, das die Box nicht unbefugt ge¨offnet werden konnte.
Gibt es gleichzeitige perfekte Sicherheit f¨ur beide Parteien beim Bit Commitment (19:14) Walter Unger Z
Frage 14:
Gibt es gleichzeitige perfekte Sicherheit f¨ur beide Parteien beim Bit Commitment?
1. Angenommen es gibt einen deterministischen Algorithmus C mit
C : {0,1}n × {0,1} → {0,1}s, der eine solche Lockable Box sicherstellt.
2. Wenn nun P ein Commitment c = C(r,b) macht, dann k¨onnte nun V mit ausreichender Rechenleistung b bestimmen.
3. Um dies zu verhindern, muß es r′ geben mit c = C(r′,1 − b).
4. Damit ist aber nun P in der Lage mit ausreichender Rechenleistung die Box sowohl f¨ur b als auch f¨ur 1 − b zu ¨offnen.
Wie geht das Identifikationsverfahren von Shamir (19:15) Walter Unger Z
Frage 15:
Wie geht das Identifikationsverfahren von Shamir?
P: n,p,q,x,y V: n,x
w¨ahlt r ∈ ZZ∗n zuf¨allig
a := r2 a
-
e
¾
w¨ahlt e ∈ {0,1} zuf¨alligb := rye b
-
Test b2 ?≡ axe (mod n)
Wie geht ein Betrug beim Identifikationsverfahren von Shamir (19:16) Walter Unger Z
Frage 16:
Wie geht ein Betrug beim Identifikationsverfahren von Shamir?
P: n,p,q,x,y V: n,x
w¨ahlt r ∈ZZ∗n zuf¨allig
a := r2 a
-
w¨ahlt e ∈ {0,1} zuf¨alligb := rye
¾
eb
-
Test b2 ?≡ axe (mod n)P’: n,x V: n,x
w¨ahlt r ∈ ZZ∗n zuf¨allig w¨ahlt e′ ∈ {0,1} zuf¨allig
a := r2x−e′ a
-
e
¾
w¨ahlt e ∈ {0,1} zuf¨alligb := r b
-
Test b2 ?≡ axe (mod n)
Wie ist die formale Definition eines ZKP (19:17) Walter Unger Z
Frage 17:
Wie ist die formale Definition eines ZKP?
Definition
Ein interaktives System ist Zero-Knowledge, falls gilt:
◮ Es gibt einen probabilistischen Simulator S(V,x) mit:
◮ S bestimmt ein akzeptierendes Transscript t in polynomieller Zeit.
◮ t und trP,V(x) sind statistisch (algorithmisch) nicht zu unterscheiden.
Wie geht ein ZKP f¨ur: Graphisomorphismus (19:18) Walter Unger Z
Frage 18:
Wie geht ein ZKP f¨ur: Graphisomorphismus?
P: G1,G2,e : G1 ∼=e G2 V: G1 = (V,E),G2 = (V′,E′) w¨ahlt Isomorphismus e′
bestimmt Gα : Gα ∼=e′ G1 Gα
-
w¨ahlt x ∈ {1,2}
x
¾
falls x = 1 : f := e′
falls x = 2 : f := e′ ◦ e f
-
testet: Gα ∼=f Gx
Wie geht ein ZKP f¨ur: Independent Set (19:19) Walter Unger Z
Frage 19:
Wie geht ein ZKP f¨ur: Independent Set?
P: G = (V,E), |V| = t,I ⊂ V : |I| = k mit: V: G,t und k
∀a,b ∈ I : {a,b} 6∈ E bestimmt B1, . . . ,Bt mit:
δ(B1, . . . ,Bt) = V
bestimmt I′ = {i | δ(Bi) ∈ I} bestimmt Bij,1 6 i < j 6 t mit:
δ(Bij) = 1 ⇐⇒ {δ(Bj), δ(Bi)} ∈ E
Bij,Bi 1 6 i < j 6
-
tx
¾
w¨ahle x ∈ {0,1}Falls x = 0, dann machen beide δ(Bi), δ(Bij)
1 6 i 6 t i < j 6 t
-
testet GFalls x = 1, dann machen beide δ(Bij)
{i,j} ⊂ I′
-
testet I′
Wie geht ein ZKP f¨ur: Hamilton Kreis (19:20) Walter Unger Z
Frage 20:
Wie geht ein ZKP f¨ur: Hamilton Kreis?
P: G = (V,E), |V| = t und H mit: V: G = (V,E), |V| = t H = (V,F) ∼= Ct
bestimmt B1, . . . ,Bt mit:
δ(B1, . . . ,Bt) = V
bestimmt Bij,1 6 i < j 6 t mit:
δ(Bij) = 1 ⇐⇒ {δ(Bj), δ(Bi)} ∈ E F′ = {{i,j} | {δ(Bi), δ(Bj)} ∈ F}
Bij,Bi 1 6 i < j 6
-
tx
¾
w¨ahle x ∈ {0,1}Falls x = 0, dann machen beide δ(Bi), δ(Bij)
1 6 i 6 t i < j 6 t
-
testet GFalls x = 1, dann machen beide δ(Bij)
i < j {i,j} ∈ F
-
testet CtWie geht ein ZKP f¨ur: 3-F¨arbung (19:21) Walter Unger Z
Frage 21:
Wie geht ein ZKP f¨ur: 3-F¨arbung?
P: G = (V,E),|V| = t V: G = (V,E)
kennt c : V → {1,2,3} mit: ∀(a,b) ∈ E : c(a) 6= c(b)
bestimmt Bi,Bic,Bij (1 6 i,j 6 3t):
∀(v,c) ∈ V × {1,2,3} : ∃j : δ(Bj) = vj ∧ δ(Bjc) = c δ(Bij) = 1 ⇐⇒ (δ(Bi), δ(Bj)) ∈ E∧
δ(Bic) = c(δ(Bi))∧ δ(Bjc) = c(δ(Bj)) Bi,Bic,Bij 1 6 i,j 6 3t
-
x
¾
w¨ahlt x ∈ {0,1}Falls x = 0, dann machen beide δ(Bi), δ(Bij)
1 6 i,j 6 3t
-
testet G und 2tisolierte Knoten Falls x = 1, dann machen beide δ(Bic), δ(Bij)
1 6 i,j 6 3t δ(Bic) = δ(Bjc)
-
testet: keine Kante sichtbarWie geht ein ZKP f¨ur: 3-SAT (19:22) Walter Unger Z
Frage 22:
Wie geht ein ZKP f¨ur: 3-SAT?
P: F V: F
Bestimmt
Bijk,Bi,BiT Bijk,Bi,BiT
-
x
¾
w¨ahle x ∈ {0,1}falls x = 0 δ(Bi) und δ(Bijk)
-
teste die Darstellung der Formel Ffalls x = 1 δ(BiT) und
δ(Bijk) mit (∗)
-
teste auf korrekte Wahrheitsbelegung, d.h.alle ge¨offneten Bijk m¨ussen 0 enthalten (d.h. keine Klausel ist false)
Dabei bedeutet (∗): Jeder Index ist
entweder von der Form x und δ(BxT) = false oder von der Form x und δ(BxT) = true.
Wie geht der ZPK nach Shamir (19:23) Walter Unger Z
Frage 23:
Wie geht der ZPK nach Shamir?
P: n,p,q,x,y V: n,x
w¨ahlt r ∈ ZZ∗n zuf¨allig
a := r2 mod n a
-
e
¾
w¨ahlt e ∈ {0,1} zuf¨alligb := rye mod n b
-
Test b2 ?≡ axe (mod n) Falls e = 0 b = r Test r2 ?≡ a (mod n) Falls e = 1 b = ry Test r2y2 ≡? ax (mod n)
Wie geht der ZPK Beweis f¨ur Fiat-Shamir (19:24) Walter Unger Z
Frage 24:
Wie geht der ZPK Beweis f¨ur Fiat-Shamir?
Beweis.
Transscript der Kommunikation:
tr(n) = {(a,e,b) ∈ QRn × {0,1} × ZZ∗n | b2 ≡ axe (mod n)}
Simulator (V,x):
while true do
1. w¨ahle e′ ∈ {0,1}, b ∈ ZZ∗n gleichverteilt 2. a := b2x−e′
3. e := V(a)
4. falls e = e′ return (a,e′,b)
Welche Sicherheit hat der Verifizierer (19:25) Walter Unger Z
Frage 25:
Welche Sicherheit hat der Verifizierer?
Satz
Wenn der Prover im Shamir-Protokoll mit Wahrscheinlichkeit > 1/2 betr¨ugen kann, dann kann er die Quadratwurzel bestimmen.
Beweis.
1. Betr¨uger kennt b1 und b2 mit: b12 = a und b22 = ax.
2. Damit kann er bestimmen: y = b2/b1, d.h. die Wurzel von x.
F¨ur welche Probleme aus NPC gibt es ZKP (19:26) Walter Unger Z
Frage 26:
F¨ur welche Probleme aus NPC gibt es ZKP?
Alle.
Ist die Parallelausf¨uhrung eines ZKP auch wieder ZKP (19:27) Walter Unger Z
Frage 27:
Ist die Parallelausf¨uhrung eines ZKP auch wieder ZKP?
P: f ,X V:
v
¾
w¨ahlt v ∈ {1,2}Falls v = 1:
w¨ahlt α ∈ {0,1}n α
-
w¨ahlt β, γ ∈ {0,1}n
Testet f (αβ) =? γ
¾
β, γGeheimnis X
-
Falls v = 2:
α
¾
w¨ahlt α ∈ {0,1}n
w¨ahlt β ∈ {0,1}n β,f(αβ)
-
Ist die Seriellausf¨uhrung eines ZKP auch wieder ZKP (19:28) Walter Unger Z
Frage 28:
Ist die Seriellausf¨uhrung eines ZKP auch wieder ZKP?
Satz
Falls ein Protokoll Zero-Knowledge ist, dann ist die Hintereinanderausf¨uhrung des Protokolls auch Zero-Knowledge.
Beweis.
◮
tr
1( n ) [ tr
2( n
′)] Transscript des 1. [2.] Zero-Knowledge-Proofs.
◮
Dann ist tr
1( n ) ◦ tr
2( n
′) Transscript der Hintereinanderausf¨uhrung.
◮
Sei S
1[ S
2] Simulator f¨ur den 1. [2.] Zero-Knowledge-Proofs.
◮
Sei weiter t
iAusgabe von Simulator S
i( i ∈ {1 , 2}).
◮
Dann ist t
1◦ t
2statistisch (algorithmisch) nicht von tr
1( n ) ◦ tr
2( n
′) zu unterscheiden.
◮
Dann ist S
1◦ S
2Simulator f¨ur die Hintereinanderausf¨uhrung.
Wie macht man eine Identifikation mit ZKP als Basis (19:29) Walter Unger Z
Frage 29:
Wie macht man eine Identifikation mit ZKP als Basis?
P: i(P) = (c1, . . . ,ck) V: pi(P) = (d1, . . . ,dk) pi(P) = (d1, . . . , dk)
F¨ur alle 1 6 j 6 k gilt dabei:
djcj2 ≡ ±1 mod n w¨ahle r ∈ IN
w¨ahle x ∈ {±r2 mod n} x
-
S
¾
w¨ahle Teilmenge S ⊂ {1, . . . ,k} y := r Qj∈S cj mod n y
-
Teste: x ≡ ±y2 Q
j∈S dj (mod n) Beachte: y2 Q
j∈S dj ≡ r2 Q
j∈S cj2dj ≡ ±r2 ≡ ±x (mod n).
Betrugsm¨oglichkeit: Rate S und sende
±r2 Q
j∈S dj mod n als x und y = r als Antwort.
Wie arbeitet Fiat-Shamir (19:30) Walter Unger Z
Frage 30:
Wie arbeitet Fiat-Shamir?
P: n,p,q,x,y V: n,x
mit: y = (y1, . . . ,yt) und x = (y12, . . . ,yt2) und n = p · q
w¨ahlt r ∈ ZZ∗n zuf¨allig
a := r2 a
-
w¨ahlt e ∈ {0,1}t e
¾
e = (e1, . . . ,et) zuf¨allig b := rQti=1yiei b
-
Test b2 ?≡ aQt
i=1xiei (mod n)
Wie macht man eine Unterschrift mit ZKP als Basis (19:31) Walter Unger Z
Frage 31:
Wie macht man eine Unterschrift mit ZKP als Basis?
◮ Unterschrift erzeugen:
1. W¨ahle zuf¨allig ( r
1, . . . , r
k) ∈ (Z Z
∗n)
kmit a
j:= r
j2f¨ur 1 6 j 6 k . 2. Bestimme e :=( e
ij)
16i6t,16j6k= h ( m ◦ a
1◦ a
2◦ . . . ◦ a
k).
3. b
j:= r
jQ
ti=1
y
ieijf¨ur 1 6 j 6 k 4. b = ( b
1, . . . , b
k)
5. s = ( b, e ) ist die Unterschrift von P unter m .
◮ Test der Unterschrift:
1. Setze a
j:= b
j2Q
ti=1
x
ieijf¨ur 1 6 j 6 k .
2. Akzeptiere die Unterschrift, falls e = h ( m ◦ a
1◦ a
2◦ . . . ◦ a
k).
Welche einfachen Wahlprotokolle gibt es (19:32) Walter Unger Z
Frage 32:
Welche einfachen Wahlprotokolle gibt es?
◮ Mit Ausz¨ahler und Verifizierer
◮ Mit Mischern
◮ Ohne Erpressbarkeit
Welche einfachen Wahlprotokolle gibt es (19:33) Walter Unger Z
Frage 33:
Welche einfachen Wahlprotokolle gibt es?
Aj: EL,EC L: EL,DL,EC
Identifikation Protokoll
- -
bestimmt i(Aj) i(Aj)
¾
stimmt ab, d.h. w¨ahlt v(Aj) ∈ K bestimmt Geheimnis s(Aj)
Wj = EL(EC((i(Aj),v(Aj),s(Aj)))) Wj
-
Vj = DL(Wj) C: EL,DL,EC L: EL,DL,EC
kennt i(Aj) (1 6 j 6 t)
kennt Vj = EC((i(Aj),v(Aj),s(Aj))) bestimmt I = {i(Aj) | 1 6 j 6 n}
I,V
¾
bestimmt V = {Vl | 1 6 l 6 n}bestimmt f¨ur x ∈ K
Sx = {t | ∃y ∈ V ∧ z ∈ I : y = (z,x,t)}
ver¨offenlicht die Sx.
Wie geht das Protokoll mit vertrauensunw¨urdigem Legitimator (19:34) Walter Unger Z
Frage 34:
Wie geht das Protokoll mit vertrauensunw¨urdigem Legitimator?
Aj: L:
bestimmt tx,1 6 x 6 nk bestimmt S und f
Identifikation Protokoll
- -
w¨ahlt i ∈ {1, . . . ,nk}
ti
kauft dies geheim
¾ ¾
bestimmt s ∈ S y := f (s)
w¨ahlt v v,y,ti
anonym
-
testet: ∃x ∈ {1, . . . ,nk} : tx = ti
bestimmt s′ ∈ S y′ := f (s′)
w¨ahlt neu v′ v′,f (s′),ti,s
anonym
-
testet: ∃x ∈ {1, . . . ,nk} : tx = ti
testet: f (s) =? y
Wie wird einfach mit mehreren Mischern gemischt (19:35) Walter Unger Z
Frage 35:
Wie wird einfach mit mehreren Mischern gemischt?
ϕ(gbi·a1·a2·...·ak)
◮ bi Stimme f¨ur Kandidat ϕ(. . .bi . . .).
◮ gbi Verschl¨usselte Stimme
◮ gbi·a1·a2·...·ak Verschl¨usselte Stimme und k-mal gemischte Stimme
◮ ϕ(gbi·a1·a2·...·ak) durch bi gew¨ahlter Kandidat.
◮ Damit braucht der W¨ahler: ϕ und ga1·a2·...·ak
◮ Systemaufbau: g,q, ϕ
◮ Mischer Si bestimmt ai.
◮ Mischer bestimmen ga1·a2·...·ak
◮ W¨ahler w¨ahlt und ver¨offentlicht: gbi.
◮ Mischer bestimmen gbi·a1·a2·...·ak
◮ Ausz¨ahlung der ϕ(gbi·a1·a2·...·ak)
Was ist die Idee beim ersten Protokoll mit Mischern (mit Stimmkauf) (19:36) Walter Unger Z
Frage 36:
Was ist die Idee beim ersten Protokoll mit Mischern (mit Stimmkauf)?
C: B:
bestimmt p grosse Primzahl
bestimmt g Generator in Zq∗ mit q = pk
bestimmt Funktion ϕ : Zq∗ 7→ K C,q,g, ϕ
-
(C,q,g, ϕ)Si: B:
w¨ahlt ai ∈ZZ∗q mit ggT(ai,q − 1) = 1 bestimmt also: fi(x) = xai mod q
bestimmt ci = gai Si,ci
-
(Si,ci)S1: B:
sei z0 = g
bestimmt z1 = f1(z0) S1,z0,z1
-
(S1,z0,z1)Si: (i 6 2) B:
bestimmt zi = fi(zi−1) Si−1,zi−2,zi−1
¾
Si,zi−1,zi-
(Si,zi−1,zi)Si: C:
ci = gai
∃ai : ci = gai ∧ zi = ziai
−1
Zero-Knowledge-Proof
- -
zi = fi(zi−1) = ziai−1
(C,z0,zk)
Was ist die Idee beim ersten Protokoll mit Mischern (mit Stimmkauf) (19:37) Walter Unger Z
Frage 37:
Was ist die Idee beim ersten Protokoll mit Mischern (mit Stimmkauf)?
Ai: B:
(C,q,g, ϕ) (Si,ci)
(Si,zi−1,zi) getestet r¨at solange ein bi bis ϕ(zkbi) = Ki (C,z0,zk)
setzt vi = gbi (Ai,vi)
-
(Ai,vi)C: B:
Testet die (Ai,vi)’s Ai,vi(1 6 i 6 n)
¾
Falls Fehler/Betrug vorliegt Ai,vi, ung¨ultig
-
Damit wird (Ai,vi) gel¨oscht.C: B:
X0 = SORT{vl|1 6 l 6 n} Ai,vi(1 6 i 6 n)
¾
X0 = (w10,w20, . . . ,wn0)-
X0 = (w10,w20, . . . ,wn0)Si: B:
Xi = SORT{(wli−1)ai|1 6 l 6 n} Xi−1 = (w1i−1,w2i−1, . . . ,wni−1)
¾
Xi = (w1i,w2i, . . . ,wni)
-
Xi = (w1i,w2i, . . . ,wni)C: B:
Ex = |{w ∈ Xk | ϕ(w) = x}| Xk = (w1k,w2k, . . . ,wnk)
¾
Ex(x ∈ K)-
Ex (∀x ∈ K)Wozu dient die phi Funktion beim W¨ahlen mit Mischern (19:38) Walter Unger Z
Frage 38:
Wozu dient die phi Funktion beim W¨ahlen mit Mischern?
◮ Kandidaten auf grossen Wertebereich abbilden.
◮ Umgehen des L¨osen des Diskreten Logarithmus.
Was ist die Idee beim zweiten Protokoll mit Mischern (ohne Stimmkauf) (19:39) Walter Unger Z
Frage 39:
Was ist die Idee beim zweiten Protokoll mit Mischern (ohne Stimmkauf)?
◮ Erzeuge Wahlzettel (Tokens)
◮ Vermische Tokens, Beweis per ZKP
◮ gebe gemischtes Token den W¨ahlern
◮ Vermische Tokens, Beweis per ZKP
◮ W¨ahler w¨ahlt
◮ Entmische Tokens, Beweis per ZKP
◮ Ausz¨ahlung der Stimmen
Wie geht der ZPK beim zweiten Protokoll mit Mischern (19:40) Walter Unger Z
Frage 40:
Wie geht der ZPK beim zweiten Protokoll mit Mischern?
P : q , a, g , c = g
a, x , y = f (x ) = x
aV : q, g , c , x , y w¨ahlt i und j m
1¾ m
1= x
ig
jw¨ahlt l
m
2= m
1g
lm
3= f ( m
2) m
2, m
3- testet m
1=
?x
ig
ji , j
¾
l -
testet m
2=
?m
1g
ltestet m
3=
?y
ig
a(j+l)Beachte: m
3= f ( m
2) = f ( x
ig
jg
l) = ( f ( x ))
i( f ( g ))
j+l= y
i( g
a)
j+l.
◮
Bekannt sind zwei Listen x
1, x
1, . . . , x
tund y
1, y
1, . . . , y
t.
◮
Zeige per Zero-Knowledge-Proof, dass es eine Permutatione π gibt
mit: f (x
i) = y
π(i).
Was geht das zweite Protokoll mit Mischern (ohne Stimmkauf) (19:41) Walter Unger Z
Frage 41:
Was geht das zweite Protokoll mit Mischern (ohne Stimmkauf)?
C: B:
bestimmt q große Primzahl
bestimmt g Generator in Zq∗ C,q,g
-
(C,q,g)Si: B:
w¨ahlt ai ∈ZZ∗q mit ggT(ai,q −1) = 1 (C,q,g) bestimmt also: fi(x) = xai mod q
bestimmt ci = gai Si,ci
-
(Si,ci)C: B:
bestimmt t ≫ n Tokens:
{xj,0 | 1 6 j 6 t} (x1,0,x2,0, . . . ,xt,0)
-
(x1,0,x2,0, . . . ,xt,0)Si: B:
bestimmt Permutation πi
bestimmt xj,i = (xπ(j),i−1)ai (x1,i,x2,i, . . . ,xt,i)
-
(x1,i,x2,i, . . . ,xt,i)C: Aj:
w¨ahlt tj und Token xtj,k xtj,k