Editing
Secure Multiparty Delegated Classical 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.
Anti-spam check. Do
not
fill this in!
This [https://arxiv.org/abs/1708.06144 example protocol] provides a method for computing nonlinear functions involving multiple variables using only linear classical computing and limited manipulation of quantum information. To demonstrate this protocol, the pairwise AND function is computed and can be used as a building block for other functions. '''Tags:''' [[:Category:Multi Party Protocols|Multi Party Protocols]], [[:Category:Quantum Enhanced Classical Functionality|Quantum Enhanced Classical Functionality]], [[:Category:Universal Task|Universal Task]] [[Category:Multi Party Protocols]] [[Category:Quantum Enhanced Classical Functionality]][[Category:Universal Task]] ==Assumptions== * The clients have limited computational capabilities, namely access to linear XOR functionalities. ==Outline== ===Main Routine=== The server sends an ancilla bit to the first client. The first client performs the <math>\pi/2</math> rotation along <math>y</math>-axis according to his input bit and <math>\pi</math> rotation according to his random bit for security. He then sends the qubit to the next client who performs the same rotation according to his bits. This process is followed until all clients have performed their operations. Now, one of the clients performs the conjugate transpose of the <math>\pi/2</math> rotation on the qubit based on the global XOR of all the inputs which he gets by the XOR routine. The state now prepared is the value of the function XORed with the XOR of the random bits of all clients. The clients now announce the random bits with the help of which the final result is calculated. ===XOR Routine=== The clients choose random bits whose XOR is their input bit and send each such random bit to each client. The clients now perform the XOR of the received bits. To calculate the global XOR, the send their results to the designated client who then performs the XOR of all the received bits to get the global XOR. ==Notation== * <math>C_i</math>: Client with index <math>i</math>. * <math>x_i</math>: Input bit of <math>i^{th}</math> client. * <math>r_i</math>: Random bit of <math>i^{th}</math> client. * <math>R_y(\theta)</math>: Rotation around <math>y</math>-axis in Bloch sphere by angle <math>\theta</math>. * <math>U</math>: Operator for performing <math>\pi/2</math> rotation around <math>y</math>-axis in Bloch Sphere. * <math>V</math>: Operator for performing <math>\pi</math> rotation around <math>y</math>-axis in Bloch Sphere. ==Requirements== * Basic state preparation and measurement devices. * Access to secure classical channels. <br/> [[File:SMPDCC_Server.PNG|center|Secure Multiparty Delegated Classical Computation (Server)]] <br/> [[File:SMPDCC_Client.PNG|center|Secure Multiparty Delegated Classical Computation (Client)]] ==Properties== * The input of each client remains hidden from the other clients and from the server. * The server performs the computation without learning anything about the result. * As long as at least two clients are honest, it is enough to guarantee the secrecy of the independent inputs. ==Protocol Description== To compute <math>f(x_1, x_2,... , x_n) = \Sigma_{i,j = 1}^{n} x_i x_j \forall i \neq j</math>, ===Main Routine=== # The server generates an ancilla bit <math>|0\rangle</math> and sends it to client <math>C_1</math>. # For <math>i = 1</math> to <math>n-1</math>: ## <math>C_i</math> applies <math>V^{r_i}U^{x_i}</math> on the received qubit and sends it to client <math>C_{i+1}</math>. # <math>C_n</math> applies <math>V^{r_n}U^{x_n}</math> on the received qubit. # Any client then applies <math>(U^\dagger)^{\oplus_i x_i}</math>. <br/> <math>(U^\dagger)^{\oplus_i x_i} \underbrace{V^{r_n}U^{x_n}}_{\mathcal{C}_n} ... \underbrace{V^{r_2}U^{x_2}}_{\mathcal{C}_2} \underbrace{V^{r_1}U^{x_1}}_{\mathcal{C}_1} |0\rangle= |r \oplus f\rangle </math> # The resulting state is now sent to the server who measures the outcome <math>r \oplus f</math> and announces it. # The clients locally compute XOR of the random bits of other clients. # They then perform the operation <math>f = r \oplus (r \oplus f)</math> to get the result. ===XOR Routine=== # For <math>i,j=1,\dots,n</math> ## Each client <math>C_j</math> chooses random bits <math>x_j^i,~r_j^i\in\{0,1\}</math>, such that <math>x_j=\bigoplus_{i=1}^nx_j^i</math> and <math>r_j=\bigoplus_{i=1}^nr_j^i</math> and sends <math>x_j^i</math> and <math>r_j^i</math> to client <math>C_i</math>. ## Each client <math>C_i</math> then computes <math>\tilde{x}_i=\bigoplus_{j=1}^n x_j^i</math> and <math>\tilde{r}_i=\bigoplus_{j=1}^n r_j^i</math>. # To perform the operation <math>U^\dagger</math>, the clients send <math>\tilde{x}_i</math> to the designated client, who computes the global XOR. <br/> <math> \bigoplus_{i=1}^n x_i=\bigoplus_{i=1}^n \tilde{x}_i </math> # When server announces <math>r \oplus f</math>, all clients broadcast <math>\tilde{r}_i</math> to calculate <math>r</math> and know the value of <math>f</math>. == Further Information == <div style='text-align: right;'>''*contributed by Natansh Mathur''</div>
Summary:
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)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
News
Protocol Library
Certification Library
Nodal Subroutines
Codes Repository
Knowledge Graphs
Submissions
Categories
Supplementary Information
Recent Changes
Contact us
Help
Tools
What links here
Related changes
Special pages
Page information