Panoramica della procedura di anonimizzazione del sistema di voto elettronico remoto

In pubblicazioni precedenti Ci siamo fermati al punto in cui nel sistema di voto elettronico a distanza esaminato per garantire l'anonimato e la segretezza del voto viene utilizzato l'algoritmo crittografico della "firma elettronica cieca". In questo articolo lo esamineremo più nel dettaglio.

Iniziamo con un algoritmo di firma elettronica noto e familiare, ampiamente utilizzato nei sistemi informatici per vari scopi. Alla base della firma elettronica ci sono algoritmi crittografici di crittografia asimmetrica. La crittografia asimmetrica è un metodo di cifratura che utilizza due chiavi: una per la cifratura e l'altra per la decifratura. Queste 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 non accessibile agli altri.

Durante la firma avviene quanto segue: prima il documento elettronico, mediante trasformazioni matematiche, viene convertito in una sequenza di simboli di dimensione definita, chiamata funzione hash.

La sequenza di simboli ottenuta (hash del documento) viene cifrata dal mittente del documento utilizzando la chiave privata e inviata al destinatario insieme alla chiave pubblica. Il destinatario decifra la sequenza di simboli utilizzando la chiave pubblica, applica allo stesso documento la stessa funzione hash e confronta il risultato della trasformazione con quello della decifratura. Se i risultati coincidono, significa che il documento non è stato modificato dopo la firma del mittente.

Le azioni descritte permettono di verificare che il documento non sia stato alterato, ma non garantiscono che il mittente sia realmente chi afferma di essere. Pertanto, abbiamo bisogno di una terza parte fidata sia dal mittente che dal destinatario. Prima di inviare il documento, il mittente si rivolge a questa terza parte e chiede di firmare la sua chiave pubblica con la sua firma elettronica. Ora il mittente può inviare al destinatario il documento, la sua chiave pubblica e la firma della terza parte della propria chiave. Il destinatario verifica la firma della terza parte sulla chiave pubblica e si fida della firma ottenuta sul documento.

Procediamo ora a capire cos'è la "firma cieca" e come può aiutarci nell'anonimizzazione.

Immaginiamo che nell'esempio descritto sopra il mittente sia l'elettore, il documento sia la scheda elettorale e il destinatario sia la commissione elettorale, o come abbiamo detto, il "componente di conteggio e registrazione dei voti". In questo caso, la terza parte (validatore) sarà il "Registro degli Elettori". In questa situazione il processo può avvenire nel seguente modo.

Panoramica della procedura di anonimizzazione del sistema di voto elettronico remoto

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

Con queste chiavi firmerà la scheda per controllarne l'integrità. La scheda firmata e la chiave pubblica vengono inviate alla commissione elettorale. Affinché la scheda sia accettata dal "Sistema di Archiviazione e Conteggio dei Voti", è necessario verificare che la chiave pubblica sia firmata dal validatore.

Il validatore (componente "Registro degli Elettori") firmerà la chiave pubblica solo dopo aver verificato che l'elettore è presente nel registro degli elettori.

Per risolvere il compito di mantenere l'anonimato del voto, la chiave pubblica dell'elettore, creata sul suo dispositivo, non deve essere nota a nessuno. Questo implica che il validatore deve firmare qualcosa di cui non ha conoscenza. Il compito sembra impossibile, ma qui entrano in gioco gli algoritmi crittografici - in questo caso l'algoritmo della "firma cieca".

Inizialmente, la chiave pubblica sull dispositivo dell'elettore deve essere mascherata. La mascheratura consiste nell'effettuare determinate operazioni matematiche sul dispositivo dell'utente. Immaginate di aver pensato a un numero casuale da 1 a 100, poi a un secondo numero casuale da 1 a 10 e infine a un terzo, da 10 a 50. Il numero inizialmente 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 voi recuperare il numero originale, poiché conoscete la sequenza delle operazioni e i numeri che avete pensato. Ma gli altri non saranno in grado di farlo.

La mascheratura (abbagliamento) della chiave pubblica viene eseguita secondo uno speciale algoritmo crittografico. Di conseguenza, il validatore firma la chiave pubblica mascherata, senza conoscere la chiave originale. Tuttavia, le caratteristiche dell'algoritmo consentono all'utente (elettore) di ricevere la firma sulla chiave mascherata e di eseguire la trasformazione inversa per 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, attualmente per la firma cieca viene utilizzato l'algoritmo RSA con una lunghezza della chiave di 4096 bit.

In generale, la procedura di anonimizzazione si presenta come segue.

  1. Durante la creazione del voto, viene generata una coppia di chiavi separata per il "validatore", con la chiave pubblica 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 sistema ESIA) e autorizza la trasmissione dei propri dati identificativi dal sistema di identificazione al sistema PTC DÉG.
  3. Il componente "Elenco degli elettori" del sistema PTC DÉG verifica la presenza dell'utente nell'elenco degli elettori.
  4. Sul dispositivo dell'utente vengono generate le sue chiavi personali – una chiave privata e una chiave 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 degli elettori".
  7. Il componente verifica nuovamente la presenza dell'utente nell'elenco e il fatto che non abbia già ricevuto la firma in precedenza.
  8. Se tutte le verifiche hanno successo, viene effettuata la firma della chiave.
  9. Il fatto della firma della chiave viene registrato nella blockchain.
  10. L'utente sul suo dispositivo smaschera la chiave pubblica e ottiene la chiave privata, la chiave pubblica e la firma sulla chiave pubblica, con tutte le chiavi conosciute solo da lui.
  11. Successivamente, l'utente viene trasferito in un'area anonima – su un sito separato edg2020.gov.ru, dove non è possibile identificarlo (ad esempio, prima di passare, può cambiare fornitore di servizi Internet, modificando completamente l'indirizzo IP). VPN La ricezione della scheda dipenderà solo dal fatto che la firma del "validatore" superi il controllo e se tale chiave non è stata utilizzata in precedenza.
  12. Segue una descrizione dell'algoritmo dal punto di vista della crittografia.

Parametri della firma e designazioni:
– nel formato di padding FDN per la firma.

Panoramica della procedura di anonimizzazione del sistema di voto elettronico remoto
Panoramica della procedura di anonimizzazione del sistema di voto elettronico remoto

M – nel formato padding FDN per la firma.

Fonte: habr.com

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