Panoramica della procedura di anonimizzazione per il sistema di voto elettronico a distanza

В pubblicazioni precedenti Abbiamo deciso che nel sistema di voto elettronico a distanza che stiamo considerando, viene utilizzato un algoritmo crittografico di “firma elettronica cieca” per garantire la segretezza del voto e rendere anonimo l’elettore. In questo articolo lo vedremo più in dettaglio.

Innanzitutto, passiamo al noto e familiare algoritmo di firma elettronica, ampiamente utilizzato nei sistemi informativi per vari scopi. La firma elettronica si basa su algoritmi di crittografia asimmetrica crittografica. La crittografia asimmetrica è la crittografia che utilizza 2 chiavi: una di esse viene utilizzata per la crittografia, l'altra per la decrittografia. Si chiamano chiave aperta (pubblica) e privata. La chiave pubblica è nota ad altri, mentre la chiave privata è nota solo al titolare della firma elettronica ed è conservata in un luogo inaccessibile ad altri.

Quando si firma, accade quanto segue: in primo luogo, il documento elettronico, utilizzando trasformazioni matematiche, viene ridotto a una sequenza di caratteri di una certa dimensione: questa è chiamata funzione hash.

La sequenza di caratteri risultante (un hash del documento) viene crittografata dal mittente del documento utilizzando una chiave privata e, insieme alla chiave pubblica, viene inviata al destinatario. Il destinatario decodifica la sequenza di caratteri utilizzando la chiave pubblica, applica esattamente la stessa funzione hash al documento e confronta il risultato della conversione con il risultato della decrittografia. Se tutto corrisponde, non è stata apportata alcuna modifica al documento dopo la firma del mittente.

Le azioni descritte permettono di verificare che il documento non sia stato modificato, ma non permettono di verificare che il mittente sia realmente chi afferma di essere. Pertanto, abbiamo bisogno di una terza parte di cui si fidino sia il mittente che il destinatario. Per fare ciò, prima di inviare il documento, il mittente contatta una terza persona e le chiede di firmare la sua chiave pubblica con la sua firma elettronica. Il mittente ora invia al destinatario il documento, la sua chiave pubblica e una firma di terze parti della sua chiave. Il destinatario verifica la firma del terzo sulla chiave pubblica e si fida della firma del documento risultante.

Passiamo ora a cos'è una “firma cieca” e come può aiutarci nell'anonimizzazione.

Immaginiamo che nell’esempio sopra descritto, il mittente sia l’elettore, il documento sia la scheda elettorale e il destinatario sia la commissione elettorale, o come abbiamo detto “la componente di conteggio dei voti”. Avremo il componente “Elenco votanti” come terza parte (validatore). In questo caso, il processo può avvenire come segue.

Panoramica della procedura di anonimizzazione per il sistema di voto elettronico a distanza

L'elettore genera una coppia di chiavi sul suo dispositivo: privata e pubblica. Poiché queste chiavi vengono create sul suo dispositivo personale nel browser, sono note solo a lui.

Usando queste chiavi firmerà la scheda elettorale per controllarne l'integrità. Invia la scheda elettorale firmata e la chiave pubblica alla commissione elettorale. Affinché una scheda elettorale venga accettata dal componente Distributed Vote Storage and Counting, è necessario verificare che la chiave pubblica sia firmata dal validatore.

Il validatore (componente Voter List) firmerà la chiave pubblica solo dopo aver verificato che l'elettore è presente nella lista degli elettori.

Per risolvere il problema di preservare la segretezza del voto, la chiave pubblica dell’elettore creata sul suo dispositivo non dovrebbe essere nota a nessuno. Si scopre che il validatore deve firmare qualcosa che gli è sconosciuto. Il compito sembra impossibile, ma qui vengono in soccorso gli algoritmi crittografici, in questo caso l'algoritmo della "firma cieca".

Innanzitutto la chiave pubblica deve essere mascherata sul dispositivo dell'elettore. Il mascheramento è l'esecuzione di singole operazioni matematiche sul dispositivo dell'utente. Immagina di aver pensato a un numero casuale da 1 a 100, poi di pensare a un secondo numero casuale da 1 a 10 e a un terzo, da 10 a 50, di elevare il numero inizialmente pensato alla potenza del secondo numero e di dividerlo senza il resto entro il terzo. Il risultato è stato riferito ad altri. Non ti sarà difficile ripristinare il numero originale, poiché conosci la sequenza delle azioni e i numeri che hai in mente. Ma chi ti circonda non sarà in grado di farlo.

Il mascheramento (accecamento) della chiave pubblica viene eseguito secondo uno speciale algoritmo crittografico. Di conseguenza, il validatore firma una chiave pubblica mascherata senza conoscere la chiave originale. Ma la particolarità dell'algoritmo è che l'utente (elettore), dopo aver ricevuto una firma per la chiave mascherata, può effettuare trasformazioni inverse e ottenere una firma valida per la chiave originale non mascherata.

L'algoritmo descritto è ampiamente utilizzato nei protocolli di voto segreto. Il sistema di votazione elettronica a distanza utilizza attualmente l'algoritmo RSA con una lunghezza della chiave di 4096 bit per le firme cieche.

In generale, la procedura di anonimizzazione è la seguente.

  1. Quando viene creato un voto, viene creata una coppia di chiavi “convalidatore” separata e la chiave pubblica viene registrata nella blockchain. Per ogni voto viene creata una coppia di chiavi univoca.
  2. L'utente viene identificato nel sistema di identificazione (in questo caso nell'ESIA), e fornisce il permesso di trasferire i suoi dati identificativi dal sistema di identificazione al DEG PTC.
  3. La componente “Elenco Votanti” del DEG PTC verifica la presenza dell'utente nella lista elettorale.
  4. Sul dispositivo dell'utente vengono create le sue chiavi personali: private e pubbliche, conosciute solo da lui.
  5. La chiave pubblica è mascherata sul dispositivo dell'utente
  6. Unitamente ai dati identificativi e ad una chiave pubblica mascherata, l'utente accede alla componente “Elenco Votanti”.
  7. Il componente verifica ancora una volta la presenza dell'utente nell'elenco e il fatto che non abbia mai ricevuto prima una firma
  8. Se tutti i controlli hanno esito positivo, la chiave è firmata
  9. Il fatto di firmare la chiave viene registrato nella blockchain
  10. L'utente sul suo dispositivo rimuove la maschera dalla chiave pubblica e riceve una chiave privata, una chiave pubblica e una firma sulla chiave pubblica, e tutte le chiavi sono conosciute solo da lui.
  11. Successivamente, l'utente viene trasferito in una zona anonima - su un sito Web separato edg2020.gov.ru, dove è impossibile identificarlo (ad esempio, prima della transizione può connettersi a una VPN o cambiare il proprio provider Internet, cambiando completamente il Indirizzo IP)
  12. L’accettazione della votazione dipenderà solo dalla verifica della firma del “validatore” e dal fatto che tale chiave non sia stata utilizzata in precedenza.

Successivamente, forniamo una descrizione dell’algoritmo dal punto di vista della crittografia.
Opzioni di firma e designazione:

Panoramica della procedura di anonimizzazione per il sistema di voto elettronico a distanza
Panoramica della procedura di anonimizzazione per il sistema di voto elettronico a distanza

M – in formato di riempimento FDN per la firma.

Fonte: habr.com

Aggiungi un commento