Classical Fully Homomorphic Encryption for Quantum Circuits: Difference between revisions

m
Line 47: Line 47:
==='''Stage 1''' Client’s Preparation===
==='''Stage 1''' Client’s Preparation===
   
   
*'''Input:''' k, L, Lc, classical message m, ( and Quantum Input |ψi in case of quantum inputs)
*Input: k, L, <math>L_c</math>, classical message m, ( and Quantum Input <math>\ket{\psi}</math> in case of quantum inputs)
*'''Output:''' Homomorphic key sets (pki,evki,ski,tski), encrypted pad key ˜a,˜b (and Quantum One time Padded Output State XaZb |ψi in case of quantum output)
*Output: Homomorphic key sets <math>(pk_i,evk_i,sk_i, t_{sk_i})</math>, encrypted pad key <math>\tilde{a}, \tilde{b}</math> (and Quantum One time Padded Output State <math>X^aZ^b\ket{\psi}</math> in case of quantum output)
''Key Generation (FHE.KeyGen(,1L))''
**''Key Generation (FHE.KeyGen(<math>1^{\lambda}, 1^L</math>))'
# For 1 i L + 1,
# For <math>1\leq i\leq L + 1</math>,  
# Client generates homomorphic key set, (pki,evki,ski,tski) =HE.Keygen(1 The public key pk is pk1 and the secret key sk is skL+1.
# Client generates homomorphic key set, <math>(pk_i,evk_i,sk_i, t_{sk_i}) = </math>HE.Keygen(<math>1^{\lambda}, 1^{L_c}</math>).</br>The public key <math>pk</math> is <math>pk_1</math> and the secret key <math>sk</math> is <math>sk_{L+1}</math>. </br>The evaluation key <math>evk</math> consists of <math>(evk_1,\ldots,evk_{L+1})</math> as well as <math>(pk_{i+1},</math>HE.Enc<math>_{pk_{i+1}}(sk_{i})</math>, HE.Enc<math>_{pk_{i+1}}(t_{sk_i})</math>) for <math>1\leq i\leq L</math>.
The evaluation key evk consists of (evk1,...,evkL+1) as well as (pki+1,HE.Encpki+1(ski), HE.Encpki+1(tski)) for 1 i L.
**''Encryption (FHE.Enc<math>_{pk}(m)</math>))''
''Encryption (FHE.Encpk(m))''
# Client chooses pad key for each message bit <math>a,b\in\{0,1\}^{\lambda}</math>.
# Client chooses pad key for each message bit a,b {0,1}λ.
# She then encrypts this pad key and sends it to the Server with the evaluation keys.</br>HE.Enc<math>_{pk_1}(a,b))</math>,
# She then encrypts this pad key and sends it to the Server with the evaluation keys. HE.Encpk1(a,b)),
# She sends encrypted classical message <math>X^aZ^b\ket{l}</math> which can be represented as the classical string <math>a\oplus m</math>. In case of quantum output Client uses pad key to hide her quantum state using QOTP (<math>X^aZ^b\ket{\psi}</math>) and then sends this hidden state to the Server along with the encrypted pad key.
# She sends encrypted classical message XaZb |li which can be represented as the classical string a⊕m. In case of quantum output Client uses pad key to hide her quantum state using QOTP (XaZb |ψi) and then sends this hidden state to the Server alongwith the encrypted pad key.
   
   


Write, autoreview, editor, reviewer
3,129

edits