Online Voting?
Colin Winters asks: "While listening to NPR this morning, I heard that the Reform Party is going to have online voting this year. Does anyone know how are they setting this up? What kind of security measures to protect against fraud are they using? It seems that if this works for the Reform Party, it could also work for both the Democratic and the Republican parties, as well." A good and timely question considering that once again it's an Election Year. If online voting is to become a thing of the future, these issues and others will need to be dealt with if it is to be effective (and fair).
Online voting has the ability to be corrupted in several ways. First, and foremost, most people assume that a "one social, one time" style system could work, since anyone logging into an electronic voting booth would be required to give his/her voter info (some states have codes, others mimic SSN's) once a particular code, or SSN was given, and voting completed, that person would not be allowed to vote again.
There are a few major problems with this though. Quite a few Americans do not vote. While I am not going to go into the psychology, and ramifications of NOT voting, I will say that not participating is their right, and should not be violated. Electronic Voting "could" easily circumvent someones wishes simply because there are sites that have information on them that are more or less unsecure. I'm not saying someone with a couple kiddie scripts could do it, but a true cracker out to "change" the system would probably find it fairly easy.
IMO (which I do not consider humble, by the way) Not voting is extremely stupid. I defend it, but I don't personally think it's right. I also firmly beleive that stealing someone elses vote is criminal, much worse than that person not voting at all.
While there are security items that can cure this, they are still a long way in coming. Retinal Scans, SSN's and hard encryption, along with fingerprint scanners are one way to go. They already exist, and are becoming more mainstream every day. These will make online voting a reality, and a secured one at that.
There will always be ways to circumvent a system. There always were, even in the old "click and pull the lever" systems. Forged Voters ID cards, fake documents, phony voters lists, and multiple voting are a few. The problem was that with these, 1. A person had to physically be there to vote, which took time. 2. Someone had to come up with a voters list, which took time. 3. Documents had to be forged, which took time.
By allowing electronic voting, you can speed up the above three things to damn near instantaneous. A small group of people playing over a large field could have a exponentially more significant impact on the final tally than before.
I would approach electronic voting with eyes open, alert, and fully concious of the ramifications of getting it wrong the first time. After all, the people we chose to lead, lead us to where THEY want to go; pray you chose someone you can stand to follow.
krystal_blade
It will be easy to motivate our fellow man; there is hardly anything people treasure more than not being annihilated.
Voting booths, and their amazing low-tech privacy method (a cloth drawn behind you), literally beat the socks off of anything available in the digital world... Right now husbands and wives can cast separate votes on issues and not have it thrust in their faces, so they get by. What happens when voting is done from the den, with one person sitting right next to the other? What if they've been arguing about an issue for hours and one party just wants to get to sleep so they cast their vote, in plain site of the other, for something they don't necessarily agree with?
Aside from all the verification and other security concerns, confidentiality is one that had better not get overlooked.
Through normal channels, each person gets their voter registration card. This card has a unique number on it, very long to reduce chance of being able to guess one correctly. Person goes to computer, sets up key pair, connects to central server, and encrypts and signs their number + ID info (name, age, etc). This proves that key pair belongs to person. Then comes the actual voting protocol. Let's assume for simplicity only one thing to vote on (Pat v. whoever).
I create 10 votes for pat and 10 votes for Ross (I am pretty sure it's not him but I don't remember the real guy's name; I'll use Ross). Each vote consists of a GUID, and who the vote is for. The GUID is a long number (128bit; longer if neede to prevent collisions) that is randomly generated. However, each Ross vote is paired with a Pat vote (same GUID). I then Blind the votes with a blinding function -- need the blinding factor to get the vote out. This is actually just multiplication by a large number; DES or equiv doesn't work here. I then sign each vote and encrypt to central office.
Central office gets all the votes, picks one to make valid, and asks for the blinding factors for the rest. It then decrypts, verifies, and unblinds these. It then checks that each is a valid vote and that the GUIDs come in pairs. For the last vote it decrypts, verifies, signs with a DIFFERENT KEY PAIR, encrypts to voter, and returns the vote (both of them). The voter then decrypts the vote, unblinds it, picks one, and sends it in to vote. This last step (submission) is not connected to the others; I could put my vote on a disk and take it to the library to vote if I'm paranoid.
So, this meets all the needed requirements:
One person, one vote: registration + GUID (can't submit vote more than once; central office won't sign more than one.
Anonymous: when I send in my vote, it no longer has my key connected to it, and the central office doesn't know the GUID.
can't be faked: partly in the registration, partly in the crypto.
Third party can't see: its encrypted
Third party can't change: same
I can cverify that I voted and who I voted for: I can send a request "who did this GUID vote for" to office, and it can tell me. If I'm paranoid, I worry about the central office tracking IPs and such, so I don't ask or ask from a library etc.
Did I miss anything?
---