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

Line 82: Line 82:
'''Encryption(QFHE.Enc())'''
'''Encryption(QFHE.Enc())'''
*Input: Quantum Input state density matrix (<math>\rho</math>) (say composed of n single qubit states, <math>\sigma</math>)
*Input: Quantum Input state density matrix (<math>\rho</math>) (say composed of n single qubit states, <math>\sigma</math>)
*Output: Encrypted pad keys:<math>\{\tilde{a}^{[0]}...\tilde{a}^{[n]}</math>, <math>\tilde{b}^{[i]}...\tilde{b}^{[n]}\}</math>; QOTP state: <math>X^{a^{[1]}}Z^{b^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}\rho Z^{b^{[1]}}X^{a^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}</math>
*Output: Encrypted pad keys:<math>\{\tilde{a}^{[0]}...\tilde{a}^{[n]}</math>,<math>\tilde{b}^{[i]}...\tilde{b}^{[n]}\}</math>; QOTP state: <math>X^{a^{[1]}}Z^{b^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}\rho Z^{b^{[1]}}X^{a^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}</math>


# For i=1 to n
# For i=1 to n
## Client chooses pad keys a,b  
## Client chooses pad keys a,b <math>\epsilon_R\{0,1\}</math>
## She quantum one time pads the single qubit by applying XaZb on the single qubit state. XaZbσZbXa ← σ
## She quantum one time pads the single qubit by applying $X^aZ^b$ on the single qubit state. <math>X^aZ^b\sigma Z^bX^a\leftarrow\sigma</math>
## She encrypts the pad keys using one bit for each of a and b from the public key string pk0 using HE.Enc. (˜  )=(HE.Enc ),HE.Enc  
## She encrypts the pad keys using one bit for each of a and b from the public key string <math>pk_0</math> using HE.Enc. (<math>\tilde{a}^{[i]},\tilde{b}^{[i]}</math>)=(HE.Enc<math>_{pk_0^{[i]}}(a^{[i]}</math>),HE.Enc<math>_{pk_0^{[i]}}(b^{[i]}))\leftarrow</math> (a,b)
## She apprehends encrypted pad keys to the one time padded quantum state to obtain CQ state,
## She apprehends encrypted pad keys to the one time padded quantum state to obtain CQ state,  
# Client sends encryptions (˜a[i],˜b[i]) and the quantum one time padded (QOTP) state Xa[1]Zb[1] ..... ⊗ Xa[n]Zb[n]ρZb[1]Xa[1] ..... ⊗ Xa[n]Zb[n], for all i to the Server with the evaluation keys and public keys.
<math>\sum_{a,b\epsilon\{0,1\}}\frac{1}{4}\rho(HE.Enc_{pk_0^{[i]}}(a^{[i]}),HE.Enc_{pk_0^{[i]}}(b^{[i]}))\otimes X^aZ^b\sigma Z^bX^a</math>
'''Gadget Construction (QFHE.GenGadgetpki+1(ski))'''
#Client sends encryptions (<math>\tilde{a}^{[i]},\tilde{b}^{[i]}</math>) and the quantum one time padded (QOTP) state<math> X^{a^{[1]}}Z^{b^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}\rho Z^{b^{[1]}}X^{a^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}} \forall i</math>, to the Server with the evaluation keys and public keys.
\ '''Gadget Construction (QFHE.GenGadgetpki+1(ski))'''
# Generate 4m EPR pairs (  
# Generate 4m EPR pairs (  
# Choose 2m pairs  using sk
# Choose 2m pairs  using sk
Write, autoreview, editor, reviewer
3,125

edits