Revisione del sistema di voto elettronico a distanza della Commissione Elettorale Centrale della Federazione Russa

Il 31 agosto 2020 si è svolto un test pubblico del sistema di voto elettronico a distanza (di seguito denominato DEG) utilizzando la tecnologia blockchain, sviluppato per ordine della Commissione elettorale centrale della Federazione Russa.

Per conoscere il nuovo sistema di voto elettronico e capire quale ruolo gioca in esso la tecnologia blockchain e quali altri componenti vengono utilizzati, stiamo avviando una serie di pubblicazioni dedicate alle principali soluzioni tecniche utilizzate nel sistema. Suggeriamo di iniziare in ordine, con i requisiti del sistema e le funzioni dei partecipanti al processo

Requisiti di sistema

I requisiti di base applicabili a qualsiasi sistema di voto sono generalmente gli stessi per il voto tradizionale di persona e per il voto elettronico a distanza e sono determinati dalla legge federale del 12.06.2002 giugno 67 N 31.07.2020-FZ (modificata il XNUMX luglio XNUMX). “Sulle garanzie fondamentali, il diritto di voto e il diritto di partecipare al referendum dei cittadini della Federazione Russa”.

  1. Il voto alle elezioni e ai referendum è segreto, escludendo la possibilità di qualsiasi controllo sulla volontà di un cittadino (articolo 7).
  2. L'opportunità di votare dovrebbe essere offerta solo alle persone che hanno un diritto di voto attivo per questo voto.
  3. Un elettore – un voto, il “doppio” voto non è consentito.
  4. Il processo di voto deve essere aperto e trasparente per gli elettori e gli osservatori.
  5. L'integrità del voto espresso deve essere garantita.
  6. Non dovrebbe essere possibile calcolare i risultati della votazione provvisoria prima che la votazione sia completata.

Quindi, abbiamo tre partecipanti: l'elettore, la commissione elettorale e l'osservatore, tra i quali viene determinato l'ordine di interazione. È anche possibile individuare un quarto partecipante: gli enti che effettuano la registrazione dei cittadini sul territorio (principalmente il Ministero degli Interni, così come altre autorità esecutive), poiché il suffragio attivo è associato alla cittadinanza e al luogo di registrazione.

Tutti questi partecipanti interagiscono tra loro.

Protocollo di interazione

Consideriamo il processo di voto in un seggio elettorale tradizionale, con urna elettorale e schede cartacee. In una forma generalmente semplificata, funziona così: l'elettore si presenta al seggio elettorale e presenta un documento di identificazione (passaporto). Presso il seggio elettorale è presente una commissione elettorale distrettuale, il cui membro verifica l'identità dell'elettore e la sua presenza nella lista elettorale precedentemente compilata. Se l'elettore viene trovato, un membro della commissione consegna all'elettore una scheda elettorale e l'elettore firma per ricevere la scheda. Successivamente l'elettore si reca alla cabina elettorale, compila la scheda e la inserisce nell'urna. Per garantire che tutte le procedure siano rigorosamente seguite dalla legge, tutto ciò è monitorato da osservatori (rappresentanti dei candidati, istituzioni pubbliche di controllo). Al termine della votazione, la commissione elettorale, alla presenza degli osservatori, conta i voti e stabilisce i risultati della votazione.

Le proprietà necessarie per votare in un sistema di voto tradizionale sono fornite dalle misure organizzative e dalla procedura stabilita per l'interazione dei partecipanti: controllo dei passaporti degli elettori, firma personale per le schede elettorali, utilizzo di cabine elettorali e urne sigillate, procedura di conteggio dei voti, ecc. .

Per un sistema informativo, che è un sistema di voto elettronico a distanza, questo ordine di interazione è chiamato protocollo. Poiché tutte le nostre interazioni stanno diventando digitali, questo protocollo può essere considerato come un algoritmo implementato dai singoli componenti del sistema e un insieme di misure organizzative e tecniche eseguite dagli utenti.

L'interazione digitale impone determinati requisiti agli algoritmi implementati. Vediamo le azioni eseguite su un sito tradizionale in termini di sistemi informativi e come queste vengono implementate nel sistema DEG che stiamo considerando.

Diciamo subito che la tecnologia blockchain non è la “proiettile d’argento” che risolve tutti i problemi. Per creare un sistema del genere, è stato necessario sviluppare un gran numero di componenti software e hardware responsabili di compiti diversi e collegarli con un unico processo e protocollo. Ma allo stesso tempo, tutti questi componenti interagiscono con la piattaforma blockchain.

Componenti del sistema

Da un punto di vista tecnico, il sistema DEG è un complesso software e hardware (di seguito denominato STC), che combina una serie di componenti per garantire l'interazione tra i partecipanti al processo elettorale in un ambiente informativo unificato.

Il diagramma di interazione dei componenti e dei partecipanti del sistema DEG PTC è mostrato nella figura seguente.

Revisione del sistema di voto elettronico a distanza della Commissione Elettorale Centrale della Federazione Russa
cliccabile

Procedura di voto a distanza

Considereremo ora in dettaglio il processo di voto elettronico a distanza e la sua implementazione da parte dei componenti del complesso software e hardware DEG.

Secondo la Procedura per il voto elettronico a distanza, per essere inserito nell'elenco dei partecipanti al voto elettronico a distanza, l'elettore deve presentare una domanda sul portale dei Servizi dello Stato. Allo stesso tempo, solo gli utenti che hanno un account confermato e sono stati confrontati con successo con il registro degli elettori, i partecipanti al referendum del sistema “Elezioni” del sistema statale automatizzato possono presentare tale domanda. Dopo aver ricevuto la domanda, i dati dell’elettore vengono nuovamente controllati dalla Commissione elettorale centrale russa e caricati su Componente Elenco elettori PTC GRADO. Il processo di download è accompagnato dalla registrazione di identificatori univoci nella blockchain. I membri della commissione elettorale e gli osservatori hanno accesso alla visione dell'elenco mediante un'apposita postazione automatizzata situata nei locali della commissione elettorale.

Quando un elettore si reca al seggio elettorale, viene autenticato (confrontato con i dati del passaporto) e identificato nella lista degli elettori, oltre a verificare che questo elettore non abbia precedentemente ricevuto una scheda elettorale. Un punto importante qui è che non è possibile stabilire se l'elettore ha messo o meno la scheda ricevuta nell'urna, ma solo il fatto che la scheda elettorale sia già stata emessa prima. Nel caso di PTC DEG, la visita di un elettore rappresenta la richiesta di un utente di Portale DEG è un sito web situato su vybory.gov.ru Come un tradizionale seggio elettorale, il sito web contiene materiale informativo sulle campagne elettorali in corso, informazioni sui candidati e altre informazioni. Per effettuare l'identificazione e l'autenticazione viene utilizzato l'ESIA del Portale dei Servizi dello Stato. Pertanto, lo schema generale di identificazione viene mantenuto sia in fase di candidatura che in fase di voto.

Successivamente inizia la procedura di anonimizzazione: all'elettore viene consegnata una scheda che non contiene alcun segno di identificazione: non ha un numero, non è in alcun modo collegata all'elettore a cui è stata rilasciata. È interessante considerare l'opzione quando il seggio elettorale è dotato di complessi di voto elettronico - in questo caso l'anonimizzazione viene eseguita come segue: invece di una scheda cartacea, all'elettore viene chiesto di scegliere da una pila qualsiasi carta con un codice a barre, con il quale si avvicinerà al dispositivo di voto. Sulla tessera non ci sono informazioni sull'elettore, solo un codice che determina quale scheda elettorale il dispositivo deve fornire quando presenta tale tessera. In un'interazione completamente digitale, il compito principale è quello di implementare un algoritmo di anonimizzazione tale che, da un lato, non sia possibile stabilire alcun dato identificativo dell'utente e, dall'altro, di fornire la possibilità di votare solo a quegli utenti che erano stati precedentemente identificati nell'elenco. Per risolvere questo problema, il DEG PTK utilizza un algoritmo crittografico, noto nell’ambiente professionale come “firma elettronica cieca”. Ne parleremo in dettaglio nelle pubblicazioni seguenti e pubblicheremo anche il codice sorgente; potrete anche raccogliere ulteriori informazioni da pubblicazioni su Internet utilizzando parole chiave: "protocolli di voto segreto crittografico" o "firma cieca"

Quindi l'elettore compila la scheda in un luogo dove è impossibile vedere la scelta fatta (una cabina chiusa) - se nel nostro sistema informativo l'elettore vota a distanza, l'unico posto simile è il dispositivo personale dell'utente. Per fare ciò, l'utente viene prima trasferito su un altro dominio − alla zona anonima. Prima di cambiare, puoi aumentare la tua connessione VPN e modificare il tuo indirizzo IP. È su questo dominio che viene visualizzata la scheda elettorale e viene elaborata la scelta dell'utente. Il codice sorgente eseguito sul dispositivo dell'utente è inizialmente aperto e può essere visualizzato nel browser.

Una volta effettuata la scelta, la scheda elettorale viene crittografata sul dispositivo dell'utente mediante uno speciale schema di crittografia, inviata e registrata componente “Archiviazione distribuita e conteggio dei voti”, costruito sulla piattaforma blockchain.

Una delle caratteristiche più importanti del protocollo è l'impossibilità di conoscere i risultati della votazione prima che questa sia completata. In un seggio elettorale tradizionale ciò viene garantito sigillando le urne e monitorando gli osservatori. Nelle interazioni digitali, la soluzione migliore è crittografare la scelta dell'elettore. L'algoritmo di crittografia utilizzato impedisce che i risultati vengano rivelati prima del completamento della votazione. A questo scopo viene utilizzato uno schema con due chiavi: una chiave (pubblica), nota a tutti i partecipanti, viene utilizzata per crittografare la voce. Non può essere decrittografato con la stessa chiave; è necessaria una seconda chiave (privata). La chiave privata viene divisa tra i partecipanti al processo elettorale (membri delle commissioni elettorali, camera pubblica, gestori dei server di conteggio, ecc.) in modo tale che ogni singola parte della chiave sia inutile. Puoi iniziare la decrittazione solo dopo che la chiave privata è stata raccolta. Nel sistema in esame, la procedura di separazione delle chiavi prevede diverse fasi: separazione di parte della chiave all'interno del sistema, separazione della chiave all'esterno del sistema e generazione di una chiave pubblica comune. Mostreremo in dettaglio il processo di crittografia e il lavoro con le chiavi crittografiche nelle pubblicazioni future.

Dopo che la chiave è stata raccolta e scaricata, inizia il calcolo dei risultati per la loro ulteriore registrazione nella blockchain e il successivo annuncio. Una caratteristica del sistema in esame è l'uso della tecnologia di crittografia omomorfica. Descriveremo questo algoritmo in dettaglio nelle pubblicazioni future e parleremo del motivo per cui questa tecnologia è ampiamente utilizzata per creare sistemi di voto. Notiamo ora la sua caratteristica principale: le schede elettorali crittografate registrate nel sistema contabile possono essere combinate senza decrittografia in modo tale che il risultato della decrittografia di un testo cifrato così combinato sarà il valore sommato per ciascuna scelta nelle schede. Allo stesso tempo, il sistema, ovviamente, implementa prove matematiche della correttezza di tale calcolo, che vengono anche registrate nel sistema contabile e possono essere verificate dagli osservatori.

Di seguito è riportato uno schema del processo di votazione.

Revisione del sistema di voto elettronico a distanza della Commissione Elettorale Centrale della Federazione Russa
cliccabile

Piattaforma blockchain

Ora che abbiamo esaminato le principali caratteristiche dell’implementazione di un sistema di voto elettronico a distanza, rispondiamo alla domanda da cui siamo partiti: che ruolo gioca la tecnologia blockchain in questo e quali problemi consente di risolvere?

Nel sistema di voto a distanza implementato, la tecnologia blockchain risolve una certa gamma di problemi.

  • Il compito fondamentale è garantire l'integrità delle informazioni nell'ambito delle votazioni e, prima di tutto, delle votazioni.
  • Garantire la trasparenza dell'esecuzione e l'immutabilità del codice del programma implementato sotto forma di contratti intelligenti.
  • Garantire la protezione e l'immutabilità dei dati utilizzati nel processo di voto: l'elenco degli elettori, le chiavi utilizzate per crittografare le schede elettorali nelle varie fasi del protocollo crittografico e così via.
  • Fornire un'archiviazione decentralizzata dei dati, in cui ogni partecipante ha una copia assolutamente identica, confermata dalle proprietà di consenso nella rete.
  • La possibilità di visualizzare le transazioni e monitorare l'avanzamento della votazione, che si riflette pienamente nella blockchain, dal suo inizio fino alla registrazione dei risultati calcolati.

Pertanto, vediamo che senza l'uso di questa tecnologia è quasi impossibile ottenere le proprietà necessarie nel sistema di voto, nonché la fiducia in esso.

La funzionalità della piattaforma blockchain utilizzata è arricchita dall’utilizzo degli smart contract. I contratti intelligenti controllano ogni transazione con schede crittografate per l'autenticità delle firme elettroniche e "cieche" e conducono anche controlli di base sulla correttezza della compilazione della scheda crittografata.

Inoltre, nel sistema di voto elettronico a distanza considerato, la componente “Archiviazione distribuita e conteggio dei voti” non è limitata ai soli nodi blockchain. Per ciascun nodo può essere implementato un server separato che implementa le principali funzioni crittografiche del protocollo di voto: i server di conteggio.

Conteggio dei server

Si tratta di componenti decentralizzati che forniscono la procedura per la generazione distribuita di una chiave di crittografia della votazione, nonché la decrittografia e il calcolo dei risultati della votazione. I loro compiti includono:

  • Garantire la generazione distribuita di parte della chiave di crittografia della votazione. La procedura di generazione delle chiavi verrà discussa nei seguenti articoli;
  • Verificare la correttezza della scheda criptata (senza decriptarla);
  • Elaborazione delle schede elettorali in forma crittografata per generare il testo cifrato finale;
  • Decodifica distribuita dei risultati finali.

Ogni fase di esecuzione del protocollo crittografico è registrata nella piattaforma blockchain e può essere verificata dalla correttezza degli osservatori.

Per conferire al sistema le proprietà necessarie nelle varie fasi del processo di votazione, vengono utilizzati i seguenti algoritmi crittografici:

  • Firma elettronica;
  • Firma cieca della chiave pubblica dell'elettore;
  • Schema di crittografia della curva ellittica di ElGamal;
  • Dimostrazioni a conoscenza zero;
  • Protocollo Pedersen 91 DKG (Generazione di chiavi distribuite);
  • Protocollo di condivisione della chiave privata che utilizza lo schema di Shamir.

Il servizio di crittografia verrà discusso più dettagliatamente nei seguenti articoli.

Risultati di

Riassumiamo alcuni risultati intermedi della considerazione del sistema di voto elettronico a distanza. Abbiamo descritto brevemente il processo e i principali componenti che lo implementano, e abbiamo anche identificato i mezzi per ottenere le proprietà necessarie per qualsiasi sistema di voto:

  • Verificabilità degli elettori. Il sistema accetta voti solo da elettori verificati. Questa proprietà è garantita dall’identificazione e dall’autenticazione degli elettori, nonché dalla registrazione dell’elenco degli elettori e dal fatto di fornire accesso alla scheda elettorale nella blockchain.
  • Анонимность. Il sistema garantisce la segretezza del voto, sancita dalla legislazione della Federazione Russa; l'identità dell'elettore non può essere determinata da una scheda criptata. Implementato utilizzando un algoritmo di “firma nascosta” e una zona anonima per la compilazione e l'invio della scheda elettorale.
  • Riservatezza dei voti. Gli organizzatori e gli altri partecipanti alla votazione non possono conoscere il risultato della votazione finché non viene completata, i voti non vengono conteggiati e i risultati finali non vengono decifrati. La riservatezza si ottiene crittografando le schede elettorali e rendendole impossibili da decrittografare fino a dopo la votazione.
  • Immutabilità dei dati. I dati degli elettori non possono essere modificati o cancellati. L’archiviazione immutabile dei dati è fornita dalla piattaforma blockchain.
  • Verificabilità. L'osservatore può verificare che i voti siano stati conteggiati correttamente.
  • Affidabilità. L'architettura del sistema si basa sui principi di decentralizzazione, garantendo l'assenza di un singolo “punto di guasto”.

Fonte: habr.com

Aggiungi un commento