Secure Multiparty Delegated Quantum Computation: Difference between revisions

No edit summary
Line 57: Line 57:




\section{Pseudo Code}
==Pseudo Code==
 
*Enforcing honest behavior for client </math>C_k</math>
\begin{algorithm}[H]
# Client </math>C_k</math> sends </math>m</math> qubits </math>\ket{+_{\theta_i^k}}=\frac{1}{\sqrt{2}}(\ket{0}+e^{i\theta_i^k}\ket{1})</math> to the Server and secret-shares the values </math>\{\theta_i^k\}_{i=1}^m</math> with all clients, using a VSS scheme.
    \floatname{algorithm}{Protocol}
# The Server requests the shared values from the clients for all but one qubit, and measures in the resconstructed bases. If the bases agree with the results of the measurements, then with high probability, the remaining state is correctly formed in relation to the shared angle.
    \caption{(Enforcing honest behavior for client </math>C_k</math>)}
*State preparation for </math>j\in I</math>)
    \label{Algo1}
#Server stores states received from clients </math>C_k</math> to distinct registers </math>\mathcal{S}_k\subset \mathcal{S}</math> (</math>k=1,\dots,n</math>);
    \begin{enumerate}
##for </math>k=1,\dots,n-1</math>
        \item Client </math>C_k</math> sends </math>m</math> qubits </math>\ket{+_{\theta_i^k}}=\frac{1}{\sqrt{2}}(\ket{0}+e^{i\theta_i^k}\ket{1})</math> to the Server and secret-shares the values </math>\{\theta_i^k\}_{i=1}^m</math> with all clients, using a VSS scheme.
###if </math>k=j</math> '''then''' break;
        \item The Server requests the shared values from the clients for all but one qubit, and measures in the resconstructed bases. If the bases agree with the results of the measurements, then with high probability, the remaining state is correctly formed in relation to the shared angle.
###if </math>k=n-1</math> and </math>j=n</math> '''then''' break;
    \end{enumerate}
###if </math>k=j-1</math>, '''then'''
\end{algorithm}
####CNOT on </math>\mathcal{S}_k\otimes\mathcal{S}_{k+2}</math>;
   
###'''else'''
    %\vspace{0.1in}
####CNOT on </math>\mathcal{S}_k\otimes\mathcal{S}_{k+1}</math>;
   
###measure state in </math>\mathcal{S}_k</math> and get outcome </math>t_j^k</math>;
\begin{algorithm}[H]
##if </math>j=n</math> '''then'''
    \floatname{algorithm}{Protocol}
###CNOT on </math>\mathcal{S}_{n-1}\otimes\mathcal{S}_n</math>;
    \caption{(State preparation for </math>j\in I</math>)}
####measure state in </math>\mathcal{S}_{n-1}</math> and get outcome </math>t_n^{n-1}</math>;
    \label{Algo2}
###else
 
####CNOT on </math>(\mathcal{S}_{n}\otimes\mathcal{S}_j)</math>;
    Server stores states received from clients </math>C_k</math> to distinct registers </math>\mathcal{S}_k\subset \mathcal{S}</math> (</math>k=1,\dots,n</math>);
   
    for </math>k=1,\dots,n-1</math>
   
    \hspace{0.5in}if </math>k=j</math> then
   
    \hspace{1in}break;
   
    \hspace{0.5in}if </math>k=n-1</math> and </math>j=n</math> then
   
    \hspace{1in}break;
   
    \hspace{0.5in}if </math>k=j-1</math>, then
   
    \hspace{1in}CNOT on </math>\mathcal{S}_k\otimes\mathcal{S}_{k+2}</math>;
   
    \hspace{0.5in}else
   
    \hspace{1in}CNOT on </math>\mathcal{S}_k\otimes\mathcal{S}_{k+1}</math>;
   
    \hspace{0.5in}end;
   
    \hspace{0.5in}measure state in </math>\mathcal{S}_k</math> and get outcome </math>t_j^k</math>;
   
    end;
   
    if </math>j=n</math> then  
   
    \hspace{0.5in} CNOT on </math>\mathcal{S}_{n-1}\otimes\mathcal{S}_n</math>;
   
    \hspace{0.5in}measure state in </math>\mathcal{S}_{n-1}</math> and get outcome </math>t_n^{n-1}</math>;
   
    else
   
    \hspace{0.5in}CNOT on </math>(\mathcal{S}_{n}\otimes\mathcal{S}_j)</math>;
      
      
     \hspace{0.5in}measure state in </math>\mathcal{S}_n</math> and get outcome </math>t_j^n</math>;
     \hspace{0.5in}measure state in </math>\mathcal{S}_n</math> and get outcome </math>t_j^n</math>;
Write, autoreview, editor, reviewer
3,129

edits