Quantum voting based on conjugate coding: Difference between revisions

Line 36: Line 36:
*'''Setup phase''':
*'''Setup phase''':
#EA picks a vector <math> b = (b_1, . . . , b_{n+1}) \in \{0, 1\}^{n+1}</math> that will be kept secret from T until the end of the ballot casting phase.
#EA picks a vector <math> b = (b_1, . . . , b_{n+1}) \in \{0, 1\}^{n+1}</math> that will be kept secret from T until the end of the ballot casting phase.
#For each <math>V_k</math>, EA prepares w = poly(n) blank ballot fragments each of the form <math>||\phi_{a_j^1,b_1}\rangle=|\psi_{a_j^1,b_1}\rangle \otimes ...\otimes |\psi_{a_j^{n+1},b_{n+1}}\rangle,j \in \{1,...,w\},\text{ where }\bar{a}_j=(a_j^1,...,a_j^{n+1}) \text { such that }(a_j^1,...,a_j^{n})\in \{0,1\}^n,a_j^{n+1}=a_j^1 \oplus ...\oplus a_j^{n+}\text{ and } |\psi_{0,0}\rangle=|0\rangle,|\psi_{1,0}\rangle=|1\rangle,|\psi_{0,1}\rangle=\dfrac{1}{\sqrt{2}}(|0\rangle+|1\rangle),|\psi_{1,1}\rangle=\dfrac{1}{\sqrt{2}}(|0\rangle-|1\rangle)  </math>
#For each <math>V_k</math>, EA prepares w = poly(n) blank ballot fragments each of the form <math>|\phi_{a_j^1,b_1}\rangle=|\psi_{a_j^1,b_1}\rangle \otimes ...\otimes |\psi_{a_j^{n+1},b_{n+1}}\rangle,j \in \{1,...,w\},\text{ where }\bar{a}_j=(a_j^1,...,a_j^{n+1}) \text { such that }(a_j^1,...,a_j^{n})\in \{0,1\}^n,a_j^{n+1}=a_j^1 \oplus ...\oplus a_j^{n}\text{ and } |\psi_{0,0}\rangle=|0\rangle,|\psi_{1,0}\rangle=|1\rangle,|\psi_{0,1}\rangle=\dfrac{1}{\sqrt{2}}(|0\rangle+|1\rangle),|\psi_{1,1}\rangle=\dfrac{1}{\sqrt{2}}(|0\rangle-|1\rangle)  </math>
#EA sends one blank ballot to each <math> V_k </math> over an authenticated channel.
*'''Casting phase''':
#Each <math> V_k</math> picks for each blank ballot fragment a vector <math>d_j = (d^1_j , . . . , d^{n+1}_j )</math> such that: <math>(d_j^1,...,d_j^{n})\in \{0,1\}^n,d_j^{n+1}=d_j^1 \oplus ...\oplus d_j^{n}</math><p><math> \forall j \in \{1,...,w\},V_k </math>applies the unitary <math>U^{\bar{d}_j}_j=Y^{d_j^1}\otimes ... \otimes Y^{d_j^{n+1}}</math> to the blank ballot fragment <math>|\phi_{\bar{a}_j,\bar{b}}\rangle</math> where <math display="block"> Y^1=\begin{bmatrix}
    0 & -1  \\
    1 & 0
\end{bmatrix}
,Y^0=I
</math>
<math>V_k</math> encodes the candidate of choice in the (n + 1)th-qubit of the last blank ballot fragments.</p>
<p><math>V_k</math> sends the ballot to T over an anonymous channel.
</p>
*'''Tally phase''':
#EA announces <math>\bar{b}</math> to T.
#T decodes each ballot fragment by measuring it in the basis described by vector <math>\bar{b}</math> and XORs the resulting bits and does this to each ballot fragment ending up with a string, which is the actual vote cast.
#T announces the election result.


==Further Information==
==Further Information==


<div style='text-align: right;'>''*contributed by Sara Sarfaraz''</div>
<div style='text-align: right;'>''*contributed by Sara Sarfaraz''</div>