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

no edit summary
No edit summary
Line 1: Line 1:
The [https://arxiv.org/abs/1203.5217 example protocol] achieves the functionality of [[Secure Client-Server Delegated Computation|Delegated Computation]] which is a take which enables a client with limited quantum technology to delegate a computation to an untrusted but powerful quantum server in such a manner, where the privacy of the computation is maintained. This protocol introduces verifiability as a property and allows the client to verify the correctness of [[Prepare-and-Send Universal Blind Quantum Computation]]. The client has an ability to verify whether the server has followed the instructions of the protocol and also can check if the server tried to deviate from the protocol which would have resulted in an incorrect output state.
The [https://arxiv.org/abs/1203.5217 example protocol] achieves the functionality of [[Secure Client-Server Delegated Computation|Delegated Computation]] which enables a client with limited quantum technology to delegate a computation to an untrusted but powerful quantum server in such a manner, where the privacy of the computation is maintained. This protocol introduces verifiability as a property and allows the client to verify the correctness of [[Prepare-and-Send Universal Blind Quantum Computation]]. The client has an ability to verify whether the server has followed the instructions of the protocol and also can check if the server tried to deviate from the protocol which would have resulted in an incorrect output state.


'''Tags:''' [[Category: Two Party Protocols]] [[:Category: Two Party Protocols|Two Party]], [[Category: Universal Task]][[:Category: Universal Task|Universal Task]], [[Category: Quantum Functionality]] [[:Category: Quantum Functionality|Quantum Functionality]], Quantum Offline communication, Classical Online communication, [[Supplementary Information#Measurement Based Quantum Computation|Measurement Based Quantum Computation (MBQC)]], [[Measurement-Only Universal Blind Quantum Computation|Measurement Only UBQC]], [[Pseudo-Secret Random Qubit Generator (PSQRG)]], [[Prepare-and-Send Universal Blind Quantum Computation]].
'''Tags:''' [[Category: Two Party Protocols]] [[:Category: Two Party Protocols|Two Party]], [[Category: Universal Task]][[:Category: Universal Task|Universal Task]], [[Category: Quantum Functionality]] [[:Category: Quantum Functionality|Quantum Functionality]], Quantum Offline communication, Classical Online communication, [[Supplementary Information#Measurement Based Quantum Computation|Measurement Based Quantum Computation (MBQC)]], [[Measurement-Only Universal Blind Quantum Computation|Measurement Only UBQC]], [[Pseudo-Secret Random Qubit Generator (PSQRG)]], [[Prepare-and-Send Universal Blind Quantum Computation]].
Line 9: Line 9:


==Outline==
==Outline==
This protocol is a modified version of [[Prepare-and-Send Universal Blind Quantum Computation]], which is based on [[MBQC]]. Here a powerful adversarial server is delegated with quantum computation while maintaining the privacy. Any computational deviations by this server are detected by high probability. This is achieved by insertion of randomly prepared and blindly isolated single qubits in the computation, which act as a trap (trap qubits), hence assisting the client in verification.
This protocol is a modified version of [[Prepare-and-Send Universal Blind Quantum Computation]], which is based on [[Supplementary Information#Measurement Based Quantum Computation (MBQC)|(MBQC)]]. Here a powerful adversarial server is delegated with quantum computation which maintains the privacy of the computation. Any computational deviations by this server are detected by high probability. This is achieved by insertion of randomly prepared and blindly isolated single qubits in the computation, which act as a trap (trap qubits), hence assisting the client in verification.
 
MBQC required a set of the initial state for computation. The [[Supplementary Information#Brickwork States|brickwork states]] used in [[Prepare-and-Send Universal Blind Quantum Computation]] are modified to [[cylinder brickwork states]] which enables the client to embed a trap qubit surrounded by multiple dummy qubits without disrupting the computation. This state is universal and maintains the privacy of the client's preparation. The dummy qubits here do not take part in the actual computation as they are disentangled from the rest of the qubits of the graph state. Hence by adding them to the neighboring nodes of the trap qubits, they are blindly isolated and thus do not interfere with the actual computation. The dummy qubits are added next to the trap qubit in a tape format as seen in [[cylinder brickwork states]].  


The [[Supplementary Information#Brickwork States|brickwork states]] used in [[Prepare-and-Send Universal Blind Quantum Computation]] are modified to a [[cylinder brickwork states]] which enables the client to embed a trap qubit surrounded by multiple dummy qubits without disrupting the computation. This state is universal and maintains the privacy of the client's preparation.
<br></br>
The dummy qubits here do not take part in the actual computation as they are disentangled from the rest of the qubits of the graph state. Hence by adding them to the neighbouring nodes of the trap qubits, they are blindly isolated and thus do not interfere with the actual computation. The dummy qubits are added next to the trap qubit in a tape format.
<br></br>
This protocol is dived into four stages: Client's preparation, server's preparation, interaction and measurement, verification.
This protocol is dived into four stages: Client's preparation, server's preparation, interaction and measurement, verification.


* '''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 <math>n</math> qubit input states are specially encoded and all the other non-input qubits except the trap qubit are prepared with randomly chosen local phase angles.
** 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 [[quantum one time pad]] is applied to these states with randomly chosen keys.
** During this preparation, 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>.
** 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 client then sends all the prepared qubits in the respective order so the graph state can be constructed by the server. <br></br>
** 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.
 
* '''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 the order of <math>m</math> rows and <math>n</math> columns and entangles them according to the cylinder brickwork state (using CZ gate).<br></br>
* '''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]].
** The client sends the measurement angle to the server for every single qubit. This measurement angle includes the parameters like correction sets obtained from flow construction, input state's random local phase and a <math>\pi</math> rotation to hide the output. 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 and thus repeats the process until the last output qubits are reached.<br></br>
** 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.
 
* '''Verification''': The verification is carried on by the client by comparing the outcome of the trap qubit measurements with the expected outcome.
* '''Verification''': The verification is carried on by the client by comparing the outcome of the trap qubit measurements with the expected outcome.
'''Quantum outputs''':
**'''For Quantum outputs''':
** The server sends all the output qubits to the client.
*** The server sends all the output qubits to the client.
** From these output qubits, the client performs a measurement on the trap qubit. If the output is equal to the expected outcome, the computation is verified. Otherwise, it is rejected.
*** From these output qubits, the client performs a measurement on the trap qubit. If the output is equal to the expected outcome, the computation is verified. Otherwise, it is rejected.
** If the computation is accepted, output correction is performed on the other output qubits (except the trap qubit).
*** If the computation is accepted, output correction is performed on the other output qubits (except the trap qubit).
 
**'''For Classical outputs''':
'''Classical outputs''':
*** The server continues performing measurements on the output qubits with the measurement angles sent by the server.
** The server continues performing measurements on the output qubits with the measurement angles sent by the server.
*** The client compares the output of the trap qubit with the expected output. If it is equal, computation is verified. Otherwise, it is rejected. If the computation is accepted, the client accepts the other output measurement results as the computation result.
** The client compares the output of the trap qubit with the expected output. If it is equal, computation is verified. Otherwise, it is rejected. If the computation is accepted, the client accepts the other output measurement results as the computation result.


==Notation==
==Notation==
Write, autoreview, editor, reviewer
3,125

edits