Next: 2.3.5 Improving Uncoercibility: Benaloh
Up: 2.3 Existing Protocols
Previous: 2.3.3 First Try: Cohen
One obvious deficiency in the above protocol is that there is only one
authority, which has the ability to decrypt any individual voter's
vote. This hardly fits most definitions of a secret ballot, and thus
Benaloh (the same person as Cohen above) and Yung proposed an improved
scheme in 1986 [2]. In their new scheme, voters use sum
secret sharing to distribute shares of their votes to each of Tauthorities, who then compute the sum from these shares. In this
protocol, a vote now consists of a vector of encryptions of Tintegers; the plaintext should add to 0 or 1. More formally, a single
voter's vote is now written as
,
where zj is
the jth authority's share of the vote. Since each voter only gets
one vote, we require that
,
where
or
1. A valid ballot still consists of two votes, one of which sums up
to 0 and the other of which sums up to 1. The key here is that each
component of a vote is encrypted using a different authority's
encryption parameters; because each authority tj has its own
encryption parameters (nj,yj), not revealed even to other
authorities, all authorities must cooperate in order to decrypt any
vote or tally. Note, however, that although nj and yj are
different from authority to authority, r is still unique and global
throughout the election.
The immediate problem that this adds is that it is now more difficult
for the voters to prove that the ballots they use are valid, since the
ballots now consist of many separate pieces. The protocol for
verifying the honesty of the authorities is also more complicated this
time.
The complete protocol is as follows; we explain parts of it in more
detail afterwards.
Protocol 6 (Benaloh/Yung 1986 Election Scheme)
Suppose there are
T authorities,
t1, ...,
tT. We use
Ejto denote the encryption function using the parameters (
nj,
yj)posted by authority
tj, and the global
r value.
A. Verifying the honesty of the authorities.
- 1.
- Each authority tj privately generates and provides encryption
parameters (nj,yj), which it claims satisfies the necessary
number theoretic properties.
- 2.
- Voters prepare k1 test ballots and
interactively prove each of them is valid. This uses a very
similar protocol to that used in the interactive proof in step 2
of Protocol 5. For each test ballot
(u0,v0) (where u0 and v0 are both vectors with T encrypted components), the voter carries out the following steps
to prove the validity of the test ballot:
- Prepare a certain number of auxiliary ballots (analogous
to the (u1,v1), ...,
(uk2,vk2) of
Protocol 5.
- For each auxiliary ballot (uj,vj), read a random bit
from the beacon, and based on the beacon bit, perform one
of the following (note that while this is the same as the
above protocol in description, the mechanics are different
given that each vote is now a vector and not an integer):
- If the beacon bit is 0, prove that (uj,vj) is valid by decrypting uj and vj. Each vote
is decrypted by releasing certificates for each
component of the vector, proving that the T plaintext components add up to 0 for one of the
two votes and 1 for the other.
- If the beacon bit is 1, then prove that (uj,vj) is of the same type as (u0,v0), i.e., that
either uj is of the same type as u0 and vj as v0, or uj is of the same type as v0 and
vj as u0. (See description of this below.)
- 3.
- Each voter votes (randomly) one of the two halves of each of its
test ballots; in effect, there are k1 parallel elections
being held.
- 4.
- The authorities decrypt all of the pieces of votes they receive
and reveal the decryptions.
- 5.
- The voters release the plaintext of all of the pieces they
voted, along with certificates, and a check is performed to make
sure that all pieces in step 4 match those in step 5. If this
is successful, then we can be sure with high probability that
all of the authorities have distributed valid encryption
parameters and are able to distinguish votes.
B. Conducting the actual election.
- 1.
- Each voter creates a new ballot for actual use, and uses the
protocol in step 2 to verify that it is valid.
- 2.
- Each voter selects half of the new ballot and submits it as its
actual vote. Voter j sends to authority i the share
zij which is an encryption of mij.
- 3.
- Each authority now multiplies the shares it has received
together to obtain
.
The authority now releases
and invokes
Protocol 4 to prove that it is the
decryption of
.
- 4.
- The final tally for the election is simply the sum of the
released by the authorities (mod r).

This protocol is structurally the same as
Protocol 5. The only complicating factor is in
step 2, where we need to prove that two votes are of
the same type. This can be accomplished using a method similar to the
dividing of encrypted votes in Protocol 5, where the
quotient of the encrypted votes was shown to be an encryption of 0.
Here, with votes being vectors instead of integers, we need to
construct a vector of quotients and show that the quotients are
encryptions of integers which add up to 0. More formally, let one
vote be
and the other be
,
where
,
.
If the two votes are indeed of the same type, mj and
m'j would satisfy
 |
(2.7) |
For each j, let xj and x'j be certificates for
and
,
respectively; in other words, let xjand x'j be the random numbers used when the voter prepared the
votes in the first place, such that
| |
 |
|
(2.8) |
| |
 |
|
(2.9) |
Then, we have
| |
 |
|
(2.10) |
| |
 |
|
(2.11) |
If
,
the voter releases mj-m'j and certifies it
with xj/x'j. If
mj-m'j<0 on the other hand, the voter
releases
mj-m'j+r and certifies it with
xj/x'jyj. This
normalization ensures that the decryption released for aj/a'jalways falls within the range [0,r-1], so that no useful information
to the adversary is revealed about the relative order between mjand m'j.
This completes our description of Protocol 6. By
tuning the security parameters including k1 and k2, any level of
confidence in the results of the election can be achieved. It should
be noted that, consistent with the principles of sum secret sharing,
all of the authorities are required to collaborate in order to
determine any individual's vote. The down side of this, however, is
that a single authority's crash failure can halt the election.
Next: 2.3.5 Improving Uncoercibility: Benaloh
Up: 2.3 Existing Protocols
Previous: 2.3.3 First Try: Cohen
Ken Shan (ken@digitas.harvard.edu), 1998-05-15