Classical Fully Homomorphic Encryption for Quantum Circuits: Difference between revisions

m
Line 60: Line 60:
=== '''Stage 2''' Server’s Computation ===
=== '''Stage 2''' Server’s Computation ===
   
   
*Input: <math>evk_i</math>, encrypted pad key elements concatenation (<math>c</math>), one time padded message (<math>l</math>)
*Input: <math>evk_i</math>, encrypted pad key elements concatenation <math>s</math> <math>(c=HE.Enc_{pk}(s))</math>, one time padded message (<math>l</math>)
*Output:  Updated encryption of pad key <math>\tilde{z},\tilde{x}</math> (and Quantum One time Padded Output State <math>X^{\tilde {x}}Z^{\tilde{z}}C|\psi\rangle</math> in case of quantum output, where C is the quantum circuit)
*Output:  Updated encryption of pad key <math>\tilde{z},\tilde{x}</math> (and Quantum One time Padded Output State <math>X^{\tilde {x}}Z^{\tilde{z}}C|\psi\rangle</math> in case of quantum output, where C is the quantum circuit)
**'''Circuit Evaluation (FHE.Eval())'''
**'''Circuit Evaluation (FHE.Eval())'''
Line 74: Line 74:
### Three encrypted CNOTs are used to correct <math>C^{zx}</math> as follows.
### Three encrypted CNOTs are used to correct <math>C^{zx}</math> as follows.
####The server applies encrypted CNOT operation to the two qubit state <math>Z^zX^x|\psi\rangle</math> using the secret text <math>\hat{c} = </math>HE.Convert<math>(c)</math>.
####The server applies encrypted CNOT operation to the two qubit state <math>Z^zX^x|\psi\rangle</math> using the secret text <math>\hat{c} = </math>HE.Convert<math>(c)</math>.
####Server generates following superposition sampled over random distribution D for the TCF function pairs (<math>f_0=</math>AltHE.Enc<math>_{pk}(),f_1</math>) based on the condition <math>f_0\oplus_H f_1=\hat{c}</math></br><math>\sum_{\mu\in\{0,1\},r} \sqrt{D(\mu,r)}|\mu,r\rangle</math>
####Server generates following superposition sampled over random distribution D\sqrt{D(\mu,r)}|\mu,r\rangle</math>
#### Servers then entangles the two superposition states on quantum input and random distribution D with a third register for function output as follows:</br><math>\sum_{a,b,\mu\in\{0,1\},r}\alpha_{ab}\sqrt{D(\mu,r)}|a,b\rangle|\mu,r\rangle|f_a(r)\rangle</math>
#### Servers then entangles the two superposition states on quantum input and random distribution D with a third register for function output as follows:</br><math>\sum_{a,b,\mu\in{0,1\},r}\alpha_{ab}\sqrt{D(\mu,r)}|a,b\rangle|\mu,r\rangle|f_a(r)\rangle</math>,</br> such that  <math>f_0=AltHE.Enc_{pk}();f_1=f_0\oplus_H \hat{c}=AltHE.Enc_{pk}()+AltHE.Enc_{pk}(s)</math>  
####Server measures the last register to get a secret text <math>y = AltHE.Enc_{pk}(\mu_0,r_0)</math>, where <math>\mu_0\oplus\mu_1=s</math>.
####Server measures the last register to get a secret text <math>y = AltHE.Enc_{pk}(\mu_0,r_0)</math>, where <math>\mu_0\oplus\mu_1=s</math>.
####Server performs Hadamard on second register and measures it to get a string d such that first register of input quantum state is reduced to: the following ideal state:</br><math>(Z^{d\cdot ((\mu_0,r_0)\oplus (\mu_1,r_1))}\otimes X^{\mu_0})\textrm{CNOT}_{1,2}^s|\psi\rangle</math> </br>where <math>\text{AltHE.Enc}_{pk}(\mu_0;r_0) = \text{AltHE.Enc}_{pk}(\mu_1;r_1) \oplus_H \hat{c}</math> and <math>\oplus_H</math> is the homomorphic XOR operation.
####Server performs Hadamard on second register and measures it to get a string d such that first register of input quantum state is reduced to the following ideal state:</br><math>(Z^{d\cdot ((\mu_0,r_0)\oplus (\mu_1,r_1))}\otimes X^{\mu_0})\textrm{CNOT}_{1,2}^s|\psi\rangle</math> </br>where <math>AltHE.Enc_{pk}(\mu_0;r_0) = AltHE.Enc_{pk}(\mu_1;r_1) \oplus_H \hat{c}</math> and <math>\oplus_H</math> is the homomorphic XOR operation.
####The server uses <math>pk_{i+1}</math> to compute HE.Enc<math>_{pk_{i+1}}(c_{x,z,pk_i})</math> and HE.Enc<math>_{pk_{i+1}}(\hat{c},y,d)</math>.  
####The server uses <math>pk_{i+1}</math> to compute HE.Enc<math>_{pk_{i+1}}(c_{x,z,pk_i})</math> and HE.Enc<math>_{pk_{i+1}}(\hat{c},y,d)</math>.  
####The server computes the encryption of <math>x,z</math> under <math>pk_{i+1}</math> by homomorphically running the decryption circuit on inputs <math>\mathrm{HE.Enc}_{pk_{i+1}}(sk_i)</math> and HE.Enc<math>_{pk_{i+1}}(c_{x,z,pk_i})</math>.
####The server computes the encryption of <math>x,z</math> under <math>pk_{i+1}</math> by homomorphically running the decryption circuit on inputs <math>\mathrm{HE.Enc}_{pk_{i+1}}(sk_i)</math> and HE.Enc<math>_{pk_{i+1}}(c_{x,z,pk_i})</math>.
Write, autoreview, editor, reviewer
3,129

edits