Přehled postupu anonymizace pro systém elektronického hlasování na dálku

В předchozí publikace Shodli jsme se na tom, že v námi zvažovaném systému elektronického hlasování na dálku je k zajištění tajnosti hlasování a anonymizaci voliče použit kryptografický algoritmus „slepého elektronického podpisu“. V tomto článku se na to podíváme podrobněji.

Nejprve se podívejme na známý a známý algoritmus elektronického podpisu, který je široce používán v informačních systémech pro různé účely. Elektronický podpis je založen na kryptografických asymetrických šifrovacích algoritmech. Asymetrické šifrování je šifrování pomocí 2 klíčů: jeden z nich se používá pro šifrování, druhý pro dešifrování. Říká se jim otevřený (veřejný) a soukromý klíč. Veřejný klíč znají ostatní a soukromý klíč zná pouze majitel elektronického podpisu a je uložen na místě nepřístupném ostatním.

Při podepisování se děje následující: nejprve se elektronický dokument pomocí matematických transformací zredukuje na sekvenci znaků určité velikosti – tomu se říká hashovací funkce.

Výsledná sekvence znaků (hash z dokumentu) je odesílatelem dokumentu zašifrována pomocí soukromého klíče a spolu s veřejným klíčem je odeslána příjemci. Příjemce dešifruje sekvenci znaků pomocí veřejného klíče, použije na dokument přesně stejnou hashovací funkci a porovná výsledek převodu s výsledkem dešifrování. Pokud se vše shoduje, pak nebyly v dokumentu po jeho podpisu odesílatelem provedeny žádné změny.

Popsané akce vám umožňují ověřit, že dokument nebyl změněn, ale neumožňují vám ověřit, že odesílatel je skutečně tím, za koho se vydává. Proto potřebujeme třetí stranu, které důvěřuje odesílatel i příjemce. Za tímto účelem odesílatel před odesláním dokumentu kontaktuje třetí stranu a požádá ji, aby podepsala svůj veřejný klíč svým elektronickým podpisem. Odesílatel nyní odešle příjemci dokument, jeho veřejný klíč a podpis třetí strany jeho klíče. Příjemce ověří podpis třetí strany na veřejném klíči a důvěřuje výslednému podpisu dokumentu.

Nyní přejděme k tomu, co je „slepý podpis“ a jak nám může pomoci s anonymizací.

Představme si, že ve výše popsaném příkladu je odesílatelem volič, dokumentem je hlasovací lístek a příjemcem je volební komise, nebo jak jsme řekli „složka sčítání hlasů“. Jako třetí strana (validátor) budeme mít komponentu „Seznam voličů“. V tomto případě může proces probíhat následovně.

Přehled postupu anonymizace pro systém elektronického hlasování na dálku

Volič si na svém zařízení vygeneruje dvojici klíčů – soukromý a veřejný. Protože jsou tyto klíče vytvořeny na jeho osobním zařízení v prohlížeči, zná je pouze on.

Pomocí těchto klíčů podepíše hlasovací lístek, aby kontroloval jeho integritu. Podepsaný hlasovací lístek a veřejný klíč zašle volební komisi. Aby byl hlasovací lístek přijat komponentou Distributed Vote Storage and Counting, musí ověřit, že veřejný klíč je podepsán validátorem.

Validátor (komponenta Seznam voličů) podepíše veřejný klíč až po ověření, že je volič na seznamu voličů.

Pro vyřešení problému zachování tajnosti hlasování by veřejný klíč voliče vytvořený na jeho zařízení neměl být nikomu znám. Ukazuje se, že validátor musí podepsat něco, co je mu neznámé. Úkol se zdá být nemožný, ale zde přijdou na pomoc kryptografické algoritmy - v tomto případě algoritmus „slepého podpisu“

Nejprve musí být na voličově zařízení maskován veřejný klíč. Maskování je provádění jednotlivých matematických operací na zařízení uživatele. Představte si, že jste mysleli na náhodné číslo od 1 do 100, pak na druhé náhodné číslo od 1 do 10 a třetí, od 10 do 50, zvýšili původně myšlené číslo na mocninu druhého čísla a rozdělili ho bez zbytek do třetice. Výsledek byl oznámen ostatním. Nebude pro vás obtížné obnovit původní číslo, protože znáte posloupnost akcí a čísla, která máte na mysli. Ale vaše okolí to nezvládne.

Maskování (zaslepení) veřejného klíče se provádí podle speciálního kryptografického algoritmu. V důsledku toho validátor podepíše maskovaný veřejný klíč, aniž by znal původní klíč. Zvláštností algoritmu je však to, že uživatel (volič), který obdržel podpis pro maskovaný klíč, může provést zpětné transformace a získat podpis, který je platný pro původní, nemaskovaný klíč.

Popsaný algoritmus je široce používán v protokolech tajného hlasování. Vzdálený elektronický hlasovací systém v současné době používá pro nevidomé podpisy algoritmus RSA s délkou klíče 4096 bitů.

Obecně platí, že postup anonymizace je následující.

  1. Když se vytvoří hlasování, vytvoří se samostatný pár klíčů „validátor“ a veřejný klíč se zaznamená do blockchainu. Pro každý hlas je vytvořen jedinečný pár klíčů.
  2. Uživatel je identifikován v identifikačním systému (v tomto případě v ESIA) a poskytuje povolení k přenosu svých identifikačních údajů z identifikačního systému do DEG PTC.
  3. Komponenta „Seznam voličů“ DEG PTC kontroluje přítomnost uživatele v seznamu voličů.
  4. Na zařízení uživatele jsou vytvořeny jeho osobní klíče - soukromé a veřejné, které zná pouze on.
  5. Veřejný klíč je na zařízení uživatele maskován
  6. Spolu s identifikačními údaji a maskovaným veřejným klíčem se uživatel dostane do komponenty „Seznam voličů“.
  7. Komponenta ještě jednou zkontroluje přítomnost uživatele v seznamu a skutečnost, že již dříve neobdržel podpis
  8. Pokud jsou všechny kontroly úspěšné, je klíč podepsán
  9. Skutečnost podepsání klíče je zaznamenána v blockchainu
  10. Uživatel na svém zařízení odstraní masku z veřejného klíče a obdrží soukromý klíč, veřejný klíč a podpis na veřejném klíči a všechny klíče zná pouze on.
  11. Poté je uživatel přesměrován do anonymní zóny - na samostatnou webovou stránku edg2020.gov.ru, kde jej není možné identifikovat (např. před přechodem se může připojit k VPN nebo změnit poskytovatele internetu a zcela změnit IP adresa)
  12. Přijetí hlasovacího lístku bude záviset pouze na tom, zda je ověřen podpis „validátora“ a zda takový klíč nebyl dříve použit.

Dále uvádíme popis algoritmu z pohledu kryptografie.
Možnosti podpisu a označení:

Přehled postupu anonymizace pro systém elektronického hlasování na dálku
Přehled postupu anonymizace pro systém elektronického hlasování na dálku

M – ve formátu odsazení FDN pro podpis.

Zdroj: www.habr.com

Přidat komentář