Documente Academic
Documente Profesional
Documente Cultură
9.1
Desi exista numeroase protocoale si sisteme de votare, procedura de baza pentru organizarea de
alegeri democratice este standard. Aceasta procedura indiferent daca este vorba de o votare
clasica sau una electronica implica n general ndeplinirea a patru sarcini:
1. Inregistrarea: crearea unei liste de persoane care au dreptul sa voteze;
2. Validarea: verificarea datelor personale ale celor care doresc sa voteze. Se permite
votarea numai pentru cei care au drept sa voteze si nu au votat deja.
3. Colectarea voturilor de la centrele de votare.
ararea voturilor.
4. Num
Pentru a avea ncredere n rezultatul alegerilor, oamenii trebuie sa aiba dovezi ca aceste sarcini
au fost ndeplinite n mod corect. Exista nsa numeroase posibilitati de corupere a sistemului
n timpul ndeplinirii fiecareia din aceste sarcini. De exemplu:
Autoritatile electorale pot trisa permitand alegatorilor fara drept de vot sa se nregistreze
la vot, iar alegatorilor nregistrati sa voteze de mai multe ori. De asemenea poate pierde
107
108
Alegatorii fara drept de vot se pot nregistra (cel mai frecvent folosind numele unei persoane decedate) sau cei cu drept de vot se pot nregistra sub mai multe nume.
Se poate ncerca participarea la vot sub o identitate falsa.
Cutiile cu voturi, voturile sau masinile de numarat pot fi compromise.
Atunci cand se proiecteaza un sistem electronic de vot este esential sa se implementeze modalitati prin care cele patru conditii mentionate mai sus sa fie ndeplinite fara a sacrifica intimitatea
alegatorilor sau a oferi posibilitati de frauda. In plus, mai trebuie ndeplinite cateva conditii
specifice unui astfel de sistem. Conform cu [5], [6], un sistem de vot electronic trebuie sa
satisfaca urmatoarele cerinte:
1. Anonimitatea votantilor: Nu exista nici o modalitate prin care poate fi dezvaluita
identitatea unei persoane care voteaza.
2. Acuratete: Oricine poate verifica validitatea voturilor si se poate asigura ca voturile nu
au fost schimbate, multiplicate sau eliminate de cineva (inclusiv de autoritati).
3. Necoliziune: Garantia ca toate voturile legale difera ntre ele.
4. Corectitudine de num
ar: Suma voturilor repartizate pe candidati este egala cu numaul
de voturi valide.
5. Verificabilitate: Orice votant poate controla daca votul sau a fost numarat si repartizat
candidatului pe care l-a votat.
6. Detectarea dublei votari: Daca apare un vot dublu, organizatorii pot identifica persoana care a votat de mai multe ori.
In aceasta prelegere vom prezenta cateva protocoale de vot care sa ndeplineasca cat mai multe
din aceste cerinte.
9.2
Cele mai simple protocoale de vot nu folosesc nici o autoritate, bazajndu-se numai pe alegatori.
Sunt primele protocoale concepute pentru votare, bazate pe aplcari succesive de criptari si/sau
semnari digitale de mesaje. Anonimitatea se obtine prin aplicarea de permutari n diverse faze.
Pentru exemplificare, prezentam protocolul lui Michael Merritt:
Sunt N alegatori, fiecare alegator i avand cheia publica de criptare ei si cheia privata di ,
precum si o semnatura electronica sigi . Protocolul este urmatorul;
1. Fiecare alegator i ataseaza un numar aleator ri la votul sau mi .
1
Este celebra declaratia dictatorului rus I.V.Stalin: Nu este important pe cine voteaz
a lumea; important este
cine num
ar
a voturile.
9.3. PROTOCOL CU AUTORITATE CENTRRALA
109
9.3
Pentru micsorarea volumului de calcule se poate itnroduce o noua entitate care se ocupa cu
nregistrarea alegatorilor; ea este numita de obicei autoritate central
a (AC). Prezentam o
varianta de protocol cu autoritate centrala. Se presupune ca prin carta de alegator, fiecare
persoana k dispune de doua chei ek (publica) si dk (secreta).
110
9.4
111
Protocolul Mu-Varadharajan
Dupa 1986 au fost publicate diverse protocoale de vot, fiecare avand avantajele si dezavantajele
sale. A se vedea de exemplu [1] (primul protocol de vot utilizabil pe scara larga), [2], [4], [7],
[8], [9].
In continuarea acestei prelegeri vom prezenta un protocol de vot electronic pentru o retea
informatica (bazat pe schemele de semnatura electronica ElGamal si RSA) propus de Mu si
Varadjarajan n 1998 ([6]). Ulterior n [3] sunt demonstrate si corectate cateva slabiciuni.
Componentele protocolului Mu-Varadharajan sunt:
V - multime finita nevida de votanti;
AS - un server de autentificare a votantilor;
V S - o multime finita de servere de votare;
T CS - un server de numarare a buletinelor de vot;
CA - un certificat de autenticitate.
Protocolul contine trei etape:
1. Obtinerea buletinului de vot;
2. Votarea (si colectarea buletinelor de vot);
3. Numararea buletinelor de vot.
9.4.1
Initializarea
112
9.4.2
(1)
(2)
si trimite lui AS cvadruplul (V, AS, CertV , (x1 k x2 k x3 k t)dV (mod nV )).
2. AS verifica ntai validitatea certificatului si valideaza semnatura
(x1 k x2 k x3 k t)dV (mod nV )). Apoi AS alege un numar aleator k2 si calculeaza
x4 = (k2 k t)eV
(mod nV )
dAS
2 2
x5 = (x3k
(mod nAS ) = (y1 y2 a)dAS b3(k2 +1)
1 x2 x3 )
unde y1 = g
k1 +k2
, y2 = g
k1 +2k2
eV
(mod nAS )
(mod nV )) este trimis lui V .
Parametrul k2 este diferit pentru fiecare votant, iar AS stocheaza n baza sa de date k2
mpreuna cu identitatea lui V (CertV ).
3. Prin decriptarea lui x4 , V obtine k2 . Deci V poate calcula y1 si y2 , dupa care determina
s = x5 b3(k2 +1) = (y1 y2 a)dAS (mod nAS )
s este semnatura RSA pentru produsul y1 y2 a.
Pentru un vot m, V poate genera acum o semnatura (s1 , s2 ) de tip ElGamal:
s1 = (k1 + k2 )1 (ma r) (mod p 1),
(3)
(4)
9.4.3
In aceasta faza V poate trimite prin retea buletinul sau de vot spre un server de votare V S.
Scopul principal al unui V S este de a garanta validitatea buletinului de vot. Protocolul contine
doi pasi:
1. V trimite T spre V S;
2. V S decripteaza T si verifica validitatea lui a, y1 , y2 folosind semnatura s si cheia publica
eAS . Apoi V S determina corectitudinea semnaturii (s1 , s2 ) pentru m, folosind relatiile:
ay1s1 = g ma
(mod p),
(5)
ay2s2
(mod p)
(6)
= g ma
Daca rezultatul acestei verificari este pozitiv, atunci V S are certitudinea ca buletinul T
este valid.
V S stocheaza toate buletinele de vot si trimite n final baza de date prin retea catre serverul
de numarare a buletinelor T CS.
9.5. SLABICIUNI
ALE PROTOCOLULUI MU-VARADHARAJAN
9.4.4
113
Toate V S-urile trimit buletinele catre T CS. Scopul acestuia este de a numara voturile si de a
depista pe cei care au votat de mai multe ori.
Sa presupunem ca V foloseste parametrii a, g, k1 , k2 pentru a semna si un alt vot m0 si sa
trimita un al doilea buletin T = a k g k y1 k y2 k s k s01 k s02 k m0 spre alt V S.
Pentru a detecta o dubla votare, V S verifica parametrii a, g, y1 , y2 din toate buletinele T
pentru a vedea daca ei se repeta. In caz afirmativ, el rezolva sistemul liniar
ma0 ma
(mod p 1)
(7)
k1 + k2 = 0
s1 s1
ma0 ma
(mod p 1)
(8)
k1 + 2k2 = 0
s2 s2
si afla k2 . Folosind baza de date a lui AS, se identifica n mod unic votantul V .
9.5
Sl
abiciuni ale protocolului Mu-Varadharajan
In [3] se arata ca totusi exista doua modalitati prin care cineva poate vota de mai multe ori
fara sa fie depistat.
Sa presupunem ca V a obtinut buletinul valid de vot T = a k g k y1 k y2 k s k s1 k s2 k m.
Pe baza lui poate genera un alt buletin valid T 0 astfel:
9.5.1
Atacul 1
9.5.2
Atacul 2
114
Apoi, semnatura (s01 , s02 ) pentru m poate fi calculata cu o varianta a relatiilor (3) si (4)
folosind cheile (k1 + k2 )h respectiv (k1 + 2k2 )h:
s01 = (k1 + k2 )1 h1 (ma0 hr) (mod p 1),
s02 = (k1 + 2k2 )1 h1 (ma0 hr) (mod p 1).
Deci V poate genera un nou buletin de vot T 0 = a0 k g 0 k y 01 k y 02 k s0 k s01 k s02 k m.
V S este convins de validitatea lui T 0 pentru ca relatiile
2
(s0 )eAS = (y1 y2 a)h = y 01 y 02 a0 (mod nAS )
0
0
(y 01 )s1 a0 = (g 0 )a m (mod p)
0
0
(y 02 )s2 a0 = (g 0 )a m (mod p)
sunt verificate.
Cu aceste atacuri, un votant poate vota de oricate ori vrea, fara sa fie detectat.
9.6
Pentru a evita slabiciunile n fata atacurilor prezentate anterior, este construita o varianta
mbunatatita a protocolului de vot Mu-Varadharajan. Noua schema are tot trei etape; acestea
sunt (s-au folosit aceleasi notatii):
9.6.1
1. V alege doi factori blind b1 , b2 si doua nuemre aleatoare k1 , r. Cu acesti parametri calculeaza w1 si w2 dupa formulele
w1 = g r be1AS
(mod nAS )
w2 = g k1 b2eAS
(mod nAS )
(mod nV )
(mod nAS )
(mod nAS )
(mod nAS )
115
9.6.2
(mod nAS )
(9)
AS y1 = se2AS
(mod nAS )
(10)
AS y2 = se3AS
(mod nAS )
(11)
Daca toate sunt verificate, V S trece la verificarea corectitudinii semnaturii ((a, s4 ), (a, s5 ))
folosind relatiile:
g ma = y1s4 a = y2s5 a (mod p)
Daca ele se verifica, V S accepta T ca valid. In final, V S formeaza o baza de date cu toate
buletinele de vot valide, pe care o trimite prin retea lui T CS.
9.6.3
Dupa ce primeste buletinele de vot de la toate V S-urile, T CS face public continutul lor si le
numara. In plus, el este responsabil cu detectarea dublei votari.
Sa presupunem ca un votant V foloseste aceiasi parametri y1 , y2 , a pentru a semna un vot
diferit m0 si trimite acest buletin unui alt V S. Atunci:
1. T CS verifica y1 , y2 , a pentru toate buletinele T pentru a vedea daca apar de mai multe
ori.
2. Daca aceste valori au aparut de doua ori si m = m0 se ia n considerare un singur buletin.
Daca m 6= m0 rezulta ca este un caz de dubla votare si T CS afla identitatea acestuia,
calculand
m0 a ma
(mod p 1) si
x1 = 0
s4 s4
m0 a ma
x2 = 0
(mod p 1).
s5 s5
De aici, x2 x1 = (2k1 + k2 ) (k1 + k2 ) = k1 si deci k2 = x1 k1 . Cu ajutorul lui k2 se
poate afla cine a ncercat sa triseze.
116
9.7
In ipoteza ca serverul de autentificare SA este sigur si deci nu va genera nici un buletin de vot
fara consimtamantul votantului, sistemul construit verifica toate restrictiile unui sistem de vot
electronic. In plus, el are o securitate sporita, rezultata din urmatoarele observatii:
9.7.1
Rezistenta la atacurile 1 si 2
9.7.2
Rezistenta fat
a de un atac aliat
Sa presupunem ca doi votanti V1 , V2 cu semnaturile valide (s11 , s12 , s13 ) respectiv (s21 , s22 , s23 )
colaboreaza pentru obtinerea unei noi semnaturi (s01 , s02 , s03 ) definita prin
s0i = s1i s2i (mod nAS ),
i = 1, 2, 3, 4.
Totusi ei nu vor putea calcula parametrii r0 , x01 , x02 din cauza dificultatii de rezolvare a
problemei logaritmului discret.
Bibliografie
[1] J. Benaloh Verifiable sectret-ballot elections, Ph.D thesis, Yale University, Technical report
561 (1987)
[2] J.D. Cohen Improving Privacy in Cryptographic Elections
[3] I.Chang Lin, M.Hwang, C.Chang Security enhancement for anonymous secure e-voting
over a network, Computer Science $ interfaces 25 (2003), 131-139
[4] K. Iversen A criptographic scheme for cmputerized general elections, proc. Crypto 1,
Springer LNCS 576 (1992), 405 - 419.
[5] C.I. Lei, C.I. Fan A universal single-authority election system, IEICE Transactions on
Fundamentals E81-A (10) (1998), 2186-2193
[6] Y.Mu, V. Varadharajan Anonymous e-voting over a network, Proc. of the 14th Annual
Computer Security Applications Conference, ASAC8 (1998) 293-299
[7] H. Nurmi, A. Salomaa, L. Santean Secret ballot elections in computer networks, Computer
and Security 10 (1991), 553 - 560.
[8] C. Park, K. Itoh, K. Kurosawa it Efficient anonymous channel and all or nothing election
scheme, Proc. Eurocrypt 3, Springer LNCS 765 (1994), 248 - 259.
[9] A. Renvall Cryptogtaphic Protocols and techniques for Communication, Ph.D. Thesis
117