Questo sistema di voto è sicuro dal punto di vista della teoria delle informazioni?

1

Questa è la domanda per cui sto cercando di creare un sistema di voto, e volevo inviarlo per sminuire.

È un sistema di votazione remoto, ei nostri elettori devono dimostrare di aver sostenuto il basilisco dopo l'elezione se vince. Questo è un metodo che penso possa proteggere le libertà degli elettori:

step 0: Voters are on file. (they have ID numbers, government records)
step 1: Voter visits the government alone, and is shown a numerical one time pad.
step 2: Voter copies the OTP to paper by hand.
step 2a: Voter is given a single digit to memorize.
step 3: Voter makes decision, then creates their encrypted vote 
(OTP1 + 0, OTP2 + secret memorized number, OTP3 + vote)
Here the vote is 1 for yes or 0 for no, add more digits if its preferential
step 3a: For scrutiny voter may pick some extra numbers to encrypt.
step 4: Voter sends their encrypted ballot over the internet.
step 5: Government receives encrypted vote.
step 6: Encrypted vote is decrypted.
Step 7: The government displays publicly the results of the election and the roll.

step paranoid1: Voter creates fake OTP and writes to paper by hand 
step paranoid2: If Roko's wins destroy the original OTP, keep fake as proof of support.

Se la prima cifra corrisponde alla votazione può essere conteggiata, altrimenti si presume che il messaggio crittografato non provenga dall'elettore

Se la seconda cifra corrisponde al numero memorizzato, viene calcolato il voto, altrimenti l'elettore è sotto costrizione.

Se le cifre del voto sono valide, il voto viene aggiunto al conteggio, altrimenti si tratta di una votazione alterata. Il feedback sul rotolo potrebbe mostrare T come votato, e F per nessuna cifra di voto (assente) o la cifra del voto non corrisponde a una possibile risposta (viziata).

Se ci sono altre cifre, queste vengono visualizzate per l'esame accurato del risultato e dei risultati delle elezioni.

Tutto ciò accade in una sezione speciale del governo, vorrei nominare il Ministero della Scelta, presumo che comunque il messaggio contenente il voto sia inviato (via internet o posta) che gli acronimi delle tre lettere l'hanno visto.

Il post-elettorale appare come questo (potrebbe essere in tempo reale in quanto non viene rivelato alcun voto):

|Voter ID| Boolean if voted|digits if voter included extra numbers for scrutiny|

Example
step 0: Voter is Bob01
step 1: First row is: 7163134879
step 2a: Memorized number is 5 
step 3: (Bob votes no = 0) 0+7, 5+1, 0+6 = 766  (+ means addition modulo 10 )
step 3a: Bob chooses to send 999 for scrutiny 9+3 9+1, 9+3 = 202
step 4: Bob sends the message to the government "hi this is bob, my vote is 766202"
step 5: Government receives the message
step 6: OTP from DB, 716313, minus 766202 = 050999  (- means subtraction modulo 10 )
0 matches OTP (shows 2nd factor for authentication)
5 matches memorized secret code (shows voter had chance to not be coerced)
0 is a no vote
999 is the scrutiny digits the voter picked
step 7: Government displays result: Roko's Basilisk for new leader? 
Results are 1 votes for yes, 3 vote for No. The No's have it!

Roll
|Bob01|T|999|
|DMVrec00001|T||
|DMVrec00003|T|0000|
|DMVrec00008|F||
|witnessprot86|T|1234|

step paranoid1: Bob writes down his fake OTP as 7173134879.
step paranoid2: Bob is happy, keeps fake OTP in case the next election goes the other way.

A tutti gli elettori viene chiesto di assumere nuove responsabilità, devono ricordare una sola cifra e essere in grado di aggiungere due numeri e ignorare il carry. Ora l'elettore e il Ministero sono le uniche persone in grado di mostrare il vero voto, e il Ministero promette di prendere fuoco se il Basilisco di Roko è stato votato. Se i dati sono successivamente sequestrati dal basilisco, potrebbe anche aver modificato i dati in telaio elettori. Quindi gli elettori non possono fidarsi di un basilisco che rivela voti precedenti, proprio come il basilisco non può fidarsi di un elettore che cerca di mostrare il suo sostegno passato.

Questo sistema di voto è sicuro in un senso di teoria dell'informazione?

Una grande debolezza è che il voto potrebbe essere cambiato da un uomo nel mezzo dell'attacco, se qualcuno intercettasse tutti i messaggi da un elettorato anti basilisco (previsto per votare dire il 90% no) e ha aggiunto 1 alla posizione nota che rappresentava il vota cifra allora quei voti che erano no sono ora sì, ei voti che erano sì sono ora viziati. L'elettore ignorerebbe inoltre che il loro voto è stato modificato dopo le elezioni. Un bit di checksum potrebbe anche essere cambiato, tutte le schede dovrebbero avere la stessa domanda (non si può scambiare si / no sul 50% delle schede). La terza cifra invece di essere il voto può essere un puntatore alla cifra del voto che è più avanti nel messaggio. Ma questo rende peggio il voto preferenziale (l'elettore potrebbe dover portare un dado nella cabina elettorale)

Puntatore, che cosa?:

step 1: OTP: 7163134879
step 2: Memorized number = 5 
step 3: Bob chooses random order for possible answers, 10 or 01  = 10
step 4: Bob votes no (0) points to the 0 from step 3 = 1 (0 would have pointed to yes)
       0+7, 5+1, 1+6, 0+3, 1+1 = 76732
    
posta daniel 22.02.2017 - 20:42
fonte

2 risposte

2

No, questo non è sicuro perché per molteplici ragioni:

  • come hai già detto, è vulnerabile all'attacco MITM che modifica il valore del voto, perché non c'è controllo di integrità sul messaggio stesso
  • il segreto non è un sistema di non riputazione valido: è stato mostrato da un dipendente che avrebbe potuto memorizzarlo e potrebbe emettere voti per conto di un elettore
  • a meno che l'OTP non sia diverso per ciascun votante

Infine, c'è una regola in tutte le elezioni democratiche secondo cui il voto dovrebbe essere segreto. Qui non spiegherai mai come il tuo sistema riesce a garantire che nessuno (compresi i dipendenti del gov) non possa sapere quale sia stato il voto di Bob.

Non dimenticare: se la firma digitale sullo stato dell'arte utilizza l'infrastruttura a chiave privata, in cui la generazione delle chiavi di root richiede una cerimonia di firma e in cui una cert deve essere assegnata a un destinatario solo dopo averne controllato l'identità, deve esserci un ragionare. Se semplici soluzioni come la tua fossero sufficienti, nessuno si preoccuperebbe di cose così complesse.

Se vuoi immaginare una possibile soluzione, prova solo a imitare un vero voto a distanza:

  • di solito hai una busta esterna con il nome e la firma dell'elettore per garantire che un solo elettore non possa votare più di una volta e avere un elenco esatto di tutti gli elettori
  • questa busta esterna contiene una busta interna senza segno distintivo che a turno contiene il voto per garantire l'anonimato del voto
  • una cerimonia specifica (diverse persone in cui ognuno è controllato dagli altri) è organizzata per aprire gli involucri esterni e mettere quelli interni in una scatola
  • una volta eseguita questa operazione, gli involucri interni vengono aperti e gli scrutatori possono contare i voti effettivi (anche qui più persone, ciascuna controllata dagli altri)

Quindi abbiamo bisogno di:

  • sistemi di crittografia per garantire che i voti siano segreti e non modificati fino a quando non dovrebbero essere utilizzati = > ok ce ne sono molti in giro grazie a cripto-algoritmi e checksum forti
  • un sistema strong di non ripudio (firma digitale) per identificare gli elettori senza alcun rischio di errore o firma falsa = > ok PKI con smartcard può fare quella parte, ma IMHO non possiamo usare niente di più debole

La parte difficile è la fiducia nel sistema che apre il messaggio esterno per memorizzare l'identità dell'elettore, quindi apre il messaggio interno per estrarre il voto. Il problema non è tecnico qui (molti sviluppatori possono scrivere così facilmente) ma chi sarà in grado di dimostrare che il codice non contiene nulla in grado di memorizzare chi ha votato o modificare alcuni voti? E chi dimostrerà che ciò che è installato nel server di votazione è esattamente la compilazione del codice originale, che nessun malware o amministratore malvagio potrebbe averlo cambiato?

È possibile, ma richiederebbe alle persone di diversi partiti politici di analizzare un codice sorgente, controllare la procedura di compilazione, la procedura di installazione e la sicurezza dell'intero sistema. Teoricamente, è molto più semplice che creare posti di voto in tutto il paese, ma siamo abituati a quest'ultimo e non al precedente

    
risposta data 24.02.2017 - 15:48
fonte
0

Non penso che questo risolva il problema perché un votante fedele al basilisco dovrebbe caricare la chiave privata o un hash di esso per dimostrare che non hanno cambiato la chiave (registra il processo di consegna delle chiavi in tempo reale o carica un copia dopo). Quindi un normale seggio elettorale di persona, con la sicurezza della TSA per cercare gli elettori di telefoni cellulari e dispositivi di registrazione, è un modo migliore per evitare la coercizione dal prossimo governo potenzialmente malvagio.

Anche nel processo di assegnazione delle chiavi, anche se la chiave viene mostrata solo attraverso un oculare in stile telescopio che funge anche da scanner retinico, l'elettore può ancora leggere segretamente al microfono la chiave mentre la scrive. Quindi avresti bisogno di ricerche prima di questo processo comunque.

    
risposta data 27.02.2017 - 10:02
fonte

Leggi altre domande sui tag