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