În criptografie , protocoalele de vot secret sunt protocoale de schimb de date pentru implementarea votului electronic secret secret pe Internet folosind computere, telefoane sau alte computere speciale [1] . Această direcție a criptografiei este încă în curs de dezvoltare, dar este deja utilizată în practică.
Multe țări ale lumii [2] [3] , inclusiv Rusia [4][ nu în sursă ] introduc deja votul electronic la nivel municipal și mai sus. Pentru a asigura corectitudinea, fiabilitatea și confidențialitatea unor astfel de alegeri, aceștia folosesc protocoale de securitate dovedite care se bazează pe sisteme criptografice dovedite, cum ar fi criptarea asimetrică și semnătura electronică . În plus, au nevoie de o bază materială și legală gata făcută. Confluenţa tuturor acestor factori formează instrumentul direct al e-democraţiei .
În legătură cu dezvoltarea rapidă a rețelelor de calculatoare, există o „digitizare” naturală a diferitelor domenii ale vieții, de exemplu, apariția monedelor electronice . În mod similar, a apărut votul digital , principalul instrument al e-democrației . Multă vreme, mijloacele mecanice au servit ca substitut pentru buletinele de vot obișnuite la vot sau au fost responsabile doar pentru numărarea automată a buletinelor de vot pe hârtie. Principala activitate privind verificarea alegătorilor și înregistrarea voturilor a fost efectuată de alte persoane. Cu un astfel de sistem, nu era nevoie de protocoalele descrise mai jos. Cu toate acestea, în ultimii ani, datorită dezvoltării internetului, votul a devenit complet automatizat . Votul de la distanță are multe avantaje. Se presupune că sunt mai convenabile pentru utilizatorii finali, deoarece oamenii pot vota fără a părăsi casele, acest lucru crește activitatea alegătorilor. Menținerea votului electronic este mai ieftină: în loc să tipăriți constant buletinele de vot, este suficient să dezvoltați un sistem o dată [5] [6] . În plus, din ipoteza că nimeni nu poate interfera cu programul de pe dispozitivul de vot, rezultă că votul electronic este mai puțin susceptibil la corupție, presiune administrativă și factori umani [5] [7] [8] .
Totuși, acest lucru ridică o serie de probleme specifice care împiedică integritatea alegerilor. De exemplu, în timpul alegerilor electronice din Olanda și Franța, au apărut îndoieli cu privire la adevărul rezultatelor obținute cu ajutorul mașinilor [3] . De la distanță, este mult mai dificil să autorizați un alegător sau să vă asigurați că nimeni nu a influențat procesul de vot. Pe de altă parte, internetul oferă mai multe oportunități alegătorilor obișnuiți de a verifica dacă votul este numărat corect. În prezent, votul electronic este pe deplin legal sau parțial aplicabil în multe țări ale lumii [9] . Pe măsură ce tot mai mulți oameni sunt implicați în ele, există o nevoie din ce în ce mai mare de metode mai sigure și mai eficiente de efectuare a acestora, pentru care sunt apelate protocoale criptografice speciale.
Un element cheie al reglementării votului electronic este consolidarea posibilității acestuia în constituția statului. Astfel de articole au constituțiile SUA, Elveției, Estoniei, Marii Britanii și a altor țări [10] . Există un grup de țări, care includ, de exemplu, Finlanda, Germania și Rusia [11] , care au experiență în organizarea unor astfel de alegeri, dar nu și-au introdus încă reglementarea completă în legislație. Desigur, acesta nu este singurul obstacol birocratic. De asemenea, sunt necesare specificații pentru tehnica prin care se efectuează votul, metodele de verificare a onestității rezultatelor, protocoalele în caz de întrerupere a votării și crearea în sine a bazei tehnice. Pe baza acestor parametri, este posibil să se calculeze indicele de pregătire al țării pentru introducerea votului digital (și protocolul specific al acestuia) [12] .
Estonia [13] a fost prima țară care a implementat alegeri naționale legale prin internet, urmată de Țările de Jos și Elveția. În Rusia, protocoalele secrete de vot electronic au fost utilizate până acum doar la nivel experimental (de exemplu, la forumul Seliger-2009 ), dar CEC a luat inițiativa de a dezvolta votul electronic, în special, în interesul Rusiei. cetățeni aflați în străinătate [14] .
Oricum ar fi, protocolul de vot în sine nu este fixat în nicio legislație. Acest lucru se realizează din mai multe motive, de la lipsa de încredere rămasă în metodele de vot electronic, terminând cu o tranziție mai ușoară de la metoda actuală de conducere la una mai eficientă. Progresele tehnologice au făcut posibil să ne gândim la votul prin internet doar cu aproximativ 20 de ani în urmă [ clarifică ] , așa că această secțiune a criptografiei este încă în curs de dezvoltare. Nu există cărți general acceptate despre el și niciun protocol nu a primit încă un sprijin copleșitor din partea specialiștilor [5] . Problema este exacerbată de faptul că organizațiile cu experiență în implementarea acestor sisteme preferă să nu publice rapoarte detaliate care descriu sistemul și problemele apărute în timpul introducerii acestuia.
Acum, pentru sondaje simple sau pentru vot în cadrul unor grupuri mici, se folosește un algoritm banal . În cazul în care agentul de numărare a voturilor nu are niciun motiv anume să trișeze, acest protocol este cea mai bună opțiune. În alegerile la nivel de stat, modificările protocolului Fujioka-Okamoto-Ota sunt cele mai frecvente [13] [15] . El a fost cel care a arătat cele mai bune rezultate la alegerile experimentale și a creat un precedent internațional pozitiv pentru desfășurarea de încredere a alegerilor prin internet. Pentru acesta și unele dintre modificările sale, există programe și mijloace electronice de vot disponibile pentru utilizare de către persoane fizice [16] . În plus, multe articole științifice care descriu noi protocoale secrete de vot îl iau drept bază. Poate că, datorită dezvoltării tehnologiei și scăderii prețului sistemelor de înaltă performanță, în viitorul apropiat vor apărea precedente pentru utilizarea protocolului He-Su [17] . Deși are deja modificările sale, în practică acest protocol a fost aplicat doar în alegerile experimentale studențești [18] . Același lucru se poate spune despre protocolul ANDOS . Deși autorii multor articole susțin că poate fi implementat eficient, au existat doar precedente pentru utilizarea lui în alegerile locale [19] . Protocoalele rămase sunt prezentate ca tranziție de la modificări simple la complexe sau posibile pentru a atinge obiective suplimentare.
De dorit:
Problema este complicată nu numai de faptul că participanții la vot și agenția care o conduce au motive să nu aibă încredere unul în celălalt, ci și de faptul că procesul de votare în sine trebuie protejat de interferențele externe. Dacă facem o analogie cu alegerile prezidențiale, atunci alegătorii trebuie să se protejeze de umplerea buletinelor de vot de către comitetul electoral, CEC este obligat să se asigure că voturile nu pot fi vândute de cetățeni, iar împreună trebuie să prevină amestecul agenților altor țări [20]. ] .
Unele cerințe sunt în conflict între ele. De exemplu, capacitatea de a verifica modul în care un anumit alegător (chiar și el însuși) a votat oferă o oportunitate de a vinde voturi, iar straturi suplimentare de protecție reduc toleranța la erori și rentabilitatea. În general, se presupune că protecția împotriva fraudei de către o agenție electorală are prioritate față de prevenirea vânzării de voturi. În primul rând, provoacă mult mai mult rău, iar în al doilea rând, chiar dacă protocolul garantează imposibilitatea de a dovedi unui străin pentru cine a fost exprimat votul, alegătorul poate găsi soluții. De exemplu, pur și simplu votați chiar în fața cumpărătorului. Cu toate acestea, protecția împotriva interferențelor exterioare are prioritate față de orice altceva [24] .
Un algoritm simplu de vot electronic este în esență o corespondență cu semnături electronice între o comisie electorală și o pluralitate de alegători. Fiți aici și mai jos: A - o agenție care efectuează votul electronic ( ing. agenție ), E - un alegător, un alegător legitim ( ing. elector ), B - un buletin de vot digital . B poate conține un număr, numele candidatului, un text lung sau orice alte date care indică alegerea lui E , care îl verifică sau necesare pentru a consolida securitatea protocolului [20] . Procesul de vot arată astfel:
Sunt necesari pașii 1-3. Scopul principal este de a determina și anunța numărul de participanți activi n . Deși unii dintre ei s-ar putea să nu participe, iar unii chiar să nu existe deloc („suflete moarte” introduse cu răutate de A ), capacitatea de a manipula votul lui A este redusă considerabil. În viitor, acești pași vor fi considerați ca un pas „pentru aprobarea listelor”.
Pasul 4. A creează o cheie publică și privată și o face publică . Oricine poate cripta un mesaj cu , dar numai A îl poate decripta . Pasul 5EAcest protocol este extrem de simplu, dar este suficient pentru a proteja împotriva interferențelor externe, a falsificării voturilor și a discreditării alegătorilor legitimi. Cu toate acestea, alegătorii trebuie să aibă încredere absolută în A , deoarece activitatea sa nu este controlată de nimeni. Pe de o parte, E poate oferi atacatorului care cumpără voturi dovada modului în care a votat, dar, pe de altă parte, nu poate verifica dacă A a contabilizat corect sau chiar a primit buletinul de vot. Prin urmare, metoda banală este aplicabilă doar în comunitățile în care toată lumea are încredere unul în celălalt și agenția responsabilă de numărarea voturilor [20] .
Este și Protocolul Nurmi-Salomaa- Santina [ 25] . Ideea de bază este înlocuirea unei agenții electorale cu două, astfel încât acestea să se controleze reciproc. Aici și mai jos, să fie V un registrator ( ing. validator ), ale cărui atribuții includ pregătirea listelor, precum și admiterea sau neadmiterea unui participant la vot. Secvența de acțiuni arată astfel:
Prin partajarea fișierului primit la pasul 3, A nu poate nega ulterior primirea unui mesaj de la E. Cu ajutorul unei perechi cifrat-buletin, fiecare alegător poate verifica dacă votul său a fost numărat corect, ceea ce elimină problema lipsei de control asupra lui A . Cu toate acestea, această abordare rezolvă doar parțial problema necesității încrederii absolute în agenție. În cazul în care A și V reușesc să ajungă la un acord, A poate manipula votul. Dacă agenția știe cine se ascunde sub ce etichetă de identitate, este posibil să nu accepte în mod deliberat mesaje de la unii alegători. În plus, există și problema „sufletelor moarte”. Dacă V listează alegători în mod evident inexistenți, atunci A va putea falsifica buletinele de vot de la aceștia [26] .
În protocoalele cu doi agenți, nu este necesar ca alegătorul să fie autorizat atât de grefier, cât și de comisia electorală. Dacă alegătorul își dovedește identitatea registratorului, acesta poate semna buletinul de vot sau cheia alegătorului. Ea este cea care va juca rolul de acces la vot în viitor [25] . În plus, nu este necesară utilizarea etichetelor pentru autorizarea utilizatorului. Din aceste motive, în algoritmii suplimentari, metoda specifică de identificare a utilizatorului va fi omisă.
Schema Fujioka-Okamoto-Ota, dezvoltată în 1992, se bazează pe un protocol bi-agenție și pe semnătură criptografică oarbă [27] . Complicând ușor protocolul, această schemă rezolvă parțial problema coluziei dintre cele două agenții. Pentru ca protocolul să funcționeze, este necesară o metodă preselectată de mascare a criptării, în baza căreia alegătorul trimite un buletin de vot către grefier. Criptarea orbitoare (mascare) este un tip special de criptare care vă permite să vă asigurați că documentul este autentic și semnat de un utilizator autorizat, dar nu vă permite să aflați datele conținute în acesta. Criptarea măștii trebuie să fie comutativă cu o semnătură electronică, adică .
Lorrie Cranor și Ron Citron ( ing. Lorrie Faith Cranor, Ron K. Cytron ) au propus în 1996 o modificare a protocolului Fujioka-Okamoto-Ota numit Sensus [28] . Diferența constă în pașii 5-6. După ce A primește mesajul criptat de la E , nu numai că îl adaugă la lista publicată, ci și trimite buletinul de vot semnat înapoi alegătorului ca chitanță. În acest fel, E nu trebuie să aștepte ca toți ceilalți să voteze și poate termina votul într-o singură sesiune. Nu numai că este convenabil pentru utilizatorul final, dar oferă și dovezi suplimentare că E a participat la alegeri. În plus, Sensus reglementează module auxiliare suplimentare care simplifică și automatizează procesul de vot.
Acum, chiar dacă agențiile reușesc să ajungă la o înțelegere, A nu va putea identifica alegătorii înainte de a obține cheia. Deși încă are capacitatea de a respinge mesaje, nu mai are capacitatea de a ignora mesajele în mod specific de la alegătorii „indezirabili”. Rămâne doar problema votării alegătorilor care nu au venit la vot. În plus, pentru a permite alegătorului să revoteze, inclusiv din cauza unei erori tehnice, este necesar un modul suplimentar.
În prezent, protocolul Fujioka-Okamoto-Ota (precum și modificările acestuia, inclusiv Sensus) este unul dintre cele mai dovedite protocoale de vot electronic de la distanță. Varianta lui a fost folosită în alegerile electronice din Estonia [13] [15] . O altă modificare a protocolului Fujioka-Okamoto-Ota a fost folosită pentru a desfășura alegeri de autoguvernare în rândul studenților de la Universitatea Princeton [29] . Modulele Sensus au fost scrise sub sistemul UNIX folosind biblioteca criptografică RSAREF [30] , astfel încât oricine să le poată folosi.
În 1998, Qi He și Zhongmin Su (Qi He, Zhongmin Su) au prezentat un protocol de vot și mai avansat decât Sensus [17] . Acest algoritm satisface majoritatea cerințelor pentru un protocol de vot digital securizat. La fel ca Sensus, protocolul Hae-Su folosește ideea unei semnături oarbe, dar nu buletinul de vot al alegătorului este semnat, ci cheia alegătorului. Acest lucru permite alegătorilor să se răzgândească înainte de sfârșitul scrutinului și limitează și mai mult opțiunile registratorului și agenției electorale în caz de coluziune. Acest protocol necesită o metodă predeterminată de criptare orbitoare și o funcție hash . Ca și în protocolul Fujioka-Okamoto-Ota, criptarea mascată trebuie să fie comutativă cu semnătura electronică V : precum și .
Schema He-Su satisface aproape toate cerințele pentru un protocol de vot secret. Tot ce rămâne este un stimulent sporit de a cumpăra/vânde voturi [17] . A și V nu au acum ocazia să trișeze, deoarece acum sunt publicate toate listele: posibili alegători, chei înregistrați și autorizați. În consecință, este imposibil să aduci alegători inexistenți sau să-i votezi pe cei existenți care nu au venit. Totodată, în timpul întocmirii acestor liste, nici agenția electorală, nici grefierul nu primesc informații suplimentare [31] . Alegătorii au opțiunea de a-și schimba votul. Principalul dezavantaj al protocolului He-Su este complexitatea sa comparativă. Deoarece protocolul necesită o cantitate mare de resurse pentru a fi întreținut, este vulnerabil la atacurile DoS .
Protocolul ANDOS [32] ( All or Nothing Disclosure Of Secrets ) este luat ca bază . Ideea este de a crește puterea protocolului prin înlocuirea criptării preselectate cu o cheie secretă cu hashing cu o funcție personalizată. Nucleul algoritmului este descris mai jos. Pentru concizie, precauțiile și măsurile de siguranță au fost omise din descriere. Dacă este necesar, puteți aplica metodele de criptare pe chei publice și semnătură electronică . Se presupune că, pentru a proteja împotriva interferențelor din exterior, alegătorii pot interfera și cu informațiile dintre ei, dar apoi un alegător rău intenționat poate interfera cu votul, așa că acest pas este și el sărit.
O versiune simplificată a pașilor 2-4 ar putea fi aceea că E trimite o pereche direct către A. Cu toate acestea, în acest caz, E va fi imposibil să verifice dacă votul a fost numărat corect și să voteze din nou într-o etapă ulterioară. Acest lucru se poate rezolva, deoarece dacă A publică identificatorul în lista celor care au urmat strategia , atunci E va ști sigur că votul lui a fost numărat corect, dar mai târziu cineva va putea să se deghizeze ca având identificatorul și să schimbe votează pentru a-i face plăcere. Pe de altă parte, dacă A publică doar numărul de participanți care urmează o anumită strategie , atunci participanții nu pot verifica nimic și A poate publica orice rezultat al alegerilor. Funcțiile hash sunt utilizate pentru a împiedica atacatorii să determine numărul de voturi cu o anumită strategie (această informație se dovedește a fi utilă), deoarece sarcina de a găsi valorile inițiale este dificilă din punct de vedere computațional, ținând cont de timpul caracteristic al votului .
Pasul 5. La încheierea votării, A anunță rezultate intermediare, publicând liste de strategii (candidați) cu numerele corespunzătoare participanților care au votat pentru . Pasul 6. Dacă participantul E observă că votul său este plasat pe lista greșită, atunci îi trimite lui A o plângere sub forma unui triplu , care arată clar corectitudinea sau eroarea rezultatului.După ceva timp, puteți începe procedura de schimbare a vocilor (vezi pasul final). O opțiune mai simplă (Pasul 7) poate fi utilizată pentru a efectua o singură rundă de vot repetat.
Pasul 7. Participantul E , care dorește să-și schimbe alegerea, îi trimite lui A un triplu , unde este noua strategie. Când vine sfârșitul rundei de schimbare a voturilor, A publică rezultatele modificate. Apoi validarea se repetă. Pasul 7'. La fel ca la pasul 7, dar acum partea E trimite o pereche , unde este noua funcție hash aleasă de E . A certifică primirea mesajului prin publicare , după care E trimite o pereche către A . Acum A știe relația dintre și . Când însumăm din nou rezultatele, acesta este eliminat din lista corespunzătoare și adăugat la listă cu . Concurentul E poate contesta rezultatul ca înainte.Față de pasul 7, pasul 7' are avantajul că participanții alții decât E pot observa doar că ceva a dispărut din listă , dar nu vor ști că a trecut în listă .
În protocolul ANDOS, este posibil ca doi alegători să aleagă același i , obținând astfel același identificator . Soluții posibile la această problemă [32] :
Protocolul ANDOS este destul de scump, dar nu necesită un registrator independent V . Alegătorii trebuie să aleagă și să trimită nu numai identificatori, ci și funcții hash, care pot fi dificile sau consumatoare de timp [32] . A mai poate trișa, distribuind voturile celor care și-au declarat intenția de a lua parte la vot, dar nu și-au făcut alegerea, iar E au un stimulent sporit să cumpere / vinde voturi, deoarece poți fi sigur de rezultatul tranzacţie.
Există multe alte protocoale și primitive criptografice cu diferite proprietăți specifice [33] . Ele nu sunt la fel de cunoscute și aplicate pentru a face față oricăror constrângeri de mediu particulare sau pentru a atinge obiective suplimentare.
De exemplu, protocolul cu două agenții ar putea fi extins la centrele de vot care reprezintă diferite facțiuni care se opun, dar sunt interesate de alegeri corecte. În acest caz, distribuirea voturilor poate fi falsificată doar dacă toate centrele se înțeleg, ceea ce nu are sens prin convenție. Un astfel de algoritm folosește o schemă de partajare secretă neinteractivă verificată public [34] ( NIVSS - Non-Interactive Verifiable Secret Sharing ). În funcție de metoda de partajare secretă aleasă (cine a votat pentru cine), protocolul poate avea rezistență diferită la diferite atacuri și viteză diferită de procesare a datelor. Un rezultat bun este arătat, de exemplu, prin utilizarea problemei logaritmului discret pentru a asigura ascunderea datelor [35] .
Principalul dezavantaj al sistemului este că, deși numai toate centrele de vot împreună pot falsifica rezultatele, oricare dintre ele singur poate perturba alegerile. Soluția dilemei este o altă modificare a algoritmului, când distribuirea voturilor poate restabili centrele. Dar atunci centrele conspiratoare vor fi capabile să falsească rezultatele și să perturbe alegerile - . Schema ar putea fi îmbunătățită pentru a permite buletinele de vot cu alegere multiplă, precum și votul eșalonat sau paralel. Un plus în plus: într-un astfel de sistem, alegătorul nu poate dovedi pe cine anume a votat, ceea ce face extrem de dificilă cumpărarea/vânzarea de voturi [36] .
Pentru ca acest protocol să funcționeze, este necesară o primitivă de buletin - o zonă de date care poate fi citită de toată lumea în întregime și fiecare poate scrie numai în propria sa parte. În esență, aceasta este o zonă de memorie partajată cu acces la rețea și unele restricții criptografice. Dacă centrele de vot și alegătorii participă la alegeri , atunci numărul de biți necesari pentru biroul de vot este , unde este o variabilă de putere criptografică proporțională cu numărul de biți cheie.
Printre alte primitive criptografice speciale, se poate evidenția un „colector” ( sondaj englez ) - o interfață convenabilă între utilizator și sistem. Ideea este că un alegător uman poate da buletinul de vot colecționarului, care va face toată munca pentru el să cripteze și să facă schimb de date cu alte partide. Alegătorul trebuie să aibă deplină încredere în acest modul. Aceasta este o condiție puternică, dar este relativ ușor de implementat deoarece colectorul funcționează pe mașina alegătorului.