A remote voting systembased on Prêt à Voter
coded by
David LundinJohannes Clos
Design goals
End-to-end verifiable (if...) Offload authentication to host organization Easy to set up, maintain and use Use publicly available mix servers (when...)
Limitations
Unsupervised voting No coercion resistance No guarantee of response from server
Someone has to authenticate users We use host organization (could use our server)
Some parts not quite complete Threshold decryption SSL certificates (time/money)
Operational overview
Election setup phase
Create election on EE Don't declare voters!
Retrieve shared secret Retrieve signed applet Integrate host auth
Client authentication phase
Voter logs on normally Host serves applet PHP script gets authentication information
Voting phase
Vote using applet Applet encrypts vote
ElGamal encryption Ciphertexts à la [Hea07] Packaged as XML Committed to Audit or vote Vote sent back to host
Host signs XML Sent back to ee.com Signed receipt given
Auditing
Voting and auditing
Voting applet constructs XML reveals XML and hash offers vote or audit
Voter then can either audit, and uncover details of
encryptions vote, and get signed hash
Audit gives confidence in applet's fairness
Decryption/tallying after polls close
Use mix nets PRC to audit mixes Anyone can audit Public mix servers
Votes decrypted Threshold decryption CP proofs Anyone can check Lazily decrypt (STV)
Anyone can tally
Auditing the mix nets
A mix net re-encrypts votes randomly shuffles
Twice, with PRC Links chosen by
hash of output Can be re-run
Conclusion
Pretty much plug-and-play Any organization hosting a web site can use End-to-end verifiable
...on various seemingly unavoidable assumptions