Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The fact that the current implementation is not reliable doesn't make the whole idea of electronic voting bad. We've had electronic voting for general elections in Brazil since 2000, with very few accusations of fraud.


But there are very significant issues with the principle of electronic voting:

Ideally, every voter would be able to verify their own vote after the fact via some cryptographic mechanism. But on the other hand, this mechanism should be such that the government (or another individual trying to coerce our voter) would not be able to verify the vote -- an almost contradictory, difficult requirement. I am not aware of such a method being employed in any large-scale election.

In the absence of such a method, you have a heap of problems:

1) How do you make it verifiable for the general public? Even if you accept that the general public will not be able to verify it (bad!), how would you make it verifiable even for experts? It's almost impossible to ensure that the code being run is the one you verified beforehand, especially on such a large scale, so this way is out of the question. (Remember, this is a high-stakes game, so you'd better know that your CPU in fact executes your opcodes correctly...)

2) Electronic voting & tallying opens the door for large-scale manipulation without leaving traces. If you want to remove 10000 paper ballots, you have to somehow get rid of them (with people watching). 10000 votes vanishing in a computer? No problem, just a memory operation, a bystander would never notice it.

Some of this can be dealt with by having the machine print out a paper ballot immediately after voting, and keeping those ballots. Then you're in fact using the relative safety of paper ballot voting to double check the electronic record.


Of course the existing systems take these into consideration. There are a dozen security measures in place here:

1) The software is exactly the same for the whole country (138m voters). All software that runs on it is encrypted and signed, and the box is physically sealed to detect intrusion.

2) You verify your vote before it's committed to disk on the voting machine. See next point.

3) Every ballot box records votes to a flash card that is physically taken to the nearest court house, where a judge is responsible for the equipment that can decrypt, compile and transfer results to the federal system, using a private network. At no point a ballot box is connected to any network or external devices.

4) The equipment is programmed to only function during official voting times, and only after running a test suite and integrity verification

5) At the end of the day each ballot box prints it own vote report, archived locally, and keeps a copy of the results in it's internal flash memory

If you remove 10k votes from one machine, the numbers won't match: every voter is registered, and you have to sign a small declaration if you don't vote - the number of voters is always known beforehand. Voluntary elections like in the US pose an interesting problem, maybe you could require pre-registration?

I think bypassing all the security measures undetected would be one hell of an achievement.


This engineer raises some interesting points regarding our voting system (portuguese): http://www.youtube.com/watch?v=Op9N2EyoZHo

In our country (Brazil), the electronic voting machine is strongly marketed by the government and big media as a model for the entire world to copy.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: