2.4 Zero-knowledge proofs
2.4.2 ZKP for message lies in set
Cramer et al. [CDS94] presented an approach to construct proofs of partial knowledge. This approach has been implemented as range proofs. These proofs permit us to demonstrate that the cleartext encrypted in a ciphertext belongs to a given set. Next, we detail its implementation for range proofs of ciphertexts encrypted under EC-ElGamal.
Prover
Let P be a prover who wants to prove that an EC-ElGamal ciphertext C = (A, B) is encrypting a point Sk which lies in the set S = {S1, S2, . . . , Sk}.
P would proceed as follows:
1. P randomly generates wj, uj, x for j = 1, 2, . . . , k − 1.
2. P computes
A0j = wjP + ujA forj 6= k, Bj0 = wjQ + uj(B − Sj) forj 6= k, A0k= xP,
Bk0 = xQ.
3. P computes chall = H(A0, B0), A0 and B0 being the concatenation of the values Aj and Bj for 1 ≤ j ≤ k, respectively.
4. P sends:
w1, w2, . . . , wk u1, u2, . . . , uk, with
uk= chall −Pk−1 j=1uj, wk = x − ukr.
Notice that r is the random integer used in the generation of C and it is only known by the P.
Verifier
The verifier knows C = (A, B) and the set S. When she receives w1, w2, . . . , wk u1, u2, . . . , uk,
she proceeds with the following checks:
1. The verifier checks that H(A0, B0) =Pk j=1uj. 2. For each j, 1 ≤ j ≤ k, the verifier checks that
A0j = wjP + ujA, B0j = wjQ + uj(B − Sj).
If all the checks are satisfied, the verifier is convinced that C is an en-cryption of a point in the set S.
Chapter 3
Mix-type paradigm
This chapter begins with a description of the mix-type remote voting para-digm. The main idea and its properties are explained in Section 3.1. Mix-type remote voting offers privacy by breaking the link between the ballots and the voters who cast them through a mixing process whose correctness has to be proven in zero-knowledge. One of the approaches is the so-called optimistic mixing, a description of which is given in Section 3.2. After that, in Section 3.3, we present a new proposal for optimistic mixing which was published in [MMS11].
3.1 Paradigm description
The main phases of an electronic election have been described in Section 1.1.
As has been explained, some paradigms require additional entities and in-clude additional phases. The mix-type paradigm includes an additional phase, called mixing, in which the link between each ballot and its caster is broken by a set of mixing authorities. Usually, a mix-type paradigm voting scheme is composed of the following four phases:
1. Setup: A public key cryptosystem is chosen and the election keys are generated by the vote tallying authorities. Next, the election public key is published on a publicly accessible bulletin board. At the same time, the electoral roll authority publishes the electoral roll so that it can be checked. The electoral roll includes information required to verify the public key of each eligible voter. This information could be a digital certificate of the voter’s public key or simply the public key of the accepted certificate authorities. The list of candidates as well as the instructions for voters are also published.
As a result of this phase, the bulletin board contains the election public key, the electoral roll and the candidates list. The bulletin board permissions are then set so that these data can no longer be modified.
25
2. Vote casting: During this phase, a voter generates a message de-scribing her choice and encrypts it under the election public key. The resulting ciphertext is then digitally signed using the private key as-sociated with her digital certificate. After that, the ballot and its signature are sent to the vote collecting entity through the Internet.
Upon receiving a ballot, the vote collecting entity must authenticate the ballot caster and check that she appears in the electoral roll. This is done by checking the validity of the digital signature using the voter’s digital certificate. If the caster is an eligible voter and has not cast a ballot before, then the vote collecting authority publishes the ballot on the bulletin board so that any entity can perform the same checks.
The vote casting phase ends when the voting period expires or when all the eligible voters have cast their ballots.
3. Mixing: During this phase, the so-called mixing authorities are re-quired. These authorities are organized in a sequential manner such that the first one takes as input the ballots published on the bulletin board. These ballots are mixed (permuted and re-encrypted). The second mixer then takes as input the output of the first authority and performs the same operation. This process is repeated for each mixer.
In the end, a set of mixed ballots is obtained. Each mixing authority publishes its result together with a zero-knowledge proof proving that its output really corresponds to a mixing of its input. In this way, any entity can check its correctness.
4. Tallying: The resulting set of mixed ballots is verifiably decrypted by the the vote tallying authorities. Once the ballots have been decrypted, the election result is published on the bulletin board.
Since ballots are individually decrypted, there is no restriction on its format or coding. Hence, the range of messages that can be encrypted is only bounded by the cleartext message length. As a consequence, the paradigm can be used in elections in which vote coding is rather complicated. If, after decrypting it, some vote is found to have been badly generated, it can simply be discarded.
The most complex and time-consuming part of this paradigm is the generation and validation of the zero-knowledge proof of correct mixing.
The next section is devoted to this part.