Write, autoreview, editor, reviewer
3,129
edits
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: <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>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) | ||
## 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: <math>(\tilde {a}^{[m]},\tilde{b}^{[m]})\rightarrow (\tilde{a}^{[m]},\tilde{a}^{[m]}\oplus\tilde{b}^{[m]})</math> | ||
## 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> | ### 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> | ||
# 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=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> | ||
##'''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> | ||
##'''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>; | ###'''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>; | ||
### Server gets measurement outcome x',z' | ### Server gets measurement outcome x',z' | ||
##'''Recryption''' Server recrypts one-pad key using pk<math>_{k+1}</math> | ##'''Recryption''' Server recrypts one-pad key using pk<math>_{k+1}</math> |