Obfuscated Vote Counting Contest
Daniel Horn writes "In a flash of inspiration coming from the Obfuscated C code contest and the current E-voting scandals, I wondered if there shouldn't be a similar code obfuscation contest based on obfuscating voting results, that is, C code that appears correct but does the wrong thing when counting votes. Submit your obfuscated vote-counting code now, and the two winners will be selected on November 2 and will receive a free Vega Strike CD. Obviously incorrect code, however, is not welcome."
This seems to be similar to Dr. Avi Rubin's challenge to the community, which basically states that a team of security specialists and programmers should be given access to the development environment of one of the major DRE machines, by the vendor. The team should then attempt to rig the machine in favor of one candidate, and then submit the machine for approval by the elections board's testing agency. The testing agency doesn't know it's being tested, and doesn't know the machine is rigged. Could they catch the rigged machine as they currently claim? It's the same basic principle as having undercover agents attempt to sneak weapons through airport security.
The paper can be found at:
http://avirubin.com/vote/ita.challenge.pdf
Intercarve Networks, LLC
Why create code that distorts the voting results, Diebold has already done it.
My favorite story was a county in Pennsylvania (if I remember correctly, it's in this months Readers Digest) where the electronic voting machine correctly counted all 144,000 votes. Except there were only 19,000 registered voters in the entire county.
We're screwed in this election. It is going to make the 2000 Florida crap look like a cakewalk.
Lose Weight and Feel Great with Isagenix
Dan Wallach is teaching a course at Rice that, I think, includes this sort of challenge.
You're missing something more important than a default case.
I want a new world. I think this one is broken.
It has nothing to do with default case. It has to do with the lack of breaks.
Read it again. A vote for kerry means both kerry and bush get a vote. A vote for nader means nader kerry and bush get a vote.
Have you tried Linux yet?
It would be interesting if contestants could defeat the statistical methods used to uncover fraud mentioned elsewhere on that blog.
you had me at #!
It's not the DEFAULT, it's the fall-through.
This is one case where the lack of goto's is harmful.
The body is
yada_yada += 1;
nader += 1;
kerry += 1;
bush += 1;
The cases just determing where the stream is joined.
Anytime nader gets a vote, kerry and bush also get a vote.
Anytime kerry gets a vote, bush gets a vote.
None of the above will fail to register, with or without a DEFAULT.
/* Print results */
printf("Bush: %d\nKerry: %d\nNader: %d\n",
Count(_b),Count(k)(),Count(_n));
return 0;
}
The diffis between:
Count(_b)
Which accesses a variable called for_b
and:
Count(k)()
which calls a function called fork()
I think you misunderstood the point. It's *meant* to do the wrong thing.
Hurricane Ivan: A 17th century prison collapsed. All of the inmates escaped.
Which made me wonder whether when, during the third debate, President's Bush boasted that, "the first person to vote in that election was a 19 year old girl", he might also have been correct to say that she was the second person, and the third person ...