INTERNET VOTING
Appendix
David Chaum explains blind signatures in "Blind Signatures for Untraceable
Payments". This is the best explanation but, since it is not available
online, here is an another good explanation by Nick Szabo in
Contracts with Bearer.
"Meet the greatest simple equation since e=mc2:
gSf(m) = S(m)
S is a digital signature. f is the blinding function, and g an unblinding function. The blinding functions are usually based on a secret random number called the "blinding factor". m is another random number, a unique identifier which can, for example, refer to an instance of some object.
The idea is very clever but very simple. It may be counterintuitive because the simplest physical world metaphor of
this highly useful e-commerce primitive sounds worse than useless: Alice can get Carol to sign a blank check!
Here's how:
(1) Alice generates m and blinds it. "Blinding" is just a one-time-pad encryption to oneself, f(m). She sends this to Carol. This is like taking a piece of paper and sealing it inside an envelope which Carol can't open or see through.
(2) Carol signs it: Sf(m), and sends this back to Alice. This is like Carol signing the outside of the envelope.
(3) Alice unblinds it: gSf(m) = S(m). Carol has also signed the paper Alice put inside the envelope!
The genius behind this discovery: cryptography guru David Chaum. The brilliance lies in step 3: Chaum discovered that some signatures have the property of being "commutative" with the blinding functions: Alice can strip off the blinding in the reverse order which the blinding and signature were applied, leaving just Alice's signature of n. It is as if Alice put a piece of carbon paper inside the envelope!
In particular for RSA signatures, with public key (pq, e) and private key d, the blind signature functions are the following modulo pq:
S(x) = xd
g(x) = xk-1
f(x)= xke
We can check that the blind signature property holds: gSf(m) = (m(ke))d * k-1 = md * k * k-1 = md, which is the valid RSA signature of private key d on m."
The implementation at Princeton used the Bit Commitment Using One-Way Functions described by Bruce Schenier in his book, Applied Cryptography.
A further discussion of this algorithm is at this site in Canada.
Princeton Ben Davenport, Alan Newberger, and Jason Woodard from Princeton University have presented an election model in their paper, Creating a Secure Digital Voting Protocol for Campus Elections(no longer available). They designed their system very closely on the Fujioka, et.al., paper.
As best I can tell, they partially implemented the model in Perl using CGI with a system called E-Lect which does NOT use any cryptographic voting protocol. However one day I happened to be checking on this system and discovered that Princeton was holding student government elections. I actually went through the voting procedure to see how it worked. They are now using a system called Voce which stands for Voicing Opinions through Cryptographic Elections. This system looked as though it may have evolved from E-Lect and uses Secure Sockets. I sent email with questions to Alan Newberger but it came back so I think they have graduated.
Their model is comprised of three modules which correspond closely to the three
modules in SENSUS. VOT (corresponds to Pollster) is implemented
as a server, however, not a client module. For all transmissions between
the three server modules, VOT, CIT (corresponds to Validator), and
USG (corresponds to Tallier), PGP is used for encryption and authentication.
MD5 is used for hashing and a technique based on RSA is used for blind
signatures.

Fig. 2
Here is a summary of what happens when Alice casts a vote using the mode
l in their paper:
Since SENSUS and E-Lect were both based on the same model, they have basically the same strengths and weaknesses and so I refer you to that section. The one change is the "thank you" sent to each voter. Supposedly if the voter didn't vote, they would protest and that would catch any stuffing of the ballot box by the validator. That is OK for a campus election but one cannot imagine it in a large election.