Editing Prepare-and-Send Universal Blind Quantum Computation

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]].
</br> </br>


'''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 Verifiable Universal Blind Quantum Computation|Prepare and Send Verifiable Universal Blind Quantum Computation (VUBQC)]].
== Functionality Description==
Delegated Computation is the task of assigning quantum computation to an untrusted device while maintaining privacy of the computation. It can be done via classical online/offline and quantum online/offline communication. Following description deals with a method which involves quantum offline and classical online communication, called Blind Quantum Computation. It comes with the properties of correctness i.e. if both parties follow the protocol the final outcome is correct, and blindness i.e. the Client to have Server carry out a quantum computation for her (Client) such that the Client’s inputs, outputs and circuit used for computation remain perfectly private from the Server.


==Outline==
'''Tag: Two Party, Universal Task, Quantum Functionality, Quantum Delegated computation, Quantum Offline communication, Classical Online communication.
The following Universal Blind Quantum Computation (UBQC) protocol uses the unique feature of Measurement Based Quantum Computation [[Supplementary Information#Measurement Based Quantum Computation (MBQC)|(MBQC)]] that separates the classical and quantum parts of a computation. MBQC requires a set of initial entangled states, called graph states for computation. Here, we shall use a special family of graph states, [[Supplementary Information#Brickwork States|brickwork states]] which are universal (can implement any quantum operation) for X-Y measurements and do not leak any specific data about the computation during preparation. The protocol can be divided into three stages: preparation, computation and output correction.<br/>
'''
Preparation stage includes a partially quantum Client preparing and sending quantum states to the Server who constructs the required brickwork state. Computation stage involves interaction. Output Correction involves retrieval of correct output from the results sent by the Server. We shall discuss below three protocols with different attributes but same functionality. All UBQC protocols discussed below require Client to prepare the required quantum states for computation and send those to the Server, hence the name ''Prepare and Send UBQC''. Protocol 1a deals with a partially quantum Client capable of preparing initial quantum states for the construction of brickwork state with classical input/output computation. Protocols 1b and 1c are extensions to accommodate quantum inputs and quantum outputs, respectively.


== See also ==
Verifiable Delegated Quantum Computing, QKD.
== Procedure/Outline==
The following Universal Blind Quantum Computation (UBQC) protocol uses the unique feature of Measurement Based Quantum Computation '''[[Supplementary Information#Measurement Based Quantum Computation|(MBQC)]]''' that separates the classical and quantum parts of a computation. MBQC requires a set of initial entangled states, called graph states for computation. Here, we shall use a special family of graph states, '''[[Supplementary Information#brickwork states|Brickwork State]]''' which are universal (can implement any quantum operation) for X-Y measurements and do not leak any specific data about the computation during preparation. The protocol can be divided into two stages: preparation and computation.<br/>
Preparation stage includes a partially quantum Client preparing and sending quantum states to the Server who constructs the required brickwork state. Computation stage involves interaction. We shall discuss below three protocols with different attributes but same functionality. Protocol 1a deals with a partially quantum Client capable of preparing initial quantum states for the construction of brickwork state with classical input/output computation. Protocols 1b and 1c are extensions to accommodate quantum inputs and quantum outputs, respectively.
''Protocol 1a: Client is assumed to be able to prepare quantum states.
''
* '''Client’s preparation''' Client sends the initial qubits for construction of brickwork state to Server in this step. Client has in her mind a quantum computation as a measurement pattern on the brickwork state. She prepares m x n single qubit states with randomly chosen local phase in order to hide her classical inputs later.
* '''Client’s preparation''' Client sends the initial qubits for construction of brickwork state to Server in this step. Client has in her mind a quantum computation as a measurement pattern on the brickwork state. She prepares m x n single qubit states with randomly chosen local phase in order to hide her classical inputs later.
* '''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.
''Protocol 1b: Protocol 1a can be modified as follows if Client is provided with m quantum input states beforehand. Client is assumed to be able to prepare quantum states and apply single qubit gates (Pauli gates).
''* '''Client’s input preparation''' This step encrypts the input state column using quantum one time pad. Client rotates her input qubits using single qubit gate Z(θ), in order to add random local phase. She randomly chooses to flip each qubit using single qubit gate X or do nothing. She then sends these qubits to Server. This is the only extra step as compared to Protocol 1a.
* '''Client’s auxilliary preparation''' This step is exactly same as Client’s preparation of m x n initial quantum states for brickwork state in Protocol 1a.
*''' Server’s preparation''' Server prepares brickwork state of m rows and n+1 columns in the order instructed by the Client. The ’m’ quantum inputs constitute the first column of brickwork state for this protocol. Thus ends the preparation stage
* '''Interaction and Measurement''' This step remains the same as Protocol 1a except that the bit flip used to hide Client’s input is taken care of while computing measurement angle to be sent for the first column.
''Protocol 1c: This protocol is different from Protocol 1a such that the last column of the brickwork state is not measured but sent back to the Client. Client is assumed to be able to prepare quantum states and apply single qubit gates (Pauli gates). The following steps account for the modified protocol.
''
* '''Client’s auxilliary preparation''' This step is exactly same as Client’s preparation in Protocol 1a. The difference being, she prepares only m x n-1 initial states this time.
* '''Client’s output preparation''' The nth column of brickwork state contains quantum states with zero local phase.
* '''Server’s preparation''' Server prepares brickwork state of m rows and n columns in the order instructed by the Client.
* '''Interaction and Measurement''' This step remains exactly the same as Protocol 1a
* '''Output Correction''' In this step Client applies the Pauli Corrections X, Z on the last column of qubits sent to her by the server.


==Requirements==
== Figure ==
*'''Network Stage:''' [[:Category:Quantum Memory Network Stage|Quantum Memory]] [[Category:Quantum Memory Network Stage]]
*'''Required Network Parameters:'''
== Notations==
**'''<math>\epsilon_j</math>''', which measures the error due to noisy operations.
* φ, measurement angle for given MBQC pattern to implement the required computation
**Number of communication rounds
* φ0, measurement angle including Pauli X,Z corrections
**Circuit depth
* sX,sZ Dependency sets for Pauli X and Pauli Z corrections, respectively (obtained from flow construction).
**Number of physical qubits used
* θ, randomly chosen angles by Client in order to hide classical input
*Client should have preparation devices
* {math missing}, randomly chosen parameter for π rotation in order to hide classical output
*Quantum offline channel
* {math missing}, randomly chosen parameter for bit flip in order to hide quantum input
*Classical online channel
* δ, final measurement angle
*Server should be able to generate and store large network of entangled quantum states.
 
==Knowledge Graph==


{{graph}}
== Properties ==


==Properties==
*(m,n) define dimensions of the brickwork state
*This protocol is secure/blind in every setting (universal)
*The Protocol needs Client to be able to prepare given initial quantum states
*The Protocols needs a quantum channel from Client to Server to transfer initial quantum states
*This protocol requires no quantum memory for the Client
*This protocol is universally composable [[Prepare-and-Send Universal Blind Quantum Computation#References|(1)]]
*[[Secure Client- Server Delegated Quantum Computation#Properties|Universality]] As brickwork states are universal for X-Y plane measurements, the protocol is universal. This protocol uses approximate universality although exact universality can be achieved if Client if allowed to communicate real numbers.
*[[Secure Client- Server Delegated Quantum Computation#Properties|Correctness]] If Client and Server follow the protocol as described above, the outcome will be correct.
*[[Secure Client- Server Delegated Quantum Computation#Properties|Blindness]] The protocol is blind while leaking at most (m,n) to the Server.


==Notations==
===Adversarial Assumption===
**<math>\phi</math>, measurement angle for given MBQC pattern to implement the required computation
* This protocol is secure against honest but curious adversary setting
**<math>\phi_0</math>, measurement angle including Pauli X,Z corrections
===Setup Assumptions===
**<math>s_X,s_Z</math> Dependency sets for Pauli X and Pauli Z corrections, respectively (obtained from flow construction).
* Protocols 1a-1c need Client to be able to prepare given initial quantum states
**<math>\theta</math>, randomly chosen angles by Client in order to hide classical input
* Protocols 1b and 1c need Client to be able to operate single qubit gates
** r <math>\epsilon_R\{0,1\}</math>, randomly chosen parameter for <math>\pi</math> rotation in order to hide classical output
* Protocols 1a-1c need a quantum channel from Client to Server to transfer initial quantum states
**<math>\delta_x,y</math>, final measurement angle for the qubit at position (x,y) in the brickwork state
* Protocol 1c needs an additional quantum channel from Server to Client to transfer the quantum output
===Parameters===
* (m,n) define dimensions of the brickwork state
===Security Claim/ Theorems===
* ''Universality'' As brickwork states are universal for X-Y plane measurements, the protocol is universal. This protocol uses approximate universality although exact universality can be achieved if Client if allowed to communicate real numbers.
* ''Correctness'' If Client and Server follow protocols 1a-1c as described above, the outcome will be correct.
* ''Blindness'' Protocols 1a-1c are blind while leaking at most (m,n) to the Server
* At every step of Protocol 1a, Server’s quantum state is one-time padded as sX and sZ are hidden by the random key r for each qubit


==Protocol Description==
== Pseudo-Code:  Universal Blind Quantum Computation- Protocols 1a, 1b, 1c ==
[https://github.com/cgmcintyr/SimulaQron/tree/develop/examples/ubqc <u>click here for SimulaQron code</u>]
==='''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>)
*Unless given specific mention in [.], following steps apply to all the three protocols 1a-1c
*Output: Server: Brickwork State <math>G_{\text{mxn}}</math>
===Preparation Stage===
**'''Client’s preparation'''  
*Input: Client: Dimeonsions of Brickwork State (m,n), Input States (ψ0,y) [Protocol 1b only], Auxilliary Input States (ψx,y)
*Output: Server: Brickwork State Gmxn
'''Client [Protocol 1a]'''
# Client’s preparation
##For each column x = 1,...,n
##For each column x = 1,...,n
###For each row y = 1,...,m
###For each row y = 1,...,m
#### Client prepares  and sends the qubits to Server.
#### Client prepares  and sends the qubits to Server.
**'''Server’s preparation'''
'''Client [Protocol 1b]'''
#Server creates an entangled state from all received qubits, according to their indices, by applying CTRL-Z gates between the qubits in order to create a brickwork state <math>G_{\text{n x m}}</math>.
# Client’s input preparation
##For the input column (x = 0,y = 1,...,m) corresponding to Client’s input
### Client applies Z0,y(θ0,y) for θ0,y ∈R {0,π/4,2π/4,...,7π/4}.
### Client chooses i0,y ∈R {0,1} and applies . She sends the qubits to Server.
#Client’s auxiliary preparation
##For each column x = 1,...,n
###For each row y = 1,...,m
#### Client prepares |ψx,yi ∈R {|+θx,yi | θx,y = 0,π/4,2π/4,...,7π/4} and sends the qubits to Server.
'''Client [Protocol 1c]'''
# Client’s auxiliary preparation
##For each column x = 1,...,n − 1
###For each row y = 1,...,m
#### Client prepares |ψx,yi ∈R {|+θx,yi | θx,y = 0,π/4,2π/4,...,7π/4} and sends the qubits to Server.
#Client’s output preparation
#### Client prepares the last column of qubits |ψn,yi = |+i (y = 1,...,m) and sends the qubits
to Server.
'''Server’s preparation [Protocols 1a, 1b and 1c]'''
# Server creates an entangled state from all received qubits, according to their indices, by applying ctrl-Z gates between the qubits in order to create a brickwork state Gn×m for Protocols 1a and 1c while Gn+1×m for Protocol 1b.
===Computation Stage===
*Input: Client: Measurement Angle: δx,y
*Output: Server: Measurement Outcome: sx,y
'''Interaction and measurement'''
#For each column x = 1,...,n [Protocols 1a and 1b]; For each column x = 1,...,n−1 [Protocol 1c]
##For each row y = 1,...,m
### For Protocols 1a and 1c, Client computes φ0x,y where{equation missing} <br/>For Protocol 1b, Client computes  with the special case .
### Client chooses rx,y ∈R {0,1} and computes .
### Client transmits δx,y to Server. Server measures in the basis {|+δx,yi,|−δx,yi}.
### Server transmits the result sx,y ∈ {0,1} to Client.
### If rx,y = 1 above, Client flips sx,y; otherwise she does nothing.
'''Output Correction [Protocol 1c only]'''
# Server sends to Client all qubits in the last layer.
# Client performs the final Pauli corrections .


==='''Stage 2:''' Computation Stage===
== References==
*Input: Client: Measurement Angle: <math>\delta_{x,y}</math>
*Output: Server: Measurement Outcome: <math>s_{x,y}</math>
**'''Interaction and measurement'''
#For each column x = 1,...,n
##For each row y = 1,...,m
###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 transmits <math>\delta_{x,y}</math> to Server. Server measures in the basis <math>\{|+_{\delta_{x,y}}\rangle, |-_{\delta_{x,y}}\rangle\}</math>
###Server transmits the result <math>s_{x,y}\epsilon {0,1}</math> to Client.
###If <math>r_{x,y} = 1,</math> Client flips <math>s_{x,y}</math>; otherwise she does nothing.
**'''Output Correction [only for quantum outputs]'''
#Server sends to Client all qubits in the last layer.
#Client performs the final Pauli corrections .


==References==
== Requirements ==
#[https://arxiv.org/abs/1301.3662 Dunjko et al (2014)]


<div style='text-align: right;'>''*contributed by Shraddha Singh''</div>
== Use Case==
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: