Documente Academic
Documente Profesional
Documente Cultură
cr2 9 PDF
cr2 9 PDF
2. Validarea: verificarea datelor personale ale celor care doresc să voteze. Se permite
votarea numai pentru cei care au drept să voteze şi nu au votat deja.
4. Numărarea voturilor.
Pentru a avea ı̂ncredere ı̂n rezultatul alegerilor, oamenii trebuie să aibă dovezi că aceste sarcini
au fost ı̂ndeplinite ı̂n mod corect. Există ı̂nsă numeroase posibilităţi de corupere a sistemului
ı̂n timpul ı̂ndeplinirii fiecăreia din aceste sarcini. De exemplu:
• Autorităţile electorale pot trişa permiţând alegătorilor fără drept de vot să se ı̂nregistreze
la vot, iar alegătorilor ı̂nregistraţi să voteze de mai multe ori. De asemenea poate pierde
107
108 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
1
sau adăuga voturi suplimentare.
• Alegătorii fără drept de vot se pot ı̂nregistra (cel mai frecvent folosind numele unei per-
soane decedate) sau cei cu drept de vot se pot ı̂nregistra sub mai multe nume.
Atunci când se proiectează un sistem electronic de vot este esenţial să se implementeze modali-
tăţi prin care cele patru condiţii menţionate mai sus să fie ı̂ndeplinite fără a sacrifica intimitatea
alegătorilor sau a oferi posibilităţi de fraudă. În plus, mai trebuie ı̂ndeplinite câteva condiţii
specifice unui astfel de sistem. Conform cu [5], [6], un sistem de vot electronic trebuie să
satisfacă următoarele cerinţe:
2. Acurateţe: Oricine poate verifica validitatea voturilor şi se poate asigura că voturile nu
au fost schimbate, multiplicate sau eliminate de cineva (inclusiv de autorităţi).
5. Verificabilitate: Orice votant poate controla dacă votul său a fost numărat şi repartizat
candidatului pe care l-a votat.
6. Detectarea dublei votari: Dacă apare un vot dublu, organizatorii pot identifica per-
soana care a votat de mai multe ori.
În această prelegere vom prezenta câteva protocoale de vot care să ı̂ndeplinească cât mai multe
din aceste cerinţe.
2. Criptează perechea (mi , ri ) cu cheile publice ale tuturor alegătorilor ı̂n ordinea 1, . . . , N ,
obţinând secvenţa eN (eN −1 (. . . (e1 (mi , ri )) . . .).
3. Repetă pasul anterior, adăugând după fiecare criptare câte un număr aleator Ri distinct
(pe care-l trimite lui i). Se obţine
În timpul procesului de votare numărul de voturi este constant, deci pierderea sau adăugarea
unui vot este uşor de detectat.
Amestecul voturilor asigură anonimitatea.
De asemenea, voturile nu pot fi ı̂nlocuite; o astfel de ı̂ncercare pe parcursul primei runde este
depistată prin numărul aleator introdus incorect. Dacă alegătorul i ı̂nlocuieşte votul alegştorului
j (j > i), atunci alegătorul j va detecta acest lucru la ı̂nceputul celei de-a doua runde de
decriptări (pasul 5).
O ı̂ncercare de ı̂nlocuire pe parcursul celei de-a doua runde este depistată la decriptarea
finală când fiecare alegător ı̂şi verifică prpriul său număr ri .
Un defect major al acestui protocol constă ı̂n implementarea dificilă datorată numărului
mare de calcule, dependent de numărul de votanţi N .
7. AC asociază mesajele după ID, le decriptează, verifică autenticitatea voturilor şi publică
perechile (ID, m) pentru toţi participanţii la vot.
Acest sistem ı̂mpiedică atât alegătorii neautorizaţi să voteze, cât şi pe cei neautorizaţi să voteze
de două ori. Alegătorilor nu li se pot afla identitatea reală, deoarece fiecare ID se obţine printr-
un protocol de dezvăluire parţială a secretelor, deci AC nu ştie la cine a ajuns fiecare ID.
Există şi ı̂n acest protocol câteva neajunsuri. Primul – şi cel mai important – este acela că
o autoritate centrală reprezintă un punct de corupţie asupra căruia nu există control. ea poate
falsifica voturi ı̂n numele alegătorilor care se abţin, poate pierde voturi valide (nici un alegător
nu poate demonstra că a trimis ı̂ntr-adevar un vot). În plus, implementarea sa rămâne destul
de complexă.
O primă idee de ı̂mbunătăţire a sistemului a constat ı̂n introducerea mai multor autorităţi
centrale, dependente una de alta. De exemplu, se pot introduce două autorităţi: una care se
ocupă de legitimitatea alegătorilor (să ı̂i spunem AL - agentı̂e de legimitate), alta care se ocupă
de numărarea efectivă a voturilor (AT - agenţie de tabulare). Un vot valid trebuie să treacă
prin ambele agenţii pentru validare. Prima recunoaşte dreptul alegătorului de a vota (fără a
vedea conţinutul votului), eliberându-i un buletin. A doua agenţie primeşte votul ı̂mpreună cu
buletinul de validare. O variantă de astfel de protocol (ı̂n ipoteza că cele două agenţii nu se
aliază pentru falsificarea votării) este:
4. Fiecare votant alege aleator un ID (număr de validare) şi trimite spre AT un triplet
format din numărul de autentificare, ID şi votul său.
5. AT verifică numărul de autentificare şi – dacă este pe listă – ı̂l bifează şi publică votul
ı̂mpreună cu nunmărul de validare.
9.4. PROTOCOLUL MU-VARADHARAJAN 111
9.4.1 Iniţializarea
Vom nota cu p un număr prim mare şi cu t ştampila de timp. De asemenea, α k β va reprezenta
concatenarea secvenţelor α şi b.
Înainte de a incepe protocolul de vot:
• Fiecare participant V primeşte o pereche de chei RSA : (eV , dV ) şi un modul nV obţinut
prin ı̂nmulţirea a două numere prime mari. Reamintim, conform algoritmului RSA:
eV · dV ≡ 1 (mod φ(nV ))
• AS deţine un modul nAS şi o pereche de chei RSA (eAS , dAS ). nAS şi eAS sunt publice,
cunoscute de toti votanţii.
• Orice votant valid V are un certificat de votant CertV eliberat pe termen lung de CA.
Acesta este semnat de cheia secretă a lui CA, iar conţinutul lui include
– un număr serial,
– identitatea votantului V ,
– identitatea CA,
– cheia publică eV şi modulul nV ,
– intervalul de valabilitate,
– o ştampilă de timp.
112 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
9.5.1 Atacul 1
La ı̂nceput V calculează g 0 , y 01 , y 02 , a0 cu relaţiile
g 0 = q c0 (mod p),
−1
y 01 = (g 0 )(k1 +k2 +c1 )c0 (mod p),
−1
y 02 = (g 0 )(k1 +2k2 +c2 )c0 (mod p),
−1
a0 = (g 0 )(r+c3 )c0 (mod p),
unde c0 , c1 , c2 , c3 sunt numere ı̂ntregi care evrifică condiţiile c1 + c2 + c3 = 0, c1 c2 c3 6= 0.
Acum V generează buletinul T 0 = a0 g 0 y 01 k y 02 k s k s01 k s02 k m unde (s01 , s02 ) este semnătura
votului m cu cheile (k1 + k2 + c1 )c−1 −1
0 respectiv (k1 + 2k2 + c2 )c0 ; anume
s01 = ((k1 + k2 + c1 )c−1 −1 0 −1
0 ) (ma − (r + c3 )c0 ) (mod p − 1)
s02 = ((k1 + 2k2 + c2 )c−1 −1 0 −1
0 ) (ma − (r + c3 )c0 ) (mod p − 1)
În faza de votare şi de colectare a buletinelor, V poate trimite către V S şi al doilea buletin
T 0 . V S verifică ı̂ntâi semnătura s, apoi validitatea lui a0 , y 01 , y 02 folosind ecuaţia
seAS = y1 y2 a (mod nAS ) = y 01 y 02 a0 (mod nAS )
În continuare V S verifică validitatea lui (s01 , s02 ) cu ecuaţiile (5) şi (6). Cum toate sunt
corecte, V S crede că T 0 este un buletin valid şi-l trimite lui T CS. Aici, pentru protejarea contra
dublei votări, T CS verifică parametrii a0 , g 0 , y 01 , y 02 şi decide că ei au fost folosiţi o singură dată.
Deci atacul funcţionează. Chiar dacă V S detectează că semnătura s a mai fost utilizată, el nu
va putea detecta identitatea votantului ilegal (cu (7) şi (8)).
9.5.2 Atacul 2
Similar primului atac, V alege ı̂ntâi aleator numărul h şi calculează
2 2 2 2
g 0 = g h , a0 = ah , y 01 = y1h , y 02 = y2h , s0 = sh
114 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
Apoi, semnătura (s01 , s02 ) pentru m poate fi calculată cu o variantă a relaţiilor (3) şi (4)
folosind cheile (k1 + k2 )h respectiv (k1 + 2k2 )h:
s01 = (k1 + k2 )−1 h−1 (ma0 − hr) (mod p − 1),
s02 = (k1 + 2k2 )−1 h−1 (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 că relaţiile
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 oricâte ori vrea, fără să fie detectat.
3. V obţine k2 prin decriptarea lui w3 , iar pe baza lui poate determina y1 şi y2 . Mai departe,
V determină semnătura (s1 , s2 , s3 ) (eliminând factorii blind) conform relaţiilor
s1 = w4 b1−1 = (a · AS)dAS quad(mod nAS )
s2 = w5 b2−1 = (y1 · AS)dAS quad(mod nAS )
9.6. PROTOCOLUL MU-VARADHARAJAN MODIFICAT 115
s5 = x−1
2 (ma − r) (mod p − 1).
1. T CS verifică y1 , y2 , a pentru toate buletinele T pentru a vedea dacă apar de mai multe
ori.
2. Dacă aceste valori au aparut de două ori şi m = m0 se ia ı̂n considerare un singur buletin.
Dacă m 6= m0 rezultă că este un caz de dublă votare şi T CS află identitatea acestuia,
calculând
m0 a − ma
x1 = 0 (mod p − 1) şi
s4 − s4
m0 a − ma
x2 = 0 (mod p − 1).
s5 − s5
De aici, x2 − x1 = (2k1 + k2 ) − (k1 + k2 ) = k1 şi deci k2 = x1 − k1 . Cu ajutorul lui k2 se
poate afla cine a ı̂ncercat să trişeze.
116 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC
[1] J. Benaloh – Verifiable sectret-ballot elections, Ph.D thesis, Yale University, Technical report
561 (1987)
[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