Oversikt over anonymiseringsprosedyren for det eksterne elektroniske stemmesystemet

В tidligere publikasjoner Vi slo oss fast på det faktum at i det eksterne elektroniske stemmesystemet vi vurderer, brukes en kryptografisk "blind elektronisk signatur"-algoritme for å sikre stemmehemmeligheten og anonymisere velgeren. I denne artikkelen vil vi se på det mer detaljert.

La oss først gå til den velkjente og velkjente elektroniske signaturalgoritmen, som er mye brukt i informasjonssystemer til ulike formål. Den elektroniske signaturen er basert på kryptografiske asymmetriske krypteringsalgoritmer. Asymmetrisk kryptering er kryptering med 2 nøkler: en av dem brukes til kryptering, den andre til dekryptering. De kalles åpen (offentlig) og privat nøkkel. Den offentlige nøkkelen er kjent for andre, og den private nøkkelen er kun kjent for eieren av den elektroniske signaturen og lagres på et sted som er utilgjengelig for andre.

Ved signering skjer følgende: først blir det elektroniske dokumentet, ved hjelp av matematiske transformasjoner, redusert til en sekvens av tegn av en viss størrelse - dette kalles en hash-funksjon.

Den resulterende tegnsekvensen (en hash fra dokumentet) krypteres av avsenderen av dokumentet ved hjelp av en privat nøkkel og sendes sammen med den offentlige nøkkelen til mottakeren. Mottakeren dekrypterer tegnsekvensen ved hjelp av den offentlige nøkkelen, bruker nøyaktig samme hash-funksjon på dokumentet, og sammenligner konverteringsresultatet med dekrypteringsresultatet. Hvis alt stemmer, ble det ikke gjort noen endringer i dokumentet etter at det ble signert av avsenderen.

De beskrevne handlingene lar deg bekrefte at dokumentet ikke er endret, men lar deg ikke bekrefte at avsenderen virkelig er den han utgir seg for å være. Derfor trenger vi en tredjepart som er klarert av både avsender og mottaker. For å gjøre dette, før du sender dokumentet, kontakter avsenderen en tredjepart og ber henne signere hans offentlige nøkkel med sin elektroniske signatur. Avsenderen sender nå mottakeren dokumentet, hans offentlige nøkkel og en tredjeparts signatur av nøkkelen hans. Mottakeren verifiserer tredjepartens signatur på den offentlige nøkkelen og stoler på den resulterende dokumentsignaturen.

La oss nå gå videre til hva en "blind signatur" er og hvordan den kan hjelpe oss med anonymisering.

La oss forestille oss at i eksemplet beskrevet ovenfor er avsenderen velgeren, dokumentet er stemmeseddelen, og mottakeren er valgkommisjonen, eller som vi sa "stemmetellingskomponenten." Vi vil ha "Voter List"-komponenten som en tredjepart (validator). I dette tilfellet kan prosessen skje som følger.

Oversikt over anonymiseringsprosedyren for det eksterne elektroniske stemmesystemet

Velgeren genererer et par nøkler på enheten sin – private og offentlige. Siden disse nøklene er opprettet på hans personlige enhet i nettleseren, er de kun kjent for ham.

Ved å bruke disse nøklene vil han signere stemmeseddelen for å kontrollere dens integritet. Han sender den signerte stemmeseddelen og den offentlige nøkkelen til valgkommisjonen. For at en stemmeseddel skal aksepteres av komponenten Distribuert stemmelagring og -telling, må den bekrefte at den offentlige nøkkelen er signert av validatoren.

Validatoren (Voter List-komponenten) signerer den offentlige nøkkelen først etter å ha bekreftet at velgeren er på velgerlisten.

For å løse problemet med å bevare stemmehemmeligheten, bør velgerens offentlige nøkkel opprettet på enheten hans ikke være kjent for noen. Det viser seg at validatoren må signere noe som er ukjent for ham. Oppgaven virker umulig, men her kommer kryptografiske algoritmer til unnsetning - i dette tilfellet "blind signatur" -algoritmen

Først må den offentlige nøkkelen være maskert på velgerens enhet. Maskering er utførelsen av individuelle matematiske operasjoner på brukerens enhet. Tenk deg at du tenkte på et tilfeldig tall fra 1 til 100, så tenkte du på et andre tilfeldig tall fra 1 til 10 og et tredje, fra 10 til 50, hevet det opprinnelig tenkte tallet til potensen av det andre tallet, og delte det uten en rest av den tredje. Resultatet ble rapportert til andre. Det vil ikke være vanskelig for deg å gjenopprette det opprinnelige nummeret, siden du kjenner rekkefølgen av handlinger og tallene du har i tankene. Men de rundt deg vil ikke kunne gjøre dette.

Maskering (blinding) av den offentlige nøkkelen utføres i henhold til en spesiell kryptografisk algoritme. Som et resultat signerer validatoren en maskert offentlig nøkkel uten å kjenne den originale nøkkelen. Men det særegne ved algoritmen er at brukeren (velgeren), etter å ha mottatt en signatur for en maskert nøkkel, kan gjøre omvendte transformasjoner og få en signatur som er gyldig for den originale, demaskerte nøkkelen.

Den beskrevne algoritmen er mye brukt i hemmelige stemmeprotokoller. Det eksterne elektroniske stemmesystemet bruker for tiden RSA-algoritmen med en nøkkellengde på 4096 biter for blindsignaturer.

Generelt er anonymiseringsprosedyren som følger.

  1. Når en stemme opprettes, opprettes et eget "validator" nøkkelpar, og den offentlige nøkkelen registreres i blokkjeden. Et unikt nøkkelpar opprettes for hver stemme.
  2. Brukeren er identifisert i identifikasjonssystemet (i dette tilfellet i ESIA), og gir tillatelse til å overføre sine identifikasjonsdata fra identifiseringssystemet til DEG PTC.
  3. "Voter List"-komponenten i DEG PTC sjekker brukerens tilstedeværelse på velgerlisten.
  4. På brukerens enhet opprettes hans personlige nøkler - private og offentlige, kun kjent for ham.
  5. Den offentlige nøkkelen er maskert på brukerens enhet
  6. Sammen med identifikasjonsdata og en maskert offentlig nøkkel, får brukeren tilgang til "Voter List"-komponenten
  7. Komponenten sjekker nok en gang brukerens tilstedeværelse i listen og det faktum at han ikke har mottatt en signatur før
  8. Hvis alle kontroller er vellykkede, signeres nøkkelen
  9. Det faktum å signere nøkkelen er registrert i blokkjeden
  10. Brukeren på enheten hans fjerner masken fra den offentlige nøkkelen og mottar en privat nøkkel, en offentlig nøkkel og en signatur på den offentlige nøkkelen, og alle nøklene er kun kjent for ham.
  11. Etter dette blir brukeren overført til en anonym sone - til et eget nettsted edg2020.gov.ru, hvor det er umulig å identifisere ham (for eksempel før overgangen kan han koble til en VPN eller endre Internett-leverandøren, og endre fullstendig IP adresse)
  12. Aksept av stemmeseddelen vil kun avhenge av om "validatorens" signatur er verifisert og om en slik nøkkel ikke har blitt brukt tidligere.

Deretter gir vi en beskrivelse av algoritmen fra et kryptografisk synspunkt.
Signatur- og betegnelsesalternativer:

Oversikt over anonymiseringsprosedyren for det eksterne elektroniske stemmesystemet
Oversikt over anonymiseringsprosedyren for det eksterne elektroniske stemmesystemet

M – i FDN-utfyllingsformat for signatur.

Kilde: www.habr.com

Legg til en kommentar