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

no edit summary
No edit summary
Line 58: Line 58:
* <math>h</math>: Upper bound on H gate.
* <math>h</math>: Upper bound on H gate.
* <math>k</math>: All keys
* <math>k</math>: All keys
* <math>\pi</math>: Global permutation which are used to encrypt the states.
* <math>\pi</math>: Global permutation which are used to encrypt the states, this is a random permutation of 3m bits<math>\pi \in S_{3m}</math>
* <math>S_{3m}</math>: Permutation group.
* MAC: Message authentication code, MAC = (Tag, Ver)
* MAC: Message authentication code, MAC = (Tag, Ver)
* HE: Classical fully homomorphic public-key encryption scheme
* TC: Trap Code scheme which is a building block for FHE scheme.
* <math>pk_i, sk_i, evk_i</math>: <math>i_{th}</math> homomorphic key set generated from HE.KeyGen(). Public key for encryption, secret key for decryption, evaluation function key, respectively for given k, the security parameter.
* <math>pk_i, sk_i, evk_i</math>: <math>i_{th}</math> homomorphic key set generated from HE.KeyGen(). Public key for encryption, secret key for decryption, evaluation function key, respectively for given k, the security parameter.
* <math>v</math>:
* <math>\mu</math>:
* <math>\tilde{\sigma}</math>: ciphertext
* <math>\tilde{\sigma}</math>: ciphertext
* <math>x, z</math>: Randomly picked bit strings to encrypt with Quantum one time pad. <math>x[i] \in \{0, 1\}^{3m}, z[i] \in \{0, 1\}^{3m}</math>
* <math>\rho_{evk}</math>: evaluation key


==Pseudo Code==
==Pseudo Code==
Line 86: Line 89:
** <math>\pi_i \xleftarrow[r]{r} S_{3m}</math>
** <math>\pi_i \xleftarrow[r]{r} S_{3m}</math>
** <math>(g_i, \gamma_i^{in}, \gamma_i^{mid}, \gamma_i^{out}) \xleftarrow[]{}</math> TrapTP.GadgetGen<math>(sk_{i-1})</math>
** <math>(g_i, \gamma_i^{in}, \gamma_i^{mid}, \gamma_i^{out}) \xleftarrow[]{}</math> TrapTP.GadgetGen<math>(sk_{i-1})</math>
** <math>\Gamma_i \xleftarrow[]{}</math> MAC.Sign(HE.ENC<math>_{pk_i}(g_i, \pi_i)) \otimes</math> TrapTP.ENC<math>((\pi_i, k, sk_0, ..., sk_t, pk_i), \gamma^{mid}_i \otimes</math> TrapTP.Enc<math>(sk, \gamma^{in}_i, \gamma^{out}_i</math>
** <math>\Gamma_i \xleftarrow[]{}</math> MAC.Sign(HE.ENC<math>_{pk_i}(g_i, \pi_i)) \otimes</math> TrapTP.ENC<math>((\pi_i, k, sk_0, ..., sk_t, pk_i), \gamma^{mid}_i \otimes</math> TrapTP.Enc<math>(sk, \gamma^{in}_i, \gamma^{out}_i)</math>
* <math>keys \xleftarrow[]{}</math> MAC.Sign<math>(evk_0, ..., evk_t, pk_0, ..., pk_t,</math> HE.Enc<math>_{pk_0}(\pi))</math>
* <math>keys \xleftarrow[]{}</math> MAC.Sign<math>(evk_0, ..., evk_t, pk_0, ..., pk_t,</math> HE.Enc<math>_{pk_0}(\pi))</math>
* <math>\rho_{evk} \xleftarrow[]{} (keys, \mu^{P}_0, ..., \mu^{P}_p, \mu^{T}_0, ..., \mu^{T}_t, \mu^{H}_0, ..., \mu^{H}_h, \Gamma_1, ..., \Gamma_t)</math>
* <math>\rho_{evk} \xleftarrow[]{} (keys, \mu^{P}_0, ..., \mu^{P}_p, \mu^{T}_0, ..., \mu^{T}_t, \mu^{H}_0, ..., \mu^{H}_h, \Gamma_1, ..., \Gamma_t)</math>
Line 180: Line 183:


==Further Information==
==Further Information==
==References==
* [https://www.crcpress.com/Introduction-to-Modern-Cryptography/Katz-Lindell/p/book/9781466570269 Introduction to Modern Cryptography]: Message Authentication Code is chosen from here
<div style='text-align: right;'>''*contributed by Rhea Parekh''</div>
<div style='text-align: right;'>''*contributed by Rhea Parekh''</div>
Write, autoreview, editor, reviewer
3,129

edits