Prepare-and-Send Quantum Fully Homomorphic Encryption: Difference between revisions

Jump to navigation Jump to search
Line 113: Line 113:
Let the Circuit be denoted by C and the gates be <math>c_i</math>
Let the Circuit be denoted by C and the gates be <math>c_i</math>
# For all i, <math>c_i</math> gate is applied on qubit m and the <math>m_{th}</math> bits of pad key <math>(\tilde {a}^{[m]},\tilde{b}^{[m]})</math> are updated to <math>(\tilde {a}'^{[m]},\tilde{b}'^{[m]})</math> as follows.  
# For all i, <math>c_i</math> gate is applied on qubit m and the <math>m_{th}</math> bits of pad key <math>(\tilde {a}^{[m]},\tilde{b}^{[m]})</math> are updated to <math>(\tilde {a}'^{[m]},\tilde{b}'^{[m]})</math> as follows.  
# If <math>c_i=\{P,H,CNOT\}</math>, a Clifford gate then: <math>c_iX^{a^{[m]}}Z^{b^{[m]}}\psi=X^{a'^{[m]}}Z^{b'^{[m]}}c_i\psi</math>)
# If <math>c_i=\{P,H,CNOT\}</math>, a Clifford gate then <math>c_iX^{a^{[m]}}Z^{b^{[m]}}\psi=X^{a'^{[m]}}Z^{b'^{[m]}}c_i\psi</math>)
## if <math>c_i=</math>H then //Hadamard Gate:  
## if <math>c_i=</math>H then: <math>(\tilde {a}^{[m]},\tilde{b}^{[m]})\rightarrow (\tilde{b}^{[m]},\tilde{a}^{[m]})</math> (Hadamard tranforms X gate into Z and Z into X)
<math>(\tilde {a}^{[m]},\tilde{b}^{[m]})\rightarrow (\tilde{b}^{[m]},\tilde{a}^{[m]})</math> (Hadamard tranforms X gate into Z and Z into X)
## if <math>c_i=</math>P then: <math>(\tilde {a}^{[m]},\tilde{b}^{[m]})\rightarrow (\tilde{a}^{[m]},\tilde{a}^{[m]}\oplus\tilde{b}^{[m]})</math>  
## if <math>c_i=</math>P then: //Pauli Gate
## if <math>c_i=</math>CNOT with m as target bit and n as control bit then: <math>(\tilde {a}^{[m]},\tilde{b}^{[m]};\tilde {a}^{[n]},\tilde{b}^{[n]})\rightarrow (\tilde {a}^{[m]},\tilde{b}^{[m]}\oplus \tilde {b}^{[n]};\tilde{a}^{[m]}\oplus \tilde {a}^{[n]},\tilde{b}^{[n]})</math>
<math>(\tilde {a}^{[m]},\tilde{b}^{[m]})\rightarrow (\tilde{a}^{[m]},\tilde{a}^{[m]}\oplus\tilde{b}^{[m]})</math>  
# If <math>c_i=T_j</math> gate then: <math> (T_jX^{a^{[m]}}Z^{b^{[m]}}\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\psi)</math>
## if <math>c_i=</math>CNOT with m as target bit and n as control bit then: (CNOT)
<math>(\tilde {a}^{[m]},\tilde{b}^{[m]};\tilde {a}^{[n]},\tilde{b}^{[n]})\rightarrow (\tilde {a}^{[m]},\tilde{b}^{[m]}\oplus \tilde {b}^{[n]};\tilde{a}^{[m]}\oplus \tilde {a}^{[n]},\tilde{b}^{[n]})</math>
# If <math>c_i=T_j</math> gate then: //T Gate
<math> (T_jX^{a^{[m]}}Z^{b^{[m]}}\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\psi)</math>
##'''Generate Measurement''' M<math>\leftarrow</math> QFHE.GenMeasurement(<math>\tilde {a}^{[m]},\Gamma_{pk_{j+1}}(sk_j),evk_j)</math>
##'''Generate Measurement''' M<math>\leftarrow</math> QFHE.GenMeasurement(<math>\tilde {a}^{[m]},\Gamma_{pk_{j+1}}(sk_j),evk_j)</math>
\item \textbf{Gadget Correction}
##'''Gadget Correction'''<math>(X^{a'^{[m]}}Z^{b'^{[m]}}T_j)\psi\leftarrow</math> QFHE.Measurement(M, <math>P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\psi)</math>;
\item[] $(X^{a'^{[m]}}Z^{b'^{[m]}}T_j)\psi\leftarrow$ QFHE.Measurement(M, $P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\psi)$;
### Server gets measurement outcome x',z'
\item[] Server gets measurement outcome x',z'
##'''Recryption''' Server recrypts one-pad key using pk<math>_{k+1}</math>
\item\textbf {Recryption} Server recrypts one-pad key using pk$_{k+1}$
### (<math>\tilde {a''}^{[m]},\tilde{b''}^{[m]})\leftarrow</math> QFHE.Rec<math>_{pk_{k+1}}(\tilde {a}^{[m]},\tilde{b}^{[m]})</math>
\item[] ($\tilde {a''}^{[m]},\tilde{b''}^{[m]})\leftarrow$ QFHE.Rec$_{pk_{k+1}}(\tilde {a}^{[m]},\tilde{b}^{[m]})$.
### Server updates the recrypted key using x,z and x',z'.  
\item Server updates the recrypted key using x,z and x',z'.  
###(<math>\tilde {a'}^{[m]},\tilde{b'}^{[m]})\leftarrow (\tilde {a''}^{[m]},\tilde{b''}^{[m]}</math>)
\item[]($\tilde {a'}^{[m]},\tilde{b'}^{[m]})\leftarrow (\tilde {a''}^{[m]},\tilde{b''}^{[m]}$)
## Server sends the updated encryption and QOTP output state to Client.
\end{enumerate}
\item Server sends the updated encryption and QOTP output state to Client.


===Stage 3 Client’s Correction===
===Stage 3 Client’s Correction===
Write, autoreview, editor, reviewer
3,129

edits

Navigation menu