Editing Prepare-and-Send Universal Blind Quantum Computation
Jump to navigation
Jump to search
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 | The [https://arxiv.org/abs/0807.4154 example protocol] achieves the functionality of [[Secure Client- Server Delegated Computation|Delegated Computation]] is the task of assigning quantum computation to an untrusted device while maintaining privacy of the computation. 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, 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 and Universality i.e. the following protocol can implement any quantum computation.</br> </br> | ||
</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)]]. | '''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)]]. | ||
Line 11: | Line 10: | ||
* '''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== | ||
[[File:Prepare-and-Send Universal Blind Quantum Computation.png|center|Prepare-and-Send Universal Blind Quantum Computation]] | |||
==Properties== | ==Properties== | ||
Line 34: | Line 29: | ||
*The Protocols needs a quantum channel from Client to Server to transfer 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 requires no quantum memory for the Client | ||
* | *''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 the protocol as described above, the outcome will be correct. | |||
* | *''Blindness'' The protocol is blind while leaking at most (m,n) to the Server | ||
* | |||
== | == Pseudocode== | ||
[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 ( | *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 60: | Line 46: | ||
==='''Stage 2:''' Computation Stage=== | ==='''Stage 2:''' Computation Stage=== | ||
*Input: Client: Measurement Angle: | *Input: Client: Measurement Angle: δx,y | ||
*Output: Server: Measurement Outcome: | *Output: Server: Measurement Outcome: sx,y | ||
**'''Interaction and measurement''' | **'''Interaction and measurement''' | ||
#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 computes | ###Client computes φ0x,y where{equation missing} <br/> | ||
###Client chooses | ### Client chooses rx,y ∈R {0,1} and computes . | ||
###Client transmits | ### Client transmits δx,y to Server. Server measures in the basis {|+δx,yi,|−δx,yi}. | ||
###Server transmits the result | ### Server transmits the result sx,y ∈ {0,1} to Client. | ||
###If | ### 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 . | ||
<div style='text-align: right;'>''*contributed by Shraddha Singh''</div> | <div style='text-align: right;'>''*contributed by Shraddha Singh''</div> |