Editing Prepare-and-Send Universal Blind Quantum Computation

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
The [https://arxiv.org/abs/0807.4154 example protocol] achieves the functionality of [[Secure Client- Server Delegated Quantum Computation]] by assigning quantum computation to an untrusted device while maintaining privacy of the input, output and computation of the client. The client requires to be able to prepare and send quantum states while the server requires to possess a device with quantum memory, measurement and entanglement generation technology. Following description deals with a method which involves quantum offline and classical online communication, called Blind Quantum Computation. It means the protocol needs one-time quantum communication at the end or starting of the protocol while continuous classical communication between the parties, throughout the execution. It comes with the properties of [[Secure Client- Server Delegated Quantum Computation#Properties|correctness]], [[Secure Client- Server Delegated Quantum Computation#Properties|blindness]] and [[Secure Client- Server Delegated Quantum Computation#Properties|universality]].
The [https://arxiv.org/abs/0807.4154 example protocol] achieves the functionality assigning universal quantum computation to an untrusted device while maintaining privacy of the input, output and computation of the client. Following description deals with a method which involves quantum offline and classical online communication, called Blind Quantum Computation.  
</br> </br>
</br> </br>


Line 11: Line 11:
* '''Server’s preparation''' Server prepares brickwork state of m rows and n columns. It entangles all the received qubits as per Client’s instructions. Thus, ends preparation stage.
* '''Server’s preparation''' Server prepares brickwork state of m rows and n columns. It entangles all the received qubits as per Client’s instructions. Thus, ends preparation stage.
* '''Interaction and Measurement''' Client and Server interact to perform operations needed for computation. For a given computation and graph state, MBQC provides a measurement angle and some extra Pauli X, Z corrections, for each qubit. The correction sets (also called Dependency sets), unique for every graph state are based on previous measurement outcomes and can be obtained from '''[[Supplementary Information#Flow Construction-Determinism|flow construction]]'''. Also, as Client’s input state has random local phase, the same should be added to the measurement angle for computation along with Pauli Corrections to get the correct outcome. Now, in order to hide the output, Client randomly chooses to add a π rotation or not. The final measurement angle includes all the above parameters and hence, is sent to the Server. When Server returns the classical outcome, Client gets the correct outcome by taking into account the random π rotation and then uses it to calculate measurement angle for for the next qubit. The step is repeated until every qubit has been measured. Server returns measurement outcomes for the last column to Client. Client deciphers this outcome to get the final result. This ends the computation stage.
* '''Interaction and Measurement''' Client and Server interact to perform operations needed for computation. For a given computation and graph state, MBQC provides a measurement angle and some extra Pauli X, Z corrections, for each qubit. The correction sets (also called Dependency sets), unique for every graph state are based on previous measurement outcomes and can be obtained from '''[[Supplementary Information#Flow Construction-Determinism|flow construction]]'''. Also, as Client’s input state has random local phase, the same should be added to the measurement angle for computation along with Pauli Corrections to get the correct outcome. Now, in order to hide the output, Client randomly chooses to add a π rotation or not. The final measurement angle includes all the above parameters and hence, is sent to the Server. When Server returns the classical outcome, Client gets the correct outcome by taking into account the random π rotation and then uses it to calculate measurement angle for for the next qubit. The step is repeated until every qubit has been measured. Server returns measurement outcomes for the last column to Client. Client deciphers this outcome to get the final result. This ends the computation stage.
==Notations==
**<math>\phi</math>, measurement angle for given MBQC pattern to implement the required computation
**<math>\phi_0</math>, measurement angle including Pauli X,Z corrections
**<math>s_X,s_Z</math> Dependency sets for Pauli X and Pauli Z corrections, respectively (obtained from flow construction).
**<math>\theta</math>, randomly chosen angles by Client in order to hide classical input
** r <math>\epsilon_R\{0,1\}</math>, randomly chosen parameter for <math>\pi</math> rotation in order to hide classical output
**<math>\delta</math>, final measurement angle


==Requirements==
==Requirements==
Line 22: Line 30:
*Quantum offline channel
*Quantum offline channel
*Classical online channel
*Classical online channel
*Server should be able to generate and store large network of entangled quantum states.
*Server should have a quantum device with storage technology for quantum states.
 
[[File:Prepare-and-Send Universal Blind Quantum Computation.png|center|Prepare-and-Send Universal Blind Quantum Computation]]
==Knowledge Graph==
 
{{graph}}


==Properties==
==Properties==
Line 39: Line 44:
*[[Secure Client- Server Delegated Quantum Computation#Properties|Blindness]] The protocol is blind while leaking at most (m,n) to the Server.
*[[Secure Client- Server Delegated Quantum Computation#Properties|Blindness]] The protocol is blind while leaking at most (m,n) to the Server.


==Notations==
== Pseudocode==
**<math>\phi</math>, measurement angle for given MBQC pattern to implement the required computation
**<math>\phi_0</math>, measurement angle including Pauli X,Z corrections
**<math>s_X,s_Z</math> Dependency sets for Pauli X and Pauli Z corrections, respectively (obtained from flow construction).
**<math>\theta</math>, randomly chosen angles by Client in order to hide classical input
** r <math>\epsilon_R\{0,1\}</math>, randomly chosen parameter for <math>\pi</math> rotation in order to hide classical output
**<math>\delta_x,y</math>, final measurement angle for the qubit at position (x,y) in the brickwork state
 
==Protocol Description==
[https://github.com/cgmcintyr/SimulaQron/tree/develop/examples/ubqc <u>click here for SimulaQron code</u>]
[https://github.com/cgmcintyr/SimulaQron/tree/develop/examples/ubqc <u>click here for SimulaQron code</u>]
==='''Stage 1:''' Preparation===
==='''Stage 1:''' Preparation===
*Input: Client: Dimensions of Brickwork State (m,n), Input States (<math>\psi_{0,y})</math>, Auxilliary Input States (<math>\psi_{x,y}</math>)
*Input: Client: Dimensions of Brickwork State (m,n), Input States (ψ0,y) [Protocol 1b only], Auxilliary Input States (ψx,y)
*Output: Server: Brickwork State <math>G_{\text{mxn}}</math>
*Output: Server: Brickwork State <math>G_{\text{mxn}}</math>
**'''Client’s preparation'''  
**'''Client’s preparation'''  
Line 67: Line 64:
###Client computes <math>\phi '_{x,y}</math> where <math>s^X_{0,y}=s^Z_{0,y}=0</math> <br/>
###Client computes <math>\phi '_{x,y}</math> where <math>s^X_{0,y}=s^Z_{0,y}=0</math> <br/>
###Client chooses <math>r_{x,y} \epsilon_R {0,1}</math> and computes <math>\delta_{x,y}=\phi '_{x,y}+\theta_{x,y}+\pi r_{x,y}</math>.
###Client chooses <math>r_{x,y} \epsilon_R {0,1}</math> and computes <math>\delta_{x,y}=\phi '_{x,y}+\theta_{x,y}+\pi r_{x,y}</math>.
###Client transmits <math>\delta_{x,y}</math> to Server. Server measures in the basis <math>\{|+_{\delta_{x,y}}\rangle, |-_{\delta_{x,y}}\rangle\}</math>
###Client transmits <math>\delta_{x,y}</math> to Server. Server measures in the basis \{|+δx,yi,|−δx,yi\}.
###Server transmits the result <math>s_{x,y}\epsilon {0,1}</math> to Client.
###Server transmits the result sx,y {0,1} to Client.
###If <math>r_{x,y} = 1,</math> Client flips <math>s_{x,y}</math>; otherwise she does nothing.
###If rx,y = 1 above, Client flips sx,y; otherwise she does nothing.
**'''Output Correction [only for quantum outputs]'''
**'''Output Correction [only for quantum outputs]'''
#Server sends to Client all qubits in the last layer.
#Server sends to Client all qubits in the last layer.
#Client performs the final Pauli corrections .
#Client performs the final Pauli corrections .
==References==
#[https://arxiv.org/abs/1301.3662 Dunjko et al (2014)]


<div style='text-align: right;'>''*contributed by Shraddha Singh''</div>
<div style='text-align: right;'>''*contributed by Shraddha Singh''</div>
Please note that all contributions to Quantum Protocol Zoo may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Quantum Protocol Zoo:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)

Template used on this page: