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 51: Line 51:
* <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>
* return <math>(sk, \rho_{evk})</math>
* return <math>(sk, \rho_{evk})</math>


</br>
</br>
Line 64: Line 63:
* <math>\tilde{\sigma} \xleftarrow[]{} \Sigma_{x, z \in \{0,1\}^{3m}} </math> (TC.Enc<math>((\pi, x, z), \sigma) \otimes</math> MAC.Sign<math>_k(HE.Enc_{pk}(x,z)))</math>  
* <math>\tilde{\sigma} \xleftarrow[]{} \Sigma_{x, z \in \{0,1\}^{3m}} </math> (TC.Enc<math>((\pi, x, z), \sigma) \otimes</math> MAC.Sign<math>_k(HE.Enc_{pk}(x,z)))</math>  
* return <math>\tilde{\sigma}</math>
* return <math>\tilde{\sigma}</math>


</br>
</br>
Line 75: Line 73:


</br>
</br>
'''Function 4''': TrapTP.EvalX(<math>\tilde{\sigma}, \tilde{x}, \tilde{\pi}, pk, evk</math>)
'''Function 5''': TrapTP.EvalX(<math>\tilde{\sigma}, \tilde{x}, \tilde{\pi}, pk, evk</math>)


* <math>(\tilde{x}, log_1) \xleftarrow[]{}</math> HE.Eval<math>_{evk}^{unpermute}(\tilde{\pi}, \tilde{x})</math>
* <math>(\tilde{x}, log_1) \xleftarrow[]{}</math> HE.Eval<math>_{evk}^{unpermute}(\tilde{\pi}, \tilde{x})</math>
Line 81: Line 79:
* <math>(\tilde{x}, log_3) \xleftarrow[]{}</math> HE.Eval<math>^{permute}_{evk}(\tilde{\pi}, \tilde{x})</math>
* <math>(\tilde{x}, log_3) \xleftarrow[]{}</math> HE.Eval<math>^{permute}_{evk}(\tilde{\pi}, \tilde{x})</math>
* return (<math>\tilde{\sigma}, \tilde{x}, log_1, log_2, log_3</math>)
* return (<math>\tilde{\sigma}, \tilde{x}, log_1, log_2, log_3</math>)
</br>
'''Function 6''': TrapTP.EvalCondX($\tilde{b}, \tilde{\sigma}, \tilde{x}, \tilde{z}, \tilde{\pi}, pk, evk$)
* <math>(\tilde{x}, log_1) \xleftarrow[]{}</math> HE.Eval<math>_{evk}^{unpermute}(\tilde{\pi}, \tilde{x})</math>
* <math>\tilde{s} \xleftarrow[]{}</math> HE.Eval<math>^{y\xrightarrow[]{} y^m0^{2m}}_{evk}(\tilde{b})</math>
* <math>(\tilde{x}, log_2) \xleftarrow[]{}</math> HE.Eval<math>_{evk}^{\otimes}(\tilde{x}, \tilde{s})</math>
* <math>(\tilde{x}, log_3) \xleftarrow[]{}</math> HE.Eval<math>^{permute}_{evk}(\tilde{\pi}, \tilde{x})</math>
* return (<math>\tilde{\sigma}, \tilde{x}, \tilde{z}, log_1, log_2, log_3</math>)
</br>
'''Function 7''': TrapTP.EvalCNOT(<math>\tilde{\sigma}_1, \tilde{\sigma}_2, \tilde{x}_1, \tilde{x}_2, \tilde{z}_1, \tilde{z}_2, \tilde{\pi}, pk, evk</math>)
* <math>(\tilde{\sigma}_1, \tilde{\sigma}_2) \xleftarrow[]{}</math> apply <math>CNOT</math> on all physical qubit pairs of <math>\tilde{\sigma}_1, \tilde{\sigma}_2</math>
* <math>(\tilde{x}_1, \tilde{x}_2, \tilde{z}_1, \tilde{z}_2, log_1) \xleftarrow[]{}</math> HE.Eval<math>^{CNOT-key-update}_{evk}(\tilde{x}_1, \tilde{x}_2, \tilde{z}_1, \tilde{z}_2)</math>
* return <math>(\tilde{\sigma}_1, \tilde{\sigma}_2, \tilde{x}_1, \tilde{x}_2, \tilde{z}_1, \tilde{z}_2, log_1, log_2)</math>
</br>
'''Function 8''': TrapTP.EvalT(<math>\tilde{\sigma}, \tilde{x}, \tilde{z}, \tilde{\pi}, \mu_i^{T},\Gamma_i, pk_{i-1}, evk_{i-1}</math>)
* <math>(\tilde{\sigma}_1, \tilde{\sigma}_2, \tilde{x}_1, \tilde{z}_1, \tilde{x}_2, \tilde{z}_1, log_1) \xleftarrow[]{}</math> Trap.TP.EvalCNOT(<math>(\mu^T_i, \tilde{\sigma}, \tilde{x}, \tilde{z}, \tilde{\pi}, pk_{i-1}, evk_{i-1} </math>)
* <math>(\tilde{b}, log_2) \xleftarrow[]{}</math> TrapTP.EvalMeasure(<math>\tilde{\sigma}_2, \tilde{x}_2, \tilde{z}_2, \tilde{\pi}, pk_{i-1}, evk_{i-1}</math>
* <math>log_3 \xleftarrow[]{}</math> recrypt all classically encrypted information (except <math>\tilde{b}</math>) from key set <math>i-1</math> into key set <math>i</math>.
* <math>(\tilde{\sigma}, log_4) \xleftarrow[]{}</math> TrapTP.EvalCondP<math>(\tilde{b}, \tilde{\sigma}_1, \tilde{x}_1, \tilde{z}_1, \Gamma_i, \tilde{\pi}, pk_i, evk_i)</math>
* return <math>(\tilde{\sigma}, log_!, log_2, log_3, log_4)</math>
\end{enumerate}


==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