Blind signatures for simple election

jan.svensson at hush.com jan.svensson at hush.com
Tue Apr 7 20:15:13 CEST 2015


Hello,

I have been looking around a bit, but couldn't find the answer. I
would like to do the following with GPG if possible, thanks in
advance:

Assume we would like to hold a small election where no one should be
able to know which political party anyone have voted for.

User A, user B, and user C each have a small text file named
"ballot.txt" which contains his/her favorite political party written
in clear text, e.g. just the text "D" (for the Democratic Party) or
the text "R" (for the Republican Party).

Then all of them generates some kind of blinding factor "b" to be used
to blind their ballot. Then they blind "ballot.txt" with the blinding
factor b:

    blind(ballot.txt,b)

All of them sends their "ballot.txt.blind" to the signer user X who
can not see the contents of the file since it is blinded.

User X signs all of the files "ballot.txt.blind" with the same
signature used only for this election:

    sign(blind(ballot,b),d)

User X now sends "ballot.txt.blind.sign" back to user A, user B, and
user C. Each of them now unblinds their file "ballot.txt.blind.sign":

    unblind(sign(blind(ballot,b),d),b)

which can be reduced to

    sign(ballot,d)

Finally, at the day of election, user A, user B, and user C vists an
election room and delivers their file "ballot.txt.sign" on a USB
memory stick and watches while the trustee stores their ballots
"ballot.txt.sign" in some way. This file "ballot.txt.sign" contains
their political party written in clear text and also contains a
signature made by user X to indicate that the ballot is valid for the
election.

How can I do all above in some simple way with GPG commands like
--gen-key, --sign, --verify etc? Or do I need to apply e.g. some
patches to GPG to be able to do this?

Thanks alot in advance!

Jan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20150407/12477d50/attachment.html>


More information about the Gnupg-users mailing list