Kryptographische Primitive CL Signatur Literatur
Elektronisches Geld
Paul Wilhelm wilhelm@math.hu-berlin.de
Humboldt-Universit¨ at zu Berlin
8. Februar 2011
Kryptographische Primitive CL Signatur Literatur
Gliederung I
1 Kryptographische Primitive Commitment Schema Zero-Knowledge-Protokoll
2 CL Signatur CL Signatur
3 Literatur
Literatur
Kryptographische Primitive CL Signatur Literatur
Commitment Schema
Darstellungsproblem
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
iKryptographische Primitive CL Signatur Literatur
Commitment Schema
Darstellungsproblem
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
iKryptographische Primitive CL Signatur Literatur
Commitment Schema
Darstellungsproblem
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
iKryptographische Primitive CL Signatur Literatur
Commitment Schema
Darstellungsproblem
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
iKryptographische Primitive CL Signatur Literatur
Commitment Schema
Darstellungsproblem
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
iKryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
Beispiel - 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
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 Q m
i=1
g i r
i· y c = ? t
wiederhole 1-4, w¨ ahle v i und c neu
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
Beispiel - 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
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 Q m
i=1
g i r
i· y c = ? t
wiederhole 1-4, w¨ ahle v i und c neu
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
Beispiel - 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
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 Q m
i=1
g i r
i· y c = ? t
wiederhole 1-4, w¨ ahle v i und c neu
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
Beispiel - 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
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 Q m
i=1
g i r
i· y c = ? t
wiederhole 1-4, w¨ ahle v i und c neu
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
Beispiel - 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
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 Q m
i=1
g i r
i· y c = ? t
wiederhole 1-4, w¨ ahle v i und c neu
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
Beispiel - 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
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 Q m
i=1
g i r
i· y c = ? t
wiederhole 1-4, w¨ ahle v i und c neu
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
Beispiel - 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
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 Q m
i=1
g i r
i· y c = ? t
wiederhole 1-4, w¨ ahle v i und c neu
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
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 =
m
Q
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
Auch weitere Verifizierer V 0 k¨ onnen mit g i , y, H, t, r i ¨ uberpr¨ ufen ob
P (x 1 , ..., x m ) kennt.
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
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 =
m
Q
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
Auch weitere Verifizierer V 0 k¨ onnen mit g i , y, H, t, r i ¨ uberpr¨ ufen ob
P (x 1 , ..., x m ) kennt.
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
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 =
m
Q
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
Auch weitere Verifizierer V 0 k¨ onnen mit g i , y, H, t, r i ¨ uberpr¨ ufen ob
P (x 1 , ..., x m ) kennt.
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
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 =
m
Q
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
Auch weitere Verifizierer V 0 k¨ onnen mit g i , y, H, t, r i ¨ uberpr¨ ufen ob
P (x 1 , ..., x m ) kennt.
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
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 =
m
Q
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
Auch weitere Verifizierer V 0 k¨ onnen mit g i , y, H, t, r i ¨ uberpr¨ ufen ob
P (x 1 , ..., x m ) kennt.
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
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 =
m
Q
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
Auch weitere Verifizierer V 0 k¨ onnen mit g i , y, H, t, r i ¨ uberpr¨ ufen ob
P (x 1 , ..., x m ) kennt.
Kryptographische Primitive CL Signatur Literatur
Zero-Knowledge-Protokoll
Beispiel (Darstellungsproblem)
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 =
m
Q
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
Auch weitere Verifizierer V 0 k¨ onnen mit g i , y, H, t, r i ¨ uberpr¨ ufen ob
P (x 1 , ..., x m ) kennt.
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Voraussetzungen
Seien G =< g > und G t =< g ˆ > Gruppen der Ordnung q ∈ P Es gibt eine Abbildung e : G × G → G t mit:
e(P a , Q b ) = e(P , Q) ab ∀ P , Q ∈ G , a, b ∈ Z q (bilinear)
∃ P, Q ∈ G mit e(P , Q ) 6= 1 ∈ G t (nicht degeneriert) e(., .) ist effizient berechenbar
∀ g mit < g >= G gilt < e(g , g ) >= G t
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Voraussetzungen
Seien G =< g > und G t =< g ˆ > Gruppen der Ordnung q ∈ P Es gibt eine Abbildung e : G × G → G t mit:
e(P a , Q b ) = e(P , Q) ab ∀ P , Q ∈ G , a, b ∈ Z q (bilinear)
∃ P, Q ∈ G mit e(P , Q ) 6= 1 ∈ G t (nicht degeneriert) e(., .) ist effizient berechenbar
∀ g mit < g >= G gilt < e(g , g ) >= G t
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Voraussetzungen
Seien G =< g > und G t =< g ˆ > Gruppen der Ordnung q ∈ P Es gibt eine Abbildung e : G × G → G t mit:
e(P a , Q b ) = e(P , Q) ab ∀ P , Q ∈ G , a, b ∈ Z q (bilinear)
∃ P, Q ∈ G mit e(P , Q ) 6= 1 ∈ G t (nicht degeneriert) e(., .) ist effizient berechenbar
∀ g mit < g >= G gilt < e(g , g ) >= G t
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Voraussetzungen
Seien G =< g > und G t =< g ˆ > Gruppen der Ordnung q ∈ P Es gibt eine Abbildung e : G × G → G t mit:
e(P a , Q b ) = e(P , Q) ab ∀ P , Q ∈ G , a, b ∈ Z q (bilinear)
∃ P, Q ∈ G mit e(P , Q ) 6= 1 ∈ G t (nicht degeneriert) e(., .) ist effizient berechenbar
∀ g mit < g >= G gilt < e(g , g ) >= G t
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Voraussetzungen
Seien G =< g > und G t =< g ˆ > Gruppen der Ordnung q ∈ P Es gibt eine Abbildung e : G × G → G t mit:
e(P a , Q b ) = e(P , Q) ab ∀ P , Q ∈ G , a, b ∈ Z q (bilinear)
∃ P, Q ∈ G mit e(P , Q ) 6= 1 ∈ G t (nicht degeneriert) e(., .) ist effizient berechenbar
∀ g mit < g >= G gilt < e(g , g ) >= G t
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Voraussetzungen
Seien G =< g > und G t =< g ˆ > Gruppen der Ordnung q ∈ P Es gibt eine Abbildung e : G × G → G t mit:
e(P a , Q b ) = e(P , Q) ab ∀ P , Q ∈ G , a, b ∈ Z q (bilinear)
∃ P, Q ∈ G mit e(P , Q ) 6= 1 ∈ G t (nicht degeneriert) e(., .) ist effizient berechenbar
∀ g mit < g >= G gilt < e(g , g ) >= G t
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Voraussetzungen
Seien G =< g > und G t =< g ˆ > Gruppen der Ordnung q ∈ P Es gibt eine Abbildung e : G × G → G t mit:
e(P a , Q b ) = e(P , Q) ab ∀ P , Q ∈ G , a, b ∈ Z q (bilinear)
∃ P, Q ∈ G mit e(P , Q ) 6= 1 ∈ G t (nicht degeneriert) e(., .) ist effizient berechenbar
∀ g mit < g >= G gilt < e(g , g ) >= G t
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
Signatur
Nachricht m, geheimer Schl¨ ussel sk = (x, y ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y )
m signieren:
w¨ ahle a ∈ R G , setze Signatur σ = (a, b = a y , c = a x+xym )
σ von m verifizieren:
pr¨ ufe b: e(a, Y ) = ? e(g , b)
pr¨ ufe c : e(X , a) · e(X , b) m = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von m verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ ) : e(X , ˜ a) · e (X , b) ˜ m = ? e(g , ˆ c) τ
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von m verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ ) : e(X , ˜ a) · e (X , b) ˜ m = ? e(g , ˆ c) τ
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von m verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ ) : e(X , ˜ a) · e (X , b) ˜ m = ? e(g , ˆ c) τ
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von m verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ ) : e(X , ˜ a) · e (X , b) ˜ m = ? e(g , ˆ c) τ
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von m verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ ) : e(X , ˜ a) · e (X , b) ˜ m = ? e(g , ˆ c) τ
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von m verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ ) : e(X , ˜ a) · e (X , b) ˜ m = ? e(g , ˆ c) τ
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von m verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ ) : e(X , ˜ a) · e (X , b) ˜ m = ? e(g , ˆ c) τ
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von m verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ ) : e(X , ˜ a) · e (X , b) ˜ m = ? e(g , ˆ c) τ
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
CL Signatur
blind signieren
Nachricht M = g m · Z r , geheimer Schl¨ ussel sk = (x, y, z ), ¨ offentlicher Schl¨ ussel pk = (X = g x , Y = g y , Z = g z )
m mit M blind signieren:
w¨ ahle α ∈ R G , pr¨ ufe ZPK {(µ, %) : M = g µ · Z % }, setze Signatur σ = (a = g α , A = a z , b = a y , B = A y , c = a x M αxy )
σ von m verifizieren:
pr¨ ufe A: e(a, Z ) = ? e(g , A)
pr¨ ufe b und B : e (a, Y ) = ? e (g , b) und e(A, Y ) = ? e(g , B)
pr¨ ufe c : e(X , a) · e(X , b) m · e (X , B ) r = ? e (g , c )
Kryptographische Primitive CL Signatur Literatur
Literatur
Quellen
Goldreich: Foundations of Cryptography - A Primer. now Boston Delft 2005.
Goldreich: A Short Tutorial of Zero-Knowledge. 2010.
Camenisch und Stadler: Proof Systems for General Statements about Discrete Logarithms. 1997.
Agnes Chan, Yair Frankel und Yiannis Tsiounis: Easy come — Easy go
divisible cash. 1998.
Kryptographische Primitive CL Signatur Literatur
Literatur
Quellen
Camenisch und Lysyanskaya: Signature Schemes and Anonymous Credentials from Bilinear Maps. 2005.
Camenisch, Hohenberger und Lysyanskaya: Compact E-Cash. 2006.
Bethencourt: Intro to Bilinear Maps. Vortrag 2006.
Dan Boneh, Matthew K. Franklin, Identity-Based Encryption from the Weil Pairing. 2001.
The P(airing) B(ased) C(ryptography) library, designed by Ben Lynn et.
al. is an open C-project based on GMP (http://crypto.stanford.edu/pbc/).
Kryptographische Primitive CL Signatur Literatur
Literatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von M verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ, µ, %) : e(X , ˜ a) · e (X , b) ˜ µ = ? e(g , ˆ c) τ und M = g µ · Z %
Kryptographische Primitive CL Signatur Literatur
Literatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von M verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ, µ, %) : e(X , ˜ a) · e (X , b) ˜ µ = ? e(g , ˆ c) τ und M = g µ · Z %
Kryptographische Primitive CL Signatur Literatur
Literatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von M verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ, µ, %) : e(X , ˜ a) · e (X , b) ˜ µ = ? e(g , ˆ c) τ und M = g µ · Z %
Kryptographische Primitive CL Signatur Literatur
Literatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von M verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ, µ, %) : e(X , ˜ a) · e (X , b) ˜ µ = ? e(g , ˆ c) τ und M = g µ · Z %
Kryptographische Primitive CL Signatur Literatur
Literatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von M verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ, µ, %) : e(X , ˜ a) · e (X , b) ˜ µ = ? e(g , ˆ c) τ und M = g µ · Z %
Kryptographische Primitive CL Signatur Literatur
Literatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von M verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ, µ, %) : e(X , ˜ a) · e (X , b) ˜ µ = ? e(g , ˆ c) τ und M = g µ · Z %
Kryptographische Primitive CL Signatur Literatur
Literatur
blind verifizieren
Commitment der Signatur: w¨ ahle r , r 0 ∈ R Z q , berechne
˜
σ =
˜
a = a r , b ˜ = b r , ˆ c = ˜ c r
0= c rr
0˜
σ von M verifizieren:
pr¨ ufe ˜ b: e(˜ a, Y ) = ? e(g , ˜ b) pr¨ ufe ˆ c : ZPK
(τ, µ, %) : e(X , ˜ a) · e (X , b) ˜ µ = ? e(g , ˆ c) τ und M = g µ · Z %
Kryptographische Primitive CL Signatur Literatur
Literatur