Sunteți pe pagina 1din 50

Universitatea POLITEHNICA București

Facultatea Automatică şi Calculatoare


Departamentul Automatică şi Informatică Industrială

LUCRARE DE LICENŢĂ

Sistem de vot electronic

Coordonator Absolvent

Conf.dr.ing. Udrea Andreea Badea Adrian Mihai

2016
Cuprins
1.Introducere.......................................................................................................................3
2.Obiectivele aplicației de vot electronic și
prezentarea sistemelor de vot existente..............................................................................6
2.1 Sisteme de vot tradițional......................................................................................6
2.1.1 Sisteme de vot ce desemnează un singur câștigător…………………….....7
2.1.2 Sisteme de vot ce desemnează mai mulți câștigători.................................11
2.1.3 Sistemul de vot în România........................................................................15
2.2.Sisteme de vot electronic .....................................................................................15
2.2.1 Votul electronic in Estonia…………………………………………………..19
2.2.2 Avantaje și dezavantaje ale unui sistem de vot electronic.............................22
2.3.Scopul aplicației de vot electronic…………………………………….….……23
3.Tehnologii folosite ..........................................................................................................25
3.1 HTML...............................................................................................................25
3.2 CSS...................................................................................................................25
3.3 PHP…………………………………………………………………………….26
3.4 jQuery...............................................................................................................27
3.5 Apache..............................................................................................................27
4. eVoteNow-Detalii de implementare...............................................................................28
4.1 Baza de date......................................................................................................28
4.2 Structura aplicației............................................................................................30
4.3 Cazuri de utilizare și activități…………………………………………………33
4.4 Funcționalități și detalii de implementare……………………………………..35
5.Concluzii și dezvoltări ulterioare....................................................................................44
Bibiliografie.......................................................................................................................46

2
1. Introducere

Votul înseamnă conform [1], “exprimare a opiniei cetățenilor unui stat în legătură
cu alegerea reprezentanților lor în organele de conducere; opinie exprimată de membrii
unei adunări constituite în legătură cu o candidatură, cu o propunere sau cu o hotărâre;
adeziune dată în acest scop”, reprezentând un drept fundamental al omului prevăzut în
Articolul 21 din Declarația Universală a Drepturilor Omului, adoptată de Organizația
Națiunilor Unite în anul 1948. În ziua de astăzi, ideea de vot este prezentă în
majoritatea activităților desfășurate de om. Fie că vorbim de vot electoral, de alegerea unui
reprezentant într-o companie, de desemnarea câștigătorului balonului de aur la fotbal, de
alegerea tematicii unei petreceri, de promulgarea unei legi, sau de alegerea unei strategii de
marketing, omul recurge la folosirea unui sistem de vot. Luând ca exemplu votul într-o
companie, sistemul de vot tradițional necesită prezența votantului și se poate îngreuna
odată cu creșterea numărului acestora. Un mare dezavantaj este dat de faptul că nu oferă
alternative pentru persoanele care nu pot ajunge să voteze la data la care este organizat
scrutinul. De altfel, se pot produce erori la numărarea voturilor și este consumator de timp.
Un sistem de vot electronic poate rezolva aceste neajunsuri ale sistemului tradițional.
Angajații plecați in delegații, precum și cei aflați in concediu, pot vota din orice colț al
lumii, fiind necesare doar 2 minute și o conexiune la internet, iar cei din sediu pot vota fără
a fi nevoiți să-și întrerupă activitățile sau să se ridice de la birou, astfel nefiind afectată
productivitatea în ziua respectivă.
În această lucrare este prezentat un sistem de vot prin Internet, numit eVoteNow gândit
să respecte următoarele cerințe fundamentale, regăsite în [2] și [3]:
 Înregistrarea: crearea unei liste de persoane care au dreptul să voteze;
 Validarea: verificarea datelor personale ale celor care doresc să voteze;
 Colectarea voturilor;
 Numărarea voturilor.
 Anonimitatea votanților: Identitatea votantului ramâne secretă.
 Acuratețe: Voturile nu au fost schimbate, multiplicate sau eliminate de cineva
(inclusiv de autorități).

3
 Corectitudine de numărare: Se verifică egalitatea între numărul total de voturi și
suma voturilor primite de ficare candidat.
 Verificabilitate: Utilizatorii pot verifica dacă votul lor a fost corect acordat.
 Detectarea dublei votări: Niciun utilizator nu poate vota de mai multe ori (în cazul
votului electoral)..

Folosit în scop electoral, sistemul este gândit să rezolve problemele din secțiile de
votare și fraudele electorale din România. Digitalizarea poate aduce avantaje precum
posibilitatea efectuării votului rapid, indiferent de poziția geografică a votantului, creșterea
prezenței la vot, dar și minimizarea riscului de apariție a erorilor de numărare. Motivul
proiectării sale derivă din dorința de a face un pas înainte spre un vot curat și civilizat,
problema votului fiind foarte bine cunoscută atât de românii din țară, cât și de cei de peste
hotare, dar și din necesitatea existenței unui sistem centralizat, care să asigure un bun mers
al procesului electoral și nu în ultimul rând, un rezultat corect.
Totodată, adoptarea unui astfel de mecanism de votare poate avea si dezavantaje
precum predispoziție la atacuri cibernetice, viruși, pene de curent, limitări legate de accesul
persoanelor din zone rurale la internet (doar 47% acoperire in România [4]). Pe lângă
acestea, însăși legea electorală ar trebui modificată fundamental.
În contextul internațional, exisă deja o serie de state precum Austria,
Australia, Canada, Estonia, Franța, Germania, Japonia și  Elveția care au incercat diferite
sisteme digitale, Estonia fiind din 2011 singurul membru UE care folosește această
procedură la scară largă având la alegerile parlamentare din 2011 un procent de 24% din
voturi provenite din mediul online [5].
Deși România nu este pregătită momentan pentru o astfel de schimbare, necesitatea
unui sistem de vot electronic general încă există, aplicabilitatea sa fiind regăsită în
majoritatea domeniilor în care trebuie luate decizii.
Sistemul prezentat în această lucrare unul robust, tolerant la schimbări, ce permite
utilizatorilor să voteze atât candidați cât și concepte, tipul de vot putând fi configurat după
preferințele administratorului astfel încât utilizatorii pot vota o singură dată, sau își pot
modifica votul de mai multe ori pe parcursul intervalului de votare. Pe piața românească
există diverse dispozitive hardware speciale pentru vot ce folosesc tehnologia radio[6], însă
aceste soluții sunt scumpe și se pot aplica doar pentru un număr restrâns de utilizatori. Pe

4
de altă parte, acestea depind de timp și spatiu în sensul că tehnologia radio nu se poate
folosi pe distanțe mari, iar pentru a-și cunoaște opțiunile, utilizatorii ar trebui să fie
prezenți in aceeași încăpere, în același moment de timp.
Obiectivul principal al acestui proiect este acela de a fluidiza procesul de votare
prin ridicarea barierelor temporale și spațiale, oferind utilizatorilor posibilitatea de a vota
dintr-un mediu familiar.
Pe baza acestor idei, această lucrare descrie dezvoltarea unei structuri prin
care dreptul la vot este respectat în totalitate, indiferent de etnie, religie, granițe, sau nivelul
de educație.
Mergând de la general la particular, lucrarea se împarte în 5 capitole:
În Capitolul 2 – „Obiectivele aplicației de vot electronic și prezentarea sistemelor
de vot existente” – sunt evaluate mai multe sisteme de vot existente la nivel internațional
discutând în parte de sisteme tradiționale sau moderne, după care sunt prezentate
obiectivele aplicației eVoteNow.
Capitolul 3 – „Tehnologii folosite” – prezintă tehnologiile utilizate pentru
dezvoltarea aplicației: MySQL, PHP, HTML, CSS, JavaScript și Apache.
Capitolul 4 – “eVoteNow-Detalii de implementare” se referă la cum au fost
utilizate tehnologiile prezentate anterior pe parcursul implementării.Ulterior este detaliată
metoda propusă și sunt prezentate deciziile care au fost luate pentru implementarea
algoritmului de votare. De asemenea, capitolul prezintă funcționalitățile aplicației de vot
electronic și o analiză a rezultatelor obținute.
Ultimul capitol – „Concluzii și dezvoltări ulterioare” – cuprinde concluziile
studiului realizat, cum s-au atins obiectivele propuse și activitățile necesare pentru
eficientizarea aplicației.

5
2.Sisteme de vot

Începutul democrației are loc în Grecia Antică, mai precis în oraşul-stat Atena în
jurul anului 500 î.Hr, fiind o democrație bazată pe trei principii esențiale: Isonomia
(egalitate în fața legii), isotimia (egalitatea drepturilor conferită prin naștere ) și isogoria
(dreptul la cuvânt în fața tribunalelor si adunării poporului). Era o democrație mai mult
teoretică, întrucât alterna cu diverse alte forme totalitare, însă acolo, bărbaţii atenieni care
îşi terminaseră pregătirea militară aveau dreptul de a vota.În schimb, femeile aveau
drepturi şi privilegii limitate şi erau cu greu considerate cetăţeni. Primele sisteme de vot nu
erau chiar sisteme, în adevăratul sens al cuvântului, ci se bazau pe tragerea la sorți sau
ridicarea mâinii.
Votul liber, aşa cum îl considerăm după standardele prezentului, în care aveau
dreptul să voteze toţi cetăţenii indiferent de sex, orientare politică, clasă socială sau religie,
a apărut în aceeași perioadă în regatul Angliei şi în Statele Unite, undeva la sfârşitul
secolului 19.

2.1 Sisteme de vot tradițional

Conform [7], un sistem de vot constă într-un set de reguli ce descriu pașii ce trebuie
urmați pentru ca un vot să fie considerat valid, reprezentând o metodă prin care votanții pot
alege candidații doriți la organizarea unor alegeri sau referendumuri.
Unul din fundamentele democraţiei este alegerea liderilor prin vot. Acesta diferă
totuși de la țară la țară, fapt generat de diferențele culturale și sociale.
Sistemele de vot sunt împărțite în două mari categorii: cele care declară un singur
câștigător și cele care declară mai mulți câștigători. În aceste categorii se regăsesc o serie
de sisteme care deși pot prezenta foarte mici diferențe, rezultatele întoarse pot fi total
altele. Cele mai multe probleme apar atunci cand sunt analizate procesele prin care un
grup de oameni ajung la o decizie comună. De exemplu, este luat în considerare un grup
de prieteni care decid unde vor merge la cină. Dacă toată lumea este de accord cu un
restaurant, este evident ce decizie vor lua, însă nu este clar ce vor decide dacă părerile sunt
împărțite [8].

6
Acestă lucrare introduce și examinează diferite metode de votare. Scopul nu este de
a oferi o prezentare generală a teoriei alegerii, sau o relatare completă a teoriei votului, ci
de a evidenția si discuta rezultatele cheie și problemele care stau la baza fenomenelor
observate atunci când factorii de decizie se reunesc pentru a putea lua o decizie colectivă.

2.1.1 Sisteme de vot ce desemnează un singur câștigător

În această categorie de sisteme de votare se disting trei ramuri principale și anume :

 sisteme de vot unic, conform căruia votantul alege un singur candidat;


 sisteme de vot de tip clasament, conform căruia votantul stabilește o listă de
candidați în ordinea preferințelor;
 sisteme de vot de tip evaluare, conform căruia votantul acordă câte o notă fiecărui
candidat.

1. Sisteme de vot unic

Cea mai răspândită metodă de acest tip este metoda pluralității cunoscută și sub
numele de “the first past the post” [9], fiind o extensie a principiului regulii majorității,
potrivit căreia învingătorul unor alegeri dintre doi candidați, numit și candidatul majoritar,
este cel care a obținut cele mai multe voturi.Urmărind exemplul din tabelul 1și aplicând
principiul pluralității, se poate observa că învingătorul este candidatul A, ceea ce satisface
criteriul majoriății.

Candidaț
Număr de voturi
i
A 5
B 2

Tabel 1 – candidați și număr de voturi ascoiate

Deși sistemul regulii majorității este cel mai cunoscut, se poate demonstra
matematic faptul că rezultatul produs nu este întotdeauna cel acceptat de majoritate, în
special atunci când sunt mai mult de doi candidați, motiv pentru care s-au dezvoltat și alte

7
sisteme care rezolvă aceste scăpări.O simplă alegere nu oferă candidaților posibilitatea de
a-și exprima ordinea preferințelor, astfel, pentru exact același scrutin, având exact același
număr de voturi, diferite sisteme de votare pot returna rezultate distincte.
În cazul în care sunt mai mult de doi candidați, metoda trebuie particularizată prin
organizarea mai multor tururi de scrutin cu eliminarea candidaților cu cele mai puține
voturi, până când se alege un candidat majoritar.

2. Sisteme de vot de tip clasament

Acest sistem de vot, denumit și vot preferențial, permite votanților să-și stabilească
o listă de candidați ordonată descrescător în funcție de preferințe. Metodele din această
categorie pot duce la același rezultat dacă îndeplinesc criteriul lui Condorcet, conform
căruia dacă un candidat este preferat de alegători înaintea oricărui alt candidat după o
verificare directă, atunci acel candidat este învingător [10].
Cele mai cunoscute metode sunt numărătoarea Borda și compararea în perechi, însă
poate fi menționată și metoda pluralismului cu eliminare, o extensie a metodei
pluralismului ce se aplică atunci când sunt mai mult de doi candidați. Această metodă
presupune organizarea alegerilor în mai multe tururi, eliminând de fiecare dată candidatul
cu cele mai puține voturi, până când se alege un candidat majoritar. Deși se încadrează în
această categorie, din tabelul 2 se poate deduce că nu respectă criteriul lui Condorcet
pentru că nu realizează o comparație directă între opiniile candidaților

1
Număr de alegători 10 8 4 1
4
Prima opțiune A C D B C
A doua opțiune B B C D D
A treia opțiune C D B C D
A patra opțiune D A A A A
Tabel 2 – tabel cu preferințe și număr de voturi

Runda 1: B are cele mai puține voturi și este eliminat, voturile sale se duc la D

Candidat A B C D
Voturi ca prima
14 4 11 8
opțiune

8
Runda 2: C are cele mai puține voturi și este eliminat, voturile sale se duc la D

Candidat A B C D
1 1
Voturi ca prima opțiune 12
4 1

Runda 3: D câștigă alegerile deși A este cel care a câștigat primul tur

Candidat A B C D
Voturi ca prima
14 23
opțiune

Compararea în perechi sau metoda Condorcet presupune o comparație directă între


toate combinațiile posibile de câte doi candidați, adică fiecare candidat va fi comparat
direct cu fiecare contracandidat. Conform acestei metode, dacă că A >M B, atunci mai
mulți alegători au votat candidatul A înaintea candidatului B. Pornind de la tabelul 3, se
pot deduce următoarele relații:

 A >M B dacă și numai dacă n1+n2+n5 > n3+n4+n6 (altfel B ≥M A)


 A >M C dacă și numai dacă n1+n2+n3 > n4+n5+n6 (altfel C ≥M A)
 B >M C dacă și numai dacă n1+n3+n4 > n2+n5+n6 (altfel B ≥M C)

Din acestea rezultă candidatul A ca find învingătorul Condorcet și candidatul cu cel


mai mic scor fiind pierzătorul Condorcet

Preferinț P
P1 P2 P4 P5 P6
e 3
A A B B C C
B C A C A B
C B C A B A
Voturi n1 n2 n3 n4 n5 n6

Tabel 3 – Tabel cu preferințe și număr de voturi

9
Aplicat pe exemplul din tabelul 4, se poate observa că învingatorul Condorcet este
candidatul C, deși a avut cele mai puține voturi ca fiind prima opțiune.

Votur
1 7 7 5
i
P1 A A B C
P2 B C C B
P3 C B A A

Tabel 4 - Tabel cu preferințe și număr de voturi

[A,B] -> 1+7 = 8 [B,A] -> 7+5 = 12 [C,A] -> 7+5 = 12

[A,C] -> 1+7 = 8 [B,C] -> 1+7 = 8 [C,B] -> 7+5 = 12

În concluzie, deși 8 alegători au preferat candidatul A înaintea candidaților B și C, alți


12 candidați au preferat B și C înaintea lui A. Mergând pe aceeași idee, 8 alegători l-au
preferat pe candidatul B înaintea candidatului C, însă alți 12 alegători au decis că C este
mai potrivit decât candidatul B, declarându-l pe acesta învingător. Metoda pluralismului l-
ar fi declarat învingător pe A, care este de fapt pierzătorul Condorcet, ceea ce contrazice
criteriul cu același nume.
Metoda numărătorii Borda presupune ca fiecărui candidat să i se atribuie un scor
Borda în funcție de poziția pe care o ocupă în preferințele alegătorilor. Astfel, dacă sunt N
candidați, primul candidat va primi N-1 puncte, iar analog, ultimul va primi 0 puncte.
Candidatul învingător va fi acela cu cel mai mare scor Borda.
Urmărind datele din tabelul 4 unde sunt 3 candidați, se pot calcula următoarele
scoruri Borda:

BS(A) = (2 * 1) + (2 * 7) + (0 * 7) + (0 * 6) = 16

BS(B) = (1 * 1) + (0 * 7) + (2 * 7) + (1 * 6) = 21

BS(C) = (0 * 1) + (1 * 7) + (1 * 7) + (2 * 6) = 26

Pe aceleași date, atât numărătoarea Borda cât și compararea în perechi au desemnat


același învingător, de unde rezultă că și numărătoarea Borda satisface condiția Condorcet.

10
Această metodă poate fi optimizată atunci când există un număr mare de candidați,
într-un mod asemănător cu metoda pluralismului, prin organizarea mai multor tururi de
scrutin. Odată cu micșorarea numărului de candidați, alegătorii iși pot forma o părere mai
clară asupra celor rămași în cursă.

3. Sisteme de vot de tip evaluare

Sistemele de acest tip oferă mai multă flexibilitate decât cel de tip clasament,
deoarece prezintă o probabilitate de terminare la egalitate mai mică. Ansamblul presupune
asignarea unui punctaj între 0 și 100 fiecărui candidat, învingător fiind cel cu cel mai mare
punctaj.
Conform [11], o astfel de metodă se folosește la alegerea Cardinalilor. Cel mai
simplu sistem cardinal este votul prin consimțământ ( Approval voting ), care permite
acordarea a doar două calificative: admis sau respins. Alt astfel de sistem permite votarea
în lanț ( Range voting ), în sensul că alegătorii acordă câte un punctaj fiecărui candidat în
parte.

2.1.2 Sisteme de vot ce desemnează mai mulți câștigători

Sunt sisteme moderne folosite în general la alegerea corpului legislativ, ale căror
efecte sunt diferite de cele ale sistemelor cu un singur învingător. De multe ori, partidele
ce candidează la alegerile parlamentare sunt mai preocupate de numărul de locuri primite
decât de ce candidați vor fi aleși, motiv pentru care majoritatea sistemelor de acest gen se
axează pe un criteriu proporțional, însemnând că procentajul obținut de un partid la alegeri
va fi numărul de scaune primite.
În esenţă, există două categorii de sisteme de vot, așa cum este precizat și în [15]:
sistemul electoral majoritar și sistemul electoral cu reprezentare proporțională sau
semiproporțională. De regulă, metodele majoritare sunt folosite în țări democratice
majoritariste precum Marea Britanie şi SUA, şi funcționează pe baza ideii potrivit căreia
guvernarea trebuie să fie formată pe baza preferințelor alegătorilor.Pe de altă parte,
sistemele cu reprezentare proporțională sunt utilizate în țări care prezintă democrații
unioniste, precum Germania, Italia şi Belgia, şi are la bază ideea că nu este suficient ca
rezultatul alegerilor să reflecte opinia unei majorități, fiind necesară o inventariere cât mai

11
fidelă a opțiunilor electorale, astfel încât nici una din minoritățile semnificative să nu fie
dezavantajate.

1. Metode proporționale

Aceste metode garantează proporționalitatea făcând ca fiecare opțiune câștigătoare să


fie aleasă de un număr egal de alegători. Acest lucru este posibil prin stabilirea unei cote de
alegători (100, 1000, etc), astfel fiecare candidat ales reflectă opinia a unui număr fix de
alegători cu o rată a erorii calculată matematic cu ajutorul indexului Gallagher ( diferența
dintre procentul de voturi și numărul de locuri primite).

Fig 1 – Indexul Gallagher [12]


Majoritatea sistemelor de acest tip se bazează pe liste de reprezentanți potrivit cărora
alegătorii votează partide politice în locul candidaților individuali. Astfel, pentru fiecare
cotă de voturi primită, partidul primește un loc în corpul legislativ.
Metodele din această categorie sunt similare, diferențe se găsesc în modul în care se
calculează cota, sau dacă partidele decid să folosească liste deschise, în care alegătorii
decid ce candidați din acel partid ocupă locurile, sau listă închisă, atunci când partidele le
asignează de la început.
Tot în această categorie se regăsește si metoda D’Hondt, descoperită de
matematicianul belgian Victor D’Hondt, o metodă ce garantează că locurile alocate
partidelor vor fi reprezentate de numere întregi a căror sumă este exact numărul de locuri
disponibile, țintind pe cât posibil păstrarea proporționalității [16].
Metoda D’Hondt, folosită de majoritatea statelor din Europa, ba chiar și de
parlamentul european, propune calcularea cotei după următoarea formulă:

V
cota=
s+1

V- numărul total de voturi primite de fiecare partid;

s – numărul de locuri ocupate de un singur partid ( 0 inițial)

12
Cota reprezintă “prețul” unui scaun, adică numărul de voturi necesar unui partid
pentru a-și trimite un reprezentant mai departe. Pentru fiecare partid în parte, voturile se
divizează iterativ cu 1,2, până la N (N-numărul de locuri disponibile), iar primele N
rezultate vor ocupa locurile disponibile. Astfel, dacă un partid cumpără un loc după prima
etapă, pentru al doilea va avea de plătit jumătate din numărul de voturi, pentru al treilea,o
treime, aceeași logică aplicându-se și pentru următoarele.
Tabelul 5 reprezintă un exemplu de aplicare al metodei D’Hondt pe un eșantion de
230 000 de alegători, patru partide politice și 6 locuri disponibile.
V/1 V/2 V/3 V/4 V/5 V/6 locuri
A 100 000 50 000 33 333 25 20 000 16 666 3
000
B 80 000 40 000 26 666 20 16 000 13 333 2
000
C 30 000 15 000 10 000 7 500 6 000 5 000 1
D 20 000 10 000 6 666 5 000 4 000 3 333 0

Tabel 5 – Exemplu de calul D’Hondt

O altă metodă proporțională, diferită de cea anterioară este cea în care votul este
transferabil(STV- Single Transferable Vote). Diferența constă în faptul că voturile sunt
transferabile și nu mai este nevoie să se grupeze candidații în funcție de partide politice.
Principiul este asemănator cu cel al metodei pluralismului cu eliminare, în sensul că
voturile provenite de la candidații eliminați sunt redistribuite. În momentul în care au
rămas în cursă exact atâția candidați cât numarul de locuri, aceștia ajung să ocupe acele
locuri.

2. Metode semiproporționale

Cea mai relevantă metodă semiproporțională este metoda cumulativă,


conform căreia alegătorii pot acorda N voturi, unde N este numărul de locuri disponibile.
Alegătorii pot decide cum iși vor distribui voturile, fie unui singur candidat, fie combinat,
la fel ca în figura 2.

13
Figura 2 – Posibilități de distribuire a voturilor unui alegător

Conform principiului cumulativ, învingători vor fi primii N candidați în ordinea


descrescătoare a voturilor.
Același principiu poate fi aplicat și în votarea conducerii unei corporații, cu
mențiunea că voturile alegătorilor au ponderi diferite, în funcție de numărul de acțiuni pe
care le dețin în acea companie.
Metoda cumulativă este încadrată ca fiind semiproporțională și nu proporțională
deoarece dă dovadă de același caracter corupt ( spoiler effect [13] ) precum metoda
pluralității, în sensul că poate genera alegerea unor candidați care nu sunt pe placul
majorității.
O altă metodă semiproporțională este metoda votului singular, netransferabil
(SNTV – Single Non-Transferable Vote [14] ). Potrivit acestei metode, fiecare alegător are
dreptul să aleagă un singur candidat, însă vor fi aleși mai mulți candidați în ordinea
voturilor primite. SNTV lansează o provocare partidelor politice care introduc în cursă mai
mulți candidați în ideea că se expun la pericolul apariției fenomenului de împărțire a
voturilor ceea ce duce la pierderea locurilor. Dacă într-o regiune sunt disponibile 4 locuri și
un candidat a primit mai mult de 25% din voturi, atunci acel candidat garantat va fi ales. În
schimb, dacă partidul din care face parte acel candidat introduce în cursă un alt candidat,
este posibil ca alegătorii să-și împartă voturile între aceștia limitând șansele amândurora să
obțină o majoritate.
SNTV se folosește astăzi pentru alegeri legislative în Afghanistan, Indonesia,
Taiwan, însă cel mai mare succes l-a cunoscut în perioada 1948-1993 când a fost folosit de
corpul legislativ Japonez [14].

14
Avantajele acestui sistem față de cele prezentate anterior derivă din faptul că este
foarte simplu de înțeles și de utilizat. Pe de altă parte, sistemul oferă șanse egale partidelor
minoritare sau candidaților independenți.
Tot în categoria sistemelor semiproporționale se încadrează și sistemul cu voturi
limitate (LV – Limited Vote [14] ), care se diferențiază de SNTV prin faptul că oferă
alegătorilor posibilitatea acordării unui număr limitat de voturi, mai mare decât unu, dar
mai mic decât numărul de candidați. Fiind asemănator ca simplitate și ca principiu de
numărare a voturilor cu SNTV, acest sistem se folosește atât la nivel de alegeri locale, cât
și la alegeri de nivel național în țări precum Spania (încă din 1977) și Gibraltar.

2.1.3 Sistemul de vot în România

În România funcționează un sistem de vot cu reprezentare proporțională pe liste de


partid. Astfel, alegătorii votează una din listele propuse de partide, iar locurile se atribuie
în funcție de procentele obținute.
Orientativ, dacă o formațiune politică deține 22% din voturile la nivel naţional,
aceasta va obține 22% din scaunele din Parlament. În schimb, daca aceasta va atinge
majoritatea categorică, va avea posibilitatea să-și numească propriul guvern. Altfel,în cazul
în care niciun partid nu obține majoritatea absolută, se poate instaura un guvern de alianță,
astfel încât partidele ce formează alianța să aibă împreună mai mult de jumătate din
numărul de parlamentari.
Conform [16],drept de alegător au persoanele care au împlinit vârsta de 18 ani.
Excepţie de la această regulă o fac debilii și alienații mintali puși sub interdicție și
persoanele condamnate care prin hotărâre judecătorească definitivă și-au pierdut drepturile
electorale.

2.2.Sisteme de vot electronic


Termenul de vot electronic este un termen interpretabil, el poate fi folosit pentru a
exprima o serie de modalități de vot ce se bazează pe anumite componente electronice,
motiv pentru care trebuie stabilită o terminologie.
Actualmente, în lume există patru tipuri de sisteme de vot ce conțin minimum un
element electronic. Conform [26], acestea sunt:
 Numărarea electronică:

15
Electronic se face doar numărarea voturilor în cazul acestui sistem, iar restul
se realizează prin metodele tradiționale: alegătorul intră în cabina de vot cu un
buletin de vot de hârtie, își marchează alegerea pe buletinul de vot și, la final,
introduce buletinul de vot în urnă. La final, rezultatele sunt procesate de un
calculator care stabilește candidatul învingător.

 Mașini de vot electronice care funcționează cu hârtie

Acest sistem propune ca realizarea efectivă a procesului de votare să se


efectueze cu un dispozitiv electronic care generează un buletin de vot având
marcată opțiunea alegătorului.Acesta introduce buletinul de vot generat de mașina
de vot într-o urnă clasică, care adună buletinele de vot până la încheierea
scrutinului și al cărui conținut este numărat fie în mod tradițional, fie în mod
automat, de către un alt sistem electronic. Așadar, o variație a acestui tip de vot
folosește scannere, cu diverse nivele de automatizare, pentru scanarea buletinelor
de vot și raportarea rezultatului numărătorii, buletinele de vot fiind păstrate pentru
eventuale verificări.

 Mașini de vot electronice cu înregistrare directă (Direct-recording electronic –


DRE - voting machines)

Sistemul DRE a apărut ca o completare a mașinilor de vot electronice cu


hârtie, cu diferența că mașina înregistrează și contorizează electronic preferința
alegătorului. Un avantaj major este faptul că nu mai este nevoie de urne și nici de
generarea buletinelor de vot.
Pentru a putea verifica corectitudinea înregistrării votului, atât de către
alegător cât și de organizatori în ideea unei renumărări, mașinile de vot DRE pot
avea implementat un sistem de verificare pe baza unei urme de audit pe hârtie
(voter verification paper audit trail - VVPAT). Deși există multiple moduri de
implementare a unui sistem VVPAT, toate se bazează pe imprimarea pe hârtie a
opțiunii alegătorului și stocarea acestei hârtii pentru a putea fi făcute eventuale
renumărări.

16
Legat de sistemul VVPAT există anumite îngrijorări legate de securitate,
așa cum este afirmat și în [27]. Potrivit acestor afirmații, sistemul poate fi infectat
cu un virus care să imprime în mod intenționat alt vot față de cel al alegătorului,
facând imposibilă identificarea voturilor valabile față de cele fraudate. Pe de altă
parte, acest sistem nu asigură caracterul secret al votului, ceea ce ridică și probleme
de etică.

 Vot la distanță online/pe Internet

Sistemul acesta reprezintă apogeul sistemelor de vot electronice întrucât


permite alegătorilor să voteze din orice colț al lumii s-ar afla, folosind doar un
dispozitiv ce se poate conecta la internet. Avantajele pe care le-ar aduce
implementarea unui astfel de sistem în scop electoral ar fi enorme, însă este un
sistem controversat, cu mari semne de întrebare privind securitatea.

Această lucrare abordează sistemele de vot la distanță, prezentând un sistem


demonstrativ de e-voting cu avantajele și dezavantajele sale, în funcție de domeniul de
utilizare.
Implementat în mod corespunzător, sistemul de e-voting poate elimina frauda,
accelera procesarea rezultatelor, crește accesibilitatea și poate face votul mai convenabil
pentru cetățeni. În unele cazuri, când este folosit într-o serie de evenimente electorale,
poate ajunge chiar să reducă costurile alegerilor și referendumurilor pe termen lung. Din
păcate însă, nu toate proiectele de digitalizare resușesc să îndeplinească astfel de obiective
întrucât tehnologia curentă pe care se bazează sistemele de această natură nu este atât de
sigură. Provocări legislative și tehnice au apărut în câteva cazuri, în altele a existat
scepticism semnalând faptul că votul electronic nu este încă pus la punct.
E-voting este deseori utilizat ca o modalitate de avansare în democrație, construind
astfel încredere în managementul electoral și de asemenea adaugă credibilitate în
rezultatele electorale, crescând prin urmare eficiența procesului electoral.
Provocarea sistemelor de acest gen ține de caracterul secret al votului, de unde
nevoia de a evita orice conexiune între identitatea alegătorului și distribuirea votului.
Această acțiune contrazice principiile sistemelor ce implementează tehnologia informației
(TIC) prin simplu fapt că sistemele TIC sunt construite în mod inerent pentru urmărirea și

17
monitorizarea tranzacțiilor desfășurate. În altă ordine de idei, întreruperea legăturii dintre
alegător și vot poate duce la distrugerea unui sistem de vot electornic pentru că nu se poate
dovedi că fiecare vot a fost numărat și întregistrat corect.
De aceea, probele indirecte ale validării rezultatelor electronice, precum auditul pe
hârtie sau certificarea sistemelor, în combinație cu un strâns control al calității și al
procedurilor de securitate, sunt extrem de importante pentru garantarea integrității unui
sistem de vot electronic, fără de care pot rămâne nedectetate rezultate incorecte sau
manipulate.
Așa cum se poate observa și în tabelul 6, la nivel internațional, situația privind
adoptarea diverselor tipuri de sisteme de vot electronic este fluidă. În funcție de cum este
privită problema și cum sunt alcătuite diversele statistici poate părea că votul electronic are
o răspândire mai mare decât în realitate. Motivul pentru aceasta este că multe state au
cochetat cu ideea, începând de la discuții, trecând prin diverse soluții de test mai reduse sau
mai ample și terminând cu adoptarea votului electronic doar pentru anumite categorii de
cetățeni sau doar la nivel local/regional.

Total
Utilizat în Utilizat parțial în Utilizare (în
trecut trecut universală funcție de
tip)
Mașini bazate pe hârtie +
numărare electronică sau
mașini de vot cu 1 (6.25%) Belgia 1 (6.25%)
înregistrare directă cu
urmă de audit pe hârtie
Mașini de vot cu 4 (25 %)
înregistrare directă fără Finlanda, 2 (12.5%)
urmă de audit pe hârtie Germania, Brazilia, 6 (37.5%)
Irlanda, India
Olanda
Vot pe Internet 2 (12.5%)
1 (6.25%)
Norvegia, 1 (6.25%) Franța 4 (25%)
Estonia
Suedia
Amestec de mai multe 5 (31.25%)
tipuri de sisteme de vot Australia, Canada,
5
electronic Elveția, Marea
(31.25%)
Britanie, Statele
Unite ale Americii
Total (în funcție de
6 (37.5%) 7 (43.75%) 3 (18.75%)
utilizare)

18
Tabelul 6 - Statistica folosirii sistemelor de vot electronic în funcție de tipul de
sistem folosit și de amploarea folosirii respectivelor sisteme de vot electronic
Din punct de vedere al funcționaliăților de bază, un sistem de vot electronic poate oferi:
 Liste electorale electronice accesate prin autentificarea alegătorilor.

O parte a unui sistem de vot digital poate fi reprezentată de o listă electorală


electronică ce acoperă fie o singură zonă, fie toată țara. Această listă poate servi ca
buletin de vot, alegătorul fiind nevoit doar să apese butonul aferent candidatului pe
care-l preferă.

 Interfața software pentru organizatorii din secțiile de votare.

În această categorie se încadrează functionalități de adăugare sau ștergere de


candidați, atribuire de fotografii, setarea intervalului orar în care se desfășoară
scrutinul, data și resetarea numărului de voturi.

 Interfața hardware.

În funcție de tipul sistemului folosit, interfața hardware constă fie în ecrane


tactile ori tablete ,fie în buletine de vot ce sunt introduse într-un scanner, fie în
pagini web sau un software special pentru votul prin internet.

 Interfețe speciale pentru persoanele cu dizabilități.

Termenul de interfață se referă în accest caz la facilitarea procesului


electoral pentru persoanele cu nevoi speciale, prin implementarea de sisteme
Braille ori audio pentru nevăzători, sau asigurarea unui acces ușor pentru alegătorii
cu dizabilități fizice.

2.2.1 Votul electronic in Estonia

Conform [28], votul prin Internet a fost introdus pentru prima dată în Estonia
pentru alegerile locale din 2005, când mai mult de 9000 de alegători au votat prin Internet

19
(aproximativ două procente din populație), devenind prima țară din lume care a apelat la o
astfel de metodă. Până în 2015, acest sistem a fost utilizat de încă cinci ori, la niveluri și
mai înalte, precum alegerile parlamentare din 2007 și 2011, sau alegerile pentru
Parlamentul European din 2009 și 2014.
Votul online în Estonia a fost conceput în ideea sprijinirii metodei tradiționale și nu
pentru a o înlocui, oferind alegătorilor posibilitatea să voteze chiar și atunci când nu pot
ajunge într-o secție de votare. Astfel, votul tradițional este prioritar în sensul că sistemul
electronic poate prelua și schimba preferințele alegătorilor începând cu zece zile înainte de
data alegerii și finalizându-se cu patru zile înainte de ziua votului. În acest interval de patru
zile, organizatorii trimit listele cu alegătorii care au votat online la toate secțiile de votare,
prevenind votul dublu pentru persoanele în cauză. La data alegerii, utilizatorii care au votat
prin internet nu își mai pot schimba votul. Odată cu centralizarea rezultatelor, voturile din
sistemul electronic vor fi trimise mai departe, dar nu înainte să li se șteargă semnătura
digitală.
Securitatea este un punct cheie pentru guvernul estonian care atestă ca sistemul
electronic este la fel de sigur ca cel tradițional, fiind sprijinit atât de măsuri tehnice cât și
de măsuri legislative pentru a garanta integritatea voturilor.
Desfășurarea procesului de vot prin internet se poate realiza în două moduri, fie
folosind un card asemănător cardului bancar, în care sunt stocate informații despre
identitatea alegătorului, fie folosind un telefon mobil, identificarea alegătorului realizându-
se pe baza informațiilor oferite de cartela SIM.

 Votul pe bază de card


Pașii necesari a fi parcurși pentru un alegător ce dorește a vota în acest mod sunt:

1. Introduce cardul într-un dispozitiv de citire pe care-l găsește în comerț și


care se conectează cu o unitate de calcul prin interfață USB
2. Accesează aplicația web dedicată votului (www.valimised.ee)
3. Se identifică prin introducerea codului PIN al cardului
4. Serverul verifică identitatea alegătorului și decide dacă acesta este sau
nu eligibil
5. În caz că este eligibil, accesează lista de candidați
6. Votează, iar votul este criptat

20
7. Confirmă alegerea printr-o semnătură digitală reprezentată de un alt cod
PIN
8. Primește confirmarea că votul a fost acceptat și înregistrat
 Votul pe bază de telefon mobil (figura 7)

Această metodă a fost introdusă ulterior în 2011 și are avantajul că elimină


necesitatea utilizării unui cititor de carduri, întrucât telefonul mobil poate îndeplini
simultan și funcția de card și cea de cititor de carduri. Procedeul este asemănător cu
cel de mai sus implicând deopotrivă folosirea unei unități de calcul și parcurgerea
alegătorului prin următorii pași.

1. Accesează aplicația web dedicată votului (www.valimised.ee)


2. Introduce în aplicație numărul său de telefon, după care primește prin
SMS un cod de verificare
3. Inserează codul primit în aplicație și trimite prin SMS codul PIN
4. După acceptarea codului PIN trimis prin SMS, pe ecranul calculatorului
i se va afișa lista de candidați
5. Votează, votul este criptat, după care primește din nou SMS cu alt cod
de verificare
6. Inserează din nou codul primit în aplicație și trimite prin SMS
semnătura digitală sub forma unui alt cod pin
7. Primește pe ecranul calculatorului confirmarea că votul a fost acceptat și
înregistrat

21
Figura 7 – principiul autentificării pe baza identificatorului mobil [29]

2.2.2 Avantaje și dezavantaje ale unui sistem de vot electronic

Atunci când se pune problema implementării unor astfel de sisteme, părerile sunt
împărțite. Conform ultimului raport cu privire la vulenrabilitățile modelului estonian [29],
acesta este acuzat de riscuri grave de securitate.

“Deși considerăm că e-guvernarea are multe întrebuințări promițătoare, sistemul


de I-vot din Estonia prezintă riscuri grave – alegerile pot fi furate, îngreunate sau
compromise din punct de vedere al încrederii alegătorilor. Ținând cont de aceste
probleme, recomandarea noastră urgentă este ca, pentru a menține integritatea sistemului
electoral din Estonia, ar trebui ca folosirea sistemului de I-vot să fie imediat suspendată.”

Pe de altă parte, un astfel de sistem prezintă și o serie de avantaje pe care votul


tradițional nu le poate oferi:

 Numărarea rapidă a voturilor


 Rezultate mai precise deoarece erorile umane sunt excluse
 Eliminarea buletinelor de vot
 Comoditate crescută pentru alegători
 Participare și prezență la vot sporită, în special în rândul utilizatorilor tineri
 Adaptabilitate la nevoile unei societăți în plină evoluție tehnologică

22
 Prevenirea fraudei în secțiile de votare și în timpul transmisiei și sigilării voturilor
 Avantaje create persoanelor cu dizabilități
 Reducerea costurilor
 Expedierea voturilor fără întârzieri
 Reducerea fenomenului de cumpărare a voturilor sau de vot multiplu

23
2.3.Scopul aplicației de vot electronic

În acest context, având în vedere avantajele și dezavantajele sistemelor de vot


prezentate anterior, această lucrare prezintă dezvoltarea unui sistem de vot online,
proporțional, bazat pe regula majorității. Deși această metodă nu oferă alegătorului
posibilitatea de a vota mai multe opțiuni, avantajul ei constă în faptul că este ușor de
înțeles și rezultatul final este în concordanță directă cu preferințele majorității.
Rolul acestei aplicații web este de a crea un mediu facil pentru organizarea de
alegeri indiferent de temă, fie în scop electoral, fie într-o companie, fie în sistemul
educațional. Aceasta se remarcă prin faptul că este un pas spre un sistem de vot modern,
dar și datorită funcționalităților implementate atât pentru partea de administrare cât și
pentru partea de client.

Printre funcționalitățile oferite pentru administrare se pot remarca:

 Posibilitatea introducerii numelui evenimentului pentru care se realizează alegerea


 Posibilitatea alegerii intervalului de efectuare a votului
 Alegerea tipului de vot, fie optarea spre vot unic, ce nu se mai poate modifica
ulterior, fie spre vot ce se poate schimba de mai multe ori în intervalul orar alocat
votului
 Adăugare, ștergere, și modificare utilizatori și candidați
 Resetarea sistemului

Pe de altă parte, utilizând această aplicație, alegătorul are următoarele posibilități:

 Să se autentifice cu numele și o parolă


 Să se inregistreze
 Să voteze unic sau sa-și schimbe votul
 Să vizualizeze rezultate parțiale și finale actualizate automat

Scopul acestui sistem este de a crea o platformă de conectare la distanță între vot și
alegători prin intermediul rețelei de Internet, oferind un soluție simplă, ieftină și lejeră

24
problemei votului. De altfel, sistemul își propune să rezolve și alte probleme de natură
administrativă cum ar fi eficientizarea procesului de vot, prin eliminarea aglomerației și
micșorarea timpului de așteptare, dar și probleme legate de fraudă, prin limitarea acesului
componentei umane.

Pentru a putea atinge scopul propus, este necesară atingerea unor obiective specifice și
anume:
 Realizarea unei interfețe grafice
 Oferirea posibilității de autentificare a utilizatorilor
 Prezentarea unei liste de entități în funcție de scopul votului
 Posibilitatea alegerii unei preferințe
 Posibilitate de vizualizare a rezultatelor
 Posibilitate de introducere, ștergere sau modificare a unor informații
 Posibilitate de configurare a sistemului
 Posibilitate de deconectare

Odată atinse aceste obiective, se poate spune că s-a creat o aplicație care respectă
principiile elementare ale unui sistem de vot. Din acest punct ce reprezintă nucleul
sistemului de vot, se pot adăuga diverse funcționalități, după domeniul în care va fi utilizat
sistemul.
Utilitatea acestei aplicații constă în faptul că oferă flexibilitate, în special datorită
naturii sale configurabile. Indiferent ce se vrea a fi supus la vot, această aplicație poate
reprezenta o soluție, fiind extrem de ușor de configurat și extrem de ușor de utilizat.
Cu privire la scenariile de utilizare, sistemul descris în acestă lucrare se poate folosi
oriunde este nevoie ca oamenii să își exprime preferințele prin intermediul votului. Acesta
poate fi folosit de exemplu pentru a vota tema unei petreceri, sau ce angajat al unei
companii va primi titlul de angajatul lunii. Nuanța aceasta particulară a aplicației este
imprimată încă din titlu – eVoteNoW – care exprimă generalitate, globalitate sau
spontaneitate.
În capitolele următoare vor fi descrise concret funcționalitățile aplicației și cum au
fost atinse obiectivele propuse. Astfel, se vor explica pașii urmați în implementarea
sistemului și se vor detalia cazurile de utilizare atât pentru administratorul de sistem, cât și
pentru utilizator.

25
3.Tehnologii folosite

3.1 HTML
HTML [17] este un limbaj de marcare orientat către prezentarea documentelor text
pe o singură pagină. Ajutat de un software de redare specializat, browserul web, HTML
oferă mijloacele prin care conţinutul unui document poate fi completat cu metadate şi
indicaţii de redare. Indicaţiile de redare sunt diverse, de la banale decoraţiuni ale textului
(cum ar fi specificarea faptului că un anumit cuvânt trebuie subliniat sau că o imagine
trebuie introdusă) până la scripturi sofisticate, formulare, liste sau tabele.
HTML a fost creat pentru simplitate, permite dezvoltarea de pagini web în orice
editor de text, însă o bună practică ar fi să se utilizeze un editor specializat, care să pună în
evidenţă diversele elemente de marcare (numite și tag-uri sau etichete) sau să poată detecta
erorile. Un astfel de editor este Sublime, editor compatibil nu doar cu HTML ci și cu PHP
sau CSS.

3.2 CSS
Între indicațiile de redare ale limbajului de marcare HTML nu se regăsesc și
informații de stilizare si formatare , astfel justificându-se nevoia de utilizare a CSS-ului.
CSS (Cascading Style Sheet) este un limbaj de stilizare care customizează
etichetele HTML după standardele W3C [18].
Conform acestui limbaj de stilizare, se poate formata orice element al unei pagini
web, oferind posibilitatea de a seta o serie de proprietăți cum ar fi: culoare, poziție, font,
bordură, transparență și multe altele.CSS are o sintaxă simplă, proprietățile fiind
specificate prin cuvinte cheie din limba engleză: font, font-size, text-align, margin,
padding, float, height, border, background etc.
Adăugarea în codul HTML se poate face fie inline, prin atributul style :
<p style=” font-size: 13px; ”> TEXT </p>, fie intern, în partea de head a fișierului
HTML, după cum se observă și în figura 4, sau extern, prin utilizarea unui fișier CSS

26
extern, care să fie inclus tot în partea de head a fișierului HTML cu ajutorul tag-ului
<link>: <link rel=”stylesheet” type=”text/css” href=”style.css”>

Figura 4 – exemplu de cod CSS care aliniază ambele paragrafe central și le schimbă
culoarea în roșu

3.3 PHP
PHP, inițial cunoscut sub numele de Personal Home Page, este un limbaj de
programare elaborat pentru crearea paginilor dinamice. Ajuns astăzi la a 7-a versiune,
numele său, deși neschimbat, are altă semnificație fiind un acronim recursiv:
PHP:Hypertext Processor. După cum se poate observa și în figura 5, PHP a devenit un
nucleu pentru dezvoltarea de aplicații web, pe baza lui construindu-se diverse framework-
uri precum Zend sau Code Igniter, dar și sisteme de management al conținutului (CMS-
Content Management Systems [26]) precum Wordpress sau Drupal, datorită vitezei,
simplității și evoluției sale rapide.

Figura 5- Extinderea limbajului PHP [30]

27
Structura unui script PHP este foarte asemănătoare cu cea a unui cod scris în alte
limbaje de programare de nivel înalt precum limbajul C++, mai ales în sensul în care
structurile de programare au aceeaşi sintaxă şi aceeaşi funcţionalitate. Rolurile de bază ale
unui script PHP constau în faptul că pot prelua date trimise de către o pagină web de la un
client şi pot executa o secvenţă de program în urma căreia va rezulta un cod HTML, cod pe
care clientul îl va primi sub forma unei pagini web. Clientul nu va avea acces la codul
efectiv al script-ului, prin faptul că acesta se află și reulează pe server.
Deși codul PHP poate fi scris în orice editor de text, acesta nu poate rula decât pe
un server.Spre deosebire de alte limbaje de programare cu care se aseamănă, codul PHP nu
se compilează pentru a crea o aplicație de tip stand-alone. Din aceste motive, pentru a
funcționa local pe o mașină de calcul, presupunând că programatorul nu are acces la un
server sau la un domeniu, codul PHP are nevoie de un server virtual, realizabil gratuit cu
Apache.

3.4 jQuery

jQuery este astăzi cea mai folosită librărie JavaScript. Aceasta oferă modalități
interactive de accesare a elementelor dintr-o pagină, modifică dinamic reguli de stilizare și
sistematizează schimbul de date cu server-ul fără a fi necesară reîmprospătarea paginii.
Popularitatea sa este cu siguranța un efect al animațiilor interesante și al opțiunilor de
reprezentare a datelor puse la dispoziție.

3.5 Apache
Apache a fost folosit pentru crearea unui server local care să poată interpreta codul
PHP. Acesta poate fi instalat odata cu aplicația XAMPP și este cel mai folosit server HTTP
(HyperText Transfer Protocol) din lume. Motivele sunt bine definite, fiind capabil de a
primi mai multe aplicații concomitent utilizând același server, și desigur, fiind gratuit.

28
4. eVoteNow-Detalii de implementare
Pe parcursul acestui capitol vor fi prezentați pașii urmați în implementarea
aplicației eVoteNow cu referire la tehnologiile utilizate. Tot aici se vor detalia: nucleul
sistemului, structura, cazurile de utilizare și un studiu de caz bazat pe funcționalități și
procedeele folosite în implementarea acestora.

4.1 Baza de date


Nucleul aplicației descrise în această lucrare are ca fundament o bază de date
MySQL în care sunt stocate date despre utilizatori, administratori, candidați, dar și
informații legate de configurarea sistemului. Așa cum se poate observa și în figura 8, baza
de date este formată din patru tabele.

Figura 8 – Structura bazei de date

 Tabelul admin este tabelul în care sunt salvate informații despre administratorul
sistemului. Aici sunt păstrate date precum nume, prenume, nume de utilizator și
parolă, având cheie primară un ID unic. Din punct de vedere al tipului de date,
aceste câmpuri conțin informații de tipul VARCHAR , având maximum 50 de
caractere, excepție făcând cheia primară care este de tipul INT.

Figura 9 – Tabelul cu administratori

29
Din motive de securitate, toate parolele din acest sistem nu pot fi vazute în clar, ele
fiind criptate MD5 (Message Digest Algorithm 5) sau SHA1 (Secure Hash
Algorithm 1).
 Tabelul candidați conține informații relevante pentru candidați, precum nume,
prenume, departament sau partid, funcție sau rol, mesaj sau slogan, imagine, dar și
număr de voturi. Datorită configurabilității acestui sistem, câmpurile din acest tabel
au fost definite generic pentru a putea face față la schimbări. Cheia primară este tot
un ID unic, generat automat cu funcție de autoincrementare, de tipul INT. Pentru
eficientizarea apelurilor către baza de date, s-a decis păstrarea locală a imaginilor
aferente candidaților, în tabel fiind salvate doar căile absolute către ele. Astfel s-a
câștigat atât la capitolul viteză cât și din punct de vedere al traficului generat și al
lățimii de bandă ocupate.

Figura 10 – Tabelul candidaților

 Tabelul setari reține datele de configurare ale sistemului, precum numele


evenimentului pentru care se realizează votarea, tipul de vot (vot unic sau vot care
se poate schimba) și intervalul de timp alocat votului. Diferit față de tabelele
anterioare este tipul de date folosit pentru stocarea intervalului de timp în care se
desfășoară votul și anume DATETIME. Acest tip de date permite atât stocarea datei
cât și a orei într-un singur câmp, ajutând la menținerea eficienței. Tot în acest scop
a fost folosit și tipul de date TINYINT pentru stocarea tipului de vot care poate lua
doar valorile 1 și 2 în versiunea aceasta de sistem.

30
Figura 11- Tabelul de setări

 Tabelul de utilizatori este cel mai complex tabel din aceste sistem întrucât
utilizatorul este cea mai importantă componentă a sa. Pentru un utilizator este
necesară reținerea numelui și prenumelui, a codului numeric personal, întrucât pot
exista mai multe persoane cu același nume, a adresei, a unui semnalizator care
specifică dacă utilizatorul respectiv a mai votat, a votului exprimat, a unei parole de
acces și opțional, a datei angajării. Deși poate duce la încălcarea caracterului secret
al votului, păstrarea alegerii efectuate în baza de date este necesară pentru validarea
corectitudinii rezultatelor. În sprijinul păstrării integrității, nici administratorul
sistemului nu poate vedea cu cine a votat utilizatorul.

31
Figura 12 – Tabelul utilizatorilor

4.2 Structura aplicației

Întregul sistem este structurat în clase cu atribute și metode, procedeu de organizare


a codului ce ajută la depanare și dezvoltări ulterioare sau oferă posibilitatea de reutilizare a
codului. Pentru a putea evidenția rolul acestor clase, figura 13 prezintă o diagrama de clase
UML(Unified Model Language) în care se pot observa atât clasele principale cât și relațiile
dintre ele.

Figura 13 – Diagrama de clase

 Clasa Persoana este o clasă de bază, clasă părinte pentru clasele Utilizator și
Candidat. Plecând de la ideea că și utilizatorii și candidații sunt persoane, această
clasă, împreună cu metodele ei, încapsulează datele pe care utilizatorii și candidații
le au în comun, adică numele și prenumele. Astfel s-au economisit timp și spațiu
prin definirea lor într-un singur loc și folosirea lor de mai multe ori. Ca și atribute,
clasa conține id, nume și prenume, atribute cu modificatorul de acces protected, ce
pot fi accesate din clasele copil.

32
 Clasele Utilizator și Candidat moștenesc atributele si metodele declarate cu
modificatorul de acces protected în clasa părinte și au definite la rândul lor o serie
de atribute și metode în conformitate cu câmpurile din baza de date.
 Clasele UtilizatorMySql și CandidatMySql prezintă o serie de funcții ce
implementează interogări SQL(Structured Query Language), prin care clasele
Utilizator și Candidat comunică cu baza de date. Acestea oferă posibilitatea
efectuării de operațiuni CRUD (Create,Read,Update,Delete), dar și altor funcții
particulare. În mare parte, metodele acestei clase apelează metode specifice lucrului
cu baze de date definite în clasa DbMySql. Printre acestea se pot enumera metode
ce returnează fie un rând, fie o coloană, fie un obiect, așa cum se poate observa și în
figurile de mai jos:

 Clasa DbMySql conține în primul rând funcția de conectare la baza de date scrisă în
constructor și prezentată mai jos. În acest caz, fiecare apel al constructorului ar
duce la instanțierea unui nou obiect al acestei clase, adică o nouă conexiune. Din
acest motiv s-a dovedit necesară implementarea unui model singleton (Singleton
Pattern) prin care se restricționează crearea mai multor instanțe ale aceluiași obiect,

33
pastrându-se o singură conexiune. Apelul acestei funcții se face static, folosind
operatorul de rezoluție:

 Clasa Setări conține atributele: nume, tip, dată_început și dată_sfârșit, ce reprezintă


elementele configurabile ale sistemului. Această clasă este cea care oferă
particularizare sistemului prin oferirea acestor posibilități de configurare.

4.3 Cazuri de utilizare și activități

Din punct de vedere al cazurilor de utilizare, aplicația poate avea doi actori,
administratorul și utilizatorul. Diagrama cazurilor de utilizare prezentată în figura 14
descrie pe scurt acțiunile pe care le pot executa actorii, formând astfel o idee asupra
funcționalităților oferite de sistem.

34
Figura 14 – Diagrama Cazurilor de utilizare
Din această diagramă se observă faptul că utilizatorul nu are nevoie de cunoștințe
avansate de utilizare a calculatorului, întrucât acțiunile pe care le are de făcut pentru
exercitarea votului sunt simple și intuitive. Această simplitate poate fi considerată un punct
forte pentru că utilizatorii ajung să voteze foarte repede, astfel diminuând riscul de apariție
a supraîncărcării sau chiar a blocării sistemului.
Activitățile realizate de un utilizator în aplicație depind de intervalul de votare și de
tipul votului. Dacă intervalul este valabil și sistemul permite, utilizatorul își poate schimba
votul de câte ori dorește, rămânând salvată doar ultima sa preferință. Rezultate finale în
schimb, nu pot fi accesate până la încheierea intervalulului de timp alocat votului.

35
Figura 15 – Diagrama de activități pentru utilizator

Condiția necesară și suficientă ca această aplicație să funcționeze în parametri este


ca administratorul s-o configureze. Pentru a realiza acest lucru, un administrator are de
parcurs următorii pași:

Figura 16 – Diagrama de activități pentru administrator

36
4.4 Funcționalități și detalii de implementare

Pentru a putea utiliza sistemul de vot electronic, un utilizator are nevoie să se


înregistreze. Astfel, datele sale de identificare sunt stocate într-o bază de date și vor fi
folosite la verificarea identității atunci când acesta dorește să participe la vot.
Aceesul la această bază de date se face printr-o interfață grafică realizată folosind
PHP 5.6.19. S-a optat pentru acest limbaj de programare pentru că este orientat pe obiecte
și nu necesită compilator, astfel modificări la codul sursă al aplicației pot fi realizate în
timp real.
Interfață grafică pentru utilizator este lansată în execuție atunci când este accesată
pagina de intrare în aplicație, prezentată în figura 17.

Figura 17 – pagina index.php

Utilizatorul este direcționat să-și creeze cont în caz că nu are deja, după care este
automat redirecționat către pagina de înregistrare. Autentificarea se face pe baza numelui și
a parolei furnizate de utilizator, date ce sunt trimise spre verificare în baza de date. În cazul
unui răspuns negativ, utilizatorul este avertizat că datele furnizate sunt incorecte și îi este
restricționat accesul până la introducerea unora corecte. Formularul de autentificare preia
datele introduse de utilizator și formează o interogare SQL prin funcția de mai jos.

37
Pentru atribuirea valorilor pentru variabilele $myusername și mypassword s-a
folosit funcția escape(), funcție ce reprezintă un alias al funcției native PHP
mysqli_real_escape_string(connection,String) care transformă șirul de caractere primit
într-un șir sigur, ce poate fi folosit într-o interogare a bazei de date. Aceasta elimină
caracterele speciale ce pot fi puse de atacatori într-un șir de caractere, păstrând integritatea
bazei de date, atac cunoscut sub numele de SQL Injection.
Dacă datele de autentificare furnizate de utilizator sunt corecte, funcția va crea un
obiect de tipul Utilizator și folosind metodele din clasa din care face parte, îl va inițializa
cu valorile returnate de interogare, după care îl va returna paginii de autentificare și va
notifica browserul să pornească o sesiune ce va rămâne activă până în momentul
deconectării. Inițializarea foloseste un procedeum numit chaining(înlănțuire) pentru a
simplifica scrierea codului.
Altfel, dacă datele de autentificare sunt greșite sau utilizatorul nu are cont creat,
interogarea va returna NULL și utilizatorul va observa un mesaj de eroare.

38
Figura 18 – Formular de autentificare

După ce a fost autentificat, utilizatorul accesează pagina principală a aplicației,


pagină care prezintă un grafic cu rezultate parțiale realizat cu JavaScript, folosind
biblioteca JqueryUI, numele evenimentului setat de administrator, o numărătoare inversă
ce indică timpul rămas până la încheierea programului de vot și un meniu de navigare.
Meniul de navigare a fost scris separat,într-un alt script PHP și inclus în toate paginile pe
care are acces utilizatorul. Totodată, meniul de navigare depinde de numărătoarea inversă.
Cât timp aplicația primește voturi, nu se poate accesa pagina de rezultate finale, iar
în momentul în care aplicația nu mai primește voturi, va deveni indisponibilă pagina de
vizualizare a candidaților.

39
Figura 19 – Pagina principală cu rezultate intermediare
Decizia este luată de functia canVote care preia din baza de date un obiect de tipul
Setări și returnează adevărat sau fals dacă momentul actual de timp este sau nu este în
intervalul setat de data începerii evenimentului și data finalizării evenimentului. Conform
secventei de cod următoare, comparația între aceste date, se face folosind funcția
strtotime(), funcție ce returnează numărul de secunde trecute de la 1 Ianuarie 1970.

Graficul cu rezultate intermediare ar trebui să se actualizeze automat din oră în oră


și să se oprească cu câteva ore înainte de finalizarea votului pentru a nu influența rezultatul
final. Scopul sau este acela de a ajuta utilizatorul în luarea unei decizii cu privire la
candidatul pe care îl preferă. Pentru a putea exemplifica evolutia acestui grafic, au fost
implementate o funcție de generare de voturi aleatoare și una de resetare.
Funcția de generare de voturi alege în mod aleator ce utilizatori vor vota și cu cine
vor vota.Acest lucru a fost realizat prin introducerea într-un vector a tuturor ID-urilor
utilizatorilor care nu au votat.

40
Pasul următor constă în aflarea lungimii acelui vector, valoare ce va fi folosită ca
număr total de utilizatori. Ulterior, într-o structură repetitivă, se generează la fiecare
iterație câte un număr aleator între 0 și numărul total de utilizatori, iar valoarea din vectorul
cu utilizatori care se află pe poziția generată întâmplător va fi introdusă într-un alt vector,
care va avea 20% din lungimea primului și în care se vor stoca utilizatorii care vor vota în
acel moment.

Mai departe, pentru a alege candidații cu care vor vota acești utilizatori, se merge
pe un principiu asemănător. Se interoghează baza de date și se obțin într-un vector ID-urile
tuturor candidaților. Pentru fiecare utilizator care va vota în acel moment se va genera un
numar aleator, acesta reprezentând poziția din vectorul de candidați a candidatului cu care
va vota. La final se actualizează tabelele din baza de date cu noile valori precum în
secvența de cod de mai jos:

Funcția de resetare nu face altceva decât să inițializeze cu zero toate câmpurile care
țin de numărarea voturilor din tabelele de utilizatori și candidați.
Pentru a merge mai departe, utilizatorul va accesa pagina de listare a candidaților
unde va putea vedea atât mesajele de campanie cât și imaginile candidaților, pentru a-i
putea identifica mai ușor.

41
Pentru a vedea sloganul unui candidat, utilizatorul poate apăsa pe butonul Mesaj și
textul va apărea sub acesta. Prin apăsarea aceluiași buton, mesajul se va ascunde din nou,
artificiul grafic fiind realizat cu ajutorul funcției slideToggle din biblioteca de JavaScript,
JqueryUI, apelul fiind prezentat în secvența de cod de mai jos.

Pentru salvarea votului, alegătorul trebuie să apese butonul Votează de sub


candidatul preferat, acesta fiind ultimul pas necesar pentru a putea vota online.

Figura 20 – Lista de candidați

În funcție de modul de configurare al tipului de vot, alegătorul poate oferi un vot


unic, sau unul convertibil.
Verificarea se face în funcție de câmpul de semnalizare salvat în baza de date în
dreptul fiecărui utilizator. Valorile pe care le poate lua acest semnalizator sunt zero sau unu
(FALSE sau TRUE).
Dacă semnalizatorul este zero, aplicația înregistrează opțiunea alegătorului,
afișează mesajul din figura 22 și setează semnalizatorul cu valoarea 1, iar dacă este deja 1,
se verifică tipul de vot selectat pentru acel eveniment și se ia o decizie.

42
În cazul votului convertibil, sistemul nu mai ține cont de semnalizator și păstrează
ultimul vot ales de utilizator, dar se asigură că scade un vot candidatului votat anterior.
Dacă tipul de vot este vot unic și semnalizatorul este tot 1, aplicația nu va înregistra noua
preferință a utilizatorului și va genera următorul mesaj, la fel ca în figura 21.

Figura 21 – Mesaj de eroare

Figura 22 – Mesaj de confirmare


Ajuns la finalul perioadei de votare, sistemul deblochează afișarea paginii de
rezultate finale. Astfel, alegătorul poate vedea rezultatul imediat după terminarea votului,
fără a mai aștepta o eventuală numărătoare, aplicația câștigând la capitolul eficiență.
Pagina de rezultate finale conține un grafic realizat asemănător cu cel de rezultate
parțiale, dar cu toate voturile și cu afișarea procentajului obținut de fiecare candidat.
Procentajul este util în cazul în care votul se bazează pe o metodă proporțională care
generează mai mulți învingători.

Figura 23 – Grafic rezultat final

Interfața grafică oferă atât suport pentru client, prin funcțiile prezentate mai sus, cât
și pentru administrator, prin posibilitățile de configurare. Un alt rol pe care îl are interfața
pentru administrator este de a limita accesul acestuia la datele cu caracter personal ale
utilizatorilor, oferind sistemului transparență și integritate.

43
Etapa de administrare presupune introducerea informațiilor legate de desfășurarea
votului, precum numele evenimentului, tipul de vot acceptat și perioada de timp dealungul
căreia are loc votul. În centru acestei etape se află administratorul, care are la dispoziție o
serie de funcționalități precum ștergerea, editarea sau adăugarea de utilizatori și candidați,
prin care se asigură buna funcționare a sistemului.
Primul pas pe care trebuie să îl execute un administrator este acela de a configura
sistemul. Acest lucru este posibil prin accesarea paginii Setări din interfața de administrare.
Așa cum se poate observa și în figura 24, pagina de configurare conține un
formular care trimite informațiile spre a fi memorate în baza de date.
Pentru a simplifica introducerea datei si a orei specificate în baza de date în
formatul DATETIME, a fost apelată o altă funcție din biblioteca JQueryUI și anume
datePicker(). Tot din dorința de a oferi o experiență cât mai plăcută în utilizarea sistemului
a fost utilizată și funcția tooltip() care afișează o descriere a ceea ce reprezintă acele
câmpuri atunci când se poziționează cursorul deasupra lor.

Figura 24 – Pagina de configurare

Pagina principală este pagina în care administratorul vizualizează lista de candidați,


inițial vidă. Folosind meniul de administrare din stânga paginii, acesta poate accesa pagina
de adăugare de candidați, astfel populând lista de pe pagina principală.

44
Figura 25 – Pagina de listare candidați
În pagina de adăugare candidați, administratorul are opțiunea de a adăuga
fotografia fiecărui candidat. Funcția care realizează acest lucru nu stochează imaginea în
baza de date ci o transferă in directorul /images din interiorul proiectului, după care
salvează în baza de date calea absolută către acel fișier.
Asupra listei recent populate cu ajutorul paginii de adăugare de candidați se pot
efectua fie acțiuni de modificare, fie acțiuni de ștergere a candidaților.
Ștergerea unui candidat din această listă folosește un apel AJAX (Asynchronous
JavaScript And XML). Astfel se realizează actualizarea tabelului fără a reîmprospăta
pagina.

Apelul AJAX prezentat în secvența de cod de mai jos, prezintă avantajul unei
comunicații asincrone cu serverul și nu ține ocupat firul de execuție principal al aplicației.

45
Aplicația de administrare poate executa aceleași operațiuni și pe lista de utilizatori,
aceasta fiind prezentată tot sub formă de tabel, de data aceasta fără să fie afișate voturile
utilizatorilor, garantând caracterul lor secret.

Figura 26 – Pagina de listare utilizatori

5.Concluzii și dezvoltări ulterioare

Aplicația eVoteNow pentru votul electronic poate fi folosită în diferite contexte: fie
că se vrea organizarea de alegeri electorale (ideal, după îmbunătățiri), fie că se dorește
utilizarea ei în companii sau grupuri sociale, aceasta se poate configura pentru a putea vota
în orice domeniu de interes.
eVoteNow oferă utilizatorilor experiența unui vot rapid, din orice colț al lumii,
fiind necesare doar două minute și o conexiune la internet.
Prin funcționalitățile prezentate, se poate demonstra că obiectivele stabilite au fost
atinse în totalitate, și anume:
 Realizarea unei interfete grafice atât pentru utilizator cât și pentru
administratorul care configurează aplicația.
 Oferirea posibilității de autentificare a utilizatorilor și administratorilor
 Prezentarea unei liste de entități în funcție de scopul votului
 Posibilitatea votării
 Vizualizarea rezultatelor parțiale și finale
 Posibilitate de introducere, ștergere sau modificare a unor informații referitoare
la utilizatori sau candidați

46
 Configurarea sistemului pentru diverse tipuri de vot; se pot introduce date
precum: numele evenimentului, intervalul de timp în care este organizat și tipul
de vot solicitat(unic sau convertibil)
 Posibilitate de deconectare

Deși mai poate fi îmbunătățită, aplicația prezintă optimizări ce vizează accesul la


baza de date prin implementarea unui model “Singleton” care restricționează crearea mai
multor instanțe ale aceleiași conexiuni. Pe de altă parte, s-au luat măsuri cu privire la
preluarea datelor de autentificare ce sunt filtrate de caractere speciale introduse de
potențiali atacatori.
Dacă se dorește folosirea în scop electoral, printre dezvoltările ulterioare necesare
se regăsește creșterea nivelului de securitate. Datorită mediului în care funcționează,
aplicația, aceasta poate fi vulnerabilă la partea de transmitere a datelor spre centralizare.
Pe lângă îmbunătățirile la nivel operațional, se mai poate lucra la nivel de
funcționalități oferite. În prezent, eVoteNow prezintă doar nucleul unei aplicații de acest
tip, fiind implementate doar funcțiile de bază.
Se mai pot adăuga, spre exemplu:
 Pagină personală pentru fiecare candidat în care să fie specificate, pe lângă
sloganul de campanie, informații despre realizările acestuia pe plan profesional,
ideologia susținută, studii sau planuri de viitor.
 Salvarea rezultatelor evenimentelor anterioare
 Trimiterea rezultatului prin e-mail
 Disponibilitatea utilizării aplicației în mai multe limbi
 Generarea automată a unui al doilea tur de vot în caz de egalitate
 Suport pentru alte sisteme de vot precum numărătoarea Borda sau criteriul
Condorcet

Partea de interfață poate fi dezvoltată prin crearea unei arhitecturi interactive care își
schimbă automat formatul în funcție de dimenisunea ecranului de pe care este accesată
(“responsive”).
Pentru a spori popularitatea aplicației și pentru a înlătura o parte din blocajele de
natură hardware, se mai poate dezvolta o aplicație mobilă pentru mai multe sisteme de

47
operare de acest tip care să permită utilizatorilor să voteze chiar dacă nu au acces la un
calculator de tip desktop, dar au un telefon inteligent conectat la o rețea de date mobile.
Sunt de părere că ritmul dictat de evoluția tehnologiei va duce la schimbări majore în
stilul de viață al populației. Era digitală în care ne aflăm imprimă un ritm accelerat
modernizării, actiune ce îmi sugerează că în viitorul nu foarte îndepărtat, astfel de sisteme
vor căpăta un interes deosebit. Având acestea în minte, consider că eVoteNow este un prim
pas în direcția respectivă, un pas spre un sistem de vot modern, civilizat, sigur și mai ales,
de încredere.

48
Bibiliografie

[1] Dicționarul explicativ al limbii române, ediția a II-a,1998


[5] http://www.vvk.ee/voting-methods-in-estonia/engindex/statistics Accesat 2016
[2] C.I. Lei, C.I. Fan – A universal single-authority election system, IEICE Transactions on
Fundamentals E81-A (10) (1998), 2186-2193
[3] Y.Mu, V. Varadharajan – Anonymous e-voting over a network, Proc. of the 14th
Annual Computer Security Applications Conference, ASAC8 (1998) 293-299
[4] https://ro.wikipedia.org/wiki/Vot_prin_Internet Accesat 2016
[6]http://avportal.ro/solutii-audio-profesionale/sisteme-de-vot/sisteme-de-votare-
portabile.html Accesat 2016
[7] https://en.wikipedia.org/wiki/Voting_system#Proportional_methods Accesat 2016
[8] http://plato.stanford.edu/entries/voting-methods/ Accesat 2016
[9] Excursions in Modern Mathematics - Peter Tannenbaum,2012
[10] http://mathforum.org/library/drmath/view/52276.html Accesat 2016
[11] Vasiljev, Sergei. “Cardinal Voting: The Way to Escape the Social Choice
Impossibility.” SSRN eLibrary (April 1, 2008).
[12] https://en.wikipedia.org/wiki/Gallagher_Index/ Accesat 2016
[13] http://research.omicsgroup.org/index.php/Spoiler_effect/ Accesat 2016
[14] Electoral System Design: the New International IDEA Handbook, 2005
[15] Legea nr. 35/2008 pentru alegerea Camerei Deputaţilor şi a Senatului
[16] http://www.ucl.ac.uk/~ucahhwi/dhondt.pdf/ Accesat 2016
[18] Robert Schifreen: How to create Web sites and applications with HTML, CSS,
Javascript, PHP and MySQL, Oakworth Business Publishing Ltd, UK, 2009.
[19] https://w3techs.com/technologies/overview/programming_language/all/ Accesat 2016
[20] http://www.php.net/usage.php/ Accesat 2016
[21] https://httpd.apache.org/docs/2.4/ Accesat 2016
[22] https://w3techs.com/technologies/overview/web_server/all/ Accesat 2016
[23] MySQL 3.23, 4.0, 4.1 Reference Manual,

http://dev.mysql.com/doc/refman/4.1/en/history.html/

49
[24] Jonathan Chaffer, Karl Swedberg: Learning jQuery Third Edition, Packt Publishing,
Birmingham, UK, 2009.
[25] http://db-engines.com/en/ranking/ Accesat 2016
[26] O trecere în revistă a sistemelor de vot electronic folosite în lume
http://apti.ro/votul-electronic-in-lume/ Accesat 2016
[27] VVPR Attack with Misprinted VVPAT, David L. Dill October 2, 2003
[28] http://estonia.eu/about-estonia/economy-a-it/e-voting.html/ Accesat 2016
[29] http://www.slideshare.net/moldovaictsummit/optimising-mobile-signature-v4/
Accesat 2016
[30] https://www.linkedin.com/company/hire-joy/ Accesat 2016

50

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