Elektronisches Geld
Paul Wilhelm wilhelm@math.hu-berlin.de
Humboldt-Universit¨ at zu Berlin
8. Februar 2011
1 Kryptographische Primitive Commitment Schema Zero-Knowledge-Protokoll
2 CHL Compact E-Cash-Verfahren CL Signatur
Blinde CL Signatur
Compact E-Cash-Verfahren
Literatur
Definiton Commitment Schema:
Zwei Phasen Protokoll zwischen Sender und Empf¨ anger:
1
Verbindliches Bekenntnis zu einem geheimen Wert.
2
Offenlegung des Wertes
Sicherheitsziele:
Geheimhaltung
Verbindlichkeit (nur ein g¨ ultiger Wert)
Definiton Commitment Schema:
Zwei Phasen Protokoll zwischen Sender und Empf¨ anger:
1
Verbindliches Bekenntnis zu einem geheimen Wert.
2
Offenlegung des Wertes
Sicherheitsziele:
Geheimhaltung
Verbindlichkeit (nur ein g¨ ultiger Wert)
Definiton Commitment Schema:
Zwei Phasen Protokoll zwischen Sender und Empf¨ anger:
1
Verbindliches Bekenntnis zu einem geheimen Wert.
2
Offenlegung des Wertes
Sicherheitsziele:
Geheimhaltung
Verbindlichkeit (nur ein g¨ ultiger Wert)
Definiton Commitment Schema:
Zwei Phasen Protokoll zwischen Sender und Empf¨ anger:
1
Verbindliches Bekenntnis zu einem geheimen Wert.
2
Offenlegung des Wertes
Sicherheitsziele:
Geheimhaltung
Verbindlichkeit (nur ein g¨ ultiger Wert)
Definiton Commitment Schema:
Zwei Phasen Protokoll zwischen Sender und Empf¨ anger:
1
Verbindliches Bekenntnis zu einem geheimen Wert.
2
Offenlegung des Wertes
Sicherheitsziele:
Geheimhaltung
Verbindlichkeit (nur ein g¨ ultiger Wert)
Definiton Commitment Schema:
Zwei Phasen Protokoll zwischen Sender und Empf¨ anger:
1
Verbindliches Bekenntnis zu einem geheimen Wert.
2
Offenlegung des Wertes
Sicherheitsziele:
Geheimhaltung
Verbindlichkeit (nur ein g¨ ultiger Wert)
Definiton Commitment Schema:
Zwei Phasen Protokoll zwischen Sender und Empf¨ anger:
1
Verbindliches Bekenntnis zu einem geheimen Wert.
2
Offenlegung des Wertes
Sicherheitsziele:
Geheimhaltung
Verbindlichkeit (nur ein g¨ ultiger Wert)
Formalisierbar f¨ ur effiziente Protokolle.
Definiton Commitment Schema:
Zwei Phasen Protokoll zwischen Sender und Empf¨ anger:
1
Verbindliches Bekenntnis zu einem geheimen Wert.
2
Offenlegung des Wertes
Sicherheitsziele:
Geheimhaltung
Verbindlichkeit (nur ein g¨ ultiger Wert)
Formalisierbar f¨ ur effiziente Protokolle.
Pedersen Commitment:
Gruppe G , |G | = q ∈ P, < g i >= G ∀0 ≤ i ≤ m Geheimnis: (v 1 , ..., v m ) ∈ Z m q
Sender w¨ ahlt r ∈ R Z q
Commitment: C =PedCom(v 1 , ..., v m ; r ) = g 0 r
m
Q
i=1
g i v
iPedersen Commitment:
Gruppe G , |G | = q ∈ P, < g i >= G ∀0 ≤ i ≤ m Geheimnis: (v 1 , ..., v m ) ∈ Z m q
Sender w¨ ahlt r ∈ R Z q
Commitment: C =PedCom(v 1 , ..., v m ; r ) = g 0 r
m
Q
i=1
g i v
iPedersen Commitment:
Gruppe G , |G | = q ∈ P, < g i >= G ∀0 ≤ i ≤ m Geheimnis: (v 1 , ..., v m ) ∈ Z m q
Sender w¨ ahlt r ∈ R Z q
Commitment: C =PedCom(v 1 , ..., v m ; r ) = g 0 r
m
Q
i=1
g i v
iPedersen Commitment:
Gruppe G , |G | = q ∈ P, < g i >= G ∀0 ≤ i ≤ m Geheimnis: (v 1 , ..., v m ) ∈ Z m q
Sender w¨ ahlt r ∈ R Z q
Commitment: C =PedCom(v 1 , ..., v m ; r ) = g 0 r
m
Q
i=1
g i v
iPedersen Commitment:
Gruppe G , |G | = q ∈ P, < g i >= G ∀0 ≤ i ≤ m Geheimnis: (v 1 , ..., v m ) ∈ Z m q
Sender w¨ ahlt r ∈ R Z q
Commitment: C =PedCom(v 1 , ..., v m ; r ) = g 0 r
m
Q
i=1
g i v
iDefinition Zero-Knowledge-Proof-of-Knowledge:
Mehrphasen Protokoll zwischen Beweiser P und Verifizierer V
P beweist V , dass er ein Wort x kennt, das in einer formalen Sprache L liegt
Sicherheitsziele:
Vollst¨ andigkeit: x ∈ L ⇒ V akzeptiert immer Zuverl¨ assigkeit: Pr [x 6∈ L und V akzeptiert] ist klein
Zero-Knowledge-Eigenschaft: V erf¨ ahrt nichts ¨ uber x außer x ∈ L
oder x 6∈ L
Definition Zero-Knowledge-Proof-of-Knowledge:
Mehrphasen Protokoll zwischen Beweiser P und Verifizierer V
P beweist V , dass er ein Wort x kennt, das in einer formalen Sprache L liegt
Sicherheitsziele:
Vollst¨ andigkeit: x ∈ L ⇒ V akzeptiert immer Zuverl¨ assigkeit: Pr [x 6∈ L und V akzeptiert] ist klein
Zero-Knowledge-Eigenschaft: V erf¨ ahrt nichts ¨ uber x außer x ∈ L
oder x 6∈ L
Definition Zero-Knowledge-Proof-of-Knowledge:
Mehrphasen Protokoll zwischen Beweiser P und Verifizierer V
P beweist V , dass er ein Wort x kennt, das in einer formalen Sprache L liegt
Sicherheitsziele:
Vollst¨ andigkeit: x ∈ L ⇒ V akzeptiert immer Zuverl¨ assigkeit: Pr [x 6∈ L und V akzeptiert] ist klein
Zero-Knowledge-Eigenschaft: V erf¨ ahrt nichts ¨ uber x außer x ∈ L
oder x 6∈ L
Definition Zero-Knowledge-Proof-of-Knowledge:
Mehrphasen Protokoll zwischen Beweiser P und Verifizierer V
P beweist V , dass er ein Wort x kennt, das in einer formalen Sprache L liegt
Sicherheitsziele:
Vollst¨ andigkeit: x ∈ L ⇒ V akzeptiert immer Zuverl¨ assigkeit: Pr [x 6∈ L und V akzeptiert] ist klein
Zero-Knowledge-Eigenschaft: V erf¨ ahrt nichts ¨ uber x außer x ∈ L
oder x 6∈ L
Definition Zero-Knowledge-Proof-of-Knowledge:
Mehrphasen Protokoll zwischen Beweiser P und Verifizierer V
P beweist V , dass er ein Wort x kennt, das in einer formalen Sprache L liegt
Sicherheitsziele:
Vollst¨ andigkeit: x ∈ L ⇒ V akzeptiert immer Zuverl¨ assigkeit: Pr [x 6∈ L und V akzeptiert] ist klein
Zero-Knowledge-Eigenschaft: V erf¨ ahrt nichts ¨ uber x außer x ∈ L
oder x 6∈ L
Definition Zero-Knowledge-Proof-of-Knowledge:
Mehrphasen Protokoll zwischen Beweiser P und Verifizierer V
P beweist V , dass er ein Wort x kennt, das in einer formalen Sprache L liegt
Sicherheitsziele:
Vollst¨ andigkeit: x ∈ L ⇒ V akzeptiert immer Zuverl¨ assigkeit: Pr [x 6∈ L und V akzeptiert] ist klein
Zero-Knowledge-Eigenschaft: V erf¨ ahrt nichts ¨ uber x außer x ∈ L
oder x 6∈ L
Definition Zero-Knowledge-Proof-of-Knowledge:
Mehrphasen Protokoll zwischen Beweiser P und Verifizierer V
P beweist V , dass er ein Wort x kennt, das in einer formalen Sprache L liegt
Sicherheitsziele:
Vollst¨ andigkeit: x ∈ L ⇒ V akzeptiert immer Zuverl¨ assigkeit: Pr [x 6∈ L und V akzeptiert] ist klein
Zero-Knowledge-Eigenschaft: V erf¨ ahrt nichts ¨ uber x außer x ∈ L
oder x 6∈ L
Beispiel - interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y = Q m
i=1
g i x
i, V kennt nur y und g i
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t =
m
Q
i=1
g i v
ian V (commitment)
2
V sendet c ∈ R {0, 1} an P (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y = Q m
i=1
g i x
i, V kennt nur y und g i
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t =
m
Q
i=1
g i v
ian V (commitment)
2
V sendet c ∈ R {0, 1} an P (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y = Q m
i=1
g i x
i, V kennt nur y und g i
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t =
m
Q
i=1
g i v
ian V (commitment)
2
V sendet c ∈ R {0, 1} an P (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y = Q m
i=1
g i x
i, V kennt nur y und g i
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t =
m
Q
i=1
g i v
ian V (commitment)
2
V sendet c ∈ R {0, 1} an P (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y = Q m
i=1
g i x
i, V kennt nur y und g i
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t =
m
Q
i=1
g i v
ian V (commitment)
2
V sendet c ∈ R {0, 1} an P (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y = Q m
i=1
g i x
i, V kennt nur y und g i
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t =
m
Q
i=1
g i v
ian V (commitment)
2
V sendet c ∈ R {0, 1} an P (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y = Q m
i=1
g i x
i, V kennt nur y und g i
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t =
m
Q
i=1
g i v
ian V (commitment)
2
V sendet c ∈ R {0, 1} an P (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
wiederhole 1-4, w¨ ahle v i und c neu
Beispiel - nicht interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y =
m
Q
i=1
g i x
i, V kennt nur y und g i P und V kennen Hash-Funktion H : G m × G × G → Z q
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t = Q m
i=1
g i v
ian V (commitment)
2
P berechnet c = H(g 1 , ..., g m , y, t ) (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V berechnet c = H(g 1 , ..., g m , y, t) und ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - nicht interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y =
m
Q
i=1
g i x
i, V kennt nur y und g i P und V kennen Hash-Funktion H : G m × G × G → Z q
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t = Q m
i=1
g i v
ian V (commitment)
2
P berechnet c = H(g 1 , ..., g m , y, t ) (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V berechnet c = H(g 1 , ..., g m , y, t) und ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - nicht interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y =
m
Q
i=1
g i x
i, V kennt nur y und g i P und V kennen Hash-Funktion H : G m × G × G → Z q
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t = Q m
i=1
g i v
ian V (commitment)
2
P berechnet c = H(g 1 , ..., g m , y, t ) (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V berechnet c = H(g 1 , ..., g m , y, t) und ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - nicht interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y =
m
Q
i=1
g i x
i, V kennt nur y und g i P und V kennen Hash-Funktion H : G m × G × G → Z q
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t = Q m
i=1
g i v
ian V (commitment)
2
P berechnet c = H(g 1 , ..., g m , y, t ) (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V berechnet c = H(g 1 , ..., g m , y, t) und ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - nicht interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y =
m
Q
i=1
g i x
i, V kennt nur y und g i P und V kennen Hash-Funktion H : G m × G × G → Z q
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t = Q m
i=1
g i v
ian V (commitment)
2
P berechnet c = H(g 1 , ..., g m , y, t ) (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V berechnet c = H(g 1 , ..., g m , y, t) und ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - nicht interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y =
m
Q
i=1
g i x
i, V kennt nur y und g i P und V kennen Hash-Funktion H : G m × G × G → Z q
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t = Q m
i=1
g i v
ian V (commitment)
2
P berechnet c = H(g 1 , ..., g m , y, t ) (challenge)
3
P sendet r i = v i − cx i an V (response)
4
V berechnet c = H(g 1 , ..., g m , y, t) und ¨ uberpr¨ uft ob
m
Q
i=1
g i r
i· y c = ? t
Beispiel - nicht interaktiv
P kennt (x 1 , ..., x m ) ∈ Z m q mit y =
m
Q
i=1
g i x
i, V kennt nur y und g i P und V kennen Hash-Funktion H : G m × G × G → Z q
1
P w¨ ahlt (v 1 , ..., v m ) ∈ R Z m q , sendet t = Q m
i=1
g i v
ian V (commitment)
2
P berechnet c = H(g 1 , ..., g m , y, t ) (challenge)
3
P sendet r i = v i − cx i an V (response)
4