Panoramica sulla procedura di anonimizzazione del sistema di voto elettronico a distanza

In pubblicazioni precedenti Ci siamo soffermati sul fatto che nel sistema di voto elettronico a distanza che stiamo esaminando, per garantire la segretezza del voto e l'anonimato dell'elettore, viene utilizzato l'algoritmo crittografico della "firma elettronica cieca". In questo articolo approfondiremo ulteriormente questo tema.

Iniziamo quindi a considerare il noto e familiare algoritmo della firma elettronica, ampiamente utilizzato nei sistemi informativi per vari scopi. Alla base della firma elettronica ci sono algoritmi crittografici di crittografia asimmetrica. La crittografia asimmetrica è una forma di crittografia che utilizza 2 chiavi: una per criptare, l'altra per decriptare. Queste chiavi sono chiamate chiave pubblica e chiave privata. La chiave pubblica è conosciuta da tutti, mentre la chiave privata è nota solo al proprietario della firma elettronica e viene conservata in un luogo inaccessibile ad altri.

Durante la firma avviene quanto segue: inizialmente il documento elettronico, attraverso trasformazioni matematiche, viene convertito in una sequenza di simboli di dimensioni specifiche: questo è noto come funzione hash.

La sequenza di simboli ottenuta (hash del documento) viene crittografata dal mittente del documento utilizzando la chiave privata e inviata al destinatario insieme alla chiave pubblica. Il destinatario decripta la sequenza di simboli utilizzando la chiave pubblica, applica esattamente la stessa funzione hash al documento e confronta il risultato della trasformazione con quello della decrittazione. Se tutto corrisponde, significa che il documento non è stato modificato dopo essere stato firmato dal mittente.

Le azioni descritte permettono di verificare che il documento non sia stato modificato, ma non garantiscono che il mittente sia realmente chi dice di essere. Pertanto, è necessaria una terza parte, alla quale si fidano sia il mittente che il destinatario. Prima di inviare il documento, il mittente si rivolge a questa terza parte e richiede che essa firmi con la propria firma elettronica la sua chiave pubblica. Ora il mittente invia al destinatario il documento, la propria chiave pubblica e la firma della terza parte della sua chiave. Il destinatario verifica la firma della terza parte sulla chiave pubblica e si fida della firma ricevuta sul documento.

Ora passiamo a cosa sia la «firma cieca» e come possa aiutarci nell'anonimizzazione.

Immaginiamo che, nell'esempio descritto sopra, il mittente sia un elettore, il documento sia una scheda elettorale e il destinatario sia la commissione elettorale, o come abbiamo detto, il 'componente per la registrazione e il conteggio dei voti'. Come terza parte (validatore) avremo il componente 'Elenco degli elettori'. In questo caso, il processo può avvenire come segue.

Panoramica sulla procedura di anonimizzazione del sistema di voto elettronico a distanza

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

Con queste chiavi firmerà la scheda elettorale per controllarne l'integrità. La scheda firmata e la chiave pubblica vengono inviate alla commissione elettorale. Affinché la scheda venga accettata dal componente 'Archiviazione distribuita e conteggio dei voti', deve verificare che la chiave pubblica sia firmata dal validatore.

Il validatore (componente 'Elenco degli elettori') firmerà la chiave pubblica solo dopo essersi accertato che l'elettore sia presente nell'elenco degli elettori.

Per risolvere il problema di mantenere segreta la votazione, la chiave pubblica dell'elettore, creata sul suo dispositivo, non deve essere nota a nessuno. Di conseguenza, il validatore deve firmare qualcosa che non conosce. Il compito sembra impossibile, ma qui intervengono gli algoritmi crittografici: in questo caso, l'algoritmo della 'firma cieca'.

In primo luogo, sul dispositivo dell'elettore, la chiave pubblica deve essere mascherata. La mascheratura consiste nell'eseguire operazioni matematiche specifiche sul dispositivo dell'utente. Immagina di aver pensato a un numero casuale da 1 a 100, poi a un secondo numero casuale da 1 a 10 e a un terzo, da 10 a 50; il primo numero pensato viene elevato alla potenza del secondo numero e diviso senza resto per il terzo. Il risultato ottenuto viene comunicato agli altri. Non sarà difficile per te ricostruire il numero originale, poiché conosci la sequenza delle operazioni e i numeri che hai pensato. Ma gli altri non potranno farlo.

La mascheratura (abbagliamento) della chiave pubblica viene eseguita secondo un algoritmo crittografico speciale. Di conseguenza, il validatore firma la chiave pubblica mascherata, mentre la chiave originale non gli è nota. Tuttavia, la peculiarità dell'algoritmo è che l'utente (elettore), ricevendo la firma sulla chiave mascherata, può effettuare le trasformazioni inverse e ottenere una firma valida anche per la chiave originale, non mascherata.

L'algoritmo descritto è ampiamente utilizzato nei protocolli di voto segreto. Nel sistema di voto elettronico a distanza, al momento, per la firma cieca viene utilizzato l'algoritmo RSA con una lunghezza della chiave di 4096 bit.

In generale, la procedura di anonimizzazione appare come segue.

  1. Durante la creazione del voto viene generata una coppia di chiavi 'validatore' separata, la chiave pubblica viene registrata nella blockchain. Per ogni voto viene creata una coppia di chiavi unica.
  2. L'utente si identifica nel sistema di identificazione (in questo caso, nel ЕСИА) e fornisce il permesso per la trasmissione dei propri dati identificativi dal sistema di identificazione al PTC DEG.
  3. Il componente 'Elenco elettori' del PTC DEG verifica la presenza dell'utente nella lista degli elettori.
  4. Sul dispositivo dell'utente vengono generate le sue chiavi personali - una chiave privata e una pubblica, conosciute solo da lui.
  5. Sul dispositivo dell'utente, la chiave pubblica viene mascherata.
  6. Insieme ai dati identificativi e alla chiave pubblica mascherata, l'utente si rivolge al componente 'Elenco elettori'.
  7. Il componente verifica nuovamente la presenza dell'utente nella lista e l'assenza di una firma precedente.
  8. Se tutti i controlli sono superati, avviene la firma della chiave.
  9. Il fatto della firma della chiave viene registrato nella blockchain.
  10. L'utente sul proprio dispositivo rimuove la maschera dalla chiave pubblica e ottiene la chiave privata, la chiave pubblica e la firma sulla chiave pubblica, ed in questo modo tutte le chiavi sono conosciute solo da lui.
  11. Dopo di che, l'utente viene trasferito in una zona anonima - su un sito separato edg2020.gov.ru, dove non è possibile identificarlo (ad esempio, prima del trasferimento può connettersi VPN o cambiare fornitore di servizi Internet, cambiando completamente indirizzo IP).
  12. L'accettazione della scheda dipenderà solo dal fatto che la firma del 'validatore' superi il controllo e che non sia stata utilizzata in precedenza tale chiave.

Di seguito forniamo una descrizione dell'algoritmo dal punto di vista della crittografia.
Parametri della firma e simboli:

Panoramica sulla procedura di anonimizzazione del sistema di voto elettronico a distanza
Panoramica sulla procedura di anonimizzazione del sistema di voto elettronico a distanza

M – nel formato padding FDN per la firma.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster