Sunteți pe pagina 1din 11

Prelegerea 9

Protocoale de vot electronic

Guvernele şi organizaţiile democratice au nevoie de anumite mecanisme pentru a permite


alegătorilor să voteze. În mod tradiţional, alegerile reprezintă pentru persoanele cu drept de vot
mecanismele oficiale prin care acestea ı̂şi pot exprima opţiunile ı̂n mod democratic, ı̂n timp ce
sondajele constituie una din cele mai bune metode neoficiale de aflare a opţiunilor electoratului.
Atât ı̂n alegeri cât şi ı̂n sondaje intimitatea şi securitatea sunt deziderate obligatorii dar al căror
cost poate creşte substanţial. Mecanismele care asigură securitatea şi intimitatea alegătorilor
pot fi scumpe şi/sau consumatoare de timp pentru administratorii acestora şi neconvenabile
pentru alegători. Organizarea de alegeri sigure devine şi mai dificilă atunci când alegătorii sunt
distribuiţi pe o mare zona geografică.
Acestea sunt câteva motive pentru care poate fi propusă cu succes modalitatea de vot
electronic. Primele idei apar ı̂n anii 80, iar ideile dezvoltate ı̂n acest interval de timp ı̂l fac din
ce ı̂n ce mai credibil pentru utilizarea sa ı̂ntr-un mediu informatizat.

9.1 Caracteristici ale unui sistem de vot


Deşi există numeroase protocoale şi sisteme de votare, procedura de bază pentru organizarea de
alegeri democratice este standard. Această procedură – indiferent dacă este vorba de o votare
clasică sau una electronică – implică ı̂n general ı̂ndeplinirea a patru sarcini:

1. Înregistrarea: crearea unei liste de persoane care au dreptul să voteze;

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.

3. Colectarea voturilor de la centrele de votare.

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.

• Se poate ı̂ncerca participarea la vot sub o identitate falsă.

• Cutiile cu voturi, voturile sau maşinile de numărat pot fi compromise.

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:

1. Anonimitatea votanţilor: Nu există nici o modalitate prin care poate fi dezvăluită


identitatea unei persoane care votează.

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).

3. Necoliziune: Garanţia că toate voturile legale diferă ı̂ntre ele.

4. Corectitudine de număr: Suma voturilor repartizate pe candidaţi este egală cu numaul


de voturi valide.

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.

9.2 Protocol independent de vot


Cele mai simple protocoale de vot nu folosesc nici o autoritate, bazăjndu-se numai pe alegători.
Sunt primele protocoale concepute pentru votare, bazate pe aplcări succesive de criptări şi/sau
semnări digitale de mesaje. Anonimitatea se obţine prin aplicarea de permutări ı̂n diverse faze.
Pentru exemplificare, prezentăm protocolul lui Michael Merritt:
Sunt N alegători, fiecare alegător i având cheia publică de criptare ei şi cheia privată di ,
precum şi o semnătură electronică sigi . Protocolul este următorul;

1. Fiecare alegător i ataşează un număr aleator ri la votul său mi .


1
Este celebră declaraţia dictatorului rus I.V.Stalin: Nu este important pe cine votează lumea; important este
cine numără voturile.
9.3. PROTOCOL CU AUTORITATE CENTRRALĂ 109

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

eN (RN , eN −1 (. . . (R2 , e1 (R1 , eN (eN −1 (. . . (e1 (mi , ri )) . . .)

4. Toate aceste voturi sunt strânse de alegătorul N . Fiecare alegător i:


(a) Decriptează mesajul cu cheia sa secretă di , scoate numărul Ri şi se asigură că este
pe lista numerelor aleatoare primite.
(b) Amestecă cele N voturi şi le trimite lui i − 1 (alegătorul 1 le trimite lui N ).
După afectuarea acestui pas, alegătorul N dispune de N mesaje de forma
eN (eN −1 (. . . (e1 (mi , ri )) . . .).
pe care le semnează cu semnătura sa sigN .
5. Procedeul se reia, fiecare alegător i:
(a) Verifică validitatea semnăturii alegătorului i + 1;
(b) Decriptează mesajele primite;
(c) Aplică propria sa semnătură sigi şi trimite lui i − 1 cele N mesaje de forma
sigi (ei (. . . (e1 (mi , r + i) . . .).
6. Toţi alegătorii confirmă semnătura alegătorului 1. Voturile sunt numărate ı̂n comun,
fiecare alegător putându-se convinge de existentă votului său datorită numărului aleator
ataşat.

Î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 .

9.3 Protocol cu autoritate centrrală


Pentru micşorarea volumului de calcule se poate itnroduce o nouă entitate care se ocupă cu
ı̂nregistrarea alegătorilor; ea este numită de obicei autoritate centrală (AC). Prezentăm o
variantă de protocol cu autoritate centrală. Se presupune că prin carta de alegător, fiecare
persoană k dispune de două chei ek (publică) şi dk (secretă).
110 PRELEGEREA 9. PROTOCOALE DE VOT ELECTRONIC

1. AC ı̂ntreabă fiecare alegător dacă doreşte sau nu să participe la alegeri.

2. Se publică o listă cu toţi alegătorii ı̂nregistraţi.

3. Fiecare alegător primeşte de la AC un ID (printr-un protocol de dezvăluire parţială a


secretelor)

4. Fiecare alegător i trimite spre AC perechea (ID, ei (ID, m)).

5. AC publică ei (ID, m) pentru toţi alegătorii de pe lista de la punctul (2).

6. Fiecare alegător i trimite anonim spre AC perechea (ID, di ).

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:

1. Fiecare alegător (după demonstrarea identităţii sale) solicită AL un număr de autentifi-


care.

2. AL generează aleator numere de autentificare şi le distribuie.

3. AL trimite spre AT lista tuturor numerelor de autentificare.

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 Protocolul Mu-Varadharajan


După 1986 au fost publicate diverse protocoale de vot, fiecare având avantajele şi dezavantajele
sale. A se vedea de exemplu [1] (primul protocol de vot utilizabil pe scară largă), [2], [4], [7],
[8], [9].
În continuarea acestei prelegeri vom prezenta un protocol de vot electronic pentru o reţea
informatică (bazat pe schemele de semnătură electronică ElGamal şi RSA) propus de Mu şi
Varadjarajan ı̂n 1998 ([6]). Ulterior ı̂n [3] sunt demonstrate şi corectate câteva slăbiciuni.
Componentele protocolului Mu-Varadharajan sunt:
• V - mulţime finită nevidă de votanţi;
• AS - un server de autentificare a votantilor;
• V S - o mulţime finită de servere de votare;
• T CS - un server de numărare a buletinelor de vot;
• CA - un certificat de autenticitate.
Protocolul conţine trei etape:
1. Obţinerea buletinului de vot;
2. Votarea (şi colectarea buletinelor de vot);
3. Numărarea buletinelor de vot.

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.4.2 Etapa I: Obţinerea buletinului de vot


1. V trebuie să demonstreze că este un alegător valid. Pentru aceasta el alege un factor
blind b şi trei numere aleatoare g, r, k1 ∈ Zp∗ . Pe baza lor calculează parametrii
a = g r (mod p),
x1 = gbeAS (mod nAS ), (1)
x2 = g k1 beAS (mod nAS ),
x3 = abeAS (mod nAS ) (2)
şi trimite lui AS cvadruplul (V, AS, CertV , (x1 k x2 k x3 k t)dV (mod nV )).
2. AS verifică ı̂ntâi validitatea certificatului şi validează semnătura
(x1 k x2 k x3 k t)dV (mod nV )). Apoi AS alege un număr aleator k2 şi calculează
x4 = (k2 k t)eV (mod nV )
x5 = (x3k 2 2
1 x2 x3 )
dAS
(mod nAS ) = (y1 y2 a)dAS b3(k2 +1) (mod nAS )
k1 +k2 k1 +2k2 eV
unde y1 = g , y2 = g . Mesajul (AS, V, x4 , (x5 k t) (mod nV )) este trimis lui V .
Parametrul k2 este diferit pentru fiecare votant, iar AS stochează ı̂n baza sa de date k2
ı̂mpreună cu identitatea lui V (CertV ).
3. Prin decriptarea lui x4 , V obţine k2 . Deci V poate calcula y1 şi y2 , după care determină
s = x5 b−3(k2 +1) = (y1 y2 a)dAS (mod nAS )
s este semnătura RSA pentru produsul y1 y2 a.
Pentru un vot m, V poate genera acum o semnătură (s1 , s2 ) de tip ElGamal:
s1 = (k1 + k2 )−1 (ma − r) (mod p − 1), (3)
s2 = (k1 + 2k2 )−1 (ma − r) (mod p − 1). (4)
Buletinul de vot al lui V este
T = a k g k y1 k y2 k s k s1 k s2 k m.

9.4.3 Etapa II: Votarea (şi colectarea buletinelor de vot)


În această fază V poate trimite prin reţea buletinul său de vot spre un server de votare V S.
Scopul principal al unui V S este de a garanta validitatea buletinului de vot. Protocolul conţine
doi paşi:
1. V trimite T spre V S;
2. V S decriptează T şi verifică validitatea lui a, y1 , y2 folosind semnătura s şi cheia publică
eAS . Apoi V S determină corectitudinea semnăturii (s1 , s2 ) pentru m, folosind relaţiile:
ay1s1 = g ma (mod p), (5)
ay2s2 = g ma (mod p) (6)
Dacă rezultatul acestei verificări este pozitiv, atunci V S are certitudinea că buletinul T
este valid.
V S stochează toate buletinele de vot şi trimite ı̂n final baza de date prin reţea către serverul
de numărare a buletinelor T CS.
9.5. SLĂBICIUNI ALE PROTOCOLULUI MU-VARADHARAJAN 113

9.4.4 Etapa III: Numărarea buletinelor de vot


Toate V S-urile trimit buletinele către T CS. Scopul acestuia este de a număra voturile şi de a
depista pe cei care au votat de mai multe ori.
Să presupunem că V foloseşte parametrii a, g, k1 , k2 pentru a semna şi un alt vot m0 şi să
trimită 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 dublă votare, V S verifică parametrii a, g, y1 , y2 din toate buletinele T
pentru a vedea dacă ei se repetă. În caz afirmativ, el rezolvă sistemul liniar
ma0 − ma
k1 + k2 = 0 (mod p − 1) (7)
s1 − s1
ma0 − ma
k1 + 2k2 = 0 (mod p − 1) (8)
s2 − s2
şi află k2 . Folosind baza de date a lui AS, se identifică ı̂n mod unic votantul V .

9.5 Slăbiciuni ale protocolului Mu-Varadharajan


În [3] se arată că totuşi există două modalităţi prin care cineva poate vota de mai multe ori
fără să fie depistat.
Să presupunem că V a obţinut 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
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.

9.6 Protocolul Mu-Varadharajan modificat


Pentru a evita slabiciunile ı̂n faţa atacurilor prezentate anterior, este construită o variantă
ı̂mbunătăţită a protocolului de vot Mu-Varadharajan. Noua schemă are tot trei etape; acestea
sunt (s-au folosit aceleaşi notaţii):

9.6.1 Etapa I: Obţinerea buletinului de vot


1. V alege doi factori blind b1 , b2 şi două nuemre aleatoare k1 , r. Cu aceşti parametri cal-
culează w1 şi w2 după formulele
w1 = g r be1AS (mod nAS )
w2 = g k1 b2eAS (mod nAS )
unde g ∈ Zp∗ este un parametru public al sistemului.
V trimite lui AS structura {V, AS, CertV , t, w1 , w2 , ((w1 k w2 k t)dV (mod nV ))}.

2. V S verifică validitatea certificatului şi validează semnătura (w1 k w2 k t)dV (mod nV ).


Dacă rezultatul verificării este pozitiv, AS poate fi sigur că parametrii primiţi sunt corecţi.
El continuă alegând un număr aleator k2 diferit pentru fiecare votant şi calculează
w3 = (k2 k t)eV (mod nV )
w4 = (w1 · AS)dAS (mod nAS ) = (a · AS)dAS b1 (mod nAS )
w5 = (w2 · g k2 · AS)dAS (mod nAS ) = (y1 · AS)dAS b2 (mod nAS )
w6 = (w22 · g k2 · AS)dAS (mod nAS ) = (y2 · AS)dAS b22 (mod nAS )
unde a = g r , y1 = g k1 +k2 , y2 = g k1 +2k2 .
Mesajul {AS, V, w3 , ((w4 k w5 k w6 k t)eV (mod nV ))} este trimis lui V . În paralel, AS
stochează ı̂n baza sa de date k2 ı̂mpreună cu identitatea lui V .

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

s3 = w6 b2−2 = (y2 · AS)dAS quad(mod nAS )

4. V aplică o schemă de semnătură ElGamal pentru a semna votul m. Fie y1 , y2 cheile


publice ale sistemului de criptare ElGamal şi x1 = k1 + k2 , x2 = 2k1 + k2 cheile se-
crete corespunzătoare; deci y1 = g k1 +k2 (mod p) şi y2 = g 2k1 +k2 (mod p). Semnătura
((a, s4 ), (a, s5 )) pentru votul m este generată de ecuaţiile
s4 = x−1
1 (ma − r) (mod p − 1) respectiv

s5 = x−1
2 (ma − r) (mod p − 1).

Buletinul de vot al lui V este T = s1 k s2 k s3 k s4 k s5 k a k y1 k y2 k m.

9.6.2 Etapa II: Votarea (şi colectarea buletinelor de vot)


1. V trimite buletinul de vot T lui V S.

2. V S verifică validitatea lui a, y1 , y2 folosind ecuaţiile


AS · a = se1AS (mod nAS ) (9)
AS · y1 = se2AS (mod nAS ) (10)
AS · y2 = se3AS (mod nAS ) (11)
Dacă toate sunt verificate, V S trece la verificarea corectitudinii semnăturii ((a, s4 ), (a, s5 ))
folosind relaţiile:
g ma = y1s4 a = y2s5 a (mod p)
Dacă ele se verifică, V S acceptă T ca valid. În final, V S formează o bază de date cu toate
buletinele de vot valide, pe care o trimite prin reţea lui T CS.

9.6.3 Etapa III: Numărarea buletinelor de vot


După ce primeşte buletinele de vot de la toate V S-urile, T CS face public conţinutul lor şi le
numără. În plus, el este responsabil cu detectarea dublei votări.
Să presupunem că un votant V foloseşte aceiaşi parametri y1 , y2 , a pentru a semna un vot
diferit m0 şi trimite acest buletin unui alt V S. Atunci:

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

9.7 Securitatea protocolului Mu-Varadharajan modificat


În ipoteza că serverul de autentificare SA este sigur şi deci nu va genera nici un buletin de vot
fără consimţământul votantului, sistemul construit verifică toate restricţiile unui sistem de vot
electronic. În plus, el are o securitate sporită, rezultată din următoarele observaţii:

9.7.1 Rezistenţa la atacurile 1 şi 2


Să presupunem că un votant forţează parametrii a, y1 , y2 ı̂n conformitate cu Atacul 1; el nu va
putea totuşi să obţină semnătura (s1 , s2 , s3 ) dată de ecuaţiile (9), (10), (11) pentru că nu ştie
cheia secretă dAS .
În al doilea atac, V poate obţine uşor componenta s02 = (AS · y 02 )dAS dar nu poate gebera
restul semnăturiii pentru vatul m. De exemplu, să presupunem s02 = s22 = (AS 2 · y22 )dAS
şi y 02 = AS · y22 . Deci parametrul y 02 poate trece de verificare. Dar – din cauza problemei
logaritmilor discreţi – votantul nu poate obţine cheia secretă corespunzătoare x01 . Fără cheia
secretă, V nu poate genera o semnătură corectă.

9.7.2 Rezistenţa faţă de un atac aliat


Să presupunem că doi votanţi V1 , V2 cu semnăturile valide (s11 , s12 , s13 ) respectiv (s21 , s22 , s23 )
colaborează pentru obţinerea unei noi semnături (s01 , s02 , s03 ) definită prin
s0i = s1i · s2i (mod nAS ), i = 1, 2, 3, 4.
Totuşi ei nu vor putea calcula parametrii r0 , x01 , x02 din cauza dificultăţii 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

S-ar putea să vă placă și