Electronic voting promises the possibility of a convenient, efficient and secure facility for recording and tallying votes. It can be used for a variety of types of elections, from small committees or on-line communities through to full-scale national elections. However, the electronic voting machines used in recent US elections have been fraught with problems. Recent work has analysed the source code of the machines sold by the second largest and fastest-growing vendor, which are in use in 37 US states. This analysis has produced a catalogue of vulnerabilities and possible attacks.
A potentially much more secure system could be implemented, based on formal protocols that specify the messages sent between the voters and administrators. Such protocols have been studied for several decades (see, e.g., references [1-8] below, and surveys). These protocols aim to provide security properties which go beyond those that can be achieved by paper-based voting systems. Such properties include
- Fairness: no early results can be obtained which could influence the remaining voters.
- Eligibility: only legitimate voters can vote, and only once.
- Individual verifiability: a voter can verify that her vote was really counted.
- Universal verifiability: the published outcome really is the sum of all the votes.
- Privacy: the fact that a particular voted in a particular way is not revealed to anyone.
- Coercion-resistance: a voter cannot cooperate with a coercer to prove to him that she voted in a certain way.
Our work is about formally verifying the correctness of protocols with respect to these properties. We have analysed protocols using the applied pi calculus of Abadi and Fournet. Our analysis was partially automated by the ProVerif tool.