Maria Proč nebyl ten olej prodán a peníze rozdány chudým?

Elektronický volební systém?

25. 03. 2018

Tento návrh je pracovní verze. Na svém e-mailu mq@jmq.cz uvítám návrhy a připomínky. Mám pocit, že by to mělo fungovat, a myslím si, že text to dokazuje dostatečně – má-li někdo protipříklad nebo ví o jiném vážném problému celého návrhu, sem s ním!

Požadavky na volby

Než můžu navrhnout nějaký volební systém, musím si rozmyslet, co od něj vlastně chci. Proto formuluji základní požadavky, co je třeba zajistit, aby byly volby rozumně férové.

1. Anonymita

Pokud nechci, tak se nikdo nemá dozvědět, jaký byl můj hlas. V současnosti je to zajištěno tak, že neoznačenou obálku s hlasem vhodím do hlasovací urny, kde jsou další stejně neoznačené obálky. V nich pak nelze rozpoznat, kdo je autorem kterého hlasu.

2. Unicita

Nikdo nesmí hlasovat více než jednou. Tento princip dnes velmi chatrně zajišťuje systém voličských seznamů a voličských průkazů, kde voliče volební komise zakroužkuje. (Pokud se volební komise splete, může se stát, že někoho neoprávněně odmítne, což se těžko dokazuje.)

3. Autenticita hlasu

Každý hlas má svého hlasujícího. Stejně jako předchozí princip je tento dnes zajišťován zodpovědností volební komise za to, že jim nikdo nehodí do urny obálku bez ověření. Chatrnou pojistkou je kontrolní součet počtu obálek oproti počtu kroužků v papírech. Údajně se děje i to, že komise radši udělá o kroužek víc, než aby měla průser. Nikdo to samozřejmě nepřizná, neb je to trestné.

4. Autenticita voliče

Každý hlasuje oprávněně. Taktéž zajišťováno zodpovědností volební komise, která ověřuje totožnost každého hlasujícího. Pojistku tento systém nemá žádnou.

5. Univerzalita

Všechny hlasy se započítají. Není přípustné, aby komise například vyhazovala lístky jim nesympatických stran. Proti tomu dnes není obrany, snad kromě účasti zástupce kandidujícího subjektu v každé volební komisi, kterých je přes 14 tisíc.

6. Ověřitelnost

Každý může ověřit, jestli byl jeho hlas započítán. Tato podmínka je sporná, neboť její dodržení podstatně zjednoduší nakupování hlasů. Dnes je to v omezené míře možné, jak dokládá například kauza s nezapočítanými preferenčními hlasy na kandidátkách ODS v roce 2017 ve Středočeském kraji.

Příprava na volby

Hlídač

Každý, kdo disponuje rozumným připojením k internetu a volným místem na disku, může poskytnout virtuální volební urnu. Tento prvek systému nazývám Hlídačem. Jeho úkolem je sbírat hlasy v zašifrované podobě, po ukončení voleb je rozšifrovat a následně sečíst.

Úložiště každého Hlídače je veřejné. Kdokoliv si v průběhu voleb může stáhnout kompletní volební data, a Hlídači si data od sebe vzájemně stahují. Princip úložiště je podobný softwaru Git, kdy každý zápis do úložiště v sobě nese digitální otisk předchozího stavu. Není tedy možné jednoduše měnit historii.

Alespoň jedno takové úložiště provozuje i stát.

Příprava klíčů a úložišť

Stát zveřejní veřejný klíč, a to extrémně dlouhý. Pokud je dnes standardem mít jednotky až desítky kb dlouhé klíče, pak vhodná délka je v řádech megabitů. Tento veřejný klíč je unikátní jen pro tyto volby, není v žádném případě přípustné klíče recyklovat. Tento veřejný klíč budu nadále označovat jako Autorita/V

Každý Hlídač zveřejní jednorázový veřejný klíč v úrovni běžných bezpečnostních standardů. Příslušný tajný klíč bude zveřejněn na konci voleb. Tento veřejný klíč označuji jako Hx/V, kde x je označení příslušného Hlídače.

Stát taktéž ověří každému, kdo by chtěl volit, jeho elektronický šifrovací certifikát. Pokud to systém unese, měl by to zvládnout i systém datových schránek.

Tato zveřejnění se dějí zápisem klíče do vlastního datového úložiště.

Autorizace – ověření totožnosti voliče

K úspěšnému splnění této podmínky je potřeba asymetrická šifra se specifickými vlastnostmi. Šifrovací systém RSA s extrémně dlouhým klíčem by měl dostačovat. Je třeba, aby systém uměl alespoň omezenou komutativitu šifrování a dešifrování.

Každý volič, který chce volit po internetu, si vygeneruje pár tajného a veřejného klíče v běžné velikosti, označovaný dále jako Token/V a Token/T. Kromě toho si vygeneruje pár dočasných klíčů extrémní velikosti, označovaný dále jako Dočasný/A a Dočasný/B.

Volič pak zašifruje Token/V klíčem Dočasný/A, výsledek podepíše svým státem ověřeným certifikátem a vloží do systému, případně odešle datovou schránkou. Stát ověří pravost certifikátu a do svého úložiště vloží jak původní zprávu od voliče, tak Token/V zašifrovaný klíčem Dočasný/A a výsledek zašifrovaný ještě klíčem Autorita/T.

Nyní je ověřitelné a veřejné, že:

Volič nyní rozšifruje zveřejněný výsledek klíčem Dočasný/B a získá Token/V zašifrovaný pouze klíčem Autorita/T. Zde je nutná komutativita použitého šifrovacího systému. Byl by lepší kvantově odolný šifrovací systém, slibně vypadají šifrovací systémy založené na celočíselné mřížce, ale zatím o nich nevím dost, takže zůstávám u starého dobrého, byť poměrně slabého RSA.

Výsledek autorizace, tedy Token/V zašifrovaný klíčem Autorita/T, označuji dále jako T/A.

Průběh voleb a sčítání hlasů

Hlasování

Volič vytvoří digitální hlasovací lístek (což můžou být prakticky jakákoli data v předem domluveném formátu, například JSON nebo XML), přiloží k němu T/A a digitální podpis klíčem Token/T (který je ověřitelný přiloženým klíčem Token/V.

Takto podepsaný hlasovací lístek pak volič několikrát v sobě zašifruje veřejnými klíči různých Hlídačů, kterým důvěřuje, a vloží je do úložiště (tak, že výsledné zprávy také nějakým Hlídačům pošle). Tím, že jsou lístky šifrované, se zajistí utajení výsledků voleb až do doby, než volby skončí. Na tento krok se velmi hodí naopak asymetrická šifra, která komutativní není.

Volič může vložit do úložiště více stejných hlasů podepsaných stejným klíčem; vloží-li více různých, jedná se o neplatný hlas. Takto se může volič chránit před případy, kdy nějaký Hlídač na konci voleb svůj tajný klíč nezveřejní, a všechny hlasy zašifrované jeho veřejným klíčem by tak zůstaly nezapočítané.

Sčítání hlasů

Na konci voleb umístí každý Hlídač do úložiště svůj veřejný klíč. Tím se každému umožní rozšifrovat kompletní výsledky voleb a každý může spočítat výsledky a zveřejnit je.

Společně s tím je možné ověřit, že jsou všechny hlasy správně podepsané a všechny T/A ověřit proti klíči Autorita/V.

Splnění podmínek

  1. Anonymita – dokud není zveřejněn Token/T, Dočasný/A nebo Dočasný/B, není možné spárovat T/A s konkrétním voličem ani zjistit, kdo volil.

  2. Unicita – porušení podmínky při autorizaci je veřejné a ověřitelné v krátkém čase, není však žádná technická pojistka proti tomu, aby se to stalo. (To stojí za vylepšení!)

  3. Autenticita hlasu – každý hlas je svázán s klíčem T/A, který podepsal stát, a tedy k němu existuje záznam z autorizace. Zde také není žádná technická pojistka proti libovůli státu podepsat i další tokeny mimo záznam. (To neumím vylepšit a myslím si, že to ani moc dobře nejde.)

  4. Autenticita voliče – je veřejné, kdo požádal o autorizaci; jestli pak skutečně hlasoval, to již veřejné není. Další viz výše.

  5. Univerzalita – tuto zajišťuje systém Hlídačů, kde do posledního rozšifrování není vůbec jasné, jaký hlas v úložišti vlastně je.

  6. Ověřitelnost – každý si může spočítat celé volby sám z dostupných dat a ověřit, že data obsahují jeho hlasovací lístek.

Kupčení s hlasy a další zranitelnosti

Pravidelně se ve volbách stává, že někdo vybízí voliče, aby šli volit konkrétního kandidáta či stranu za úplatu. Tento systém by se mohl rozšířit až do toho, že by si dotyčný vyřídil autorizaci pro internetové volby a svůj token by pak přenechal někomu jinému, kdo by hlasoval místo něj.

Nabízí se otázka, jak znepříjemnit takovým volebním nákupčím jejich byznys s hlasy. Pokud by však mělo být možné hlasovat skutečně online, pak bude stačit předat své hlasovací právo pouhým umožněním přístupu třetí osobě do své datové schránky nebo ke svému osobnímu kvalifikovanému šifrovacímu certifikátu. To je samo o sobě rizikem libovolné internetové volby.

Horší je situace, kdy je osobní počítač voliče napaden nějakým zákeřným virem, který převezme nad počítačem kontrolu a bude hlasovat, jak se mu zlíbí. Tento problém by mohl být řešitelný jednoúčelovým zařízením určeným pouze pro šifrování nebo otevřeným (open source) volebním softwarem, pokaždé však pouze s nějakou pravděpodobností menší než 100%.

Dlužno však podotknout, že podobné problémy mohou nastat i v případě papírových voleb, jen nezávisí na počítačových programech, ale na členech volební komise.

Poděkování

Doplnění: V současnosti nedoporučuju volit Svobodné, neboť se nedokážou shodnout ani na jednodušších věcech, natož na zdravotnictví. (leden 2020)

Naoko bezplatné školství 18. 12. 2019 Skutečné náklady na vzdělávání ve veřejné ZŠ 06. 12. 2019 Lékařský cech zatopí novým gynekologům 18. 01. 2019 Cesta ke svobodnému školství 03. 09. 2018 Externality: Hluk 30. 05. 2018 Státní maturita – povinné fiasko 25. 05. 2018 Elektronický volební systém? 25. 03. 2018 Liberální cesta k lepšímu zdravotnictví 13. 02. 2018 Prezident 2018: Mirek Topolánek se sebezapřením 06. 01. 2018 Základní principy svobodného státu 06. 01. 2018 Vybrané legislativní překážky na cestě k porodnímu domu 14. 12. 2017 Zdravotnictví na míru, nebo rušení lůžek? 13. 12. 2017 Lepší péči u porodů zajistí konkurence 28. 11. 2017 Ministerstvo chronicky nemocných 17. 10. 2017 Rodiče jsou víc než stát 25. 08. 2017 Vraťme svobodu do školství 24. 06. 2017 Kodér, ten tvrdej chleba má 17. 03. 2017 Češi jsou chytří a schopní lidé 24. 02. 2017 Svoboda pro těhotné a rodící ženy 15. 11. 2016
Maria Matějka, mq@jmq.cz, 2017–2020.
Licence Creative Commons Toto dílo podléhá
licenci CC-BY-SA 4.0. Spolupracujeme s Institutem Jeho Majestátu Quida.