Write, autoreview, editor, reviewer
3,129
edits
No edit summary |
No edit summary |
||
Line 33: | Line 33: | ||
'''Function 1''': TrapTP.KeyGen(<math>1^\kappa, 1^t, 1^p, 1^h</math>)</br> | '''Function 1''': TrapTP.KeyGen(<math>1^\kappa, 1^t, 1^p, 1^h</math>)</br> | ||
* | * <math>k \xleftarrow[]{}</math> MAC.KeyGen<math>(1^\kappa)</math> | ||
* | * <math>\pi \xleftarrow[r]{} S_{3m}</math> | ||
* for | * for <math>i = 0, ..., t:</math> | ||
** | ** <math>(sk_i, pk_i, ev_i) \xleftarrow[]{}</math> HE.KeyGen<math>(1^\kappa)</math> | ||
* | * <math>sk \xleftarrow[]{} (\pi, k, sk_0, ..., sk_t, pk_0)</math> | ||
* for | * for <math>i = 0, ..., p:</math> | ||
** | ** <math>\mu_i^{P} \xleftarrow[]{}</math> TrapTP.ENC<math>(sk, P|+\rangle)</math> | ||
* for | * for <math>i = 0, ..., t:</math> | ||
** | ** <math>\mu_i^{T} \xleftarrow[]{}</math> TrapTP.ENC<math>(sk, T|+\rangle)</math> | ||
* for | * for <math>i = 0, ..., h:</math> | ||
** | ** <math>\mu_i^{H} \xleftarrow[]{}</math> TrapTP.ENC<math>(sk, \frac{1}{\sqrt{2}}(H\otimes I)(|00\rangle + |11\rangle))</math> | ||
* for | * for <math>i = 0, ..., t:</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>\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>\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 | * return <math>(sk, \rho_{evk})</math> | ||
</br> | |||
'''Function 2''': TrapTP.GadgetGen(<math>sk_i</math>) | |||
* <math>g_i \xleftarrow[]{} g(sk_i)</math> | |||
* <math>(\gamma^{in}, \gamma^{mid}, \gamma^{out}) \xleftarrow[]{}</math> generate <math>|\Phi^+\rangle</math> states depending on <math>g_i</math> | |||
* return (<math>g_i, \gamma^{in}, \gamma^{mid}, \gamma^{out}</math>) | |||
</br> | |||
'''Function 3''': TrapTP.Enc((<math>\pi, k, sk_0, ..., sk_t, pk</math>), <math>\sigma</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> | |||
</br> | |||
'''Function 4''': TrapTP.EvalMeasure(<math>\tilde{\sigma}, \tilde{x}, \tilde{z}, \tilde{\pi}, pk, evk</math>) | |||
* <math>a = (a_1, ..., a_{3m}) \xleftarrow[]{}</math> measure qubits of <math>\tilde{\sigma}</math> in the computational basis | |||
* <math>(\tilde{a}, log_1) \xleftarrow[]{}</math> HE.Enc<math>_{pk}(a)</math> | |||
* <math>(\tilde{b}, \tilde{flag}, log_2</math> \xleftarrow[]{} HE.Eval<math>^{TC.VerDecMeasurement}_{evk}((\tilde{\pi}, \tilde{x}, \tilde{z}), \tilde{a}, HE.Enc_{pk}(+))</math> | |||
* return (<math>\tilde{b}, \tilde{flag}, log_1, log_2</math>) | |||
</br> | |||
'''Function 4''': 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_2) \xleftarrow[]{}</math> HE.Eval<math>_{evk}^{\otimes}(\tilde{x},</math> HE.Enc_<math>{pk}(1^m0^{2m}))</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>) | |||
==Further Information== | ==Further Information== | ||
<div style='text-align: right;'>''*contributed by Rhea Parekh''</div> | <div style='text-align: right;'>''*contributed by Rhea Parekh''</div> |