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

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 26: Line 26:
**Here the correctness and consistency of the classical FHE transcript,  the measurement outcomes, and the claimed circuit are checked. The result of this computation is a set of keys for the trap code, which are correct provided that Eval was performed honestly. In this step, decryption takes place using these keys and the output is either plaintext or reject. In terms of quantum capabilities, decryption requires executing the decoding procedure of the error-correcting code, computational-basis and Hadamard-basis measurements, and Paulis.
**Here the correctness and consistency of the classical FHE transcript,  the measurement outcomes, and the claimed circuit are checked. The result of this computation is a set of keys for the trap code, which are correct provided that Eval was performed honestly. In this step, decryption takes place using these keys and the output is either plaintext or reject. In terms of quantum capabilities, decryption requires executing the decoding procedure of the error-correcting code, computational-basis and Hadamard-basis measurements, and Paulis.
** This procedure consists of two parts. Several classical checks are performed at first, where MAC-verification of all classically authenticated messages takes places. It also includes checking if the gates listing in the computational log match the circuit description. The portion of the log which specifies the purely classical, FHE steps taking during classical homomorphic encryption are also checked. Next, all the unmeasured traps are checked and the remaining qubits are decoded. If the logs don't match or if any of the traps are triggered, then the entire process is rejected.
** This procedure consists of two parts. Several classical checks are performed at first, where MAC-verification of all classically authenticated messages takes places. It also includes checking if the gates listing in the computational log match the circuit description. The portion of the log which specifies the purely classical, FHE steps taking during classical homomorphic encryption are also checked. Next, all the unmeasured traps are checked and the remaining qubits are decoded. If the logs don't match or if any of the traps are triggered, then the entire process is rejected.
==Pseudo Code==
'''Stage 1''': Key generation and encryption </br>
'''Function 1''': TrapTP.KeyGen(<math>1^\kappa, 1^t, 1^p, 1^h</math>)</br>
* $k \xleftarrow[]{} MAC.KeyGen(1^\kappa)$
* $\pi \xleftarrow[r]{} S_{3m}$
* for $i = 0, ..., t:$
** $(sk_i, pk_i, ev_i) \xleftarrow[]{} HE.KeyGen(1^\kappa)$
* $sk \xleftarrow[]{} (\pi, k, sk_0, ..., sk_t, pk_0)$
* for $i = 0, ..., p:$
** $\mu_i^{P} \xleftarrow[]{}  TrapTP.ENC(sk, P|+\rangle)$
* for $i = 0, ..., t:$
** $\mu_i^{T} \xleftarrow[]{}  TrapTP.ENC(sk, T|+\rangle)$
* for $i = 0, ..., h:$
** $\mu_i^{H} \xleftarrow[]{}  TrapTP.ENC(sk, \frac{1}{\sqrt{2}}(H\otimes I)(|00\rangle + |11\rangle))$
* for $i = 0, ..., t:$
** $\pi_i \xleftarrow[r]{r} S_{3m}$
** $(g_i, \gamma_i^{in}, \gamma_i^{mid}, \gamma_i^{out}) \xleftarrow[]{} TrapTP.GadgetGen(sk_{i-1})$
        \item $\Gamma_i \xleftarrow[]{} MAC.Sign(HE.ENC_{pk_i}(g_i, \pi_i)) \otimes TrapTP.ENC((\pi_i, k, sk_0, ..., sk_t, pk_i), \gamma^{mid}_i \otimes TrapTP.Enc(sk, \gamma^{in}_i, \gamma^{out}_i$
* $keys \xleftarrow[]{} MAC.Sign(evk_0, ..., evk_t, pk_0, ..., pk_t, HE.Enc_{pk_0}(\pi))$
* $\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)$
* return $(sk, \rho_{evk})$




==Further Information==
==Further Information==
<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,125

edits

Navigation menu