using a real world event, the "mysterious" -16,000 Gore votes in Volusia Co. in 2000.
I will pare this down to the bare points for simplicity. Let's start with the facts:
- Reporters watching the totals during election night noticed Gore's count going BACKWARDS.
- When investigated it was discovered that a PCMCIA card was uploaded which had NEGATIVE votes.
- The data was discarded, and the correct data re-uploaded.
- It was reported an unaccounted for PCMCIA card had been used in the system, this card later could not be found.
Nature of the bug:
- Program allows negative integer values (negative votes) to be uploaded into database.
Probable reason: Poor error-trapping. The first thing a *good* programmer does is type his variables (text, whole numbers, integers, dates, etc) and build error traps, ways the program can determine that an error has occurred and how to deal with them. In this case, a logical check when votes are uploaded would be to check data values for the presence of negative or fractional votes, which would be invalid. The program did not perform this check and the data was accepted. When negative numbers are added to positive numbers, subtraction occurs.
My theory on what happened:
- The PCMCIA card had a write error which corrupted the data.
Why this is the likely explanation?:
If you are going to try and steal votes, stealing 16,000 in a precinct where only 600 people voted is rather stupid. It sticks out like a sore thumb, which it did, which is why it was caught.
How it could be used as a cheat:
- Tamper with the cards deliberately and alter the data, but in smaller amounts over multiple precincts.
This would require secret access to the PCMCIA cards, or the substitution of duplicate cards.
How it could be detected:
- Comparison of precinct vote tallies during a random recount.
How it could be prevented:
- PCMCIA cards use hard encryption to foil attempts at altering.
- PCMCIA cards are marked with identifying serial numbers and tamper-resistant seals to prevent substitution.
- Stringent security procedures for handling PCMCIA cards (cards signed in and out, serial numbers and seals checked).
- Mandatory random recounts.
- Paper ballots.
Most likely fate of the mysterious card:
Joe: Hey, Fred! What do I do with this memory card that didn't work?
Fred: Ah, chuck it out. We don't want it to be used accidentally next time.
*THUNK*
Later.
Election official: Did you guys see a bad PC card? I hope no one threw it out because they could lose their job.
Joe & Fred (nervously): Uh, no, haven't seen one. Nope, no memory cards around here. Did you check the break room?
Again this is a VERY basic primer on a bug that could be exploited. It would be easy to affect a small local race because the number of votes involved would be much smaller. The bigger the race, the harder it is since you must gain access to a larger number of cards, or enlist more people in the scheme.