> the public key must be known, which means that someone's vote cannot be anonymous.
How does this follow?
How does this follow?
You create a plaintext ballot, then you encrypt the ballot with the election authorities' keys, then you sign your encrypted ballot with your own private key (then you send the ballot to the server).
You are signing a ballot that is already encrypted.
Using a mixnet (note: Tor uses mixnets too), you can anonymize and decrypt the ballots while preserving the secrecy of the ballot. Not even the servers know at any point that you voted to Hillary/Trump, but the tally is done. And the whole process is end-to-end verifiable by any external party.
It's the magic of math.