Next: 3.3 Real Networks
Up: 3. Hierarchical elections
Previous: 3.1 Public district tallies
A more interesting requirement for a hierarchical election scheme is
that the district tallies remain secret. To satisfy this requirement,
we first modify Protocol 7 to produce
encrypted masked shares of the district tally, rather than
unencrypted masked shares. This can be achieved by encrypting the
votes sent from the voter to the authorities.
In this scheme, to submit a secret vote
for which the
voter has chosen the shares
with Shamir secret sharing,
the voter no longer sends
publicly to authority
tj (where xj is the private masking value transmitted by
authority tj to the voter), as in Protocol 7.
Instead, the voter sends an encryption
,
which can be decrypted only by tj. As we will see below,
this ensures that district tallies remain secret. Note that the
encryption parameters used by voters to encrypt the votes are
different from the parameters used by authorities to publicly commit
to the masking values; if the same set of parameters were used,
uncoercibility would be lost. We detail the modifications below.
Protocol 8 (District Election Scheme)
The notation is same as that in Protocol
7, except
we use
Ej in addition to
E*j to denote the encryption function
using the parameters (
nj,
yj) posted by authority
tj. The
global
r value is common between the two sets of parameters (and
across all authorities, as usual).
- 1.
- Authorities each construct and prove the validity of encryption
parameters (nj,yj) and
(n*j,y*j), using one of the
previously described protocols.
- 2.
- For each voter, each authority tj randomly selects a masking
value xj and other values c1, ..., ck1. The
plaintext values xj, c1, ..., ck1 are transmitted
privately to the voter in the voting booth, while the encrypted
values
,
, ...,
are publicly broadcast. Just as in
step 3 of
Protocol 7, the authority interactively proves
that the plaintext values actually correspond to the encrypted
values.
- 3.
- Each voter now creates k2+1 ballots, B0,
B1, ..., Bk2, each comprised of a 0-vote and a
1-vote. Again, note that each vote now consists of T shares
which are encrypted (using Ej) and masked. Each voter
publicly distributes to each authority its encrypted masked
share of both halves of the ballot, each component masked using
different masking values. There are T(k2+1) masking values
involved in total for each voter; denote the masking value for
ballot Bi and authority tj as xij, an encryption
of which is publicly released (
,
). With the use of k2 beacon bits,
the following interactive proof is then executed for each ballot
B1, ..., Bk2, which will show with high probability
that B0 is a valid ballot:
- If the ith beacon bit is 0, each authority tj decrypts its masking value xij, and the voter
decrypts the encrypted masked share that it previously
sent to each authority. The authorities certify their
decryption of the masking values using a certificate with
respect to E*j; the voter certify its decryption of
the ballot shares using a certificate with respect to
Ej. Everyone can then subtract xij from the
decrypted masked shares to obtain unmasked shares, and
reconstruct the secret vote pair to verify that one vote
is 0 and the other is 1.
- If the ith beacon bit is 1, the voter shows that the two
halves of B0 correspond to the two halves of Bi by
instructing the authorities as to which half of one
corresponds to which half of the other. For each
pair of votes
(where
for each j) which the voter claims to be of
the same type (i.e., s=s'), each authority tj reveals
x0j-xij and certifies that
,
without revealing x0j or
xij. The voter, on the other hand, reveals
 |
(3.1) |
and certifies that
 |
(3.2) |
without revealing
or
.
Everybody can then compute
 |
| |
|
 |
(3.3) |
for each j, thereby reconstructing s-s', which should
be zero (mod r).
- 4.
- Each voter selects half of B0 and submits it as its
actual vote. To vote
,
the voter selects the half
 |
(3.4) |
from B0.
- 5.
- Everybody can now calculate the products over all voters
 |
(3.5) |
Everybody can also calculate the products over all voters
 |
(3.6) |
in which
 |
(3.7) |
for each j. Each authority tj now decrypts
,
revealing
and certifying that
.
Each authority (or somebody
other random entity) then encrypts and certifies
into
(note the transition between
encryption parameters, from E*j to Ej, at this stage).
Because for all voters
 |
(3.8) |
and the homomorphism properties of Ej and
,
we have
 |
(3.9) |
for each j, where Y is the correct tally. Hence, again by
the homomorphism property of Ej, everybody can calculate
 |
(3.10) |
- 6.
- The general public now knows with high
probability the encrypted but unmasked shares
 |
(3.11) |
of Y.
If we wish to know the actual tally Y, we can simply ask each
authority tj to decrypt (by exhaustive search)
and execute Protocol 4 to prove
the correctness of the decryption. Everybody then knows the
unencrypted, unmasked shares
 |
(3.12) |
from which everybody can reconstruct the tally Y. However,
for use as a sub-protocol in the hierarchical election protocol
below, this step must not be executed. The privacy of the
district tally is preserved in the same way in which the privacy
of each individual voter's vote is preserved, namely Shamir
secret sharing (or any other secret sharing scheme that is
plugged in).
Based on Protocol 8 for running each district
election, we can then run a hierarchical election using the following
protocol.
Protocol 9 (Hierarchical Election Scheme)
Denote the intermediate authorities in the election by
t1, ...,
and the global authorities by
t'
1, ...,
t'
U. Denote by
Y1, ...,
YD the district tallies, and

the global tally. We use
Ei to denote the encryption function
using the parameters (
nj,
yj) posted by intermediate authority
ti, and the global
r value. We use
E'
i to denote the
encryption function using the parameters
(
n'
j,
y'
j) posted by
global authority
t'
i, and the global
r value. Note that, unlike
with public district tallies,
r here must be chosen to be larger
than the total number of voters in the global election.
- 1.
- For each district, run a district sub-election using
Protocol 8. However, stop before
step 6. At this point, each authority
tj has a secret share
of the district tally
Yd, and encryptions
 |
(3.13) |
are publicly known.
(Here d denotes the district to which tj belongs.)
- 2.
- Global authorities each construct and prove the validity of
encryption parameters
(n'j,y'j), using one of the previously
described protocols.
- 3.
- Each intermediate authority tj privately creates shares
for i=1, ..., U using a secret
sharing scheme, and (publicly) sends
 |
(3.14) |
to the global authority t'i.
- 4.
- Each tj also privately picks K random numbers c1,
c2, ..., ck3 and releases encryptions
for k=1, 2, ..., K. For each k, tj privately creates shares
for i=1, ..., U using a secret sharing scheme, and (publicly) sends
 |
(3.15) |
to the global authority t'i. In order for tj to prove
that the encrypted shares Aij are distributed properly (as
opposed to just being random numbers), the beacon now generates
K random bits. For each k=1, 2, ..., K, one of the
following is performed:
- If the kth beacon bit is 0, tj reveals ck and
certifies that
 |
(3.16) |
It also reveals
 |
(3.17) |
for all i, certifying that
 |
(3.18) |
Everybody can then verify that
are indeed
properly constructed shares for ck.
- If the kth beacon bit is 1, tj reveals
and certifies that
 |
(3.19) |
It also reveals
 |
(3.20) |
for all i, certifying that
 |
(3.21) |
Everybody can then verify that
are indeed properly constructed shares for
.
- 5.
- The global authorities now need to secretly compute
.
Before doing so, it must secretly
reconstruct Yd for each district d. Denote the
``reconstruction function'' for reconstructing shared secrets as
R[list of intermediate authorities]. More precisely, let
denote the unique function such that for
any shared secret x among the intermediate authorities
tj1, tj2, ..., tjl, the secret can be
reconstructed with the identity
![\begin{displaymath}R[j_1,j_2,\ldots,j_l] \bigl(
\ensuremath{\mathrm{share}} _{j...
...), \ldots,
\ensuremath{\mathrm{share}} _{j_l}(x) \bigr) = x.
\end{displaymath}](img114.gif) |
(3.22) |
Here l is the exact minimum number of intermediate authorities
that are required to collaborate in order to reveal the shared
secret (i.e., the number k chosen in
Protocol 1). The key here is that,
for any given set of authorities
,
the
function
is linear with respect
to the l-vector of shares
 |
(3.23) |
Since each share of Yd is available as a shared secret among
the global authorities (the shares are simply Aij for each
global authority t'i and each intermediate authority tj in
district d), Yd itself can be computed as a shared secret
among the global authorities. Moreover, because addition and
public-scalar multiplication of shared secrets correspond
homomorphically to multiplication and raising to public power of
the encryptions of shared secrets, respectively, the computation
of Yd can be done by manipulating the publicly known
encrypted shares Aij. In this way, everybody (not just the
global authorities) is able to calculate, for each global
authority t'i and each district d, the encrypted share
 |
(3.24) |
This accomplishes the goal of passing the shared secrets Yd from the district authorities to the global authorities. If the
secret sharing parameters are chosen so that more than one
reconstruction of Yd for the same district d are available
(i.e., if k < n in Protocol 1 at the
district level), the multiple reconstructions can be checked
against each other for robustness by computing the differences
between pairs of reconstructions (i.e., quotients of the
encrypted shares), again as shared secrets, then decrypting and
comparing with zero.
- 6.
- Everybody is now able to calculate
 |
(3.25) |
- 7.
- Each global authority t'i now decrypts Z'i into
and executes
Protocol 4 to prove the decryption.
Everybody can then reconstruct Y from the global shares.
While Protocol 9 describes a hierarchical
election with only one level of indirection, i.e., only one
intermediate layer, it easily generalizes to multi-level hierarchical
elections, i.e., elections in which there are more than one level of
intermediate authorities. More specifically, such an election would
start at the level of actual voters, and
steps 2 through 7
of Protocol 9 would be used to verifiably and
securely propagate each sub-tally up a level to higher authorities.
The difference is that, in all but the highest level of the hierarchy,
step 7 is not executed. This keeps all
sub-tallies in intermediate layers secret. Only at the final, global
level are the shares decrypted and used to reconstruct the global
tally.
Next: 3.3 Real Networks
Up: 3. Hierarchical elections
Previous: 3.1 Public district tallies
Ken Shan (ken@digitas.harvard.edu), 1998-05-15