1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA512 |
3 |
|
4 |
On 07/17/2014 07:13 PM, Rich Freeman wrote: |
5 |
> On Thu, Jul 17, 2014 at 12:48 PM, email@×××××××××××××××××.com |
6 |
> <email@×××××××××××××××××.com> wrote: |
7 |
>> Elections should not be transparent, voters should be anonymous |
8 |
>> so that people are more likely to actually vote. |
9 |
> |
10 |
> Tend to agree. |
11 |
> |
12 |
> I was actually thinking of ways to improve upon things. |
13 |
> |
14 |
> One thought I had was an e-cash like system. Voters would be |
15 |
> given credit to make a single vote in the form of an e-cash-like |
16 |
> token, with a serial number. The user generates the serial number, |
17 |
> and the voting system would not know who has what serial number, |
18 |
> but it would know that legitimate users can only generate one |
19 |
> each. |
20 |
> |
21 |
> Then voters would give the token to the voting system and record |
22 |
> their vote. The master ballot would include the serial numbers, so |
23 |
> voters could check that their ballots are present, and assure |
24 |
> themselves that the total count looks OK. |
25 |
> |
26 |
> The software itself could be something standard - there are lots |
27 |
> of solutions already out there. The only thing that would be |
28 |
> tweaking is that we need software to sign tokens, and software to |
29 |
> check/redeem them. |
30 |
> |
31 |
> In case anybody isn't familiar with e-cash, the principle is this: |
32 |
> 1. You generate 1000 tokens with unique serial numbers and |
33 |
> encrypt them all with 1000 private keys and give all the encrypted |
34 |
> tokens to the "bank." 2. The bank picks 999 of the tokens and asks |
35 |
> you to send their corresponding private keys. The bank checks that |
36 |
> all 999 are valid, and you get in trouble if any aren't. 3. If all |
37 |
> are valid, then the bank signs the 1000th token blindly and sends |
38 |
> it back to you. 4. You then decrypt the signed token - the |
39 |
> algorithm preserves the signature integrity and ensures that the |
40 |
> bank can't ID the decrypted token using its knowledge of the |
41 |
> encrypted token. 5. You can then spend the token, which has an |
42 |
> intact signature from the bank validating it. |
43 |
> |
44 |
> I'd have to dig up the details of how it works, but the idea is |
45 |
> that the bank can sign a token without actually seeing its content, |
46 |
> while being assured that the content is valid. |
47 |
> |
48 |
> Overkill perhaps, but an algorithm like this would allow people to |
49 |
> anonymously vote in a secure manner. The medium that data is |
50 |
> exchanged in could be whatever we want it to be. Generating the |
51 |
> token is somewhat interactive, but submitting the ballots is |
52 |
> one-way so it could be email, file drop, web, whatever. The token |
53 |
> could include a public key for validating a ballot as well. |
54 |
> |
55 |
> Just some random thoughts. |
56 |
> |
57 |
> Rich |
58 |
> |
59 |
|
60 |
There are already existing anonymous end-to-end verifiable voting |
61 |
systems, e.g. Prêt à Voter ( |
62 |
http://www.pretavoter.com/publications/PretaVoter2010.pdf ). So |
63 |
there's no need to invent the wheel again. |
64 |
|
65 |
In short it could work like this: |
66 |
|
67 |
Candidates list: |
68 |
|
69 |
A |
70 |
B |
71 |
C |
72 |
D |
73 |
==== |
74 |
"OnionA" |
75 |
|
76 |
Each election official (one after another) permutes the candidate |
77 |
list, and crypts it into the onion (which stores the original |
78 |
candidate order). |
79 |
|
80 |
The voter gets a ballot form looking like this: |
81 |
|
82 |
B |
83 |
A |
84 |
D |
85 |
C |
86 |
==== |
87 |
"h(g(f(Onion)))" |
88 |
|
89 |
She then makes her choices and splits the candidates from the form. |
90 |
|
91 |
3 |
92 |
2 |
93 |
4 |
94 |
1 |
95 |
==== |
96 |
"h(g(f(Onion)))" |
97 |
|
98 |
Encrypts it with the public key of the election official that permuted |
99 |
it at last and casts her vote. |
100 |
The official receiving the vote, looks at the onion undoes her |
101 |
permutation on the choices, publishes it and sends it to the next |
102 |
official (who does the same) until the initial ballot-creating |
103 |
official gets the candidate list and publishes it. |
104 |
|
105 |
As long as the election officials don't cooperate and share their |
106 |
knowledge, your vote is kept secret. |
107 |
|
108 |
|
109 |
Cheers |
110 |
|
111 |
Manuel |
112 |
-----BEGIN PGP SIGNATURE----- |
113 |
Version: GnuPG v2.0 |
114 |
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ |
115 |
|
116 |
iQJ8BAEBCgBmBQJTyAykXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w |
117 |
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ4MDA1RERERkM0ODM2QkE4MEY3NzY0N0M1 |
118 |
OEZCQTM2QzhEOUQ2MzVDAAoJEFj7o2yNnWNcPVQP/1LND2QGiJHa5FwvWwLRcLMm |
119 |
NCxLh4aG37xu7eRcyPFQD6+EaLOl9FRpc7hY62Z421u0MMRBiGqiBOoQw8zbYSMd |
120 |
YXcJN6GcShBh8VXD4ru+38kaJ7EszdoBHfAMdApbO+gh0PN4VDOgQRArWTMikNjp |
121 |
9l3B36aTvW3wEwlOENSDIDZR0LLMvr8No9wMIfLYGRNHX0g2guQpcBiVYnLoVps3 |
122 |
rJGQxPuMWccl35fk40eoJl2tLU8w4LXhH6JwOOEmqypQYYG8BHzTOdK0yw1YcSR2 |
123 |
+Pd6QlR0WvoLAMbKtYmNIDXkr323L7XBl/u4hH5l/IM87I6k5qiAsUHuJe1/TC2o |
124 |
YGxyWXFrxEYzYMaaN9M0r96RQTv1BumZAFHlpA+K/NENe+PVzkEDLMmIw6yDRNdA |
125 |
wbdYF8lcuH0aKW2AMhqlQnX8veoAr0W/+QCIehNqELyhSWLGIm97gLd8/fBWEgc8 |
126 |
ozvaMkfb/9F/UxRBQlqH9BYvq+/FBXRUwakU6KVA7Ri2/vhn75RNQMZjVbYix49M |
127 |
GsEuS1tfhVABnlxciTchwXfUxlBifatUkaHVkYalkpxNUtl5pCs1zpWI7SKi1m5W |
128 |
44bd1aEeFxkKu0DP7y3F9uG8hU4OUqyT2H/1QocJAp4FZ0zyjqUDeVPWOwrCBRPZ |
129 |
R6NVyxCmy/sLBpK1lamW |
130 |
=0nf9 |
131 |
-----END PGP SIGNATURE----- |