logoalt Hacker News

An algorithmic failure beneath the secret ballot

69 points • by leecoursey • last Saturday at 4:23 PM • 31 comments • view on HN

Comments

RA2lover • today at 6:14 AM

Diego Aranha had found an exploit with brazilian voting machines back in 2017. They scrambled votes whenever every vote was cast using a CSPRNG, but initialized its seed with the time the voting machine had been turned on (rounded to the second), which due to voting protocols at the time meant you only had to have one person vote a specific way and bruteforce 3600 orderings to find that person's vote and destroy ballot secrecy for everyone else who voted on the same machine.

Seems like this is the same mode of failure, which is strange considering diebold made the brazilian machines back then and should have fixed that.

anilakar • today at 5:41 AM

> To keep the published record anonymous, ballot scanners shuffle the electronic records randomly before releasing them

So they were never secret in the first place.

I have never understood the desire to have voting machines when a paper ballot works just fine. We tried electronic voting in three municipal elections in 2008 and courts ended up invalidating the results due to horrible usability issues.

➕ show 1 reply
cryptonector • today at 4:47 AM

The way this sort of problem has been fixed in Texas since 2024 is to require that all ballots be sequentially numbered -- that is, they arrive at polling locations in packs of 50 or 100 ballots, each pack having sequentially numbered ballots, but the presiding judge takes 10-20 at a time, signs them, then shuffles them, places them with the serial number facing down towards the table, and voters get to pick one at random when they check in.

beloch • today at 4:33 AM

"In October 2022, a team of researchers published a report showing that certain ballot scanning machines used throughout the US had a critical privacy failure in how they anonymized ballots. Specifically, the machines would assign a seemingly random number to each electronic ballot record at the time of scanning to label each ballot for later auditing. However, the algorithm by which the machines generate this random number is actually deterministic and can be exactly reversed to identify the sequence in which ballots were cast.

...

Naturally, knowing the order ballots were cast is just one piece of the puzzle. But, when paired with publicly available records on the order in which voters cast their ballots (such as logbooks or poll watchers), a simple procedure exists to reconstruct the mapping from ballots back to voters."

---------------------

1. Either upgrade your pseudo-RNG's to real RNG's ($$$) or omit the "random" number from records.

2. Alternatively, just use plain paper ballots. (Yes, I know America is extra-superduper special and ordinary paper ballots that work everywhere else on the planet will never work in America. Special requirements, too many people, labour intensive, politicians hate them, the moon is in the wrong phase, etc..)

I understand there is the desire to provide a paper trail that can be used to validate results, but being able to track individual ballots back to the people who cast them is not a feature of a functioning democracy. This is the sort of thing Russia would want to do. People need to feel their secret ballots are, indeed, secret.

➕ show 1 reply
rapidaneurism • today at 6:03 AM

I feel a bit silly, but I do not understand how the results were verified.

lenerdenator • today at 1:27 AM

> this allows you to know whether your neighbor voted, but never who they voted for.

There's probably an angle I'm not thinking of here, but imho, it's absolutely not John Q. Public's damned business what a person does or does not do on election day.

➕ show 3 replies
allforJesse • today at 1:26 AM

When I hit the term "load-bearing" in the first sentence my mind immediately turned off. Had to forcibly reengage in reading. Claude trauma is real.

➕ show 2 replies
leecoursey • last Saturday at 4:23 PM

[dead]

digitalPhonix • today at 3:05 AM

[flagged]

➕ show 1 reply
baggy_trough • today at 3:37 AM

[flagged]