Page 265 - Towards Trustworthy Elections New Directions in Electronic Voting by Ed Gerck (auth.), David Chaum, Markus Jakobsson, Ronald L. Rivest, Peter Y. A. Ryan, Josh Benaloh, Miroslaw Kutylowski, Ben Adida ( (z-lib.org (1)
P. 265
257
An Introduction to PunchScan
Row Permutations Generation
A.1
Consider an “unshuffled” D-matrix where D 1 =[1, 2,... 2n], so row x of PDR
represents ballot x across theentirerow, and D 5 is blank. The election author-
ity should generate this matrix as the first step; call it δ. Generating the row
1
permutations will therefore take the form of the generation of D ...D n D ,where
i
D denotes the i th shuffled D-matrix.
The D-matrices will be generated from δ as follows:
1
1. Randomly shuffle the rows of δ;call this D .
1
2. Let D equal a random shuffling of {1, 2,..., 2n}.
5
i
3. For each i from 2, 3,..., 2n,let D equal a random shuffling of the rows
1
of D .
This involves n D + 1 permutations of {1, 2,..., 2n}. It should be clear that if
j
j
i
i
(y, D )= x and (y, D )= z, then for all j,(y, D = x) implies that (y, D )= z;
1 5 1 5
1
in other words, since each row of D contains a pointer to a (unique) row (ballot)
of P in D 1 and a (unique) pointer to R in D 5 , reordering its rows does not change
the destination (in R)ofany ballotin P.
A.2 Implementation
Permutation Algorithm. We use the following permutation algorithm to
permute the unshuffled matrix. This algorithm generates a permutation π of
1, 2,...m, given as input m, some encryption function E,and some key K.
First, create a table with m rows and 2 columns. Populate column 1 of the
table with 1, 2,... m and column 2 of the table with E K (1),E K (2),...E K (m);
in other words, (i, 2) = E K ((i, 1)) for every row i. Next, sort the table according
to column 2. Let π(i)= (i, 1); column 1 is now a permutation of 1, 2,...m.
If the key K were generated randomly, and the function E is a good encryption
algorithm, then the permutation output by the algorithm will be random. (That
is, it will preserve any randomness in K.)
Application of the Algorithm. The election authority can use this algorithm
to implement the D-matrix generation algorithm above as follows:
1
1. Generate a permutation π D of 1 ... 2n.Let D = δ, sorted by π D ;thatis,
1
1
1
1
row x of δ becomes row π D 1(x)of D .
1
2. Generate a permutation π R of 1 ... 2n.Let D = π R .
5
i
3. For each i from 2 to n D ,create D by generating a permutation π D of
i
i
1
1 ... 2n.Let row y of D become row π D i(y)of D .
A.3 Mark Permutations
The mark permutations, in contrast, are much simpler to generate. In order to
produce all possible associations of candidate names with ballot symbols, it is not
necessary to randomly permute both lists; it is only necessary to cyclically shift
both lists a (different) random amount. So to generate the mark permutations
for ballot x, where the ballot has c candidate names on the top page and c mark

