Algorithmische Kryptographie Kapitel 16
Elektronisches Geld
Walter Unger
Lehrstuhl f¨ur Informatik 1
30. Januar 2009
Einleitung Anforderungen
Einfaches Protokoll (Shimon Even 1978) Sicherheitsaspekte zum einfachen Protokoll Einfaches Protokoll mit Steuersatz
Grundlagen
Idee: Schnorrs Identifikation
Schnorrs Identifikation (nicht-interaktive Version) Aufbau einer Blinden Unterschrift
Aufbau
Faires Elektronisches Geld (Systemaufbau) Online System
M¨unze von der Bank abheben Zahlungsverkehr
Sicherheitsaspekte Zusammenfassung Offline System
M¨unze von der Bank abheben Bezahlung im Gesch¨aft Einzahlung bei der Bank
Sicherheitsaspekte und zugrundeliegende Probleme
Einleitung Grundlagen Aufbau Online System Offline System
Anforderungen (16:1) Walter Unger Z
Anforderungen an Elektronisches Geld
1. Soll mindestens so sicher sein wie eine normale Brieftasche.
2. Sollte denselben Freiheitsgrad wie beim Umgang mit Geld liefern.
3. Sollte anonymen Zahlungsverkehr erm¨ oglichen.
4. Sollte keine hohen Zusatzkosten ben¨ otigen.
Die ersten beiden Forderungen wurden bereits 1978 durch ein
Protokoll von Shimon Even realisiert.
Einleitung Grundlagen Aufbau Online System Offline System
Einfaches Protokoll (Shimon Even 1978) (16:2) Walter Unger Z
Idee
Bank:
Kunde A: Kunde B:
Konto A: 2300−1500 = 800 Konto B: 12000+1500 = 13500
SigA(A zahlt1500an B)SigB(A zahlt1500an B)
? 1
SigBank(A ist Kunde)
? 2
SigBank(B ist Kunde) -
3
SigB(A zahlt1500an B) SigA(A zahlt1500an B) 6 4 6
5
Einleitung Grundlagen Aufbau Online System Offline System
Einfaches Protokoll (Shimon Even 1978) (16:3) Walter Unger Z
Einleitung
I Direkte Anwendung von Public-Keys.
I Basierte auf dem Austausch von Quittungen und Unterschriften.
I Benutzt Taschencomputer mit Infrarotkommunikationsschnittstelle.
I Ger¨at sollte gegen gewaltsames ¨Offnen gesichert sein.
I Ein automatischer Einzug von Steuern w¨urde m¨oglich.
I Rechner wird von Bank mit Geld gef¨ullt, d.h. erh¨alt ein von der Bank verschl¨usseltes Public-Key-Verfahren f¨ur den Nutzer und den ¨offentlichen Schl¨ussel der Bank.
I Damit k¨onnen nun Quittungen und unterschriebene Rechnungen ausgetauscht werden.
I Diese k¨onnen sp¨ater bei der Bank zum Kontoausgleich vorgelegt werden.
I Der Kassenstand der elektronischen Brieftasche wird durch diese verwaltet.
Einleitung Grundlagen Aufbau Online System Offline System
Einfaches Protokoll (Shimon Even 1978) (16:4) Walter Unger Z
Systemaufbau
I Beteiligte Partner sind A,B (Privatpersonen) und X (Bank).
I Die Bank kennt dabeiDX,EX,DA,EA,DB,EB und die Kontost¨ande.
A: X:DX,EX
Bestimmt:EA,DA
IA:=DX(EA)
n=zu ¨ubertragender Geldwert t=aktuelle Zeit
EX,DA,EA,IA
t,npriv.Kom.
B: X:DX,EX
Bestimmt:EB,DB
IB :=DX(EB)
n=zu ¨ubertragender Geldwert EX,DB,EB,IB
t,npriv.Kom.
t=aktuelle Zeit
Einleitung Grundlagen Aufbau Online System Offline System
Einfaches Protokoll (Shimon Even 1978) (16:5) Walter Unger Z
Ubertragung von Geld zwischen A und B ¨
A:DA,EA,EX,DX(EA),nA,tA, B:DB,EB,EX,DX(EB),nB,tB
zA (zu sendender Betrag) zB (zu empfangender Betrag) A,zA
DX(EA)-
testet:zB
=! zA
B,zB,tB,r DX(EB)
r:= Zufallszahl
testet:zB
=! zA
|tA−tB|< εSekunden testet:nA>zA
nA:=nA−zA A
DA(zAtAr)-
zAtAr=! EA(DA(zAtAr))
−zAtBr=! EB(DB(−zAtBr)) B
DB(−zAtBr) nB:=nB+zB
Einleitung Grundlagen Aufbau Online System Offline System
Sicherheitsaspekte zum einfachen Protokoll (16:6) Walter Unger Z
Sicherheitsaspekte
A:DA,EA,EX,DX(EA),nA,tA, B:DB,EB,EX,DX(EB),nB,tB zA(zu sendender Betrag) zB(zu empfangender Betrag)
A,zA,DX(EA)
- testet:zB !
=zA testet:zB=!zA B,zB,tB,r,DX(EB)
r:= Zufallszahl
|tA−tB|< εSekunden testet:nA>zA
nA:=nA−zA A,DA(zAtAr)
- zAtAr
=!EA(DA(zAtAr))
−zAtBr=!EB(DB(−zAtBr)) B,DB(−zAtBr)
nB:=nB+zB
1. Verfahren ist so sicher wie die unterliegenden Verfahren.
2. Jeder Zahlungsverkehr ist durch die Bank direkt nachvollziehbar.
3. Ein Vorteil ist, dass man bei jedem Zahlungsverkehr Steuern erheben kann.
4. Dann w¨urde ein Steuersatz unter 3% alle anderen Steuern ersetzen.
5. F¨ur das Erheben der Steuern entstehen fast keine Zusatzkosten.
Einleitung Grundlagen Aufbau Online System Offline System
Einfaches Protokoll mit Steuersatz (16:7) Walter Unger Z
Ubertragung zwischen A und B mit Steuersatz ¨
A:DA,EA,EX,DX(EA),nA,tA, B:DB,EB,EX,DX(EB),nB,tB
zA (zu sendender Betrag) zB (zu empfangender Betrag) A,zA
DX(EA)-
testet:zB
=! zA·(1−δ) B,zB,tB,r
DX(EB)
r:= Zufallszahl
testet:zB
=! zA·(1−δ)
|tA−tB|< εSekunden testet:nA>zA
nA:=nA−zA A
DA(zAtAr)-
zAtAr=! EA(DA(zAtAr))
−zAtBr=! EB(DB(−zAtBr)) B
DB(−zAtBr) nB:=nB+zB
Einleitung Grundlagen Aufbau Online System Offline System
(16:8) Walter Unger Z
Einleitung
1. Heute will man aber faire Systeme.
2. Also Systeme, die den Zahlungsverkehr nicht der Bank offen legen.
3. Ein Nachverfolgen des Zahlungsverkehrs sollte nur ¨ uber eine autorisierte Stelle (Staat) m¨ oglich sein.
4. Idee zur Anonymisierung des Zahlungsverkehrs ist eine blinde digitale Unterschrift der Bank unter einer M¨ unze.
5. Nur der Staat kann die Unterschrift ggf. lesen.
Einleitung Grundlagen Aufbau Online System Offline System
(16:9) Walter Unger Z
Situation (Basis)
Bank:
u u u u u u uu u u uu u u
u
1 Kunde:
?u
2
-Gesch¨ aft:
u
3
PP PP PP PP PP P P i
Einleitung Grundlagen Aufbau Online System Offline System
(16:10) Walter Unger Z
Situation (R¨ uckverfolgung)
Bank:
u u u u u u uu u u uu u u
u u
1 Kunde:
?u
2
-Kasino:
u
3
PP PP PP PP PP P P i
Einleitung Grundlagen Aufbau Online System Offline System
(16:11) Walter Unger Z
Situation (Ohne R¨ uckverfolgung)
Bank:
u u u u u u uu u u uu u u
u u
1 Kunde:
?uu
2
-Kasino:
u
3
PP PP PP PP PP P P i
Einleitung Grundlagen Aufbau Online System Offline System
(16:12) Walter Unger Z
Situation (Ohne R¨ uckverfolgung, mit Kopie)
Bank:
u u u u u u uu u u uu u u
u u u
1 Kunde:
?uuu
2
-Gesch¨ aft:
uu
3
PP PP PP PP PP P P i
Einleitung Grundlagen Aufbau Online System Offline System
(16:13) Walter Unger Z
Situation (Ohne R¨ uckverfolgung, ohne Kopie)
Bank:
u u u u u u uu u u uu u u
u u
1 Kunde:
?u
2
-Gesch¨ aft:
u
3
PP PP PP PP PP P P i
Einleitung Grundlagen Aufbau Online System Offline System
(16:14) Walter Unger Z
Situation (Ohne R¨ uckverfolgung, doppelter Zahlung)
Bank:
u u u u u u uu u u uu u u
u u
1 Kunde:
?u
2
-Gesch¨ aft:
u
2
1
Gesch¨ aft:
u
3
PP PP PP PP PP P P i
Problematisch nur im Offline Fall
Einleitung Grundlagen Aufbau Online System Offline System
(16:15) Walter Unger Z
Situation (R¨ uckverfolgung nur durch Staat)
Bank:
u u u u u u uu u u uu u u
u u
1
?
1
1
Kunde:
u
2
-Titelh¨ andler:
u
3
PP PP PP PP PP P P i
1
-◦ ←→ ◦
Staat:
Einleitung Grundlagen Aufbau Online System Offline System
(16:16) Walter Unger Z
Einleitung
1. Heute will man aber faire Systeme.
2. Also Systeme, die den Zahlungsverkehr nicht der Bank offen legen.
3. Ein Nachverfolgen des Zahlungsverkehrs sollte nur ¨ uber eine autorisierte Stelle (Staat) m¨ oglich sein.
4. Idee zur Anonymisierung des Zahlungsverkehrs ist eine blinde digitale Unterschrift der Bank unter einer M¨ unze.
5. Nur der Staat kann die Unterschrift ggf. lesen.
Einleitung Grundlagen Aufbau Online System Offline System
Idee: Schnorrs Identifikation (16:17) Walter Unger Z
Voraussetzungen
1. p,qPrimzahlen mitqteiltp−1.
2. G Untergruppe der Ordnungqin ZZ∗p. 3. g Generator inG.
4. h:{0,1}∗→ZZp kollisionssichere Hashfunktion.
5. Der geheime Schl¨ussel ist dannx∈ {0, . . . ,q−1}.
6. Und der ¨offentliche Schl¨ussel (p,q,g,y) mity =gx. 7. Damit wird Schnorrs Identifikations-Protokoll aufgebaut.
Einleitung Grundlagen Aufbau Online System Offline System
Idee: Schnorrs Identifikation (16:18) Walter Unger Z
Protokoll ProofLog (g , y )
GUntergruppe der Ordnungqin ZZ∗p gGenerator inG h:{0,1}∗→ZZp y=gx
P:x,y,g,p,q V:y,g,p,q
r∈ {0, . . . ,q−1}zuf¨allig
a:=gr a -
c c∈ {0, . . . ,q−1}zuf¨allig
b:=r−cx b - teste:a
≡? gbyc
I Dieses Protokoll kann mit der Hashfunktionheinfach in eine nicht-interaktive Version ¨ubertragen werden.
I Dabei wird ggf. gleichzeitig eine Nachrichtmunterschrieben.
Einleitung Grundlagen Aufbau Online System Offline System
Schnorrs Identifikation (nicht-interaktive Version) (16:19) Walter Unger Z
Protokoll σ(m) = (c , b) = ProofLog
h(m, g , y )
GUntergruppe der Ordnungqin ZZ∗p gGenerator inG h:{0,1}∗→ZZp y=gx ProofLog(g,y)
P:x,y,g,p,q V:y,g,p,q
r∈ {0, . . . ,q−1}zuf¨allig
a:=gr a
- c∈ {0, . . . ,q−1}zuf¨allig
b:=r−cx c
b - Teste:a
≡?gbyc
P:x,y,g,p,q,h V:y,g,p,q,h r∈ {0, . . . ,q−1}zuf¨allig
a:=gr c:=h(m◦a)
b:=r−cx (c,b),m
- Teste:c
=? h(m◦gbyc)
Fallsm=schreiben wir (c,b) =ProofLogh(g,y).
Dann ist dies ein nicht-interaktiver Beweis der Kenntnis von logg(y).
Einleitung Grundlagen Aufbau Online System Offline System
Schnorrs Identifikation (nicht-interaktive Version) (16:20) Walter Unger Z
Sicherheitsaspekte
GUntergruppe der Ordnungqin ZZ∗p gGenerator inG h:{0,1}∗→ZZp y=gx ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y)
P:x,y,g,p,q,h V:y,g,p,q,h
r∈ {0, . . . ,q−1}zuf¨allig a:=gr
c:=h(m◦a)
b:=r−cx (c,b),m
- Teste:c
=?h(m◦gbyc)
1. Die Sicherheit ergibt sich aus der Schwierigkeit, den diskreten Logarithmus log
g(y ) zu bestimmen.
2. Falls das Gleiche r f¨ ur zwei verschiedenen Nachrichten m
1, m
2verwendet wird, so ist das Verfahren unsicher.
3. Sei σ(m
i) = (c
i, b
i) f¨ ur i ∈ {0, 1}.
4. Dann gilt: g
r= g
b1y
c1= g
b2y
c2.
5. Weiter gilt g
b1+xc1= g
b2+xc2und damit x =
b1−b2c2−c1
.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:21) Walter Unger Z
Einleitung
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y)
1. Aus diesem Protokoll machen wir nun eine blinde Unterschrift.
2. Dazu wird der Kunde von der Bank eine blinde Unterschrift anfordern.
3. Aber er wird nicht dem Gesch¨aft gegen¨uber diese Unterschrift vorlegen, sondern eine von dem Kunden transformierte Unterschrift.
4. Damit ist es dann der Bank nicht mehr m¨oglich, durch Speichern aller Kommunikationen, auf den auf Verbleib der ausgegebenen M¨unzen zu schließen.
5. F¨ur dieses Protokoll und die notwendige Transformation der Unterschrift bauen wir zuerst die Idee auf:
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:22) Walter Unger Z
Idee einer Blinden Unterschrift
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y)
P:x,y,g,p,q,h V:y,g,p,q,h
r∈ {0, . . . ,q−1}zuf¨allig a:=gr
c:=h(m◦a)
b:=r−cx (c,b),m
- teste:c
=?h(m◦gbyc)
P:x,y,g,p,q V:y,g,p,q,m r∈ {0, . . . ,q−1}zuf¨allig
a:=gr a -
c c=h(m, . . .)
b:=r−cx b - Teste:a
≡? gbyc
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:23) Walter Unger Z
Idee einer Blinden Unterschrift (Teil 2)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y)
P:x,y,g,p,q V:y,g,p,q,m
r∈ {0, . . . ,q−1}zuf¨allig
a:=gr a
- c=h(m, . . .)
b:=r−cx c
b - teste:a
≡?gbyc
1. Die Bank k¨onnte dieses Transcriptτ = (a,c,b) speichern.
2. Dann kann sie sp¨ater auf die Herkunft einer eingezahlten M¨unze schließen.
3. Daher formt der Kunde das Transcriptτ= (a,c,b) in ein neues Transcriptτ = (a,c,b) um.
4. Dieses neue Transcriptτ = (a,c,b) soll aber auch eine g¨ultige Unterschrift der Bank sein.
5. Dieses neue Transcript kann nur mit Hilfe vonτ erzeugt werden.
6. Ein weiteres Transcript kann vom Kunden nicht erzeugt werden.
7. Die Transformation erfolgt durch eine Funktionβ(u,v,w).
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:24) Walter Unger Z
Idee einer Blinden Unterschrift (Teil 2)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y)
P:x,y,g,p,q V:y,g,p,q,m
r∈ {0, . . . ,q−1}zuf¨allig
a:=gr a
- c=h(m, . . .)
b:=r−cx c
b - teste:a
≡?gbyc
β(u,v,w): G×ZZ2q→G×ZZ2q mit: a=augvyw (a,c,b)7→(a,c,b) c =uc+w b=ub+v I Es gilt:a=augvyw= (gbyc)ugvyw=gub+vyuc+w=gbyc.
I Damit istτ= (a,c,b) auch ein korrektes Transcript einer Unterschrift.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:25) Walter Unger Z
Sicherheit des Kunden
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) β(u,v,w): G×ZZ2q→G×ZZ2q mit: a=augvyw
(a,c,b)7→(a,c,b) c=uc+w b=ub+v a=augvyw= (gbyc)ugvyw=gub+vyuc+w=gbyc
Lemma
Eine Unterscheidung der Transcripte durch die Bank ist nicht m¨oglich.
Beweis.
Untersuche die Verteilung der Transcripte.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:26) Walter Unger Z
Sicherheit des Kunden (Beweis)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) β(u,v,w): G×ZZ2q→G×ZZ2q mit: a=augvyw
(a,c,b)7→(a,c,b) c=uc+w b=ub+v a=augvyw= (gbyc)ugvyw=gub+vyuc+w=gbyc
I Fallsu,v,w zuf¨allig gew¨ahlt werden, so sindτ undτ unabh¨angig.
I F¨urτ= (a,c,b) gibt es jedes (a,c,b) genauq-mal inβ(u,v,w)(a,c,b) mit (u,v,w)∈ZZ3q (siehe n¨achste Folie).
I Damit ist die Wahrscheinlichkeit, dassτ= (a,c,b) eine Transformation vonτ = (a,c,b) ist
|{(u,v,w)∈ZZ3q|β(u,v,w)(a,c,b) = (a,c,b)}|
|ZZ3q| =q−2 gleich der eines zuf¨allig gew¨ahlten Transcriptsτ = (a,c,b).
I Damit ist eine (statistische) Unterscheidung durch die Bank nicht m¨oglich.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:27) Walter Unger Z
Sicherheit des Kunden (Beweisschritt)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) β(u,v,w): G×ZZ2q→G×ZZ2q mit: a=augvyw
(a,c,b)7→(a,c,b) c=uc+w b=ub+v a=augvyw= (gbyc)ugvyw=gub+vyuc+w=gbyc
Zeige: F¨ ur τ = (a, c , b) gibt es jedes (a, c, b) genau q-mal in β
(u,v,w)(a, c , b) mit (u, v, w ) ∈ Z Z
3q.
I
Seien a, c , b und [a, ]c , b gegeben.
I
W¨ ahle ein u (Davon gibt es q St¨ uck).
I
Aus c = uc + w ergibt sich ein eindeutiges w .
I
Aus b = uc + v ergibt sich ein eindeutiges v.
I
Wegen
a = a
ug
vy
w= (g
by
c)
ug
vy
w= g
ub+vy
uc+w= g
by
cerhalten wir immer das gleiche a.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:28) Walter Unger Z
Sicherheit der Bank
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y)
Lemma
Die oben beschriebene Transformation ist die einzig m¨ ogliche.
Beweis.
Das wird in zwei Schritten gezeigt:
1. Zeige a := a
ug
vy
wmuss so gesetzt werden.
2. Falls τ = (a, c , b) korrektes Transcript ist, so sind c und b
auch so zu setzen.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:29) Walter Unger Z
Sicherheit der Bank (1. Teil)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) β(u,v,w): G×ZZ2q→G×ZZ2q mit: a=augvyw
(a,c,b)7→(a,c,b) c=uc+w b=ub+v a=augvyw= (gbyc)ugvyw=gub+vyuc+w=gbyc
I Zeigea:=augvyw muss so gesetzt werden.
I Annahmea:=augvywg0, dann gilt:
a=augvywg0= (gbyc)ugvywg0=gub+vyuc+wg0=gbyc. I Die letzte Gleichung muss gelten, daτ = (a,c,b) korrektes Transcript
sein muss.
I Damit gilt:gb−(ub+v)+x(c−(uc+w))
=g0.
I Damit k¨onnen der Kunde und die Bank den diskreten Logarithmus logg(g0) bestimmen.
I Dag0zuf¨allig gew¨ahlt worden ist, kann dies nicht sein.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:30) Walter Unger Z
Sicherheit der Bank (2. Teil)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) β(u,v,w): G×ZZ2q→G×ZZ2q mit: a=augvyw
(a,c,b)7→(a,c,b) c=uc+w b=ub+v a=augvyw= (gbyc)ugvyw=gub+vyuc+w=gbyc
I Fallsτ= (a,c,b) korrektes Transcript ist, so sindc undbwie oben zu setzen.
I Aus
gbyc =a=augvyw= (gbyc)ugvyw=gub+vyuc+w I folgtg(ub+v)−b=yc−uc+w.
I Damit gilt nunb=ub+v undc=uc+w, denn sonst k¨onntex bestimmt werden.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:31) Walter Unger Z
Protokoll BlindLogSig
h(m)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y)
P:x,y,g,p,q V:y,g,p,q,m
r∈ {0, . . . ,q−1}zuf¨allig
a:=gr a
- c=h(m, . . .)
b:=r−cx c
b - teste:a
≡?gbyc
β(u,v,w): G×ZZ2q→G×ZZ2q mit: a=augvyw (a,c,b)7→(a,c,b) c=uc+w b=ub+v a=augvyw= (gbyc)ugvyw=gub+vyuc+w=gbyc
P:x,y,g,p,q V:y,g,p,q,m r∈ {0, . . . ,q−1}
a:=gr a- u,v,w ∈ {0, . . . ,q−1},v 6= 0 zuf¨allig a:=augvyw undc:=h(m◦a) b:=r−cx c c:= (c−w)u
−1
b- Teste:a
≡? gbyc
b:=ub+v undσ(m) := (c,b)
Ein Test dieser Unterschrift erfolgt durchc=? h(m◦gbyc).
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:32) Walter Unger Z
Bemerkungen
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) (c,b) =BlindLogSigh(m) P:x,y,g,p,q V:y,g,p,q,m
r∈ {0, . . . ,q−1}
a:=gr a
- u,v,w∈ {0, . . . ,q−1},v6= 0 zuf¨allig a:=augvywundc:=h(m◦a)
b:=r−cx c
c:= (c−w)u−1
b- Teste:a
≡? gbyc
b:=ub+vundσ(m) := (c,b)
1. Es ist nur eine Unterschrift (M¨unze) m¨oglich, dennhist kollisionssicher.
2. Durch obige ¨Uberlegung kann V nur einakennen mitaugvyw und zugeh¨origen korrekten Werten (c,b).
3. Eine Erweiterung, das Okamoto-Schnorr Protokoll, ist sicher unter der Annahme, dass der Diskrete Logarithmus nicht effizient berechenbar ist.
4. Schreibweise: (c,b) =BlindLogSigh(m).
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:33) Walter Unger Z
Erinnerung:
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) (c,b) =BlindLogSigh(m)
P:g,p,q V:y1,y2g,p,q
r∈ {0, . . . ,q−1}zuf¨allig
a:= (a1,a2) := (g1r,g2r) a - c∈ {0, . . . ,q−1}zuf¨allig
b:=r−cx c
b - Teste:a1
≡? g1by1c Teste:a2
≡? g2by2c
Analog kann ein Protokoll, dass zwei Logarithmen gleich sind, mit blinder Unterschrift aus dem obigen Protokoll aufgebaut werden.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:34) Walter Unger Z
Protokoll BlindLogSigEq
h(g, y , m) (Vorbereitung)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) (c,b) =BlindLogSigh(m)
P:x,y,g,g1,p,q V:y,g,g1,p,q,m r∈ {0, . . . ,q−1}zuf¨allig
a:= (a1,a2) := (gr,g1r) a-
u,v,w ∈ {0, . . . ,q−1},v6= 0 zuf¨allig a1:=au1gvyw
a2:=au1g1v
yw z:=zsyt
c:=h(m◦z◦a1◦a2) c c:= (c−w)u
−1
b:=r−cx b
- teste:a1
≡? gbyc teste:a1
≡? g1byc Ergebnis: (z,c,b)
Nun ersetzen wirg1und die Berechnung vona2.
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:35) Walter Unger Z
Protokoll BlindLogSigEq
h(g, y , m)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) (c,b) =BlindLogSigh(m)
P:x,y,g,p,q V:y,g,p,q,m
s,t∈ {0, . . . ,q−1}zuf¨allig,s6= 0 m m:=m
1/sg−t r∈ {0, . . . ,q−1}zuf¨allig
z:=mx
a:= (a1,a2) := (gr,mr) a,z -
u,v,w ∈ {0, . . . ,q−1},v6= 0 zuf¨allig a1:=au1gvyw
a2:= (au2mvzw)s(au1gvyw)t z:=zsyt
c:=h(m◦z◦a1◦a2) c c:= (c−w)u
−1
b:=r−cx b- teste:a1
≡? gbyc teste:a2
≡? mbzc Ergebnis: (z,c,b)
Einleitung Grundlagen Aufbau Online System Offline System
Aufbau einer Blinden Unterschrift (16:36) Walter Unger Z
Protokoll BlindLogSigEq
h(g, y , m)
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) (c,b) =BlindLogSigh(m)
P:x,y,g,p,q V:y,g,p,q,m
s,t∈ {0, . . . ,q−1}zuf¨allig,s6= 0 r∈ {0, . . . ,q−1}zuf¨allig m
m:=m1/sg−t
z:=mx
a:= (a1,a2) := (gr,mr) a,z
- u,v,w∈ {0, . . . ,q−1},v6= 0 zuf¨allig a1:=au1gvyw
a2:= (au2mvzw)s(au1gvyw)t z:=zsyt
c:=h(m◦z◦a1◦a2)
b:=r−cx c
c:= (c−w)u−1
b- teste:a1
≡? gbyc teste:a2
≡? mbzc Ergebnis: (z,c,b)
I Es wird folgende Schreibweise (z,c,b) =BlindLogSigEqh(g,y,m) verwendet.
I Test der erzeugten Blinden Unterschrift:c=? h(m◦z◦gbyc◦mbzc) I Weiterhin kann noch eine weitere NachrichtMvon Punterschrieben
werden, indemM als zus¨atzlicher Parameter zuhhinzugenommen wird, d.h.h(M◦m◦z◦a1◦a2) bestimmt wird.
Einleitung Grundlagen Aufbau Online System Offline System
Faires Elektronisches Geld (Systemaufbau) (16:37) Walter Unger Z
Einleitung
ProofLog(g,y) σ(m) = (c,b) =ProofLogh(m,g,y) ProofLogh(g,y) (c,b) =BlindLogSigh(m) (z,c,b) =BlindLogSigEqh(g,y,m)
I Im Folgenden entspricht Geld einer einzelnen M¨unze. D.h. wir zeigen wie eine M¨unze fair ¨ubertragen wird.
I Eine Erweiterung auf mehrere M¨unzen oder auf M¨unzen von verschiedenem Wert ist einfach.
I Aufbau:p,qPrimzahlen mitqteiltp−1, I G Untergruppe der Ordnungqin ZZ∗p, I g,g1,g2Generatoren inG und
I h:{0,1}∗→ZZp kollisionssichere Hashfunktion.
I Es ist wichtig, dass der diskrete Logarithmus zwischen den Generatoren g,g1,g2unbekannt ist.
Einleitung Grundlagen Aufbau Online System Offline System
Faires Elektronisches Geld (Systemaufbau) (16:38) Walter Unger Z
Aufbau des Systems
Bank: Offentlichkeit:¨
w¨ahltx∈ {1, . . .q−1}geheimer Schl¨ussel y:=gx ¨offentlicher Schl¨ussel y
- y
Staat: Offentlichkeit:¨
w¨ahltxT∈ {1, . . .q−1}geheimer Schl¨ussel yT:=g2xT ¨offentlicher Schl¨ussel yT
- yT
Kunde: Offentlichkeit:¨
w¨ahltxC ∈ {1, . . .q−1}geheimer Schl¨ussel yC :=g1xC ¨offentlicher Schl¨ussel yC
- yC
Einleitung Grundlagen Aufbau Online System Offline System
Faires Elektronisches Geld (Systemaufbau) (16:39) Walter Unger Z
Aufbau des Systems
Bank: Offentlichkeit:¨
w¨ahltx∈ {1, . . .q−1}geheimer Schl¨ussel y:=gx¨offentlicher Schl¨ussel y
- y
Staat: Offentlichkeit:¨
w¨ahltxT∈ {1, . . .q−1}geheimer Schl¨ussel yT:=g2xT ¨offentlicher Schl¨ussel yT
- yT
Kunde: Offentlichkeit:¨
w¨ahltxC∈ {1, . . .q−1}geheimer Schl¨ussel yC:=g1xC¨offentlicher Schl¨ussel yC
- yC
Gesch¨aft: Offentlichkeit:¨
w¨ahltxS ∈ {1, . . .q−1}geheimer Schl¨ussel yS :=g1xS ¨offentlicher Schl¨ussel yS
- yS
Kunde belegt seine Identit¨at mitProofLog(g1,yC).
Einleitung Grundlagen Aufbau Online System Offline System
(16:40) Walter Unger Z
Einleitung
I Im Folgenden werden wir zuerst ein on-line System betrachten,
I d.h. bei dem Abheben der M¨unze und beim Bezahlen im Laden wird eine Kommunikation mit der Bank bzw. Staat durchgef¨uhrt, um die M¨unze zu verifizieren.
I Dann ist das Kopieren einer M¨unze nicht m¨oglich, da die Bank eine Liste der eingezahlten M¨unzen vorh¨alt.
I Das Abheben einer M¨unze von der Bank geschieht mit einem Protokoll analog zum ProtokollBlindLogSigh mit einer leeren Nachrichtm.
P:x,y,g,p,q V:y,g,p,q,m
r∈ {0, . . . ,q−1}
a:=gr a
- u,v,w∈ {0, . . . ,q−1},v6= 0 zuf¨allig a:=augvywundc:=h(m◦a)
b:=r−cx c
c:= (c−w)u−1
b- Teste:a
≡? gbyc
b:=ub+vundσ(m) := (c,b)
Einleitung Grundlagen Aufbau Online System Offline System
(16:41) Walter Unger Z
Situation (Geld abheben)
Bank:
τ= (a,c,b) EStaat(u,v,w)
Kunde:
β(u,v,w)(τ) =τ= (a,c,b) EStaat(u,v,w)
M¨unze: (c,b)
Gesch¨aft:
Staat:
X=a,c,EStaat(u,v,w) Speichert:
(a,c,b)7→(a,c) 1:a
?
2:c,EStaat(u,v,w) 6
3:X- 4:ok)
5:c
?
M¨ unze durch blinde Unterschrift
Einleitung Grundlagen Aufbau Online System Offline System
M¨unze von der Bank abheben (16:42) Walter Unger Z
M¨ unze von der Bank abheben (1.Teil)
P:x,y,g,p,q V:y,g,p,q,m
r∈ {0, . . . ,q−1}zuf¨allig
a:=gr a
- u,v,w∈ {0, . . . ,q−1},v6= 0 zuf¨allig a:=augvyw
c:=h(m◦a)
b:=r−cx c
c:= (c−w)u−1
b- teste:a
≡?gbyc
b:=ub+vundσ(m) := (c,b)
Bank:g,g1,g2,x,y,yC,p,q Kunde:g,g1,g2,xC,yC,y,p,q r∈ {0, . . . ,q−1}
a:=gr a -
u,v,w ∈ {0, . . . ,q−1},v 6= 0 a:=augvyw
c:=h(a) c,EyT(u,v,w)
c:= (c−w)u
−1