Classical Fully Homomorphic Encryption for Quantum Circuits: Difference between revisions

m
Line 49: Line 49:
*Input: <math>k, L, L_c</math>, classical message <math>m</math>, ( and Quantum Input <math>|\psi\rangle</math> in case of quantum inputs)
*Input: <math>k, L, L_c</math>, classical message <math>m</math>, ( and Quantum Input <math>|\psi\rangle</math> in case of quantum inputs)
*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|\psi\rangle</math> 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|\psi\rangle</math> in case of quantum output)
**''Key Generation (FHE.KeyGen(<math>1^{\lambda}, 1^L</math>))'
**'''Key Generation (FHE.KeyGen(<math>1^{\lambda}, 1^L</math>))'''
# For <math>1\leq i\leq L + 1</math>,  
# For <math>1\leq i\leq L + 1</math>,  
# 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>.
# 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>.
**''Encryption (FHE.Enc<math>_{pk}(m)</math>))''
**'''Encryption (FHE.Enc<math>_{pk}(m)</math>))'''
# Client chooses pad key for each message bit <math>a,b\in\{0,1\}^{\lambda}</math>.
# Client chooses pad key for each message bit <math>a,b\in\{0,1\}^{\lambda}</math>.
# 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.</br>HE.Enc<math>_{pk_1}(a,b))</math>,
Write, autoreview, editor, reviewer
3,129

edits