Prehľad postupu anonymizácie pre systém elektronického hlasovania na diaľku

В predchádzajúce publikácie Zhodli sme sa na tom, že v systéme elektronického hlasovania na diaľku, o ktorom uvažujeme, sa na zabezpečenie tajnosti hlasovania a anonymizáciu voliča používa kryptografický algoritmus „slepého elektronického podpisu“. V tomto článku sa na to pozrieme podrobnejšie.

Najprv sa obráťme na známy a známy algoritmus elektronického podpisu, ktorý je široko používaný v informačných systémoch na rôzne účely. Elektronický podpis je založený na kryptografických asymetrických šifrovacích algoritmoch. Asymetrické šifrovanie je šifrovanie pomocou 2 kľúčov: jeden z nich sa používa na šifrovanie, druhý na dešifrovanie. Nazývajú sa otvorený (verejný) a súkromný kľúč. Verejný kľúč poznajú ostatní a súkromný kľúč pozná iba vlastník elektronického podpisu a je uložený na mieste, ktoré je pre ostatných neprístupné.

Pri podpisovaní sa deje nasledovné: najprv sa elektronický dokument pomocou matematických transformácií zredukuje na sekvenciu znakov určitej veľkosti – nazýva sa to hašovacia funkcia.

Výslednú sekvenciu znakov (hash z dokumentu) odosielateľ dokumentu zašifruje pomocou súkromného kľúča a spolu s verejným kľúčom ju odošle príjemcovi. Príjemca dešifruje sekvenciu znakov pomocou verejného kľúča, použije presne rovnakú hašovaciu funkciu na dokument a porovná výsledok konverzie s výsledkom dešifrovania. Ak sa všetko zhoduje, potom sa v dokumente po podpísaní odosielateľom nevykonali žiadne zmeny.

Popísané akcie vám umožňujú overiť, že dokument nebol zmenený, ale neumožňujú vám overiť, že odosielateľ je skutočne tým, za koho sa vydáva. Preto potrebujeme tretiu stranu, ktorej dôveruje odosielateľ aj príjemca. Za týmto účelom odosielateľ pred odoslaním dokumentu kontaktuje tretiu stranu a požiada ju, aby podpísala svoj verejný kľúč svojím elektronickým podpisom. Odosielateľ teraz odošle príjemcovi dokument, jeho verejný kľúč a jeho kľúč s podpisom tretej strany. Príjemca overí podpis tretej strany na verejnom kľúči a dôveruje výslednému podpisu dokumentu.

Teraz prejdime k tomu, čo je „slepý podpis“ a ako nám môže pomôcť s anonymizáciou.

Predstavme si, že vo vyššie opísanom príklade je odosielateľom volič, dokumentom je hlasovací lístok a príjemcom je volebná komisia, alebo ako sme povedali „zložka sčítania hlasov“. Ako tretia strana (validátor) budeme mať komponent „Zoznam voličov“. V tomto prípade môže proces prebiehať nasledovne.

Prehľad postupu anonymizácie pre systém elektronického hlasovania na diaľku

Volič si na svojom zariadení vygeneruje pár kľúčov – súkromný a verejný. Keďže tieto kľúče sú vytvorené na jeho osobnom zariadení v prehliadači, pozná ich iba on.

Pomocou týchto kľúčov podpíše hlasovací lístok, aby skontroloval jeho integritu. Podpísaný hlasovací lístok a verejný kľúč zašle volebnej komisii. Aby bol hlasovací lístok prijatý komponentom Distribuované ukladanie a počítanie hlasov, musí overiť, či je verejný kľúč podpísaný validátorom.

Validátor (komponent Zoznam voličov) podpíše verejný kľúč až po overení, či je volič v zozname voličov.

Aby sa vyriešil problém zachovania tajnosti hlasovania, verejný kľúč voliča vytvorený na jeho zariadení by nemal byť nikomu známy. Ukazuje sa, že validátor musí podpísať niečo, čo je pre neho neznáme. Úloha sa zdá byť nemožná, ale tu prichádzajú na pomoc kryptografické algoritmy - v tomto prípade algoritmus „slepého podpisu“

Najprv musí byť na zariadení voliča zamaskovaný verejný kľúč. Maskovanie je vykonávanie jednotlivých matematických operácií na zariadení používateľa. Predstavte si, že ste mysleli na náhodné číslo od 1 do 100, potom na druhé náhodné číslo od 1 do 10 a tretie, od 10 do 50, zvýšili pôvodne myslené číslo na mocninu druhého čísla a rozdelili ho bez zvyšok do tretiny. Výsledok oznámili ostatným. Nebude pre vás ťažké obnoviť pôvodné číslo, pretože poznáte postupnosť akcií a čísla, ktoré máte na mysli. Ale ľudia okolo vás to nedokážu.

Maskovanie (zaslepenie) verejného kľúča sa vykonáva podľa špeciálneho kryptografického algoritmu. Výsledkom je, že validátor podpíše maskovaný verejný kľúč bez toho, aby poznal pôvodný kľúč. Ale zvláštnosťou algoritmu je, že používateľ (volič), ktorý dostal podpis pre maskovaný kľúč, môže vykonať spätnú transformáciu a získať podpis, ktorý je platný pre pôvodný, nemaskovaný kľúč.

Opísaný algoritmus je široko používaný v protokoloch tajného hlasovania. Systém elektronického hlasovania na diaľku v súčasnosti používa algoritmus RSA s dĺžkou kľúča 4096 bitov pre slepé podpisy.

Vo všeobecnosti je postup anonymizácie nasledujúci.

  1. Keď sa vytvorí hlasovanie, vytvorí sa samostatný pár kľúčov „validátor“ a verejný kľúč sa zaznamená do blockchainu. Pre každý hlas sa vytvorí jedinečný pár kľúčov.
  2. Používateľ je identifikovaný v identifikačnom systéme (v tomto prípade v ESIA) a poskytuje povolenie na prenos svojich identifikačných údajov z identifikačného systému do DEG PTC.
  3. Komponent „Zoznam voličov“ DEG PTC kontroluje prítomnosť používateľa v zozname voličov.
  4. Na zariadení používateľa sa vytvoria jeho osobné kľúče – súkromné ​​a verejné, ktoré pozná iba on.
  5. Verejný kľúč je na zariadení používateľa maskovaný
  6. Spolu s identifikačnými údajmi a maskovaným verejným kľúčom sa používateľ dostane do komponentu „Zoznam voličov“.
  7. Komponent ešte raz skontroluje prítomnosť používateľa v zozname a skutočnosť, že predtým nedostal podpis
  8. Ak sú všetky kontroly úspešné, kľúč je podpísaný
  9. Skutočnosť podpísania kľúča je zaznamenaná v blockchaine
  10. Používateľ na svojom zariadení odstráni masku z verejného kľúča a dostane súkromný kľúč, verejný kľúč a podpis na verejnom kľúči a všetky kľúče pozná iba on.
  11. Potom je používateľ presunutý do anonymnej zóny - na samostatnú webovú stránku edg2020.gov.ru, kde ho nie je možné identifikovať (napríklad pred prechodom sa môže pripojiť k VPN alebo zmeniť poskytovateľa internetu, čím sa úplne zmení IP adresa)
  12. Prijatie hlasovacieho lístka bude závisieť len od toho, či je overený podpis „validátora“ a či takýto kľúč už nebol použitý.

Ďalej uvádzame popis algoritmu z pohľadu kryptografie.
Možnosti podpisu a označenia:

Prehľad postupu anonymizácie pre systém elektronického hlasovania na diaľku
Prehľad postupu anonymizácie pre systém elektronického hlasovania na diaľku

M – vo formáte výplne FDN pre podpis.

Zdroj: hab.com

Pridať komentár