Oversigt over anonymisering af systemet til fjernbetjent elektronisk afstemning

I tidligere publikationer Vi stoppede ved det punkt, hvor det system for fjernbetjent elektronisk afstemning, vi undersøger, benytter en kryptografisk algoritme til "blind elektronisk underskrift" for at sikre hemmeligheden omkring afstemningen og anonymiseringen af vælgerne. I denne artikel vil vi se nærmere på det.

Lad os først se på den kendte og velkendte algoritme for elektronisk underskrift, som anvendes i informationssystemer til forskellige formål. Elektronisk underskrift er baseret på asymmetrisk kryptering. Asymmetrisk kryptering er en metode til kryptering ved hjælp af to nøgler: en, der bruges til kryptering, og en anden til dekryptering. De kaldes henholdsvis offentlig (eller åben) nøgle og privat nøgle. Den offentlige nøgle er kendt af alle, mens den private nøgle er kun kendt af indehaveren af den elektroniske underskrift og opbevares et sikkert sted.

Ved underskrivelse sker der følgende: først bringes det elektroniske dokument ved hjælp af matematiske transformationer til en sekvens af tegn af en bestemt længde - det kaldes hash-funktionen.

Den opnåede sekvens af tegn (hash for dokumentet) krypteres af dokumentets afsender med den private nøgle og sendes til modtageren sammen med den offentlige nøgle. Modtageren dekrypterer den tegnsekvens ved hjælp af den offentlige nøgle, anvender præcist den samme hash-funktion på dokumentet og sammenligner resultatet af transformationen med resultatet af dekrypteringen. Hvis alt stemmer overens, er dokumentet ikke blevet ændret efter underskrivelsen af afsenderen.

De beskrevne handlinger gør det muligt at bekræfte, at dokumentet ikke er blevet ændret, men de kan ikke bekræfte, at afsenderen virkelig er den, han udgiver sig for at være. Derfor har vi brug for en tredje part, som både afsender og modtager har tillid til. For dette formål kontakter afsenderen en tredje part før sending af dokumentet og beder dem om at underskrive sin offentlige nøgle med deres elektroniske underskrift. Nu sender afsenderen dokumentet til modtageren sammen med sin offentlige nøgle og underskriften fra den tredje part på sin nøgle. Modtageren kontrollerer den tredje parts underskrift af den offentlige nøgle og stoler på den modtagne underskrift af dokumentet.

Lad os nu se på, hvad en „blind underskrift“ er, og hvordan den kan hjælpe os med anonymisering.

Lad os antage, at i det ovenfor beskrevne eksempel er afsenderen en vælger, dokumentet en stemmeseddel, og modtageren er valgkommissionen, eller som vi sagde, „komponenten til registrering og tælling af stemmer“. Som en tredje part (validatoren) vil komponenten „Vælgerliste“ deltage. I dette tilfælde kan processen foregå som følger.

Oversigt over anonymisering af systemet til fjernbetjent elektronisk afstemning

Vælgeren genererer et nøglepar – en privat og en offentlig nøgle – på sin enhed. Da disse nøgler oprettes på hans personlige enhed i browseren, er de kun kendt af ham.

Med disse nøgler vil han underskrive stemmesedlen for at kontrollere dens integritet. Den underskrevne stemmeseddel og den offentlige nøgle sendes til valgkommissionen. For at stemmesedlen kan accepteres af komponenten „Distribueret opbevaring og tælling af stemmer“, skal den verificere, at den offentlige nøgle er underskrevet af validatoren.

Validatoren (komponenten „Vælgerliste“) vil kun underskrive den offentlige nøgle, efter at den har bekræftet, at vælgeren er til stede på vælgerlisten.

For at sikre hemmeligholdelse af afstemningen bør den offentlige nøgle, der er oprettet på vælgerens enhed, ikke være kendt af nogen. Det viser sig, at validatoren skal underskrive noget, som den ikke kender. Opgaven synes umulig, men kryptografiske algoritmer – i dette tilfælde algoritmen for „blind underskrift“ – kommer til hjælp.

Først skal den offentlige nøgle på vælgerens enhed maskeres. Maskeringen er udførelsen af separate matematiske operationer på brugerens enhed. Forestil dig, at du forestillede dig et tilfældigt tal fra 1 til 100, derefter et andet tilfældigt tal fra 1 til 10 og et tredje fra 10 til 50, det oprindelige tal hævet til den anden tal i potens og derefter delt uden rest med det tredje. Det opnåede resultat blev meddelt de omkringstående. Du vil ikke have problemer med at genskabe det oprindelige tal, da du kender rækkefølgen af handlinger og de tal, du valgte. Men de omkringstående vil ikke være i stand til at gøre det.

Maskering (blinding) af den offentlige nøgle udføres i henhold til en specialiseret kryptografisk algoritme. Som et resultat signerer validatoren den maskede offentlige nøgle, hvor den oprindelige nøgle er ukendt for den. Men algoritmens særlige karakter er, at brugeren (vælgeren), som modtager signaturen på den maskede nøgle, kan foretage omvendte transformationer og få en gyldig underskrift på den oprindelige, umaskede nøgle.

Den beskrevne algoritme anvendes i vid udstrækning i protokoller for hemmelig afstemning. I systemet for fjern elektronisk afstemning anvendes i øjeblikket RSA-algoritmen med en nøglelængde på 4096 bit til blind underskrift.

Generelt ser anonymiseringsproceduren således ud.

  1. Ved oprettelsen af en afstemning oprettes et separat nøglepar for "validatoren", og den offentlige nøgle registreres i blockchainen. Der oprettes et unikt nøglepar for hver afstemning.
  2. Brugeren identificeres i identifikationssystemet (i dette tilfælde, i ESIA), og giver tilladelse til at overføre sine identifikationsdata fra identifikationssystemet til PTC DEG.
  3. Komponenten "Vælgerliste" i PTC DEG kontrollerer, om brugeren er på vælgerlisten.
  4. På brugerens enhed oprettes hans personlige nøgler – en privat og en offentlig, som kun er kendt af ham.
  5. På brugerens enhed maskeres den offentlige nøgle.
  6. Sammen med identifikationsdataene og den maskede offentlige nøgle henvender brugeren sig til komponenten "Vælgerliste".
  7. Komponenten kontrollerer endnu en gang, om brugeren er på listen, og om han tidligere har fået en underskrift.
  8. Hvis alle kontroller er succesfulde, underskrives nøglen.
  9. Faktumet af nøgleunderskriften registreres i blockchainen.
  10. Brugeren fjerner masken fra den offentlige nøgle på sin enhed og får den private nøgle, den offentlige nøgle og signaturen på den offentlige nøgle, hvor alle nøgler kun er kendt af ham.
  11. Herefter overføres brugeren til et anonymt område – til en separat hjemmeside edg2020.gov.ru, hvor han ikke kan identificeres (for eksempel kan han før overgangen tilslutte sig VPN eller skifte internetudbyder, hvilket helt ændrer IP-adressen).
  12. Modtagelsen af stemmesedlen vil kun afhænge af, om validatorens underskrift er blevet godkendt, og om en sådan nøgle tidligere er blevet brugt.

Lad os beskrive algoritmen fra et kryptografisk perspektiv.
Parametre for signatur og betegnelser:

Oversigt over anonymisering af systemet til fjernbetjent elektronisk afstemning
Oversigt over anonymisering af systemet til fjernbetjent elektronisk afstemning

M – i padding FDN format til signaturen.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster