Classical Fully Homomorphic Encryption for Quantum Circuits: Difference between revisions

m
Line 64: Line 64:
#Server creates a superposition state for the encrypted classical message and Pauli one time pads it using encrypted pad key. He applies the circuit on it as follows:</br>Let the Circuit be denoted by C and the gates be <math>c_i</math>
#Server creates a superposition state for the encrypted classical message and Pauli one time pads it using encrypted pad key. He applies the circuit on it as follows:</br>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 l and the <math>l_{th}</math> bits of pad key <math>(\tilde {a}^{[l]},\tilde{b}^{[l]})</math> are updated to <math>(\tilde {a}'^{[l]},\tilde{b}'^{[l]})</math> as follows.  
# For all i, <math>c_i</math> gate is applied on qubit l and the <math>l_{th}</math> bits of pad key <math>(\tilde {a}^{[l]},\tilde{b}^{[l]})</math> are updated to <math>(\tilde {a}'^{[l]},\tilde{b}'^{[l]})</math> as follows.  
## If <math>c_i=\{P,H,CNOT\}</math>, a Clifford gate then<!--i-->(<math>c_iX^{a^{[l]}}Z^{b^{[l]}}|\psi\rangle=X^{a'^{[l]}}Z^{b'^{[l]}}c_i|\psi\rangle</math>)
## If <math>c_i=\{P,H,CNOT\}</math>, a Clifford gate then <div class="floatright">//(<math>c_iX^{a^{[l]}}Z^{b^{[l]}}|\psi\rangle=X^{a'^{[l]}}Z^{b'^{[l]}}c_i|\psi\rangle</math>)</div>
### if <math>c_i=</math>H then <comment/>Hadamard Gate
### if <math>c_i=</math>H then<div class="floatright">//(Hadamard Gate)</div></br><math>(\tilde {a}^{[l]},\tilde{b}^{[l]})\rightarrow (\tilde{b}^{[l]},\tilde{a}^{[l]})</math>(Hadamard tranforms X gate into Z and Z into X)
###   if ci =P then //Pauli Gate<br/>([l],˜b[l]) ([l],[l] ⊕˜b[l])
### if <math>c_i=</math>P then <div class="floatright">//Pauli Gate</div></br><math>(\tilde {a}^{[l]},\tilde{b}^{[l]})\rightarrow (\tilde{a}^{[l]},\tilde{a}^{[l]}\oplus\tilde{b}^{[l]})<math>
### if ci =CNOT with m as target bit and n as control bit then (CNOT)<br/>([l],˜b[l];˜a[n],˜b[n]) ([l],˜b[l] ⊕˜b[n];˜a[l] ⊕ a˜[n],˜b[n])
### if <math>c_i=</math>CNOT with m as target bit and n as control bit then (CNOT)</br>(\tilde {a}^{[l]},\tilde{b}^{[l]};\tilde {a}^{[n]},\tilde{b}^{[n]})\rightarrow (\tilde {a}^{[l]},\tilde{b}^{[l]}\oplus \tilde {b}^{[n]};\tilde{a}^{[l]}\oplus \tilde {a}^{[n]},\tilde{b}^{[n]})</math>
## If ci = T gate then //Toffoli Gate on lth,nth,oth key bits
## If ci = T gate then //Toffoli Gate on lth,nth,oth key bits
### The Toffoli gate is applied to the Pauli one time padded state and the state is reduced to combination of Clifford C and Pauli P corrections as follows:<br/>TXa[l]Zb[l]Xa[n]Zb[n]Xa[o]Zb[o] |ψi<br/>=TXa[l]Zb[l]Xa[n]Zb[n]Xa[o]Zb[o]T † T |ψi<br/>= CNOTl,oa[n]CNOTn,oa[l]CZl,nb[o]Xa[l]Zb[l]T |ψi<br/>= CNOTl,oa[n]CNOTn,oa[l]HnCNOTl,nb[o]HnXa[l]Zb[l]T |ψi<br/>= CabPabT |ψi, where C{CNOT,H} and<br/>
### The Toffoli gate is applied to the Pauli one time padded state and the state is reduced to combination of Clifford C and Pauli P corrections as follows:<br/>TXa[l]Zb[l]Xa[n]Zb[n]Xa[o]Zb[o] |ψi<br/>=TXa[l]Zb[l]Xa[n]Zb[n]Xa[o]Zb[o]T † T |ψi<br/>= CNOTl,oa[n]CNOTn,oa[l]CZl,nb[o]Xa[l]Zb[l]T |ψi<br/>= CNOTl,oa[n]CNOTn,oa[l]HnCNOTl,nb[o]HnXa[l]Zb[l]T |ψi<br/>= CabPabT |ψi, where C{CNOT,H} and<br/>
Write, autoreview, editor, reviewer
3,129

edits