Oversigt over anonymiseringsproceduren for det elektroniske fjernafstemningssystem

В tidligere udgivelser Vi slog os fast på, at i det elektroniske fjernafstemningssystem, vi overvejer, bruges en kryptografisk "blind elektronisk signatur"-algoritme til at sikre afstemningshemmeligheden og anonymisere vælgeren. I denne artikel vil vi se nærmere på det.

Lad os først vende os til den velkendte og velkendte elektroniske signaturalgoritme, som er meget udbredt i informationssystemer til forskellige formål. Den elektroniske signatur er baseret på kryptografiske asymmetriske krypteringsalgoritmer. Asymmetrisk kryptering er kryptering ved hjælp af 2 nøgler: en af ​​dem bruges til kryptering, den anden til dekryptering. De kaldes åben (offentlig) og privat nøgle. Den offentlige nøgle er kendt af andre, og den private nøgle er kun kendt af ejeren af ​​den elektroniske signatur og opbevares et sted, der er utilgængeligt for andre.

Ved underskrift sker følgende: For det første reduceres det elektroniske dokument ved hjælp af matematiske transformationer til en sekvens af tegn af en vis størrelse - dette kaldes en hash-funktion.

Den resulterende tegnsekvens (en hash fra dokumentet) krypteres af afsenderen af ​​dokumentet ved hjælp af en privat nøgle og sendes sammen med den offentlige nøgle til modtageren. Modtageren dekrypterer tegnsekvensen ved hjælp af den offentlige nøgle, anvender nøjagtig den samme hashfunktion på dokumentet og sammenligner konverteringsresultatet med dekrypteringsresultatet. Hvis alt stemmer overens, blev der ikke foretaget ændringer i dokumentet, efter at det blev underskrevet af afsenderen.

De beskrevne handlinger giver dig mulighed for at verificere, at dokumentet ikke er blevet ændret, men giver dig ikke mulighed for at verificere, at afsenderen virkelig er den, han udgiver sig for at være. Derfor har vi brug for en tredjepart, som både afsender og modtager har tillid til. For at gøre dette kontakter afsenderen før afsendelse af dokumentet en tredjepart og beder hende om at underskrive sin offentlige nøgle med sin elektroniske signatur. Afsenderen sender nu dokumentet, hans offentlige nøgle og en tredjeparts signatur af hans nøgle til modtageren. Modtageren verificerer tredjepartens signatur på den offentlige nøgle og stoler på den resulterende dokumentsignatur.

Lad os nu gå videre til, hvad en "blind signatur" er, og hvordan den kan hjælpe os med anonymisering.

Lad os forestille os, at i eksemplet beskrevet ovenfor er afsenderen vælgeren, dokumentet er stemmesedlen, og modtageren er valgkommissionen, eller som vi sagde "stemmeoptællingskomponenten." Vi vil have "Voter List"-komponenten som en tredjepart (validator). I dette tilfælde kan processen ske som følger.

Oversigt over anonymiseringsproceduren for det elektroniske fjernafstemningssystem

Vælgeren genererer et par nøgler på sin enhed – private og offentlige. Da disse nøgler er oprettet på hans personlige enhed i browseren, er de kun kendt af ham.

Ved at bruge disse nøgler vil han underskrive stemmesedlen for at kontrollere dens integritet. Han sender den underskrevne stemmeseddel og offentlige nøgle til valgkommissionen. For at en stemmeseddel kan accepteres af komponenten Distributed Vote Storage and Counting, skal den bekræfte, at den offentlige nøgle er underskrevet af validatoren.

Valideren (Voter List-komponent) vil kun underskrive den offentlige nøgle efter at have verificeret, at vælgeren er på vælgerlisten.

For at løse problemet med at bevare stemmehemmeligheden bør vælgerens offentlige nøgle oprettet på hans enhed ikke være kendt af nogen. Det viser sig, at validatoren skal underskrive noget, som er ukendt for ham. Opgaven virker umulig, men her kommer kryptografiske algoritmer til undsætning - i dette tilfælde den "blinde signatur" algoritme

Først skal den offentlige nøgle maskeres på vælgerens enhed. Maskering er udførelsen af ​​individuelle matematiske operationer på brugerens enhed. Forestil dig, at du tænkte på et tilfældigt tal fra 1 til 100, derefter tænkte på et andet tilfældigt tal fra 1 til 10 og et tredje, fra 10 til 50, hævede det oprindeligt tænkte tal til potensen af ​​det andet tal og dividerede det uden en rest af den tredje. Resultatet blev rapporteret til andre. Det vil ikke være svært for dig at gendanne det oprindelige nummer, da du kender rækkefølgen af ​​handlinger og de tal, du har i tankerne. Men dem omkring dig vil ikke være i stand til at gøre dette.

Maskering (blindning) af den offentlige nøgle udføres i henhold til en speciel kryptografisk algoritme. Som et resultat signerer validatoren en maskeret offentlig nøgle uden at kende den originale nøgle. Men det særlige ved algoritmen er, at brugeren (vælgeren), efter at have modtaget en signatur for en maskeret nøgle, kan lave omvendte transformationer og opnå en signatur, der er gyldig for den originale, umaskerede nøgle.

Den beskrevne algoritme er meget brugt i hemmelige afstemningsprotokoller. Det elektroniske fjernafstemningssystem bruger i øjeblikket RSA-algoritmen med en nøglelængde på 4096 bit til blinde signaturer.

Generelt er anonymiseringsproceduren som følger.

  1. Når en stemme oprettes, oprettes et separat "validator"-nøglepar, og den offentlige nøgle registreres i blockchainen. Der oprettes et unikt nøglepar for hver stemme.
  2. Brugeren identificeres i identifikationssystemet (i dette tilfælde i ESIA) og giver tilladelse til at overføre sine identifikationsdata fra identifikationssystemet til DEG PTC.
  3. "Voter List"-komponenten i DEG PTC kontrollerer tilstedeværelsen af ​​brugeren på vælgerlisten.
  4. På brugerens enhed oprettes hans personlige nøgler - private og offentlige, kun kendt af ham.
  5. Den offentlige nøgle er maskeret på brugerens enhed
  6. Sammen med identifikationsdata og en maskeret offentlig nøgle får brugeren adgang til "Voter List"-komponenten
  7. Komponenten kontrollerer endnu en gang brugerens tilstedeværelse på listen og det faktum, at han ikke har modtaget en signatur før
  8. Hvis alle kontroller lykkes, er nøglen underskrevet
  9. Det faktum at underskrive nøglen er registreret i blockchain
  10. Brugeren på sin enhed fjerner masken fra den offentlige nøgle og modtager en privat nøgle, en offentlig nøgle og en signatur på den offentlige nøgle, og alle nøglerne er kun kendt af ham.
  11. Herefter overføres brugeren til en anonym zone - til et separat websted edg2020.gov.ru, hvor det er umuligt at identificere ham (f.eks. før overgangen kan han tilslutte en VPN eller skifte sin internetudbyder, fuldstændigt ændre IP-adresse)
  12. Accept af stemmesedlen vil kun afhænge af, om "validatorens" signatur er verificeret, og om en sådan nøgle ikke har været brugt tidligere.

Dernæst giver vi en beskrivelse af algoritmen ud fra et kryptografisk synspunkt.
Signatur- og betegnelsesmuligheder:

Oversigt over anonymiseringsproceduren for det elektroniske fjernafstemningssystem
Oversigt over anonymiseringsproceduren for det elektroniske fjernafstemningssystem

M – i FDN-polstringsformat til signatur.

Kilde: www.habr.com

Tilføj en kommentar