Herziening van het elektronische stemsysteem op afstand van de Centrale Verkiezingscommissie van de Russische Federatie

Op 31 augustus 2020 vond een openbare test plaats van het elektronische stemsysteem op afstand (hierna DEG genoemd) met behulp van blockchain-technologie, ontwikkeld in opdracht van de Centrale Verkiezingscommissie van de Russische Federatie.

Om kennis te maken met het nieuwe elektronische stemsysteem en te begrijpen welke rol blockchain-technologie daarin speelt en welke andere componenten worden gebruikt, starten we een reeks publicaties gewijd aan de belangrijkste technische oplossingen die in het systeem worden gebruikt. We raden aan om op volgorde te beginnen - met de vereisten voor het systeem en de functies van de deelnemers aan het proces

systeem vereisten

De basisvereisten die van toepassing zijn op elk stemsysteem zijn over het algemeen dezelfde voor traditioneel persoonlijk stemmen als voor elektronisch stemmen op afstand, en worden bepaald door de federale wet van 12.06.2002 juni 67 N 31.07.2020-FZ (zoals gewijzigd op XNUMX juli XNUMX). “Over basisgaranties, stemrecht en het recht om deel te nemen aan een referendum van burgers van de Russische Federatie.”

  1. Stemmen bij verkiezingen en referenda is geheim, waardoor de mogelijkheid van enige controle over de wil van een burger wordt uitgesloten (artikel 7).
  2. De mogelijkheid om te stemmen mag alleen worden geboden aan personen die een actief stemrecht hebben voor deze stemming.
  3. Eén kiezer – één stem. Dubbel stemmen is niet toegestaan.
  4. Het stemproces moet open en transparant zijn voor kiezers en waarnemers.
  5. De integriteit van de uitgebrachte stemmen moet worden gewaarborgd.
  6. Het mag niet mogelijk zijn de tussentijdse stemresultaten te berekenen voordat de stemming is afgerond.

We hebben dus drie deelnemers: de kiezer, de verkiezingscommissie en de waarnemer, tussen wie de volgorde van interactie wordt bepaald. Het is ook mogelijk om een ​​vierde deelnemer uit te kiezen: de instanties die de registratie van burgers op het grondgebied uitvoeren (voornamelijk het ministerie van Binnenlandse Zaken, evenals andere uitvoerende autoriteiten), aangezien actief kiesrecht verband houdt met staatsburgerschap en plaats van registratie.

Al deze deelnemers communiceren met elkaar.

Interactieprotocol

Laten we eens kijken naar het stemproces in een traditioneel stembureau, met een stembus en papieren stembiljetten. In algemeen vereenvoudigde vorm ziet het er als volgt uit: een kiezer komt naar het stembureau en presenteert een identificatiedocument (paspoort). In het stembureau is een kiescommissie aanwezig, waarvan de leden de identiteit van de kiezer en zijn aanwezigheid op de eerder opgestelde kiezerslijst verifiëren. Als de kiezer wordt gevonden, overhandigt een lid van de commissie de kiezer een stembiljet en tekent de kiezer voor ontvangst van het stembiljet. Hierna gaat de kiezer naar het stemhokje, vult het stembiljet in en plaatst het in de stembus. Om ervoor te zorgen dat alle procedures strikt door de wet worden gevolgd, wordt dit alles gecontroleerd door waarnemers (vertegenwoordigers van kandidaten, publieke controle-instellingen). Nadat de stemming is afgerond, telt de verkiezingscommissie, in aanwezigheid van waarnemers, de stemmen en stelt de stemuitslag vast.

De eigenschappen die nodig zijn voor het stemmen in een traditioneel stemsysteem worden geleverd door organisatorische maatregelen en de vastgestelde procedure voor de interactie tussen deelnemers: het controleren van de paspoorten van kiezers, het persoonlijk tekenen voor stembiljetten, het gebruik van stemhokjes en verzegelde stembussen, de procedure voor het tellen van de stemmen, enz. .

Voor een informatiesysteem, dat wil zeggen een elektronisch stemsysteem op afstand, wordt deze interactievolgorde een protocol genoemd. Omdat al onze interacties digitaal worden, kan dit protocol worden beschouwd als een algoritme dat wordt geïmplementeerd door individuele componenten van het systeem, en als een reeks organisatorische en technische maatregelen die door gebruikers worden uitgevoerd.

Digitale interactie stelt bepaalde eisen aan de geïmplementeerde algoritmen. Laten we eens kijken naar de acties die op een traditionele site worden uitgevoerd in termen van informatiesystemen en hoe dit wordt geïmplementeerd in het DEG-systeem dat we overwegen.

Laten we meteen zeggen dat blockchain-technologie geen ‘zilveren kogel’ is die alle problemen oplost. Om een ​​dergelijk systeem te creëren, was het noodzakelijk om een ​​groot aantal software- en hardwarecomponenten te ontwikkelen die verantwoordelijk waren voor verschillende taken, en deze met één enkel proces en protocol te verbinden. Maar tegelijkertijd werken al deze componenten samen met het blockchain-platform.

Systeem componenten

Vanuit technisch oogpunt is het DEG-systeem een ​​software- en hardwarecomplex (hierna STC genoemd), dat een reeks componenten combineert om interactie tussen deelnemers aan het verkiezingsproces in een uniforme informatieomgeving te garanderen.

Het interactiediagram van de componenten en deelnemers van het DEG PTC-systeem wordt weergegeven in de onderstaande figuur.

Herziening van het elektronische stemsysteem op afstand van de Centrale Verkiezingscommissie van de Russische Federatie
Klikbaar

Stemproces op afstand

Nu zullen we het proces van elektronisch stemmen op afstand en de implementatie ervan door de componenten van het DEG-software- en hardwarecomplex in detail bekijken.

Om te worden opgenomen op de lijst van deelnemers aan het elektronisch stemmen op afstand moet een kiezer volgens de Procedure voor elektronisch stemmen op afstand een aanvraag indienen op het portaal van de Rijksdiensten. Tegelijkertijd kunnen alleen die gebruikers die een bevestigd account hebben en met succes zijn vergeleken met het kiezersregister, referendumdeelnemers van het State Automated System "Verkiezingen" -systeem een ​​dergelijke aanvraag indienen. Na ontvangst van de aanvraag worden de gegevens van de kiezer nogmaals gecontroleerd door de Centrale Verkiezingscommissie van Rusland en geüpload naar Component Kiezerslijst PTC GR. Het downloadproces gaat gepaard met het vastleggen van unieke identificatiegegevens in de blockchain. Leden van de verkiezingscommissie en waarnemers hebben toegang tot de lijst via een speciaal geautomatiseerd werkstation dat zich in de gebouwen van de verkiezingscommissie bevindt.

Wanneer een kiezer een stembureau bezoekt, wordt hij geauthenticeerd (vergeleken met paspoortgegevens) en geïdentificeerd op de kiezerslijst, waarbij wordt gecontroleerd of deze kiezer niet eerder een stembiljet heeft ontvangen. Een belangrijk punt hierbij is dat het onmogelijk is om vast te stellen of de kiezer het ontvangen stembiljet in de stembus heeft geplaatst of niet, alleen het feit dat het stembiljet al eerder is uitgebracht. In het geval van PTC DEG vertegenwoordigt het bezoek van een kiezer het verzoek van een gebruiker om DEG-portaal is een website op vybory.gov.ru Net als een traditioneel stembureau bevat de website informatiemateriaal over lopende verkiezingscampagnes, informatie over kandidaten en andere informatie. Voor het uitvoeren van identificatie en authenticatie wordt gebruik gemaakt van de ESIA van het Rijksdienstenportaal. Het algemene identificatieschema blijft dus behouden, zowel bij het solliciteren als bij het stemmen.

Hierna begint de anonimiseringsprocedure: de kiezer krijgt een stembiljet dat geen identificatietekens bevat: het heeft geen nummer en is op geen enkele manier verbonden met de kiezer aan wie het is afgegeven. Het is interessant om deze optie te overwegen wanneer het stembureau is uitgerust met elektronische stemcomplexen - in dit geval wordt de anonimisering als volgt uitgevoerd: in plaats van een papieren stembiljet wordt de kiezer gevraagd om uit een stapel een kaart te kiezen met een streepjescode waarmee hij zal het stemapparaat benaderen. Er staat geen informatie over de kiezer op de kaart, alleen een code die bepaalt welk stembiljet het apparaat moet geven bij het presenteren van zo'n kaart. Bij een volledig digitale interactie is de hoofdtaak het implementeren van een anonimiseringsalgoritme, zodat het enerzijds onmogelijk is om gebruikersidentificatiegegevens vast te stellen, en anderzijds de mogelijkheid te bieden om alleen te stemmen aan die gebruikers die waren eerder in de lijst vermeld. Om dit probleem op te lossen gebruikt de DEG PTK een cryptografisch algoritme, in de professionele omgeving bekend als een ‘blinde elektronische handtekening’. We zullen er in de volgende publicaties in detail over praten en zullen ook de broncode publiceren; u kunt ook aanvullende informatie verzamelen uit publicaties op internet met behulp van trefwoorden - "cryptografische geheime stemprotocollen" of "blinde handtekening"

Vervolgens vult de kiezer het stembiljet in op een plaats waar het onmogelijk is om de gemaakte keuze te zien (een gesloten hokje) - als de kiezer in ons informatiesysteem op afstand stemt, dan is de enige dergelijke plaats het persoonlijke apparaat van de gebruiker. Hiervoor wordt de gebruiker eerst overgezet naar een ander domein − naar de anonieme zone. Voordat u overstapt, kunt u uw VPN-verbinding verhogen en uw IP-adres wijzigen. Het is op dit domein dat het stembiljet wordt weergegeven en de keuze van de gebruiker wordt verwerkt. De broncode die op het apparaat van de gebruiker draait, is in eerste instantie open en kan in de browser worden bekeken.

Zodra de keuze is gemaakt, wordt het stembiljet gecodeerd op het apparaat van de gebruiker met behulp van een speciaal coderingsschema, verzonden en opgenomen in onderdeel “Gedistribueerde opslag en tellen van stemmen”, gebouwd op het blockchain-platform.

Een van de belangrijkste kenmerken van het protocol is de onmogelijkheid om de stemresultaten te kennen voordat deze zijn afgerond. Bij een traditioneel stembureau wordt dit verzekerd door de stembus te verzegelen en door waarnemers te controleren. Bij digitale interacties is de beste oplossing het versleutelen van de keuze van de kiezer. Het gebruikte versleutelingsalgoritme voorkomt dat de resultaten worden onthuld voordat de stemming is voltooid. Hiervoor wordt een schema met twee sleutels gebruikt: één (publieke) sleutel, die bij alle deelnemers bekend is, wordt gebruikt om de stem te versleutelen. Het kan niet met dezelfde sleutel worden gedecodeerd; er is een tweede (privé)sleutel nodig. De privésleutel wordt zodanig verdeeld tussen deelnemers aan het verkiezingsproces (leden van verkiezingscommissies, de openbare kamer, exploitanten van telservers, enzovoort) dat elk afzonderlijk deel van de sleutel onbruikbaar is. U kunt pas met decodering beginnen nadat de privésleutel is verzameld. In het onderzochte systeem omvat de procedure voor het scheiden van sleutels verschillende fasen: het scheiden van een deel van de sleutel binnen het systeem, het scheiden van de sleutel buiten het systeem en het genereren van een gemeenschappelijke publieke sleutel. Het proces van encryptie en het werken met cryptografische sleutels zullen we in toekomstige publicaties gedetailleerd laten zien.

Nadat de sleutel is verzameld en gedownload, begint de berekening van de resultaten voor verdere opname in de blockchain en daaropvolgende aankondiging. Een kenmerk van het onderzochte systeem is het gebruik van homomorfe encryptietechnologie. We zullen dit algoritme in toekomstige publicaties in detail beschrijven en bespreken waarom deze technologie op grote schaal wordt gebruikt om stemsystemen te creëren. Laten we nu eens kijken naar het belangrijkste kenmerk ervan: gecodeerde stembiljetten die in het boekhoudsysteem zijn geregistreerd, kunnen zonder decodering op een zodanige manier worden gecombineerd dat het resultaat van het decoderen van een dergelijke gecombineerde cijfertekst de opgetelde waarde voor elke keuze in de stembiljetten zal zijn. Tegelijkertijd implementeert het systeem uiteraard wiskundige bewijzen van de juistheid van een dergelijke berekening, die ook in het boekhoudsysteem worden vastgelegd en door waarnemers kunnen worden geverifieerd.

Hieronder vindt u een overzicht van het stemproces.

Herziening van het elektronische stemsysteem op afstand van de Centrale Verkiezingscommissie van de Russische Federatie
Klikbaar

Blockchain-platform

Nu we de belangrijkste kenmerken van de implementatie van een elektronisch stemsysteem op afstand hebben onderzocht, kunnen we de vraag beantwoorden waarmee we zijn begonnen: welke rol speelt blockchain-technologie hierin en welke problemen kan deze oplossen?

In het geïmplementeerde stemsysteem op afstand lost blockchain-technologie een bepaald aantal problemen op.

  • De basistaak is het waarborgen van de integriteit van informatie in het kader van stemmen, en in de eerste plaats van stemmen.
  • Zorgen voor transparantie van de uitvoering en onveranderlijkheid van programmacode geïmplementeerd in de vorm van slimme contracten.
  • Het garanderen van de bescherming en onveranderlijkheid van de gegevens die bij het stemproces worden gebruikt: de lijst van kiezers, de sleutels die worden gebruikt om de stembiljetten in verschillende stadia van het cryptografische protocol te coderen, enzovoort.
  • Het bieden van gedecentraliseerde gegevensopslag, waarbij elke deelnemer een absoluut identieke kopie heeft, bevestigd door de eigenschappen van consensus in het netwerk.
  • De mogelijkheid om transacties te bekijken en de voortgang van het stemmen te volgen, wat volledig wordt weerspiegeld in de blokketen, vanaf het begin tot de registratie van de berekende resultaten.

We zien dus dat het zonder het gebruik van deze technologie bijna onmogelijk is om de noodzakelijke eigenschappen van het stemsysteem te verkrijgen en er vertrouwen in te stellen.

De functionaliteit van het gebruikte blockchain-platform wordt verrijkt door het gebruik van slimme contracten. Slimme contracten controleren elke transactie met gecodeerde stembiljetten op de authenticiteit van elektronische en ‘blinde’ handtekeningen, en voeren ook basiscontroles uit op de juistheid van het invullen van het gecodeerde stembiljet.

Bovendien is de component “Gedistribueerde opslag en tellen van stemmen” in het beschouwde elektronische stemsysteem op afstand niet alleen beperkt tot blockchain-knooppunten. Voor elk knooppunt kan een afzonderlijke server worden ingezet die de belangrijkste cryptografische functies van het stemprotocol implementeert: telservers.

Servers tellen

Dit zijn gedecentraliseerde componenten die de procedure bieden voor het gedistribueerd genereren van een stemversleutelingssleutel, evenals voor het ontsleutelen en berekenen van stemresultaten. Hun taken omvatten:

  • Zorgen voor gedistribueerde generatie van een deel van de stemversleutelingssleutel. De procedure voor het genereren van sleutels zal in de volgende artikelen worden besproken;
  • Het controleren van de juistheid van het gecodeerde stembiljet (zonder het te decoderen);
  • Het verwerken van stembiljetten in gecodeerde vorm om de uiteindelijke cijfertekst te genereren;
  • Gedistribueerde decodering van eindresultaten.

Elke uitvoeringsfase van het cryptografische protocol wordt vastgelegd in het blockchain-platform en kan door waarnemers op juistheid worden gecontroleerd.

Om het systeem in verschillende stadia van het stemproces de nodige eigenschappen te geven, worden de volgende cryptografische algoritmen gebruikt:

  • Elektronische handtekening;
  • Blinde ondertekening van de publieke sleutel van de kiezer;
  • ElGamal elliptische curve-coderingsschema;
  • Zero-knowledge-bewijzen;
  • Pedersen 91 DKG-protocol (Distributed Key Generation);
  • Protocol voor het delen van privésleutels met behulp van het schema van Shamir.

De cryptografische dienst zal in de volgende artikelen in meer detail worden besproken.

Resultaten van

Laten we enkele tussentijdse resultaten samenvatten van de overweging van het elektronische stemsysteem op afstand. We hebben het proces en de belangrijkste componenten die het implementeren kort beschreven, en ook de middelen geïdentificeerd om de eigenschappen te bereiken die nodig zijn voor elk stemsysteem:

  • Verifieerbaarheid van kiezers. Het systeem accepteert alleen stemmen van geverifieerde kiezers. Deze eigenschap wordt gewaarborgd door het identificeren en authenticeren van kiezers, evenals het vastleggen van de lijst met kiezers en het verlenen van toegang tot het stembiljet in de blockchain.
  • Anonimiteit. Het systeem waarborgt de geheimhouding van het stemmen, vastgelegd in de wetgeving van de Russische Federatie; de ​​identiteit van de kiezer kan niet worden vastgesteld op basis van een gecodeerd stembiljet. Geïmplementeerd met behulp van een ‘blind handtekening’-algoritme en een anonieme zone voor het invullen en verzenden van het stembiljet.
  • Vertrouwelijkheid van stemmen. Organisatoren en andere stemdeelnemers kunnen het resultaat van de stemming pas achterhalen als deze is voltooid, de stemmen zijn geteld en de eindresultaten zijn ontcijferd. Vertrouwelijkheid wordt bereikt door de stembiljetten te versleutelen en ze pas na de stemming te ontsleutelen.
  • Gegevens onveranderlijkheid. Kiezersgegevens kunnen niet worden gewijzigd of verwijderd. Onveranderlijke gegevensopslag wordt verzorgd door het blockchain-platform.
  • Controleerbaarheid. De waarnemer kan verifiëren dat de stemmen correct zijn geteld.
  • Betrouwbaarheid. De systeemarchitectuur is gebaseerd op de principes van decentralisatie, waardoor de afwezigheid van één enkel ‘point of fail’ wordt gegarandeerd.

Bron: www.habr.com

Voeg een reactie