Write, autoreview, editor, reviewer
3,129
edits
No edit summary |
No edit summary |
||
Line 47: | Line 47: | ||
* <math>|+\rangle_{\theta_i}</math>: <math>\frac{1}{\sqrt{2}} (|0\rangle +e^{i\theta_i}|1\rangle)</math> | * <math>|+\rangle_{\theta_i}</math>: <math>\frac{1}{\sqrt{2}} (|0\rangle +e^{i\theta_i}|1\rangle)</math> | ||
* <math>\phi_i</math>: True measurement angle for qubit <math>i</math>. | * <math>\phi_i</math>: True measurement angle for qubit <math>i</math>. | ||
* <math>r \in \{ 0, 1\}</math>: randomly chosen parameter for <math>\pi</math> rotation in order to hide classical output. | * <math>r \in \{ 0, 1\}</math>: randomly chosen parameter for <math>\pi</math> rotation in order to hide classical output. | ||
* <math>\theta^{'}_i</math>: Updated version of Random local phase angle for qubit <math>i</math>. | |||
* <math>\delta_i</math>: Final measurement angle for qubit <math>i</math>. | * <math>\delta_i</math>: Final measurement angle for qubit <math>i</math>. | ||
* <math>b_i</math>: Measurement output by the server. | * <math>b_i</math>: Measurement output by the server. | ||
Line 83: | Line 83: | ||
* The client prepares <math>|e\rangle = X^{x1}_1 Z_1(\theta_1) \otimes ... \otimes X^{xn}_n Z_n(\theta_n)|I\rangle</math> using QOTP. | * The client prepares <math>|e\rangle = X^{x1}_1 Z_1(\theta_1) \otimes ... \otimes X^{xn}_n Z_n(\theta_n)|I\rangle</math> using QOTP. | ||
* Client randomly chooses <math>t</math>, where <math>t \in D</math>. | * Client randomly chooses <math>t</math>, where <math>t \in D</math>. | ||
* For <math>i = n+1, n+2, ....m</math>: | * For <math>i = n+1, n+2, ....m</math> (non-input qubits): | ||
** if <math>i \in D</math>: | ** if <math>i \in D</math>: | ||
*** if <math>i != t</math> then state <math>|0\rangle</math> or <math>|1\rangle</math> is prepared | *** if <math>i != t</math> then state <math>|0\rangle</math> or <math>|1\rangle</math> is prepared | ||
*** if <math>i == t</math> then <math>|+\rangle_{\theta_i}</math> is prepared | *** if <math>i == t</math> then <math>|+\rangle_{\theta_i}</math> is prepared | ||
** | ** else <math>|+\rangle_{\theta_i}</math> is prepared | ||
* | * <math>\forall l\epsilon\{1,..,n\}</math>, Client sends all qubits to server. | ||
'''Stage 2: '''Server's preparation:</br> | '''Stage 2: '''Server's preparation:</br> | ||
'''Output''': | '''Input''': <math>m</math> qubits sequentially.</br> | ||
'''Output''': entangled graph state with a disentangled trap qubit. | |||
* Server creates an entangled state from all received qubits using CZ operations according to their indices and creates the cylinder brickwork state. | * Server creates an entangled state from all received qubits using CZ operations according to their indices and creates the cylinder brickwork state. | ||
Line 100: | Line 100: | ||
'''Output''': <math>b_i</math> | '''Output''': <math>b_i</math> | ||
* For <math>i = 1, 2, ... m-n</math>: | * For <math>i = 1, 2, ... m-n</math> (received qubits): | ||
** Client computes <math>\phi_i</math>. | ** Client computes <math>\phi_i</math>. | ||
*** if <math>i == t</math> | *** if <math>i == t</math>, then <math>\phi_i = 0</math> | ||
** Client randomly selects <math>r_i</math> and generates <math>\theta'_i = \theta_i + r_i</math>. | |||
** Client randomly selects <math>r_i</math>. | ** Client then computes the angle <math>\delta_i = \phi_i + \sum_{j:i \in N_g(f(j)}\theta'_i + s_i\pi</math> and sends <math>\delta_i</math> to server. | ||
** Client then computes the angle <math>\delta_i | ** Server measures <math>i</math> and sends <math>b_i</math> to client. | ||
** Client sets the value <math>s_i = b_i \oplus r_i</math> in <math>s</math> | |||
** Server measures <math> | |||
** Client sets the value | |||
'''Stage 4: '''Verification:</br> | '''Stage 4: '''Verification:</br> | ||
'''Input''': Output qubits <math>m-n+1</math> to <math>m</math></br> | '''Input''': Output qubits <math>m-n+1</math> to <math>m</math></br> | ||
'''Output''': Verification result | '''Output''': Verification result | ||
* For <math>i = m-n+1, ... m</math>: | * For <math>i = m-n+1, ... m</math> (output qubits): | ||
** Server sends | ** Server sends <math>i</math> to client. | ||
* Client measures the output trap qubit <math>t</math> (which was disentangled) with angle <math>\delta_t = \phi_t + r_t\pi</math>. | * Client measures the output trap qubit <math>t</math> (which was disentangled) with angle <math>\delta_t = \phi_t + r_t\pi</math>. | ||
** Client obtains the result <math>b_t</math>. | ** Client obtains the result <math>b_t</math>. | ||
*** If <math>b_t == r_t</math> | *** If <math>b_t == r_t</math>, then computation is accepted. | ||
*** else, computation is rejected. | |||
*** else | |||
==Further Information== | ==Further Information== | ||
<div style='text-align: right;'>''*contributed by Rhea Parekh''</div> | <div style='text-align: right;'>''*contributed by Rhea Parekh''</div> |