Quantum voting based on conjugate coding: Difference between revisions

 
Line 36: Line 36:
*'''Setup phase''':
*'''Setup phase''':
#EA picks a vector <math> \bar{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> \bar{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_{\bar{a}_j,\bar{b}}\rangle=|\psi_{a_j^1,b_1}\rangle \otimes ...\otimes |\psi_{a_j^{n+1},b_{n+1}}\rangle,j \in \{1,...,w\}</math> where <math>\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}</math> and <math> |\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_{\bar{a}_j,\bar{b}}\rangle=|\psi_{a_j^1,b_1}\rangle \otimes ...\otimes |\psi_{a_j^{n+1},b_{n+1}}\rangle,j \in \{1,...,w\}</math> where <math>\bar{a}_j=(a_j^1,...,a_j^{n+1}) </math> such that <math>(a_j^1,...,a_j^{n})\in \{0,1\}^n,a_j^{n+1}=a_j^1 \oplus ...\oplus a_j^{n}</math> and <math> |\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.
#EA sends one blank ballot to each <math> V_k </math> over an authenticated channel.
*'''Casting phase''':
*'''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}
#Each <math> V_k</math> picks for each blank ballot fragment a vector <math>\bar{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  \\
     0 & -1  \\
     1 & 0  
     1 & 0