Gennemgang af det elektroniske fjernafstemningssystem for Den Russiske Føderations Centrale Valgkommission

Den 31. august 2020 fandt en offentlig test af det elektroniske fjernafstemningssystem (herefter benævnt DEG) ved brug af blockchain-teknologi, udviklet efter ordre fra Den Russiske Føderations Centrale Valgkommission, sted.

For at stifte bekendtskab med det nye elektroniske afstemningssystem og forstå, hvilken rolle blockchain-teknologi spiller i det, og hvilke andre komponenter der bruges, starter vi en række publikationer, der er helliget de vigtigste tekniske løsninger, der bruges i systemet. Vi foreslår at starte i rækkefølge - med kravene til systemet og funktionerne hos deltagerne i processen

Systemkrav

De grundlæggende krav, der gælder for ethvert afstemningssystem, er generelt de samme for traditionel personlig afstemning og for elektronisk fjernafstemning og er bestemt af den føderale lov af 12.06.2002. juni 67 N 31.07.2020-FZ (som ændret den XNUMX. juli XNUMX) "Om grundlæggende garantier stemmeret og retten til at deltage i en folkeafstemning for borgere i Den Russiske Føderation."

  1. Afstemning ved valg og folkeafstemninger er hemmelig, udelukker muligheden for enhver kontrol over en borgers vilje (artikel 7).
  2. Muligheden for at stemme bør kun gives til personer, der har aktiv stemmeret til denne afstemning.
  3. Én vælger – én stemme, “dobbelt” stemme er ikke tilladt.
  4. Afstemningsprocessen skal være åben og gennemsigtig for vælgere og observatører.
  5. Den afgivne stemmes integritet skal sikres.
  6. Det bør ikke være muligt at beregne de mellemliggende afstemningsresultater, før afstemningen er afsluttet.

Så vi har tre deltagere: vælgeren, valgkommissionen og observatøren, mellem hvem interaktionsrækkefølgen bestemmes. Det er også muligt at udpege en fjerde deltager - de organer, der foretager registrering af borgere på territoriet (primært indenrigsministeriet såvel som andre udøvende myndigheder), da aktiv valgret er forbundet med statsborgerskab og registreringssted.

Alle disse deltagere interagerer med hinanden.

Interaktionsprotokol

Lad os overveje afstemningsprocessen på et traditionelt valgsted med en stemmeboks og papirstemmesedler. I en generelt forenklet form ser det således ud: en vælger kommer til valgstedet og fremviser et identifikationsdokument (pas). Der er en valgkommission på valgstedet, hvis medlem bekræfter vælgerens identitet og dennes tilstedeværelse på den tidligere udarbejdede vælgerliste. Findes vælgeren, giver et medlem af kommissionen vælgeren en stemmeseddel, og vælgeren underskriver for modtagelsen af ​​stemmesedlen. Herefter går vælgeren til stemmeboksen, udfylder stemmesedlen og lægger den i stemmeboksen. For at sikre, at alle procedurer nøje følges af loven, overvåges alt dette af observatører (repræsentanter for kandidater, offentlige overvågningsinstitutioner). Efter at afstemningen er afsluttet, tæller valgkommissionen, i overværelse af observatører, stemmerne og fastlægger afstemningsresultaterne.

De egenskaber, der er nødvendige for at stemme i et traditionelt afstemningssystem, er tilvejebragt af organisatoriske foranstaltninger og den etablerede procedure for interaktion mellem deltagere: kontrol af vælgernes pas, personlig underskrift for stemmesedler, brug af stemmebokse og forseglede stemmeurner, proceduren for optælling af stemmer osv. .

For et informationssystem, som er et elektronisk fjernafstemningssystem, kaldes denne interaktionsordre en protokol. Da alle vores interaktioner bliver digitale, kan denne protokol betragtes som en algoritme, der implementeres af individuelle komponenter i systemet, og et sæt organisatoriske og tekniske foranstaltninger udført af brugere.

Digital interaktion stiller visse krav til de implementerede algoritmer. Lad os se på de handlinger, der udføres på et traditionelt websted i form af informationssystemer, og hvordan dette implementeres i det DEG-system, vi overvejer.

Lad os sige med det samme, at blockchain-teknologi ikke er en "sølvkugle", der løser alle problemer. For at skabe et sådant system var det nødvendigt at udvikle et stort antal software- og hardwarekomponenter, der var ansvarlige for forskellige opgaver, og forbinde dem med en enkelt proces og protokol. Men på samme tid interagerer alle disse komponenter med blockchain-platformen.

Systemkomponenter

Fra et teknisk synspunkt er DEG-systemet et software- og hardwarekompleks (herefter benævnt STC), som kombinerer et sæt komponenter for at sikre interaktion mellem deltagere i valgprocessen i et samlet informationsmiljø.

Interaktionsdiagrammet for komponenterne og deltagerne i DEG PTC-systemet er vist i figuren nedenfor.

Gennemgang af det elektroniske fjernafstemningssystem for Den Russiske Føderations Centrale Valgkommission
Klikbar

Fjernafstemningsproces

Nu vil vi i detaljer overveje processen med elektronisk fjernafstemning og dens implementering af komponenterne i DEG-software- og hardwarekomplekset.

Ifølge Proceduren for elektronisk fjernafstemning skal en vælger indsende en ansøgning på Statens Tjenesteportal for at blive optaget på listen over deltagere i elektronisk fjernafstemning. Samtidig kan kun de brugere, der har en bekræftet konto og er blevet sammenlignet med vælgerregistret, folkeafstemningsdeltagere i det statsautomatiserede system "Valg" -systemet indsende en sådan ansøgning. Efter modtagelse af ansøgningen kontrolleres vælgerens data igen af ​​Ruslands centrale valgkommission og uploades til Vælgerlistekomponent PTC DEG. Downloadprocessen er ledsaget af registrering af unikke identifikatorer i blockchain. Medlemmer af valgkommissionen og observatører har adgang til at se listen ved hjælp af en særlig automatiseret arbejdsstation placeret i valgkommissionens lokaler.

Når en vælger besøger et valgsted, bliver han autentificeret (sammenlignet med pasdata) og identificeret i vælgerlisten, ligesom det kontrolleres, at denne vælger ikke tidligere har modtaget en stemmeseddel. En vigtig pointe her er, at det er umuligt at fastslå, om vælgeren har lagt den modtagne stemmeseddel i stemmeboksen eller ej, kun det faktum, at stemmesedlen allerede er udstedt tidligere. I tilfælde af PTC DEG repræsenterer et vælgerbesøg en brugers anmodning til DEG portal er en hjemmeside placeret på vybory.gov.ru Ligesom et traditionelt valgsted indeholder hjemmesiden informationsmateriale om igangværende valgkampagner, information om kandidater og anden information. Til at udføre identifikation og autentificering bruges ESIA fra State Services Portal. Dermed opretholdes den almindelige legitimationsordning både ved ansøgning og ved afstemning.

Herefter begynder anonymiseringsproceduren - vælgeren får en stemmeseddel, der ikke indeholder nogen identifikationsmærker: den har ikke et nummer, den er på ingen måde forbundet med den vælger, som den er udstedt til. Det er interessant at overveje muligheden, når valgstedet er udstyret med elektroniske afstemningskomplekser - i dette tilfælde udføres anonymisering som følger: i stedet for en papirafstemning bliver vælgeren bedt om at vælge et hvilket som helst kort med en stregkode fra en stak. han vil nærme sig stemmeapparatet. Der er ingen oplysninger om vælgeren på kortet, kun en kode, der bestemmer, hvilken stemmeseddel apparatet skal oplyse ved fremvisning af et sådant kort. Med en fuldstændig digital interaktion er hovedopgaven at implementere en anonymiseringsalgoritme, således at det på den ene side er umuligt at etablere nogen brugeridentifikationsdata, og på den anden side kun at give mulighed for at stemme til de brugere, der tidligere var identificeret på listen. For at løse dette problem bruger DEG PTK en kryptografisk algoritme, kendt i det professionelle miljø som en "blind elektronisk signatur." Vi vil tale om det i detaljer i de følgende publikationer og vil også offentliggøre kildekoden; du kan også indsamle yderligere oplysninger fra publikationer på internettet ved hjælp af nøgleord - "kryptografiske hemmelige afstemningsprotokoller" eller "blind signatur"

Derefter udfylder vælgeren stemmesedlen et sted, hvor det er umuligt at se valget (en lukket kabine) - hvis vælgeren i vores informationssystem fjernstemmer, så er det eneste sådanne sted brugerens personlige enhed. For at gøre dette bliver brugeren først overført til et andet domæne − til den anonyme zone. Før du skifter, kan du hæve din VPN-forbindelse og ændre din IP-adresse. Det er på dette domæne, at stemmesedlen vises, og brugerens valg behandles. Kildekoden, der kører på brugerens enhed, er i første omgang åben – den kan ses i browseren.

Når valget er truffet, krypteres stemmesedlen på brugerens enhed ved hjælp af et særligt krypteringsskema, sendes og registreres i komponent "Distribueret opbevaring og optælling af stemmer", bygget på blockchain-platformen.

Et af de vigtigste kendetegn ved protokollen er umuligheden af ​​at kende afstemningsresultaterne, før den er afsluttet. På et traditionelt valgsted sikres dette ved at forsegle stemmeboksen og overvåge af observatører. I digitale interaktioner er den bedste løsning at kryptere vælgerens valg. Den anvendte krypteringsalgoritme forhindrer resultaterne i at blive afsløret, før afstemningen er afsluttet. Til dette bruges et skema med to nøgler: en (offentlig) nøgle, som er kendt af alle deltagere, bruges til at kryptere stemmen. Det kan ikke dekrypteres med den samme nøgle; en anden (privat) nøgle er nødvendig. Den private nøgle er opdelt mellem deltagere i valgprocessen (medlemmer af valgkommissioner, det offentlige kammer, operatører af tælleservere og så videre) på en sådan måde, at hver enkelt del af nøglen er ubrugelig. Du kan først begynde dekryptering, efter at den private nøgle er blevet indsamlet. I det pågældende system omfatter nøgleseparationsproceduren flere trin: adskillelse af en del af nøglen i systemet, adskillelse af nøglen uden for systemet og generering af en fælles offentlig nøgle. Vi vil i detaljer vise processen med kryptering og arbejde med kryptografiske nøgler i fremtidige publikationer.

Efter at nøglen er indsamlet og downloadet, begynder beregningen af ​​resultaterne til deres videre registrering i blockchain og efterfølgende annoncering. Et træk ved det undersøgte system er brugen af ​​homomorf krypteringsteknologi. Vi vil beskrive denne algoritme i detaljer i fremtidige publikationer og tale om, hvorfor denne teknologi er meget brugt til at skabe afstemningssystemer. Lad os nu bemærke dets hovedtræk: krypterede stemmesedler registreret i regnskabssystemet kan kombineres uden dekryptering på en sådan måde, at resultatet af dekryptering af en sådan kombineret chiffertekst vil være den summerede værdi for hvert valg i stemmesedlerne. Samtidig implementerer systemet naturligvis matematiske beviser for rigtigheden af ​​en sådan beregning, som også registreres i regnskabssystemet og kan verificeres af observatører.

Nedenfor er en oversigt over afstemningsprocessen.

Gennemgang af det elektroniske fjernafstemningssystem for Den Russiske Føderations Centrale Valgkommission
Klikbar

Blockchain platform

Nu hvor vi har undersøgt hovedfunktionerne i implementeringen af ​​et fjerntliggende elektronisk afstemningssystem, lad os besvare spørgsmålet, som vi startede med - hvilken rolle spiller blockchain-teknologi i dette, og hvilke problemer tillader det at løse?

I det implementerede fjernafstemningssystem løser blockchain-teknologi en række problemer.

  • Den grundlæggende opgave er at sikre integriteten af ​​informationer inden for rammerne af afstemninger, og først og fremmest afstemninger.
  • Sikring af gennemsigtighed af eksekvering og uforanderlighed af programkode implementeret i form af smarte kontrakter.
  • Sikring af beskyttelse og uforanderlighed af data, der bruges i afstemningsprocessen: listen over vælgere, nøglerne, der bruges til at kryptere stemmesedler på forskellige stadier af den kryptografiske protokol, og så videre.
  • Tilvejebringelse af decentraliseret datalagring, hvor hver deltager har en absolut identisk kopi, bekræftet af egenskaberne for konsensus i netværket.
  • Evnen til at se transaktioner og spore afstemningsforløbet, hvilket afspejles fuldt ud i blokkæden, fra dens begyndelse til registreringen af ​​de beregnede resultater.

Således ser vi, at uden at bruge denne teknologi, er det næsten umuligt at opnå de nødvendige egenskaber i afstemningssystemet, samt tillid til det.

Funktionaliteten af ​​den anvendte blockchain-platform beriges ved brug af smarte kontrakter. Smarte kontrakter kontrollerer hver transaktion med krypterede stemmesedler for ægtheden af ​​elektroniske og "blinde" underskrifter og udfører også grundlæggende kontrol af rigtigheden af ​​at udfylde den krypterede stemmeseddel.

Desuden er komponenten "Distribueret lagring og optælling af stemmer" i det betragtede elektroniske fjernafstemningssystem ikke kun begrænset til blockchain-noder. For hver node kan der installeres en separat server, der implementerer de vigtigste kryptografiske funktioner i afstemningsprotokollen - tælleservere.

Tæller servere

Disse er decentrale komponenter, der sørger for proceduren for distribueret generering af en stemmekrypteringsnøgle, samt dekryptering og beregning af afstemningsresultater. Deres opgaver omfatter:

  • Sikring af distribueret generering af en del af stemmekrypteringsnøglen. Nøglegenereringsproceduren vil blive diskuteret i de følgende artikler;
  • Kontrol af rigtigheden af ​​den krypterede stemmeseddel (uden at dekryptere den);
  • Behandling af stemmesedler i krypteret form for at generere den endelige chiffertekst;
  • Distribueret afkodning af endelige resultater.

Hvert trin i udførelse af den kryptografiske protokol registreres i blockchain-platformen og kan kontrolleres for korrekthed af observatører.

For at give systemet de nødvendige egenskaber på forskellige stadier af afstemningsprocessen, bruges følgende kryptografiske algoritmer:

  • Elektronisk signatur;
  • Blind underskrift af vælgerens offentlige nøgle;
  • ElGamal elliptisk kurve krypteringsskema;
  • Nul-viden beviser;
  • Pedersen 91 DKG (Distributed Key Generation) protokol;
  • Privat nøgledelingsprotokol ved hjælp af Shamirs skema.

Den kryptografiske tjeneste vil blive diskuteret mere detaljeret i de følgende artikler.

Resultaterne af

Lad os opsummere nogle mellemresultater af overvejelserne om det elektroniske fjernafstemningssystem. Vi har kort beskrevet processen og hovedkomponenterne, der implementerer den, og også identificeret midlerne til at opnå de egenskaber, der er nødvendige for ethvert afstemningssystem:

  • Verificerbarhed for vælgere. Systemet accepterer kun stemmer fra bekræftede vælgere. Denne egenskab sikres ved at identificere og autentificere vælgere, samt registrere vælgerlisten og det faktum at give adgang til stemmesedlen i blockchain.
  • Anonymitet. Systemet sikrer afstemningshemmeligheden, som er nedfældet i lovgivningen i Den Russiske Føderation; vælgerens identitet kan ikke bestemmes ud fra en krypteret stemmeseddel. Implementeret ved hjælp af en "blind signatur"-algoritme og en anonym zone til at udfylde og sende stemmesedlen.
  • Stemmernes fortrolighed. Arrangører og andre stemmedeltagere kan ikke finde ud af resultatet af afstemningen, før den er afsluttet, stemmerne er optalt og de endelige resultater er dechifreret. Fortrolighed opnås ved at kryptere stemmesedlerne og gøre dem umulige at dekryptere før efter afstemning.
  • Data uforanderlighed. Vælgerdata kan ikke ændres eller slettes. Uforanderlig datalagring leveres af blockchain-platformen.
  • Verificerbarhed. Observatøren kan kontrollere, at stemmerne er talt korrekt.
  • Pålidelighed. Systemarkitekturen er baseret på principperne om decentralisering, hvilket sikrer fraværet af et enkelt "fejlpunkt".

Kilde: www.habr.com

Tilføj en kommentar