Prepare-and-Send Verifiable Universal Blind Quantum Computation: Difference between revisions

no edit summary
No edit summary
Line 16: Line 16:


* '''Client's preparation''': The partially quantum client prepares the quantum states with embedded traps qubits and sends them to the server for creation of the cylinder brickwork state.  
* '''Client's preparation''': The partially quantum client prepares the quantum states with embedded traps qubits and sends them to the server for creation of the cylinder brickwork state.  
** For the server to create a cylinder brickwork state, the client prepares <math>m*n</math> single qubit states. The first <math>n</math> qubit input states are specially encoded and [[Supplementary Information#Quantum One Time Pad|Quantum one time pad]] is applied to these states with randomly chosen keys.
** For the server to create a cylinder brickwork state, the client prepares <math>m</math> single qubit states. The first <math>n</math> qubit input states are specially encoded and [[Supplementary Information#Quantum One Time Pad|Quantum one time pad]] is applied to these states with randomly chosen keys.
** Then the client randomly selects one qubit as the trap qubit and corresponding to the graph of cylinder brickwork state, all the other qubits in the tape are set as the dummy qubits. The trap qubit is prepared with the local phase angle set to <math>0</math>. The dummy qubits isolate the trap qubit from the graph state.
** Then the client randomly selects one qubit as the trap qubit and corresponding to the graph of cylinder brickwork state, all the other qubits in the tape are set as the dummy qubits. The trap qubit is prepared with the local phase angle set to <math>0</math>. The dummy qubits isolate the trap qubit from the graph state.
** The remaining non-input qubit states (not including the dummy states and trap qubit) are prepared with randomly chosen local phase angles.
** The remaining non-input qubit states (not including the dummy states and trap qubit) are prepared with randomly chosen local phase angles.
** The client then sends all the prepared qubits in the respective order to the server so the graph state can be constructed.
** The client then sends all the prepared qubits in the respective order to the server so the graph state can be constructed.


* '''Server's Preparation''': The server receives the qubits in the order of <math>m</math> rows and <math>n</math> columns and entangles them according to the cylinder brickwork state (using CZ gate).
* '''Server's Preparation''': The server receives the qubits in a sequential order of rows and columns till all <math>m</math> qubits are received. The server then entangles them according to the cylinder brickwork state (using CZ gate).


* '''Interaction and Measurement''': This step is exactly the same as for [[Prepare-and-Send Universal Blind Quantum Computation]].
* '''Interaction and Measurement''': This step is exactly the same as for [[Prepare-and-Send Universal Blind Quantum Computation]].
** For a specific computation, MBQC decides which measurement angle is selected along with some extra Pauli X, Z corrections for every qubit. The correction sets are unique for every graph state and depend on the previous measurement. These can obtained from '''[[Supplementary Information#Flow Construction-Determinism|flow construction]]'''. The qubits have a randomly chosen local phase angle and hence the same local phase angle is used for computation as well as for output correction. To hide the state, a randomly chosen <math>\pi</math> rotation which may or may not be added. From all the above-mentioned conditions, a final measurement angle is formed and the client sends a classical message to the server to inform the server about the final measurement basis (in (X,Y) plane) in which they should measure the corresponding qubit. Thus it reveals no information about the underlying computation.
** For a specific computation, MBQC decides which measurement angle is selected along with some extra Pauli X, Z corrections for every qubit. The correction sets are unique for every graph state and depend on the previous measurement. These can obtained from '''[[Supplementary Information#Flow Construction-Determinism|flow construction]]'''. The qubits have a randomly chosen local phase angle and hence the same local phase angle is used for computation as well as for output correction. To hide the state, a randomly chosen <math>\pi</math> rotation which may or may not be added. From all the above-mentioned conditions, a final measurement angle is formed and the client sends a classical message to the server to inform the server about the final measurement basis (in (X, Y) plane) in which they should measure the corresponding qubit. Thus it reveals no information about the underlying computation.
** The server sends the classical output of each non-input qubit's measurement to the client. The client considers the <math>\pi</math> rotation to get the corrected output. The client also uses this to calculate the measurement angle for the next qubit and thus repeats the process until the last output qubits are reached.
** The server sends the classical output of each non-input qubit's measurement to the client. The client considers the <math>\pi</math> rotation to get the corrected output. The client also uses this to calculate the measurement angle for the next qubit and thus repeats the process until the last output qubits are reached.


Line 77: Line 77:
'''Stage 1: '''Client's preparation:</br>
'''Stage 1: '''Client's preparation:</br>


'''Input''': Input quantum states, prepared non-input qubits, a trap qubit, and dummy qubits.
'''Input''': Cylindrical brickwork state, <math>|I\rangle</math>.
</br>
</br>
'''Output''': The server receives all the quantum states in order of the labeling of the vertices of the graph state.
'''Output''': Server: <math>m</math> qubits sequentially.  


 
* 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 encodes and prepares the first <math>n</math>-input state.
* Client randomly chooses <math>t</math>, where <math>t \in D</math>.
<div style="text-align: center;"><math>|e\rangle = X^{x1}_1 Z_1(\theta_1) \otimes ... \otimes X^{xn}_n Z_n(\theta_n)|I\rangle</math> </div>
* Client randomly chooses the <math>t</math> to be the trap qubit, where <math>t \in D</math>.
* For <math>i = n+1, n+2, ....m</math>:
* For <math>i = n+1, n+2, ....m</math>:
** if <math>i \in D</math>:
** if <math>i \in D</math>:
*** if <math>i</math> == dummy qubit:
*** if <math>i != t</math> then state <math>|0\rangle</math> or <math>|1\rangle</math> is prepared
**** 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</math> == trap qubit:
** if <math>i</math> == non-input qubit then <math>|+\rangle_{\theta_i}</math> is prepared
**** <math>|+\rangle_{\theta_i}</math> is prepared
** if <math>i</math> == non-input qubit:
*** <math>|+\rangle_{\theta_i}</math> is prepared
* For <math>l = 1, 2, ...n</math>:
* For <math>l = 1, 2, ...n</math>:
** The client sends the qubits to the server.
** The client sends the qubits to the server.
Write, autoreview, editor, reviewer
3,125

edits