Вы находитесь на странице: 1из 12

Prelegerea 7

Sistemul electronic de plat


a Brands
7.1

O scurt
a prezentare a sistemelor de plat
a electronice
off-line

Prima si cea mai simpla schema a fost definita de Chaum, Fiat si Naor. Prezentam, pe scurt,
ideea acestui protocol.
Fie n, p, q, a, b parametrii sistemului RSA si f o functie de dispersie fara coliziuni tari. O
moneda electronica de o valoare fixata d este reprezentata sub forma
(x, (f (x))b (mod n)
cu x ales aleator. Pentru fiecare valoare a unei monezi trebuie folosit un alt exponent de criptare
b si un exponent de decriptare corespunzator a. Identitatea utilizatorului trebuie inclusa n
moneda electronica asfel ncat daca moneda este folosita corect, identitatea nu poate fi dedusa;
alfel identitatea poate fi calculata.
Pentru aceasta este folosita o tehnica numita Cut-and-Choose: cand U doreste sa extraga
o moneda din banca, construieste un mesaj format din k perechi de numere (k este numarul de
candidati). Aceste numere au proprietatea ca dintr-o pereche se poate calcula identitatea lui U
(de exemplu printr-un simplu XOR ntre cele doua numere ale perechii), iar avand la dispozitie
un singur numar din fiecare pereche nu se poate deduce nici o informatie. U concateneaza cei
k candidati si obtine o semnatura blind de la B asupra mesajului trimis cu protocolul de
semnatura blind RSA.
In momentul n care U doreste sa foloseasca moneda la magazinul S, primeste o provocare
de la S de k biti aleatori. Pentru fiecare bit, U raspunde cu primul numar al perechii corespunzatoare numarului bitului (daca bitul este 0) sau cu al doilea numar daca bitul este 1.
(De exemplu, daca provocarea este 0110 . . . , U raspunde cu primul numar din prima pereche, al
doilea numar din a doua pereche, al doilea numar din a treia pereche etc). Cand S depoziteaza
moneda la banca, i trimite lui B provocarea mpreuna cu numerele trimise de U. B pastreaza
ntr-o baza de date moneda mpreuna cu provocarea si raspunsul lui U.
Daca U ncearca refolosirea monezii, primeste o noua provocare aleatoare de k biti, care
1
difera de prima n cel putin un bit cu o probabilitate destul de mare (1 k ). Astfel pentru
2
bitul care difera, U va revela ambele numere ale perechii corespunzatoare. Acum banca poate
calcula din cele doua numere identitatea lui U.
83

84

BRANDS
PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA

Desi este conceptual simpla, aceasta schema nu este eficienta, deoarece fiecare moneda trebuie nsotita de 2k numere mari. Modelul Chaum-Fiat-Naor satisface primele patru proprietati
definite n prelegerea anterioara.
Okamoto si Ohta au descris un sistem universal de plata care satisface toate cele sase
proprietati, dar din pacate este ineficient din punct de vedere al dimensiunii mesajelor
transmise. In schimb ei au avut ideea de a introduce proprietatea de divizibilitate a monezilor
electronice. Pentru fiecare moneda de valoare d se asociaza un arbore binar etichetat astfel:
nodul radacina (de nivel 0) are valoarea d, cele doua noduri de pe nivelul 1 au etichetele d/2 si
d
n general nodurile de pe nivelul k sunt etichetate cu k . Daca d = 2s , arborele are s + 1
2
nivele, cu frunzele avand valoarea minima 1.
Orice suma mai mica decat d poate fi folosita dupa urmatoarele reguli:
1. Odata ce un nod este folosit, toti succesorii si predecesorii sai nu vor putea fi folositi la o
plata viitoare;
2. Nici un nod nu poate fi folosit mai mult decat o data.
Aceste doua reguli asigura folosirea unui singur nod pentru orice drum de la radacina la o
frunza, ceea ce face imposibila folosirea unei valori mai mari decat valoarea radacinii d.
Exemplul 7.1 Sa presupunem ca U are o moned
a n valoare de 4 unitati. Se construieste
arborele binar:

00

0
4a

aa

aa

2
2 01

,
,

000

l
1

001

010

Z
Z

011

Pentru a realiza o plata de 3 unit


ati, U foloseste 00 si 010 . Singurul nod care poate fi
utilizat la o plata viitoare este 011 n valoare de o unitate.
Daca cel putin una din cele doua reguli este ncalcata, atunci exista un drum de la radacina la
o frunza pe care s-au folosit 2 noduri si se va putea determina identitatea lui U.
Mai exact, fiecare utilizator U are o valoare secreta s care releva identitatea sa, iar fiecare
nod i al arborelui are asignata o valoare secreta ti . Se construieste dreapta y = sx + ti pentru
fiecare nod i. Cand se face o plata utilizand un nod particular n, U va revela ti pentru toti i
predecesori ai lui n. Magazinul S va trimite o provocare x1 la care U raspunde cu y1 = sx1 + tn .
Daca acelasi nod n este folosit a doua oara, U primeste nca o provocare x2 la care raspunde
cu y2 = sx2 + tn , deci U a revelat doua puncte (x1 , y1 ), (x2 , y2 ) ale dreptei y = sx + tn , de unde
se poate calcula s si apoi identitatea lui U.
Daca se folosesc doua noduri n si m de pe acelasi drum de la radacina la o frunza, presupunem ca n este succesor al lui m. Cand se foloseste nodul n se releva tm ; apoi daca se
foloseste nodul m U raspunde la provocarea x1 a lui S cu y1 = sx1 + tm .
Deci si n acest caz S poate calcula s si identitatea lui U.
Un alt dezavantaj al acestei scheme ar fi ca se pot realiza legaturi ntre plati, adica se poate
deduce daca doua plati provin din aceeasi moneda si deci, de la aceeasi persoana.

7.2. INIT
IALIZAREA SISTEMULUI BRANDS

85

Protocoalele discutate pana acum pot sa detecteze identitatea utilizatorilor necinstiti, fara
nsa a putea preveni utilizarea unei monezi de doua ori. Singurul mod prin care s-ar putea
realiza acest lucru este prin ncorporarea unei componente hardware (chip sau smart card) n
calculatorul utilizatorului, cu rolul de observator al tuturor platilor. In plus, nici un protocol
de plata al utilizatorlui nu poate fi efectuat fara o informatie secreta detinuta de observator.
Astfel, observatorul autorizeaza si participa activ la toate tranzactiile.
Totusi, se poate ntampla ca utilizatorul sa reuseasca printr-o modalitate oarecare sa afle
informatia secreta a observatorului. In acest caz sistemul trebuie sa asigure detectarea utilizatorului care a comis frauda, la fel ca n primele protocoale discutate.
Cele mai cunoscute si utilizate protocoale de plata off-line cu monezi electronice apartin lui
Stefan Brands. Primul sistem real de tip off-line, numit DigiCash, se bazeaza n totalitate
pe aceste protocoale.

7.2

Initializarea sistemului Brands

Se cauta doua numere prime mari p si q cu proprietatea q|p 1 (p si q sunt alese la fel ca n
schema de identificare Schnorr) si H o functie de dispersie fara coliziuni tari. Se genereaza un
subgrup Gq de ordin q al lui Zp (aici se vor efectua toate calculele din sistem).
Initializarea sistemului consta n generarea de catre banca a urmatoarelor cinci numere
distincte:
1. g Gq , x Zq ; se calculeaza h = g x (mod q). Tuplul generator (g, h) Gq Gq
constituie cheia publica a bancii, iar x Zq cheia secreta.
2. Un tuplu generator (g1 , g2 ) cu g1 , g2 Gq .
3. Un generator d Gq .
Vom presupune pentru nceput ca exista n sistem monezi de o singura valoare, apoi vom
arata cum se pot introduce monezi de valori diferite.
Securitatea acestei scheme consta n alegerea numerelor g, h, g1 , g2 , d astfel ncat nici un
utilizator sa nu poata exprima oricare din aceste numere ca o combinatie de puteri ale celorlalte.
Acest lucru este din punct de vedere al complexitatii la fel de dificil ca si gasirea unei reprezentari
netriviale a lui 1 n raport cu (g, h, g1 , g2 , d) o problema NP-completa pentru p si q convenabil
alese (prelegerea precedenta).
Cand utilizatorul U si deschide un cont n banca, el genereaza aleator numerele u1 , u2 Zq
si calculeaza I = g1u1 g2u2 (mod p). (u1 , u2 ) va constitui cheia secreta a lui U, iar I Gq va
fi pseudonimul folosit de B pentru identitatea reala a lui U. B stocheaza ntr-o baza de date
identitatea reala a lui U, numarul contului sau si I. Este important ca U sa cunoasca o singura
reprezentare a lui I n raport cu (g1 , g2 ). Daca U utilizeaza o moneda de doua ori, B poate sa
determine (u1 , u2 ).
O moneda electronica este reprezentata sub forma (m, sigK (m)) cu anumite restrictii asupra
lui m, dupa cum vom vedea in continuare.

BRANDS
PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA

86

7.3
7.3.1

Tehnici pentru crearea sistemului


Protocolul de semn
atur
a Chaum - Pedersen

Protocolul de semnatura Chaum - Pedersen este un protocol de tip Schnorr. Fie m Gq


mesajul care trebuie semnat. Presupunem ca U doreste o semnatura de la B asupra lui m.
Pasii protocolului sunt urmatorii:
1. B genereaza aleator w Zq si trimite lui U numerele z = mx (mod p), a =
g w (mod p) si b = mw (mod p).
2. U genereaza aleator provocarea c = H(m k z k a k b) si o trimite lui B.
3. B raspunde cu r = w + cx (mod q).
4. U accepta daca si numai daca hc a = g r (mod p) si z c b = mr (mod p).
(de verificat; nu coincide cu pag 22 din licenta)
Se observa ca singura diferenta fata de schema lui Schnorr este trimiterea la pasul 1 a nca
doua numere: z si b. sigK (m) = (z, a, b, r) va constitui semnatura asupra mesajului m.
Formal, protocolul de semnatura Chaum-Pedersen este:
P =Gq ,
A =G3q Zq ,
K= {(p, q, g, h, x)| p, q prime, q|p 1, h = g x (mod p)}.
Cheia (p, q, g, h) este publica, iar x este secreta.
K K , m Gq si w Zq aleator, definim
sigK (m, w) = (z, a, b, r), unde z = mx (mod p), a = g w (mod p), b = mw (mod p),
c = H(m k z k a k b), r = w + cx (mod q).
verK (m, (z, a, b, r)) = T hc a = g r (mod p), z c b = mr (mod p).
Daca U si B urmeaza protocolul, dupa primii 3 pasi avem:
g r = g w+cx = (g x )c g w = hc a (mod p),
mr = mw+cx = (mx )c mw = z c b (mod p),
deci U accepta n pasul 4.

7.3.2

Protocolul restrictiv de semn


atur
a blind Chaum - Pedersen

In aceasta sectiune descriem o varianta simplificata a schemei de semnatura blind folosita


n protocolul de extragere. Pentru a transforma protocolul de semnatura Chaum - Pedersen
ntr-un protocol de semnatura blind, U trebuie sa obtina un nou mesaj m0 si noile numere
a0 , b0 , z 0 , c0 = H(m0 k z 0 k a0 k b0 ). B raspunde cu r, pe care U l transforma n r0 astfel ncat
(z 0 , a0 , b0 , r0 ) sa fie o semnatura valida asupra lui m0 . Protocolul este urmatorul:

7.3. TEHNICI PENTRU CREAREA SISTEMULUI

87

1. B genereaza aleator w Zq si trimite lui U valorile z = mx (mod p), a = g w (mod p)


si b = mw (mod p).
2. U genereaza aleator trei numere s Zq , u, v Zq , apoi calculeaza:
m0 = ms (mod p),

w0 = uw + v (mod q),
0

b0 = aus (m0 )v = (m0 )w (mod p),

a0 = au g v = g w (mod p),

z 0 = z s = (m0 )x (mod p),

c0 = H(m0 ||z 0 ||a0 ||b0 )

si trimite lui B numarul c = c0 u1 (modq).


3. B raspunde cu r = w + cx (mod q).
4. U accepta daca si numai daca hc a = g r (mod p) si z c b = mr (mod p).
Se observa ca (z, a, b, r) nu este o semnatura valida asupra lui m deoarece r este un raspuns
la o provocare diferita de H(m||z||a||b). Dar U poate calcula r0 = ur + v (mod q) si obtine
sigK (m0 ) = (z 0 , a0 , b0 , r0 ), o semnatura valida asupra lui m0 . Semnatura poate fi verificata de
oricine.
U accepta la pasul 4 deoarece relatiile sunt verificate la fel ca n protocolul anterior.
a valida
Propozitia 7.1 Daca r0 = ur + v (mod q), atunci (z 0 , a0 , b0 , r0 ) constituie o semnatur
0
asupra lui m .
Demonstratie:

hc a0 = g r (mod p)
0
0
(z 0 )c b0 = (m0 )r (mod p)
0
0
Dar r0 = ur+v = u(w+cx)+v (mod p) = g r = g u(w+cx)+v = g ucx g v+uw = (g x )uc g w =
0
0
0
0
0
hc a0 (mod p) si (m0 )r = (m0 )ucx (m0 )uw+v = (m0 )xc (m0 )w = (z 0 )c b0 (mod p),
deci sigK (m0 ) = (z 0 , a0 , b0 , r0 ).
2
0
Protocolul este de tip blind deoarece B nu cunoaste m , mesajul pentru care U a obtinut
o semnatura.
Pentru K = (p, q, g, h, x, w),

verK (m , (z , a , b , r )) = T

Propozitia 7.2
1. Daca U urmeaz
a protocolul pas cu pas, atunci perechea (m0 , sigK (m0 )) nu poate fi legat
a
de nici o executie specific
a a protocolului.
2. Chiar daca B afla m0 , reprezentarea (s, t) a lui m0 n raport cu (m, g) cunoscuta de U i
este ascunsa lui B n setul tuturor reprezent
arilor lui m0 .
Demonstratie:
La finalul protocolului, B este n posesia urmatoarelor informatii: w, z, a, b, c. Aratam ca
exista q alegeri posibile pentru (s, u, v) care produc n final aceeasi pereche (m0 , sigK (m0 )).
Fie s Zq fixat (sunt posibile q 1 alegeri pentru s) si m0 , sigK (m0 ) = (z 0 , a0 , b0 , r0 ) fixate.
Sa analizam n cate moduri putem alege u, v.
Se calculeaza n mod unic c0 = H(m0 ||z 0 ||a0 ||b0 ) (mod q). Deci uc = c0 (mod q) = u =
c0 c1 (mod q), deci si u este unic determinat.

BRANDS
PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA

88

r0 = ur + v = u(w + cx) + v = uw + c0 x + v (mod q) = v = r0 uw c0 x (mod q). Sa


aratam ca u si v astfel determinate verifica relatiile pentru a0 si b0 .
0
0
0
0
0
0
au g v = au g r uwc x = au g r (g w )u (g x )c = au hc a0 au hc = a0 (mod p)
0
0
0
0
0
(m0 )w = (m0 )uv+w = bus (m0 )v = bus (m0 )r uwc x = (mw )us (m0 )r (m0 )uw ((m0 )x )c =
0
0
mwus (z 0 )c b0 (ms )uw (z 0 )c = b0 (mod p)
Am demonstrat asfel ca exista exact q 1 alegeri pentru (s, u, v) care produc aceeasi pereche
0
(m , sigK (m0 )), deci B nu realizeaza n care executie specifica a protocolului s-a semnat mesajul
m0 .
2

7.3.3

Generarea aleatoare a unei reprezentari

In faza de initializare a sistemului, U trebuie sa genereze un tuplu (u1 , u2 ) pentru a-si deschide
un cont n banca si a calcula pseudonimul sau I = g1u1 g2u2 (mod p). Banca trebuie sa se asigure
ca U nu cunoaste doua reprezentari ale lui I n raport cu (g1 , g2 ).
Prin urmatorul protocol U si B genereaza mpreuna un numar aleator h Zq si o reprezentare a acestuia n raport cu tuplul generator (g1 , . . . , gk ).

1. U genereaza aleator tuplul (x1 , . . . , xk+1 ) si trimite lui B h0 =

k+1
Y

gixi (mod p).

i=1

2. B trimite lui U un tuplu ales aleator (y1 , . . . , yk ).


3. U trimite xk+1 lui B.
Daca U a fost corect la pasul 3, (x1 + y1 , . . . , xk + yk ) este o reprezentare a lui h =
k
Y
0 xk+1
h gk+1 ( giyi )
i=1

(mod p) n raport cu (g1 , . . . , gk ).

Intr-adevar, g1x1 +y1 . . . g xk +yk =


k

k
k
Y
Y
yi
xi
i=1

7.4

gi = h0 gk+1k+1

gi

i=1

k
Y
yi

gi = h (mod p).

i=1

Sistemul de baz
a Brands

In aceasta sectiune sunt descrise cele trei protocoale care formeaza sistemul de baza: protocolul
de extragere a monezilor electronice, protocolul de plata si protocolul de depozit. Se presupune
ca n sistem exista monezi de o unica valoare. Ulterior vom arata cum se pot introduce n
sistem monezi de diferite valori.

7.4.1

Protocolul de extragere a monezilor

Daca utilizatorul U avand identitatea I = g1u1 g2u2 (mod p) doreste sa extraga o moneda din
contul sau, mai ntai trebuie sa convinga banca ca ntr-adevar el este posesorul contului de unde
se face extragerea. Pentru aceasta U si B vor executa protocolul din prelegerea anterioara, prin
care U i demonstreaza lui B cunoasterea unei reprezentari a lui I n raport cu (g1 , g2 ), fara a
o revela.

BRANDS
7.4. SISTEMUL DE BAZA

89

Pentru fiecare extragere a unei monezi, este executat urmatorul protocol:


1. U i demonstreaza lui B cunoasterea reprezentarii (u1 , u2 ) a lui I n raport cu (g1 , g2 )
prin protocolul din prelegerea anterioara.
2. B realizeaza urmatoarele operatii:
(a) extrage din contul lui U valoarea fixata a monezii;
(b) calculeaza m = Id (mod p);
(c) genereaza aleator w Zq ;
(d) trimite lui U: z = mx (mod p), a = g w (mod p) si b = mw (mod p).
3. U realizeaza urmatoarele operati:
(a) calculeaza m = Id (mod p);
(b) genereaza aleator s Zq , u, v Zq ;
(c) calculeaza: m0 = ms = I s ds = g1u1 s g2u2 s ds (mod p),
0
z 0 = z s (mod p), w0 = uw + v (mod q), a0 = au g v = g w (mod p),
0
bus (m0 )v = (m0 )w (mod p);

b0 =

(d) determina aleator a descompunere a lui m0 in A si B (m0 = AB (mod p)) astfel:


determina aleator fiecare din numerele u1 s, u2 s ca suma de doua numere:
u1 s = x1 + x2 (mod q), u2 s = y1 + y2 (mod q), s = z1 + z2 (mod q),
apoi calculeaza A = g1x1 g2y1 dz1 (mod p) si B = g1x2 g2y2 dz2 (mod p);
(e) calculeaza c0 = H(m0 ||z 0 ||a0 ||b0 ||A);
(f) trimite lui B mesajul c = c0 u1 (mod q).
4. B raspunde cu r = cx + w (mod q).
5. U accepta daca si numai daca g r = hc a (mod p), mr = z c b (mod p).
In final, U calculeaza r0 = ru + v (mod q).
Conform propozitiilor 7.1 si 7.2, n final U este n posesia unui mesaj semnat
(A, B, sigK (A, B)) = (z 0 , a0 , b0 , r0 )
care nu poate fi legat de nici o executie specifica a protocolului. In plus, m0 = AB (mod p).
Descompunerea lui m0 n A si B a fost facuta pentru ca U sa poate sa demonstreze n protocolul
de plata identitatea sa, fara a o dezvalui.
Daca U urmeaza protocolul, atunci se va afla n final n posesia reprezentarilor lui m0 , A, B
n raport cu (g1 , g2 , d) care sunt (u1 s, u2 s, s), (x1 , y1 , z1 ) si respectiv (x2 , y2 , z2 ). Din Corolarul
?.1 (prelegerea precedenta), U nu poate afla doua reprezentari ale lui m0 n timp polinomial.
Cum (x1 + x2 , y1 + y2 , z1 + z2 ) este de asemenea o reprezentare a lui m0 rezulta ca trebuie
ndeplinite simultan conditiile (toate modulo q):
u1 s = x1 + x2 , u2 s = y1 + y2 , s = z1 + z2 .
Faptul ca U accepta n pasul 5 se deduce similar protocolului din ?.3.2.

BRANDS
PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA

90

7.4.2

Protocolul de plat
a

Cand U doreste sa foloseasca o moneda la magazinul S este executat urmatorul protocol:


1. U i trimite lui S:
A = g1x1 g2y1 dz1 (mod p),

B = g1x2 g2y2 dz2 (mod p),

sigK (A, B) = (z 0 , a0 , b0 , r0 ).

(Daca n sistem sunt monezi de valori diferite U trebuie sa trimita si valoarea monezii.)
2. S se asigura ca AB 6= 1.
Apoi el verifica semnatura bancii:
(

verK (m , sigK (m )) = T

g r = hc a0 (mod p)
cu c0 = H(AB||z 0 ||a0 ||b0 ||A).
0
0
(m0 )r = (z 0 )c b0 (mod p)

Daca relatiile sunt ndeplinite, S este convins ca moneda a fost emisa de banca si
trimite lui U o provocare c Zq \ {1}.
3. U raspunde cu
r1 = x1 + cx2 ,

r2 = y1 + cy2 ,

r3 = z1 + cz2

(toate calculele sunt modulo q).


4. S accepta daca si numai daca g1r1 g2r2 dr3 = AB c (mod p).
Teorema 7.1
1. (Completitudinea) Daca U urmeaz
a protocolul pas cu pas si protocolul de extragere a
monezii a fost executat corect, atunci S accept
a la pasul 4.
2. (Consistenta) Daca U nu cunoaste cate o reprezentare a lui A, respectiv B n raport cu
(g1 , g2 , d), atunci nu exista strategie pentru el astfel nc
at S sa accepte cu o probabilitate
de succes ne-neglijabil
a.
3. (Ascunderea informatiei) Chiar daca S dispune de o putere de calcul nelimitata, iar
U si S execut
a protocolul pas cu pas, S nu va reusi sa afle n final identitatea lui U cu o
probabilitate ne-neglijabil
a.
Demonstratie:
1. Daca protocolul este executat pas cu pas, la pasul 4 avem:
g1r1 g2r2 dr3 = g1x1 +cx2 g2y1 +cy2 dz1 +cz2 = g1x1 g2y1 dz1 (g1x2 g2y2 dz2 )c = AB c (mod p),
deci S accepta.
2. U ar trebui sa determine numerele r1 , r2 , r3 Zq asfel ncat g1r1 g2r2 dr3 = AB c (mod p),
ceea ce este echivalent cu determinarea unei reprezentari a lui AB c n raport cu (g1 , g2 , d),
care este o problema pe care U nu o poate rezolva n timp polinomial.
Astfel, se deduce un lucru foarte important pentru securitatea sistemului:

BRANDS
7.4. SISTEMUL DE BAZA

S accepta
este cinstit =

91

U cunoaste cate o reprezentare a lui A si B n raport cu (g1 , g2 , d) si


U cunoaste o reprezentare a lui m0 n raport cu (g1 , g2 , d).

Deci, daca U nu cunoaste o reprezentare a lui m0 n raport cu (g1 , g2 , d), nu are nici o
sansa sa-l faca pe S sa accepte la pasul 4.
3. La sfarsitul protocolului, S se afla n posesia urmatoarelor informatii:
A, B, z, a, b, r, c, r1 , r2 , r3 .
Consideram sistemul (ntai cu necunoscutele u1 , u2 , s, r1 , r2 , r3 , iar a doua oara cu necunoscutele x(1 , x2 , y1 , y2 , z1 , z2 ):
x 1 + x 2 = u1 s
y1 + y2 = u2 s
z1 + z2 = s
x1 + cx2 = r1
y1 + cy2 = r2
z1 + cz2 = r3
(toate ecuatiile sunt scrise modulo q).
Din acest sistem se deduce ca problema determinarii lui (u1 , u2 ) este echivalenta cu problema determinarii numerelor: x1 , x2 , y1 , y2 , z1 , z2 .
Informatiile pe care S le are despre x1 , x2 , y1 , y2 , z1 , z2 sunt:

x1 + cx2 = r1

y1 + cy2 = r2
z1 + cz2 = r3

(mod q)
(1)
(mod q)
(2)
(mod q) (3)

A = g1x1 g2y1 dz1 (mod p) (4)


B = g1x2 g2y2 dz2 (mod p) (5)
g1r1 g2r2 dr3 = AB c (mod p) (6)

(1) x1 = r1 cx2 (mod q), (2) y1 = r2 cy2 (mod q) , (3) z1 = r3 cz2 (mod q)
Inlocuind x1 , y1 , z1 n (4) si folosind (6) rezulta:
A = g1r1 cx2 g2r2 cy2 dr3 cz2 (mod p) g1r1 g2r2 dr3 = A(g1x2 g2y2 dz2 )c (mod p)
1
g1x2 g2y2 dz2 = (A1 g1r1 g2r2 dr3 ) c = B (mod p). (7)

Relatia (7) este echivalenta cu (5), ceea ce demonstreaza ca din relatiile (1),(2) si (3) nu
se obtine nici o informatie n plus, deci (4) si (5) sunt de fapt singurele informatii esentiale
pe care S le are despre x1 , x2 , y1 , y2 , z1 , z2 .
De aici rezulta ca determinarea lui (x1 , y1 , z1 ) este echivalenta cu determinarea unei
reprezentari a lui A n raport cu (g1 , g2 , d), iar determinarea lui (x2 , y2 , z2 ) este echivalenta
cu determinarea unei reprezentari a lui B.
Daca dispune de o putere de calcul nelimitata, S poate determina o reprezentare a lui A
si o reprezentare a lui B n raport cu (g1 , g2 , d). Probabilitatea ca aceste reprezentari sa
1
1 1
fie egale cu cele cunoscute de U este 2 2 = 4 din Propozitia ?.2 (prelegerea anterioara).
q q
q
Deci probabilitatea ca S sa afle identitatea lui U dupa executarea protocolului este

7.4.3

1
.
q4

Protocolul de depozit

Dupa un anumit interval de timp, toate magazinele depoziteaza la banca monezile electronice
primite de la clienti. Protocolul executat de un magazin S cu banca pentru trimiterea fiecarei
monezi este urmatorul:

92

BRANDS
PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA

1. S si B urmeaza protocolul provocare/raspuns (prelegerea anterioara) prin care S


demonstreaza cunoasterea reprezentarii identitatii sale n raport cu (g1 , g2 ).
2. S trimite lui B mesajele A, B, sigK (A, B), c, r1 , r2 , r3 .
3. B verifica validitatea semnaturii sigK (A, B), stocheaza A, B, sigK (A, B), c, r1 , r2 , r3
ntr-o baza de date si crediteaza contul lui S cu valoarea monezii.

Teorema 7.2 Dac


a moneda (A, B, sigK (A, B)) apare de doua ori n baza de date a bancii,
atunci banca poate determina identitatea utilizatorului necinstit care a utilizat moneda de doua
ori.
Demonstratie:
Daca moneda (A, B, sigK (A, B)) apare de doua ori n baza de date, rezulta ca banca dispune
de doua seturi de raspunsuri ale lui U: (r1 , r2 , r3 ) si (r1 0 , r2 0 , r3 0 ) corespunzatoare celor doua
provocari c si c0 ale lui S.
Din relatiile de verificare ale
de plata rezulta:
( protocolului
g1r1 g2r2 dr3 = AB c (mod p)
(1)
r1 0 r2 0 r3 0
c0
g1 g2 d = AB (mod p) (2)
0
Ridicand (1) la puterea c (si (2) la puterea c, rezulta:
0
0
0
0
0
Ac B cc = g1r1 c g2r2 c dr3 c (mod p)
0
0
0
0
Ac B cc = g1r1 c g2r2 c dr3 c (modp)
Impartind cele doua relatii rezulta:
0
0
0
0
0
0
0
Ac c = g1r1 c r1 c g2r2 c r2 c dr3 c r3 c (mod p) =
(r c0 r 0 c)(c0 c)1 (r2 c0 r2 0 c)(c0 c)1 (r3 c0 r3 0 c)(c0 c)1
d
(mod p) (3)
g2
A = g1 1 1
(r1 r1 0 )(cc0 )1 (r2 r2 0 )(cc0 )1 (r3 r3 0 )(cc0 )1
Analog se obtine: B = g1
g2
d
(mod p) (4)
x1 y1 z1
x2 y2 z2
Dar A = g1 g2 d (mod p) (5)
si
B = g1 g2 d (mod p) (6)
Cum nu se cunoaste o reprezentare netriviala a lui 1 n raport cu (g1 , g2 , d), din (3),(4),(5)
si (6)
rezulta (toate relatiile sunt modulo q):
(
(r1 c0 r1 0 c)(c0 c)1 = x1 (r2 c0 r2 0 c)(c0 c)1 = y1 (r3 c0 r3 0 c)(c0 c)1 = z1
(r1 r1 0 )(c c0 )1 = x2
(r2 r2 0 )(c c0 )1 = y2
(r3 r3 0 )(c c0 )1 = z2
Ceea ce nseamna ca banca poate sa calculeze:
u1 s = x1 + x2 = (r1 c0 r1 0 c)(c0 c)1 + (r1 r1 0 )(c c0 )1 (mod q)
(7)
0
0
0
1
0
0 1
u2 s = y1 + y2 = (r2 c r2 c)(c c) + (r2 r2 )(c c ) = y2 (mod q)
(8)
0
0
0
1
0
0 1
s = z1 + z2 = (r3 c r3 c)(c c) + (r3 r3 )(c c ) = z2 (mod q)
(9)
0
1
0
0
Din (9) = s = (c c) (r3 (c 1) r3 (c 1)) (mod q) =
s1 = (r3 (c0 1) r3 0 (c 1))1 (c0 c) (mod q)
(10).
1
0
1
0
0
0
0
Din (7) si (10) rezulta u1 = u1 ss = (c c) (r1 (c 1) r1 (c 1))(r3 (c 1) r3 (c
1 0
1)) (c c) = (r1 (c0 1) r1 0 (c 1))(r3 (c0 1) r3 0 (c 1))1 (mod q)
si analog u2 = (r2 (c0 1) r2 0 (c 1))(r3 (c0 1) r3 0 (c 1))1 (mod q),
deci banca poate sa calculeze identitatea utilizatorului necinstit.
2


7.5. CORECTITUDINEA SISTEMULUI DE BAZA

7.5

93

Corectitudinea sistemului de baz


a

Urmatoarea teorema este fundamentala pentru demonstrarea securitatii sistemului:


protocolul de extragere a monezilor, U nu poate sa obtin
Teorema 7.3 In
a o semnatur
a asupra
0
unui mesaj m pentru care cunoaste o reprezentare n raport cu (g1 , g2 , d), dar care nu este o
putere a lui m.
Demonstratie:
Presupunem prin reducere la absurd ca U poate sa obtina o semnatura asupra lui m0 , cu
m0 de forma m0 = ms g1r = g1u1 s+r g2u2 s ds (mod p), cu s, r Zq arbitrare. Celelalte cazuri pentru
forma lui m0 se vor rezolva analog.
Daca U poate obtine o semnatura valida asupra lui m0 , rezulta ca U poate sa calculeze
sigK (m0 ) = (z 0 , a0 , b0 , r0 ) n timp polinomial.
Sa vedem cat de difcila este pentru U calcularea lui b0 .
0
b0 = (m0 )w = (m0 )uw+v = (ms g1r )uw+v = msuw msv (g1ru )w g1rv = bsu msv g1rv (g1ru )w (mod p).
Notam g3 = g1ru = g3w = g1rv msv bsu b0 (mod q), cu g1 , m, b, s, u, v, r, g3 cunoscute, iar w
necunoscut lui U (w este ales de B aleator la fiecare executie a protocolului). Deci calcularea
lui b0 este la fel de dificila ca si calcularea lui g3w .
Fie s Zp astfel ncat g3 = g s (mod p).
Presupunand ca b0 se poate calcula n timp polinomial, rezulta ca si g3w se poate calcula n
timp polinomial.
Dar U cunoaste g3 = g s , g w , g, m, mw si reuseste sa determine g ws = g3w , adica cheia DiffieHellman unica pentru g w , g s .
Cum u si w sunt alese aleator, avem ca si g w , g s = g3 = g1ru sunt aleatoare n Gq . Am
construit asfel un algoritm polinomial care are la intrare numerele aleatoare g s , g w si calculeaza
cheia unica Diffie-Hellman, ceea ce reprezinta o contradictie cu NP-completitudinea acestei
probleme.
De aici rezulta ca b0 nu se poate calcula polinomial, deci U nu poate obtine o semnatura
asupra lui m0 care nu e multiplu de m.
2
Consecint
a: Din Teoremele 7.1 si 7.3 deducem ca U poate sa obtina o semnatura asupra
0
lui m pe care o poate folosi ntr-un protocol de plata daca si numai daca impunem urmatoarele
restrictii asupra lui m0 (care justifica calificativul restrictiv dat acestui protocol de semnatura):
1. m0 este de forma ms m Gq ;
2. U cunoaste o reprezentare a lui m0 n raport cu (g1 , g2 , d) care este multiplu al reprezentarii
lui m.
Sa enuntam cateva proprietati importante ale sistemului:
1. Securitatea:
Din consecinta anterioara rezulta ca identitatea utilizatorului este inclusa n m0 (m0 =
ms = I s ds ); astfel, daca utilizatorul foloseste moneda o singura data i este garantata
anonimitatea. In schimb, daca moneda este folosita de doua ori, se poate detecta identitatea utilizatorului necinstit, cum am aratat n Teorema 7.2.

94

BRANDS
PRELEGEREA 7. SISTEMUL ELECTRONIC DE PLATA

Securitatea acestui sistem se bazeaza pe presupunerea de NP-completitudine a problemei


reprezentarii n grupuri, a problemei determinarii cheii unice Diffie-Hellman si pe ipoteza
ca functia de dispersie folosita n sistem este fara coliziuni tari.
Falsificarea unei monezi presupune imitarea semnaturii bancii, ceea ce este calculabil
dificil. Presupunand totusi ca U fasifica o moneda (m0 , sigK (m0 )) (dispunand de o
putere de calcul foarte mare), pentru a avea vreo sansa ca moneda sa i fie acceptata n
protocolul de plata, trebuie sa cunoasca o reprezentare a lui m0 n raport cu (g1 , g2 , d)
(din Teorema 7.1). Astfel, sarcina falsificatorului devine si mai dificila.
2. Anonimitatea utilizatorilor este de asemenea garantata de Teorema 7.1.
3. Sistemul este f
ar
a leg
aturi.
O moneda nu poate fi legata de nici o executie specifica a protocolului de extragere,
conform Propozitiei 7.2.
4. Sistemul este f
ar
a urm
arire.
Tranzactiile utilizatorului nu pot fi urmarite de banca dupa protocolul de extragere a
monezilor. In momentul n care moneda este depozitata n banca de catre un magazin,
banca nu poate deduce din care cont a fost extrasa initial.
5. Sistemul este off-line.
6. Sistemul asigura protejarea utilizatorilor mpotriva acuzarii nedrepte a bancii.
Daca banca acuza un utilizator U ca a folosit o moneda de doua ori, ea trebuie sa dezvaluie
juriului o reprezentare a identitatii lui U, de exemplu (u1 , u2 ). Daca U este onest,
reprezentarea (u1 , u2 ) coincide cu cea cunoscuta de U cu o probabilitate 1q (prelegerea
anetrioara). Deci, cu o probabilitate mare (1 1q ), cele doua reprezentari sunt distincte. Asfel, U se afla n posesia a doua reprezentari ale lui I n raport cu (g1 , g2 ),
deci poate calcula o reprezentare a lui 1 n raport cu (g1 , g2 ). U prezinta juriului aceasta
reprezentare a lui 1, ceea ce constituie proba nevinovatiei sale (U nu ar fi putut calcula
altfel o reprezentare a lui 1, deoarece aceasta este o problema NP - completa).
7. Introducerea monezilor de valori diferite. Exista cel putin doua metode:
Banca poate sa utilizeze cate o cheie publica diferita pentru fiecare tip de moneda.
Astfel, daca n sistem exista k monezi distincte, banca dispune de k chei publice:
(g, h1 ), . . . , (g, hk ) si de k chei secrete corespunzatoare: x1 , . . . , xk cu xi = loggi hi ,
i = 1, 2, . . . k.
Se utilizeaza k generatori d1 , . . . , dk (n loc de unul singur d utilizat n sistemul de
baza). Fiecare generator di reprezinta o anumita valoare (de exemplu di reprezinta
valoarea 2i1 ). Atunci se poate forma orice moneda de valoare cuprinsa ntre 1
si 2k folosind reprezentarea n binar a valorii monezii. Generatorul di apare n
reprezentarea monezii daca bitul i din reprezentarea binara este 1.
De exemplu, pentru o moneda de valoarea 11 = 10112 , m = Id4 d2 d1 , iar pentru o
moneda de valoare 18 = 100102 , m = Id5 d2 .
Inlocuirea lui m = Id cu m = Idip . . . di1 este singura modificare realizata n protocoalele sistemului de baza.

Вам также может понравиться