V kryptografii jsou protokoly tajného hlasování protokoly výměny dat pro provádění bezpečného tajného elektronického hlasování přes internet pomocí počítačů, telefonů nebo jiných speciálních počítačů [1] . Tento směr kryptografie se stále vyvíjí, ale již se využívá v praxi.
Mnoho zemí světa [2] [3] , včetně Ruska [4][ není ve zdroji ] již zavádějí elektronické hlasování na komunální úrovni a výše. K zajištění správnosti, spolehlivosti a důvěrnosti takových voleb používají osvědčené bezpečnostní protokoly, které se opírají o osvědčené kryptografické systémy, jako je asymetrické šifrování a elektronický podpis . Navíc potřebují hotový materiální a právní základ. Souběh všech těchto faktorů tvoří přímý nástroj e-demokracie .
V souvislosti s rychlým rozvojem počítačových sítí dochází k přirozené „digitalizaci“ různých oblastí života, například ke vzniku elektronických měn . Podobně se objevilo digitální hlasování , hlavní nástroj e-demokracie . Dlouhou dobu sloužily mechanické prostředky jako náhrada běžných hlasovacích lístků při hlasování nebo měly na starosti pouze automatické sčítání papírových lístků. Hlavní práce na kontrole voličů a zaznamenávání hlasů odvedli jiní lidé. S takovým systémem nebylo potřeba protokolů popsaných níže. V posledních letech se však díky rozvoji internetu hlasování plně zautomatizovalo . Hlasování na dálku má mnoho výhod. Předpokládá se, že jsou výhodnější pro koncové uživatele, protože lidé mohou volit, aniž by opustili své domovy, zvyšuje to aktivitu voličů. Udržování elektronického hlasování je levnější: místo neustálého tisku hlasovacích lístků stačí vyvinout systém jednou [5] [6] . Navíc z předpokladu, že nikdo nemůže zasahovat do programu na hlasovacím zařízení, vyplývá, že elektronické hlasování je méně náchylné ke korupci, administrativnímu tlaku a lidskému faktoru [5] [7] [8] .
To však vyvolává řadu konkrétních problémů, které brání celistvosti voleb. Například při elektronických volbách v Nizozemsku a Francii se objevily pochybnosti o pravdivosti výsledků získaných pomocí strojů [3] . Na dálku je mnohem obtížnější autorizovat voliče nebo se ujistit, že nikdo neovlivnil průběh hlasování. Na druhou stranu internet poskytuje běžným voličům více možností, jak si ověřit, zda je hlas správně započítán. V současné době je elektronické hlasování plně legální nebo částečně použitelné v mnoha zemích světa [9] . S tím, jak se do nich zapojuje stále více lidí, roste potřeba bezpečnějších a efektivnějších metod jejich vedení, pro které se používají speciální kryptografické protokoly.
Klíčovým prvkem regulace elektronického hlasování je upevnění jeho možnosti v ústavě státu. Takové články mají ústavy USA, Švýcarska, Estonska, Velké Británie a některých dalších zemí [10] . Existuje skupina zemí, mezi které patří např. Finsko, Německo a Rusko [11] , které mají zkušenosti s pořádáním takových voleb, ale dosud nezavedly jejich plnou úpravu do legislativy. To samozřejmě není jediná byrokratická překážka. Dále jsou vyžadovány specifikace pro techniku, kterou se hlasování provádí, způsoby kontroly poctivosti výsledků, protokoly pro případ narušení hlasování a vytvoření vlastní technické základny. Na základě těchto parametrů je možné vypočítat index připravenosti země na zavedení digitálního hlasování (a jeho konkrétního protokolu) [12] .
Estonsko [13] bylo první zemí, která zavedla zákonné národní volby přes internet, následované Nizozemskem a Švýcarskem. V Rusku se tajné protokoly elektronického hlasování dosud používaly pouze na experimentální úrovni (například na fóru Seliger-2009 ), ale CEC převzala iniciativu k rozvoji elektronického hlasování, zejména v zájmu Ruska. občané v zahraničí [14] .
Ať je to jakkoli, samotný hlasovací protokol není pevně stanoven v žádné legislativě. Děje se tak z mnoha důvodů, od přetrvávající nedůvěry v elektronické způsoby hlasování až po snazší přechod od současného způsobu vedení k efektivnějšímu. Pokrok v technologii umožnil uvažovat o hlasování přes internet teprve asi před 20 lety [ upřesnit ] , takže tato sekce kryptografie se stále vyvíjí. Neexistují o něm žádné obecně přijímané knihy a žádný protokol dosud nezískal drtivou podporu specialistů [5] . Problém je umocněn tím, že organizace se zkušenostmi s implementací těchto systémů raději nezveřejňují podrobné zprávy popisující systém a problémy vzniklé při jeho zavádění.
Nyní se pro jednoduché průzkumy nebo hlasování v malých skupinách používá triviální algoritmus . V případě, že agent pro sčítání hlasů nemá žádný konkrétní důvod podvádět, je tento protokol nejlepší volbou. Ve volbách na státní úrovni jsou nejběžnější úpravy protokolu Fujioka-Okamoto-Ota [13] [15] . Právě on ukázal nejlepší výsledky v experimentálních volbách a vytvořil pozitivní mezinárodní precedens pro spolehlivé vedení voleb přes internet. Pro něj a některé jeho modifikace jsou k dispozici programy a elektronické prostředky hlasování pro použití jednotlivci [16] . Kromě toho jej za základ bere mnoho vědeckých článků popisujících nové protokoly tajného hlasování. Možná se díky rozvoji technologií a snižování ceny výkonných systémů objeví v blízké budoucnosti precedenty pro použití protokolu He-Su [17] . Přestože již má své modifikace, v praxi byl tento protokol aplikován pouze ve studentských experimentálních volbách [18] . Totéž lze říci o protokolu ANDOS . Přestože autoři mnoha článků tvrdí, že jej lze efektivně implementovat, existovaly pouze precedenty pro jeho použití v komunálních volbách [19] . Zbývající protokoly jsou prezentovány jako přechodné od jednoduchých ke komplexním nebo možné modifikace pro dosažení dalších cílů.
Žádoucí:
Věc je komplikována nejen tím, že účastníci hlasování a orgánem, který je provádí, mají důvod si navzájem nedůvěřovat, ale také tím, že samotný proces hlasování musí být chráněn před vnějšími zásahy. Vezmeme-li analogii k prezidentským volbám, pak se voliči musí chránit před přecpáním volebních lístků volební komisí, ÚVK je povinna zajistit, aby občané nemohli prodávat hlasy, a společně musí zabránit vměšování agentů jiných zemí [20 ] .
Některé požadavky si navzájem odporují. Například možnost zkontrolovat, jak konkrétní volič (dokonce i on sám) hlasoval, poskytuje příležitost pro prodej hlasů a další vrstvy ochrany snižují odolnost proti chybám a nákladovou efektivitu. Obecně se předpokládá, že ochrana před podvody ze strany volební agentury má přednost před zabráněním prodeje hlasů. Zaprvé to způsobí mnohem větší škody a zadruhé, i když protokol zaručuje nemožnost prokázat outsiderovi, pro koho byl hlas odevzdán, může volič najít řešení. Stačí například hlasovat přímo před kupujícím. Ochrana před zásahy zvenčí má však přednost před čímkoli jiným [24] .
Jednoduchý algoritmus elektronického hlasování je v podstatě korespondence s elektronickým podpisem mezi volební komisí a větším počtem voličů. Zde a níže: A - agentura provádějící elektronické hlasování ( angl. agency ), E - volič, oprávněný volič ( angl. volič ), B - digitální hlasovací lístek . B může obsahovat číslo, jméno kandidáta, dlouhý text nebo jakékoli jiné údaje označující volbu E , ověřující ji nebo nezbytné pro posílení bezpečnosti protokolu [20] . Průběh hlasování vypadá takto:
Kroky 1-3 jsou povinné. Hlavním cílem je zjistit a oznámit počet aktivních účastníků n . Ačkoli se některé z nich nemusí účastnit a některé dokonce nemusí vůbec existovat („mrtvé duše“ zlomyslně představené A ), schopnost manipulovat s hlasováním A je znatelně snížena. V budoucnu budou tyto kroky považovány za jeden krok „ke schválení seznamů“.
Krok 4. A vytvoří veřejný a soukromý klíč a učiní jej veřejným . Kdokoli může zašifrovat zprávu pomocí , ale pouze A ji může dešifrovat . Krok 5ETento protokol je extrémně jednoduchý, přesto postačuje k ochraně před vnějším zásahem, falšováním hlasů a diskreditací legitimních voličů. Voliči však musí naprosto důvěřovat A , protože jeho práci nikdo neřídí. Na jedné straně může E poskytnout útočníkovi, který kupuje hlasy, důkaz o tom, jak hlasoval, ale na druhé straně nemůže ověřit, že A správně zaúčtoval nebo dokonce obdržel svůj hlasovací lístek. Proto je triviální metoda použitelná pouze v komunitách, kde všichni důvěřují sobě navzájem a agentuře odpovědné za sčítání hlasů [20] .
Je to také protokol Nurmi-Salomaa - Santina [25] . Základní myšlenkou je nahradit jednu volební agenturu dvěma, aby se navzájem kontrolovaly. Zde a níže nechť V je registrátor ( angl. validator ), mezi jehož povinnosti patří příprava seznamů a také připuštění či nepřipuštění účastníka k hlasování. Posloupnost akcí vypadá takto:
Sdílením přijatého souboru v kroku 3 nemůže A následně odmítnout přijetí zprávy od E . Pomocí dvojice šifra – hlasovací lístek si každý volič může zkontrolovat, zda byl jeho hlas započítán správně, čímž odpadá problém nedostatečné kontroly nad A . Tento přístup však jen částečně řeší problém nutnosti absolutní důvěry v agenturu. V případě, že se A a V dokážou dohodnout, může A zmanipulovat hlasování. Pokud agentura ví, kdo se pod kterým identifikačním štítkem skrývá, může schválně zprávy od některých voličů nepřijímat. Navíc je tu problém „mrtvých duší“. Pokud V uvádí zjevně neexistující voliče, pak A bude moci od nich zfalšovat hlasovací lístky [26] .
V protokolech se dvěma zmocněnci není nutné, aby byl volič zmocněn současně zapisovatelem i volební komisí. Pokud volič prokáže matričnímu úřadu svou totožnost, může matrikář podepsat hlasovací lístek nebo voličský klíč. Právě ona bude v budoucnu hrát roli přístupu k hlasování [25] . Navíc není nutné používat štítky pro autorizaci uživatele. Z těchto důvodů bude v dalších algoritmech vynechán konkrétní způsob identifikace uživatele.
Schéma Fujioka-Okamoto-Ota, vyvinuté v roce 1992, je založeno na protokolu dvou agentur a slepém kryptografickém podpisu [27] . Mírným zkomplikováním protokolu toto schéma částečně řeší problém tajné dohody mezi oběma agenturami. Aby protokol fungoval, je nutný předem zvolený způsob maskování šifrování, pod kterým volič odešle hlasovací lístek do matriky. Slepé (maskové) šifrování je speciální typ šifrování, který umožňuje ujistit se, že dokument je pravý a podepsaný oprávněným uživatelem, ale neumožňuje zjistit údaje v něm obsažené. Šifrování masky musí být komutativní s elektronickým podpisem, tj .
Lorrie Cranor a Ron Citron ( Eng. Lorrie Faith Cranor, Ron K. Cytron ) v roce 1996 navrhli modifikaci protokolu Fujioka-Okamoto-Ota nazvanou Sensus [28] . Rozdíl spočívá v krocích 5-6. Poté , co A obdrží zašifrovanou zprávu od E , ji nejen přidá do zveřejněného seznamu, ale také odešle podepsaný hlasovací lístek zpět voliči jako potvrzení. Tímto způsobem E nemusí čekat na hlasování všech ostatních a může dokončit hlasování v jedné relaci. Nejen, že je to pohodlné pro koncového uživatele, ale také to poskytuje další důkaz, že se E účastnil voleb. Sensus navíc reguluje další pomocné moduly, které zjednodušují a automatizují proces hlasování.
Nyní, i když se agenturám podaří dohodnout, A nebude schopen identifikovat voliče dříve, než získá klíč. I když má stále možnost odmítat zprávy, již nemá možnost ignorovat zprávy konkrétně od „nežádoucích“ voličů. Zůstává jen problém odevzdat hlasy voličům, kteří nepřišli k volbám. Navíc, aby volič mohl hlasovat, a to i kvůli technické chybě, je zapotřebí další modul.
V současnosti je protokol Fujioka-Okamoto-Ota (stejně jako jeho modifikace včetně Sensus) jedním z nejosvědčenějších protokolů pro elektronické hlasování na dálku. Právě jeho variace byla použita při elektronických volbách v Estonsku [13] [15] . Další modifikace protokolu Fujioka-Okamoto-Ota byla použita k provádění samosprávných voleb mezi studenty na Princetonské univerzitě [29] . Moduly Sensus byly napsány pod systémem UNIX pomocí kryptografické knihovny RSAREF [30] , takže je může používat každý.
V roce 1998 představili Qi He a Zhongmin Su (Qi He, Zhongmin Su) ještě pokročilejší volební protokol než Sensus [17] . Tento algoritmus splňuje většinu požadavků na bezpečný digitální hlasovací protokol. Stejně jako Sensus používá protokol Hae-Su myšlenku slepého podpisu, ale není to podepsán hlasovací lístek voliče, ale klíč voliče. To umožňuje voličům změnit názor před koncem hlasování a dále omezuje možnosti registrátora a volební agentury v případě tajné dohody. Tento protokol vyžaduje předem určenou metodu zaslepeného šifrování a hashovací funkci . Stejně jako v protokolu Fujioka-Okamoto-Ota musí být maskovací šifrování komutativní s elektronickým podpisem V : stejně jako .
Schéma He-Su splňuje téměř všechny požadavky na protokol tajného hlasování. Zbývá jen zvýšená pobídka ke koupi/prodeji hlasů [17] . A a V nyní nemají příležitost podvádět, protože nyní jsou zveřejněny všechny seznamy: možní voliči, registrované a autorizované klíče. V souladu s tím není možné přivést neexistující voliče nebo volit stávající, kteří nepřišli. Zároveň při sestavování těchto seznamů nedostává volební agentura ani zapisovatel další informace [31] . Voliči mají možnost svůj hlas změnit. Hlavní nevýhodou He-Su protokolu je jeho srovnatelná složitost. Protože protokol vyžaduje k údržbě velké množství prostředků, je zranitelný vůči útokům DoS .
Základem je protokol ANDOS [32] ( All or Nothing Disclosure Of Secrets ) . Cílem je zvýšit sílu protokolu nahrazením předem zvoleného šifrování tajným klíčem s hashováním s vlastní funkcí. Jádro algoritmu je popsáno níže. Pro stručnost byla z popisu vynechána opatření a bezpečnostní opatření. V případě potřeby můžete použít metody kryptografie na veřejné klíče a elektronický podpis . Předpokládá se, že pro ochranu před zásahy zvenčí mohou voliči zasahovat do informací i mezi sebou, ale pak může do hlasování zasahovat zlomyslný volič, takže se tento krok také přeskakuje.
Zjednodušenou verzí kroků 2-4 by mohlo být, že E pošle pár přímo A. V tomto případě však nebude pro E možné jak zkontrolovat, zda byl hlas správně započítán, tak znovu hlasovat v pozdější fázi. To může vyjít, protože pokud A zveřejní identifikátor v seznamu těch, kteří se řídili strategií , pak E bude jistě vědět, že jeho hlas byl započítán správně, ale později se někdo bude moci zamaskovat, že má identifikátor, a změnit hlasujte, abyste ho potěšili. Na druhou stranu, pokud A zveřejní pouze počet účastníků podle určité strategie , pak si účastníci nemohou nic ověřit a A může zveřejnit jakékoli výsledky voleb. Hashovací funkce se používají k zabránění útočníkům v určování počtu hlasů s určitou strategií (tato informace se ukazuje jako užitečná), protože úkol najít počáteční hodnoty je výpočetně obtížný, s ohledem na charakteristický čas hlasování. .
Krok 5. Když hlasování skončí, A oznámí průběžné výsledky a zveřejní seznamy strategií (kandidátů) s čísly odpovídajícími účastníkům, kteří hlasovali pro . Krok 6. Pokud si účastník E všimne, že jeho hlas je umístěn na špatném seznamu, odešle A stížnost ve formě trojitého , která jasně ukazuje správnost nebo chybu výsledku.Po nějaké době můžete spustit postup pro změnu hlasů (viz poslední krok). Jednodušší možnost (krok 7) lze použít k provedení jediného kola opakovaného hlasování.
Krok 7. Účastník E , který chce změnit svůj výběr, pošle A trojici , kde je nová strategie. Když nastane konec kola změny hlasování, A zveřejní změněné výsledky. Poté se validace opakuje. Krok 7'. Stejné jako v kroku 7, ale nyní strana E pošle pár , kde je nová hašovací funkce zvolená E . A potvrdí přijetí zprávy zveřejněním , načež E pošle pár A. Nyní A zná vztah mezi a . Při opětovném sčítání výsledků se odebere z odpovídajícího seznamu a přidá se do seznamu pomocí . Soutěžící E může napadnout výsledek jako dříve.Ve srovnání s krokem 7 má krok 7' tu výhodu, že účastníci jiní než E mohou pouze pozorovat, že něco ze seznamu zmizelo , ale nebudou vědět, že se to přesunulo do seznamu .
V protokolu ANDOS je možné, že dva voliči zvolí stejné i , čímž získají stejný identifikátor . Možná řešení tohoto problému [32] :
Protokol ANDOS je poměrně drahý, ale nevyžaduje nezávislého registrátora V . Voliči si musí vybrat a odeslat nejen identifikátory, ale také hashovací funkce, což může být obtížné nebo zdlouhavé [32] . A může stále podvádět, rozdělovat hlasy těch, kteří deklarovali svůj záměr zúčastnit se hlasování, ale neučinili svou volbu, a E má zvýšenou motivaci kupovat / prodávat hlasy, protože si můžete být jisti výsledkem hlasování. transakce.
Existuje mnoho dalších protokolů a kryptografických primitiv s různými specifickými vlastnostmi [33] . Nejsou tak široce známé a nepoužívají se ke zvládání konkrétních environmentálních omezení nebo k dosažení dalších cílů.
Například protokol dvou agentur by mohl být rozšířen na volební centra zastupující různé frakce, které jsou proti, ale mají zájem na spravedlivých volbách. V tomto případě může být rozdělení hlasů zfalšováno pouze v případě, že se všechna centra dohodnou, což podle konvence nedává smysl. Takový algoritmus využívá nějaké schéma neinteraktivního veřejně ověřeného [34] tajného sdílení ( NIVSS - Non-Interactive Verifiable Secret Sharing ). V závislosti na zvolené metodě tajného sdílení (kdo pro koho hlasoval) může mít protokol různou odolnost vůči různým útokům a různou rychlost zpracování dat. Dobrý výsledek se ukáže například použitím diskrétního logaritmického problému k zajištění skrytí dat [35] .
Hlavní nevýhodou systému je, že ačkoli pouze všechna volební centra společně mohou falšovat výsledky, kterékoli z nich samotné může volby narušit. Řešením dilematu je další modifikace algoritmu, kdy rozdělením hlasů lze obnovit centra. Ale pak budou spiklenecká centra schopna zfalšovat výsledky a narušit volby - . Toto schéma by mohlo být vylepšeno tak, aby umožňovalo hlasování s více možnostmi, stejně jako postupné nebo paralelní hlasování. Další plus: v takovém systému volič nemůže prokázat, koho přesně volil, což extrémně ztěžuje nákup/prodej hlasů [36] .
Aby tento protokol fungoval, je vyžadováno primitivum nástěnky – datová oblast, kterou může každý číst celou a každý může zapisovat pouze do své části. V podstatě se jedná o oblast sdílené paměti se síťovým přístupem a určitými kryptografickými omezeními. Pokud se voleb účastní volební centra a voliči , pak počet bitů požadovaných pro volební tabuli je , kde je nějaká proměnná kryptografické síly úměrná počtu klíčových bitů.
Mezi další speciální kryptografická primitiva lze vyčlenit „sběratele“ ( anglicky pollster ) - pohodlné rozhraní mezi uživatelem a systémem. Myšlenka spočívá v tom, že lidský volič může odevzdat volební lístek sběrateli, který za něj udělá veškerou práci při šifrování a výměně dat s ostatními stranami. Volič musí tomuto modulu plně důvěřovat. To je silná podmínka, ale je relativně snadno realizovatelná, protože sběrač běží na voličském stroji.