9

Background

In response to a system design concept, a question was posed:

How do you achieve electronic voting, anonymity, and verifiability at the same time?

I was informed that most experts in the field believe it to be practically impossible (see Jonker et al.). My understanding was that this was solved through systems such as Civitas and its secure language Jif.

Questions

My questions are:

  • Are e-voting systems having anonymity and verifiability with high coercion-resistance possible?
  • What are the findings from latest research?
  • What are the most reputable journals in this field of study?
  • Optionally, how do homomorphic encryption and zero knowledge proofs relate to anonymity?

Related

I have read a fair amount, but do not wholly understand the implications. Nor am I certain that I have found the latest research on this subject.

Articles

Security.SE

Dave Jarvis
  • 269
  • 1
  • 11
  • 2
    You could consider decoupling your two requirements of anonymity and confidentiality. Is it ok for you to authenticate your voters using attribute-based authenticating, and to have a separate authority that provides authentication tokens and knows the identity of voters, and which you trust not to issue more tokens than there should be voters? Also, can you clarify if you mean anonymous as in the people verifying the election's outcome do not know the identity of the voters, or as in they don't know what each individual voter voted? – Steve Dodier-Lazaro Apr 28 '15 at 11:41
  • @SteveDL: That might be the only viable solution: using a registrar and a teller (in the same physical location). The registrar confirms the identity and the teller provides a unique identifier. The problem is that to retrieve lost credentials you need to use some sort of public key encryption and multiple (trusted) registrars. – Dave Jarvis Apr 29 '15 at 03:06
  • 1
    @SteveDL: Ideally, the votes are in a public database, but nobody should be able to determine how a particular voter voted. It's okay to know if an account voted, but not okay to know who (i.e., the voter) is associated with that account. – Dave Jarvis Apr 29 '15 at 03:09
  • Fair enough. I only know verifiable schemes where all voters vote (homomorphic encryption) but I'm far from understanding the existing schemes in detail. Maybe you can get all users to cast an 'empty' (value 0) vote, a vote for (1) and a vote against (-1) a proposition, so that all users know how to cast a valid vote regardless of the previous voter's choice, and then make all the voters commit to a unique value using a zero-knowledge proof? This seems far-fetched / potentially erroneous but I don't have more brain power available right now :-) What else should we know about your problem? – Steve Dodier-Lazaro Apr 29 '15 at 04:23
  • Votes prioritize ideas, so there is no voting against. Here is a [description of the system](https://bytebucket.org/djarvis/world-politics/raw/master/docs/manual/manual.pdf). – Dave Jarvis Apr 29 '15 at 20:45
  • You might have more luck with responses to this question if you asked it in separate parts? – Fernando May 13 '15 at 22:36

1 Answers1

3

Being anonymous, verifiable and reciept-free at the same time is impossible. Of course, there will be kept some records and logs for verification purposes. You have to be seen(logged) for maintaining the rights of one person one vote. If it really is completely anonymous, anyone from anywhere in the network can vote any amount of times without getting caught. Being logged is a price you have to pay.

But still, if you don't want that, there is a darker way.

  • 1
    It's possible to be anonymous and still have only one vote. The system should just guard against replay attacks. – S.L. Barth May 26 '15 at 10:53
  • It would mean that the system has to log our first login, and then its not anonymous. – Jatin Nagpal May 26 '15 at 10:56
  • 2
    The way I see it, it is anonymous as long as the vote itself cannot be traced back to the voter. All the system should know is that a particular voting ticket has been used. The system should not be able to trace that ticket back to the individual voter. (And that, I admit, is hard to implement correctly. Possible, but very hard). – S.L. Barth May 26 '15 at 11:01
  • 1
    But that is not verifiable then, if the real user used the ticket, there is no way to verify it. Well, also method of issuing tickets poses a risk(it can be anywhere) as long as it is anonymous). – Jatin Nagpal May 26 '15 at 11:14