that does not allow the voter to derive a second
signed token, similar to protocols used in electronic
cash(Chaum, 1982). For example, a token t is ran-
domly generated by the voter and a collision resis-
tant one-way function h(t) is blinded by the voter and
sent to the authentication server along with the voter
authentication credentials (e.g. name and address, or
username and password).
The server checks the authentication credentials
and, if valid, signs the blinded value and marks the
voter as being checked-in. Depending on which bal-
lot style the voter is assigned to, the server may use
a different private key to sign the blinded token. The
server does not have access to the value, since it is
blinded. This offers information-theoretic protection.
The server sends back to the voter the signed, blinded
value. The voter un-blinds it, and obtains h(t) which
is now signed. She checks that the signed value is
h(t) she sent to the server and that the digital signa-
ture is correct. The voter prints the signed value and
the token t, and brings them to the check-in station
at a polling place during voting day. The signed to-
ken is scanned and the voter may be asked to provide
some form of identification (e.g. a government-issued
photo ID). The check-in judge checks that this is the
first time the token has been presented (to prevent the
reuse of the token), that the digital signature is valid
and that it corresponds to the precinct and ballot style
assigned to the voter’s address.
Definitions: M is a large message space, the voter
chooses tokens in this space with a high probability of
being unique and R is a finite set of random strings
as required by the blinding scheme:
• h is a collision resistant one-way hash function.
• sig, valid, (pri, pub): a public/private key signa-
ture mechanism such that s = sig(pri, h(m)) does
not leak knowledge of pri and valid(pub, s, m) =
true holds if s was derived from m and pri.
• b : M xR → M is the blinding mechanism. It is
used in conjunction with its reverse function un-
blinding ub : M xR → M . Given b(m, r), one can
not infer anything about m, but used in conjunc-
tion with the signing mechanism, one can com-
pute ub(s(pri, b(m, r)), r) = s(pri, m) and it is not
possible to derive s(pri, m) from s(pri, b(m, r))
without r.
Here are the steps taken by the voter to check-in:
1. The voter chooses 2 random values: t ∈ M , and
a random blinding factor r ∈ R . She computes
h(t), then blinds the hashed token σ = b(h(t), r);
she sends σ to the check-in server.
2. If the check-in server validates the user cre-
dentials, it signs σ and, sends sig(pri, σ) =
sig(pri, b(h(t), r)) back to the voter.
3. After unblinding the signature, ub(s(pri, σ), r) the
user has the signed token ρ = s(h(t)). Using a lo-
cal application (such as a browserplugin), the user
prints the check-in ticket (ρ and t) using electron-
ically recognizable markup (like a 2D barcode) .
4. At the polling place, a scanner reads ρ and t,
checks valid(ρ, pub, t), checks if the token was
used before, and records t.
The check-in server that signed the tokens has ac-
cess to the order in which the voters check-in from
home, and the electronic poll book at the polling place
has access to the order of the signed tokens, but the
two machines cannot match the two orders anymore.
The order in which the voters checked-in from home
is different from the order they come into the polling
place, and the check-in server never got to see the to-
ken in clear-text (but only in blinded form). The elec-
tronic poll book at the polling place sees the token in
clear-text, signed, but never gets to see the identity of
the voters. The check-in judge does get to see this
identity, but it is not entered into the electronic poll
book.
The private key that is used by the server to sign
the blinded token is unique to the ballot style belong-
ing to the voter. A different private key is used for
each ballot style. Since the server has access to the
complete identity of the voter, it can easily identify
the ballot style corresponding to that voter, and thus
use the appropriate private key.
If a voter loses her signed token, she must provide
either the token or the blinding factor to the sing-in
server, so it can obtain the hash and put it on a black-
list. For situations in which the voter loses her signed
token, forgets the token and the blinding factor, an ad-
ditional recovery mechanism must be developed. For
example, the voter may distribute the blinding fac-
tor to a number of trustees using a threshold secret
sharing technique, such that only a quorum can re-
construct them. The voter may have to prove (in zero-
knowledge) to the sign-in server that she distributed
the same values to the trustees.
A possible attack against the simple token con-
struction may involve a coercer that collects valid
signed tokens from voters and uses them to cast multi-
ple ballots by himself. The same person comes to var-
ious polling places multiple times and presents differ-
ent authorization tokens that are validly signed. This
is possible since the anonymous token is completely
independent from the voter’s identity, and the check-
in judge that verifies the voter’s identity and the va-
lidity of the token has no way to link the two. The
next section presents a specially constructed token
that makes this attack impractical.
ON THE PRIVACY THREATS OF ELECTRONIC POLL BOOKS
283