Gjennomgang av det eksterne elektroniske stemmesystemet til den sentrale valgkommisjonen i Den russiske føderasjonen

31. august 2020 fant en offentlig test av det elektroniske fjernvalgssystemet (heretter referert til som DEG) ved bruk av blokkjedeteknologi, utviklet etter ordre fra den sentrale valgkommisjonen i Den russiske føderasjonen.

For å bli kjent med det nye elektroniske stemmesystemet og forstå hvilken rolle blokkjedeteknologi spiller i det og hvilke andre komponenter som brukes, starter vi en serie publikasjoner viet til de viktigste tekniske løsningene som brukes i systemet. Vi foreslår å starte i rekkefølge - med kravene til systemet og funksjonene til deltakerne i prosessen

Systemkrav

De grunnleggende kravene som gjelder for ethvert stemmesystem er generelt de samme for tradisjonell personlig stemmegivning og for ekstern elektronisk stemmegivning, og bestemmes av føderal lov av 12.06.2002. juni 67 N 31.07.2020-FZ (som endret XNUMX. juli XNUMX) "Om grunnleggende garantier stemmerett og retten til å delta i en folkeavstemning for borgere av den russiske føderasjonen."

  1. Stemmegivning ved valg og folkeavstemninger er hemmelig, med unntak av muligheten for kontroll over en borgers vilje (artikkel 7).
  2. Mulighet til å stemme bør kun gis til personer som har aktiv stemmerett for denne stemmen.
  3. Én velger – én stemme, «dobbel» stemmegivning er ikke tillatt.
  4. Stemmeprosessen må være åpen og transparent for velgere og observatører.
  5. Integriteten til den avgitte stemme skal sikres.
  6. Det skal ikke være mulig å beregne mellomstemmeresultatene før stemmegivningen er avsluttet.

Så vi har tre deltakere: velgeren, valgkommisjonen og observatøren, som rekkefølgen på samhandlingen bestemmes mellom. Det er også mulig å skille ut en fjerde deltaker - organene som utfører registrering av borgere på territoriet (primært innenriksdepartementet, så vel som andre utøvende myndigheter), siden aktiv stemmerett er forbundet med statsborgerskap og registreringssted.

Alle disse deltakerne samhandler med hverandre.

Interaksjonsprotokoll

La oss vurdere stemmeprosessen ved et tradisjonelt valglokale, med stemmeurne og papirstemmesedler. I en generelt forenklet form ser det slik ut: en velger kommer til valglokalet og viser frem et identifikasjonsdokument (pass). Det er en valgkommisjon ved valglokalet, hvis medlem bekrefter identiteten til velgeren og hans tilstedeværelse i velgerlisten som ble satt sammen tidligere. Dersom velgeren blir funnet, gir et medlem av kommisjonen velgeren en stemmeseddel, og velgeren signerer for mottak av stemmeseddelen. Etter dette går velgeren til stemmeboksen, fyller ut stemmeseddelen og legger den i valgurnen. For å sikre at alle prosedyrer følges strengt av loven, overvåkes alt dette av observatører (representanter for kandidater, offentlige overvåkingsinstitusjoner). Etter at avstemningen er fullført, teller valgkommisjonen, i nærvær av observatører, stemmene og fastsetter stemmeresultatene.

Egenskapene som er nødvendige for å stemme i et tradisjonelt stemmesystem er gitt av organisatoriske tiltak og den etablerte prosedyren for samhandling mellom deltakerne: kontroll av velgernes pass, personlig signering for stemmesedler, bruk av stemmelokaler og forseglede stemmeurner, prosedyren for å telle stemmer, etc. .

For et informasjonssystem, som er et eksternt elektronisk stemmesystem, kalles denne interaksjonsordren en protokoll. Siden alle våre interaksjoner blir digitale, kan denne protokollen betraktes som en algoritme som implementeres av individuelle komponenter i systemet, og et sett med organisatoriske og tekniske aktiviteter utført av brukere.

Digital interaksjon stiller visse krav til de implementerte algoritmene. La oss se på handlingene som utføres på et tradisjonelt nettsted når det gjelder informasjonssystemer og hvordan dette implementeres i DEG-systemet vi vurderer.

La oss si med en gang at blokkjedeteknologi ikke er en "sølvkule" som løser alle problemer. For å lage et slikt system var det nødvendig å utvikle et stort antall programvare- og maskinvarekomponenter som var ansvarlige for forskjellige oppgaver, og koble dem til en enkelt prosess og protokoll. Men samtidig samhandler alle disse komponentene med blockchain-plattformen.

Systemkomponenter

Fra et teknisk synspunkt er DEG-systemet et programvare- og maskinvarekompleks (heretter referert til som STC), som kombinerer et sett med komponenter for å sikre interaksjon mellom deltakere i valgprosessen i et enhetlig informasjonsmiljø.

Interaksjonsdiagrammet for komponentene og deltakerne i DEG PTC-systemet er vist i figuren nedenfor.

Gjennomgang av det eksterne elektroniske stemmesystemet til den sentrale valgkommisjonen i Den russiske føderasjonen
Klikkbar

Fjernstemmeprosess

Nå vil vi i detalj vurdere prosessen med ekstern elektronisk stemmegivning og implementeringen av komponentene i DEG-programvare- og maskinvarekomplekset.

I henhold til Prosedyre for elektronisk fjernstemmegivning må en velger sende inn en søknad på Statens tjenesters portal for å komme med på deltakerlisten i elektronisk fjernstemmegivning. Samtidig kan bare de brukerne som har en bekreftet konto og har blitt sammenlignet med velgerregisteret, folkeavstemningsdeltakere i det statlige automatiserte systemet “Valg” sende inn en slik søknad. Etter å ha mottatt søknaden, blir velgerens data igjen kontrollert av den sentrale valgkommisjonen i Russland og lastet opp til Velgerlistekomponent PTC DEG. Nedlastingsprosessen er ledsaget av registrering av unike identifikatorer i blokkjeden. Medlemmer av valgkommisjonen og observatører har tilgang til å se listen ved å bruke en spesiell automatisert arbeidsstasjon som er plassert i lokalene til valgkommisjonen.

Når en velger besøker et valglokale, blir han autentisert (sammenlignet med passdata) og identifisert i velgerlisten, samt sjekker at denne velgeren ikke tidligere har mottatt stemmeseddel. Et viktig poeng her er at det er umulig å fastslå om velgeren la den mottatte stemmeseddelen i urnen eller ikke, bare det faktum at stemmeseddelen allerede er utstedt tidligere. Når det gjelder PTC DEG, representerer et velgerbesøk en brukers forespørsel til DEG portal er et nettsted som ligger på vybory.gov.ru Som et tradisjonelt valglokale, inneholder nettstedet informasjonsmateriell om pågående valgkamper, informasjon om kandidater og annen informasjon. For å utføre identifikasjon og autentisering brukes ESIA til State Services Portal. Dermed opprettholdes den generelle legitimasjonsordningen både ved søknad og ved stemmegivning.

Etter dette starter anonymiseringsprosedyren - velgeren får en stemmeseddel som ikke inneholder noen identifikasjonsmerker: den har ikke et nummer, den er på ingen måte forbundet med velgeren den ble utstedt til. Det er interessant å vurdere alternativet når valglokalet er utstyrt med elektroniske stemmekomplekser - i dette tilfellet utføres anonymisering som følger: i stedet for en papirstemmeseddel, blir velgeren bedt om å velge fra en stabel et hvilket som helst kort med en strekkode som han vil nærme seg stemmeapparatet. Det er ingen opplysninger om velgeren på kortet, kun en kode som bestemmer hvilken stemmeseddel enheten skal oppgi ved fremvisning av et slikt kort. Med en fullstendig digital interaksjon er hovedoppgaven å implementere en anonymiseringsalgoritme slik at det på den ene siden er umulig å etablere noen brukeridentifikasjonsdata, og på den annen side å gi mulighet til å stemme kun til de brukerne som var tidligere identifisert i listen. For å løse dette problemet bruker DEG PTK en kryptografisk algoritme, kjent i det profesjonelle miljøet som en "blind elektronisk signatur." Vi vil snakke om det i detalj i de følgende publikasjonene, og vil også publisere kildekoden; du kan også samle inn tilleggsinformasjon fra publikasjoner på Internett ved å bruke nøkkelord - "kryptografiske hemmelige stemmeprotokoller" eller "blind signatur"

Deretter fyller velgeren ut stemmeseddelen på et sted der det er umulig å se valget som er gjort (en lukket bås) - hvis velgeren i vårt informasjonssystem fjernstemmer, så er det eneste slike stedet brukerens personlige enhet. For å gjøre dette, blir brukeren først overført til et annet domene − til den anonyme sonen. Før du bytter, kan du heve VPN-tilkoblingen din og endre IP-adressen din. Det er på dette domenet stemmeseddelen vises og brukerens valg behandles. Kildekoden som kjører på brukerens enhet er i utgangspunktet åpen – den kan sees i nettleseren.

Når valget er tatt, krypteres stemmeseddelen på brukerens enhet ved hjelp av et spesielt krypteringsskjema, sendes og registreres i komponent "Distribuert lagring og telling av stemmer", bygget på blockchain-plattformen.

En av de viktigste egenskapene til protokollen er umuligheten av å vite stemmeresultatene før den er fullført. På et tradisjonelt valglokale sikres dette ved å forsegle stemmeurnen og overvåking av observatører. I digitale interaksjoner er den beste løsningen å kryptere velgerens valg. Krypteringsalgoritmen som brukes forhindrer at resultatene avsløres før avstemningen er fullført. Til dette brukes et opplegg med to nøkler: en (offentlig) nøkkel, som er kjent for alle deltakere, brukes til å kryptere stemmen. Den kan ikke dekrypteres med samme nøkkel; en andre (privat) nøkkel er nødvendig. Den private nøkkelen er delt mellom deltakere i valgprosessen (medlemmer av valgkommisjoner, det offentlige kammer, operatører av telleservere, og så videre) på en slik måte at hver enkelt del av nøkkelen er ubrukelig. Du kan begynne dekryptering først etter at den private nøkkelen er samlet inn. I systemet som vurderes inkluderer nøkkelseparasjonsprosedyren flere stadier: separering av en del av nøkkelen i systemet, separering av nøkkelen utenfor systemet, og generering av en felles offentlig nøkkel. Vi vil vise i detalj prosessen med kryptering og arbeid med kryptografiske nøkler i fremtidige publikasjoner.

Etter at nøkkelen er samlet og lastet ned, begynner beregningen av resultatene for videre registrering i blokkjeden og påfølgende kunngjøring. Et trekk ved systemet som vurderes er bruken av homomorf krypteringsteknologi. Vi vil beskrive denne algoritmen i detalj i fremtidige publikasjoner og snakke om hvorfor denne teknologien er mye brukt for å lage stemmesystemer. La oss nå merke seg hovedtrekket: krypterte stemmesedler registrert i regnskapssystemet kan kombineres uten dekryptering på en slik måte at resultatet av dekryptering av en slik kombinert chiffertekst vil være den summerte verdien for hvert valg i stemmesedlene. Samtidig implementerer systemet selvfølgelig matematiske bevis på riktigheten av en slik beregning, som også registreres i regnskapssystemet og kan verifiseres av observatører.

Nedenfor er en oversikt over stemmeprosessen.

Gjennomgang av det eksterne elektroniske stemmesystemet til den sentrale valgkommisjonen i Den russiske føderasjonen
Klikkbar

Blockchain-plattform

Nå som vi har undersøkt hovedtrekkene ved implementeringen av et eksternt elektronisk stemmesystem, la oss svare på spørsmålet som vi startet med - hvilken rolle spiller blockchain-teknologi i dette og hvilke problemer lar den løse?

I det implementerte fjernstemmesystemet løser blokkjedeteknologi en viss rekke problemer.

  • Den grunnleggende oppgaven er å sikre integriteten til informasjon innenfor rammen av stemmegivning, og først og fremst stemmer.
  • Sikre gjennomsiktighet av utførelse og uforanderlighet av programkode implementert i form av smarte kontrakter.
  • Sikre beskyttelsen og uforanderligheten til data som brukes i stemmeprosessen: listen over velgere, nøklene som brukes til å kryptere stemmesedler på ulike stadier av den kryptografiske protokollen, og så videre.
  • Tilby desentralisert datalagring, hvor hver deltaker har en helt identisk kopi, bekreftet av egenskapene til konsensus i nettverket.
  • Muligheten til å se transaksjoner og spore fremdriften av stemmegivningen, som er fullt reflektert i blokkjeden, fra begynnelsen til registreringen av de beregnede resultatene.

Dermed ser vi at uten å bruke denne teknologien er det nesten umulig å oppnå de nødvendige egenskapene i stemmesystemet, samt tillit til det.

Funksjonaliteten til blokkjedeplattformen som brukes, berikes ved bruk av smarte kontrakter. Smarte kontrakter kontrollerer hver transaksjon med krypterte stemmesedler for ektheten til elektroniske og "blinde" signaturer, og utfører også grunnleggende kontroller av riktigheten av å fylle ut den krypterte stemmeseddelen.

Dessuten, i det betraktede eksterne elektroniske stemmesystemet, er komponenten "Distribuert lagring og telling av stemmer" ikke bare begrenset til blockchain-noder. For hver node kan en separat server distribueres som implementerer de viktigste kryptografiske funksjonene til stemmeprotokollen - telleservere.

Telle servere

Dette er desentraliserte komponenter som gir prosedyren for distribuert generering av en stemmekrypteringsnøkkel, samt dekryptering og beregning av stemmeresultater. Oppgavene deres inkluderer:

  • Sikre distribuert generering av deler av stemmeseddelens krypteringsnøkkel. Nøkkelgenereringsprosedyren vil bli diskutert i de følgende artiklene;
  • Kontrollere riktigheten av den krypterte stemmeseddelen (uten å dekryptere den);
  • Behandling av stemmesedler i kryptert form for å generere den endelige chifferteksten;
  • Distribuert avkoding av sluttresultater.

Hvert trinn i utførelse av den kryptografiske protokollen registreres i blockchain-plattformen og kan kontrolleres for korrekthet av observatører.

For å gi systemet de nødvendige egenskapene i ulike stadier av stemmeprosessen, brukes følgende kryptografiske algoritmer:

  • Elektronisk signatur;
  • Blind signering av velgerens offentlige nøkkel;
  • ElGamal elliptisk kurve krypteringsskjema;
  • Null kunnskapsbevis;
  • Pedersen 91 DKG (Distributed Key Generation) protokoll;
  • Privat nøkkeldelingsprotokoll ved bruk av Shamirs opplegg.

Den kryptografiske tjenesten vil bli diskutert mer detaljert i de følgende artiklene.

Resultater av

La oss oppsummere noen mellomresultater av vurderingen av det eksterne elektroniske stemmesystemet. Vi har kort beskrevet prosessen og hovedkomponentene som implementerer den, og også identifisert midlene for å oppnå egenskapene som er nødvendige for ethvert stemmesystem:

  • Verifiserbarhet for velgere. Systemet godtar kun stemmer fra verifiserte velgere. Denne egenskapen sikres ved å identifisere og autentisere velgere, samt registrere velgerlisten og det faktum å gi tilgang til stemmeseddelen i blokkjeden.
  • Anonymitet. Systemet sikrer stemmehemmeligheten, nedfelt i lovgivningen til den russiske føderasjonen; velgerens identitet kan ikke bestemmes fra en kryptert stemmeseddel. Implementert ved hjelp av en "blind signatur"-algoritme og en anonym sone for å fylle ut og sende stemmeseddelen.
  • Konfidensialitet av stemmer. Arrangører og andre stemmedeltakere kan ikke finne ut resultatet av avstemningen før den er fullført, stemmene er talt og de endelige resultatene dechiffrert. Konfidensialitet oppnås ved å kryptere stemmesedlene og gjøre dem umulige å dekryptere før etter avstemning.
  • Data uforanderlighet. Velgerdata kan ikke endres eller slettes. Uforanderlig datalagring leveres av blockchain-plattformen.
  • Verifiserbarhet. Observatøren kan verifisere at stemmene ble talt riktig.
  • Pålitelighet. Systemarkitekturen er basert på prinsippene for desentralisering, og sikrer fravær av et enkelt "feilpunkt".

Kilde: www.habr.com

Legg til en kommentar