<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.veriqloud.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Natansh</id>
	<title>Quantum Protocol Zoo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.veriqloud.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Natansh"/>
	<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Special:Contributions/Natansh"/>
	<updated>2026-04-20T16:31:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4376</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4376"/>
		<updated>2021-11-07T09:50:09Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Functionality&lt;br /&gt;
!width=&amp;quot;60%&amp;quot;|Protocols&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Anonymous Transmission]]||[[GHZ-based Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|[[Authentication of Classical Messages]]||[[Uncloneable Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|[[Authentication of Quantum Messages]]||[[Polynomial Code based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Byzantine Agreement]]||[[Fast Quantum Byzantine Agreement]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Bit Commitment]]||[[Quantum Bit Commitment]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Coin Flipping]]||[[Quantum Strong Coin Flipping]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Weak Coin Flipping]]&lt;br /&gt;
|- &lt;br /&gt;
|rowspan=&amp;quot;8&amp;quot;|[[Quantum Digital Signature|(Quantum) Digital Signature]] |||[[Gottesman and Chuang Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare and Measure Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Digital Signature (MDI-QDS)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Arbitrated Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Blind Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Designated Verifiable Quantum Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Limited Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Proxy Signature]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Entanglement Verification]]||[[Multipartite Entanglement Verification]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Fingerprinting]]||[[Quantum Fingerprinting]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Identity Authentication]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Key Distribution|(Quantum) Key Distribution]]||[[BB84 Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Key Distribution (MDI-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Device-Independent Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Continuous-Variable Quantum Key Distribution (CV-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Leader Election]]||[[Quantum Leader Election]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Money|(Quantum) Money]]||[[Quantum Cheque]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Coin]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Token]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiesner Quantum Money]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Oblivious Transfer]]||[[Quantum Oblivious Transfer]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;10&amp;quot;| [[(Symmetric) Private Information Retrieval]] ||[[Multi-Database Classical Symmetric Private Information Retrieval with Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi-Database Quantum Symmetric Private Information Retrieval for Coded Servers]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi-Database Quantum Symmetric Private Information Retrieval for Communicating and Colluding Servers]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi-Database Quantum Symmetric Private Information Retrieval in the Visible Setting for a Quantum Database]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi-Database Quantum Symmetric Private Information Retrieval without Shared Randomness]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Single-Database Quantum Private Information Retrieval in the Honest Server Model]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Single-Database Quantum Private Information Retrieval in the Honest Server Model and in the Blind Setting for a Quantum Database]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Single-Database Quantum Private Information Retrieval with Prior Shared Entanglement in the Honest Server Model]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Private Queries Protocol Based on Quantum Oblivious Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Private Queries Protocol Based on Quantum Random Access Memory]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[Quantum Secret Sharing|Secret Sharing]] ||[[Quantum Secret Sharing using GHZ States]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Secret Sharing]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;| [[Secure Client- Server Delegated Quantum Computation]] ||[[Classical Fully Homomorphic Encryption for Quantum Circuits]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Prepare-and-Send Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-Secret Random Qubit Generator (PSQRG)]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|[[Secure Verifiable Client-Server Delegated Quantum Computation]]||[[Prepare-and-Send Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Verifiable Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Delegated Classical Computation]]||[[Secure Client-Server Classical Delegated Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Multi-Party Delegated Computation]]||[[Secure Multiparty Delegated Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Teleportation|(Quantum) Teleportation]]||[[Quantum Teleportation|State Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Gate Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Universal Quantum Computation]]||[[Interactive Proofs for Quantum Computation|Quantum Prover Interactive Proofs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Sub-Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of NP-complete problems]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Classical Verification of Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Electronic Voting]]||[[Dual Basis Measurement Based Protocol]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Travelling Ballot Based Protocol]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributed Ballot Based Protocol]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum voting based on conjugate coding]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Weak String Erasure]]&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4302</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4302"/>
		<updated>2020-06-07T19:43:59Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Functionality&lt;br /&gt;
!width=&amp;quot;60%&amp;quot;|Protocols&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Anonymous Transmission]]||[[GHZ-based Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Authentication of Classical Messages]]||[[]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Uncloneable Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Authentication of Quantum Messages]]||[[]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Polynomial Code based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Byzantine Agreement]]||[[Fast Quantum Byzantine Agreement]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Bit Commitment]]||[[Quantum Bit Commitment]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Coin Flipping]]||[[Quantum Strong Coin Flipping]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Weak Coin Flipping]]&lt;br /&gt;
|- &lt;br /&gt;
|rowspan=&amp;quot;8&amp;quot;|[[Quantum Digital Signature|(Quantum) Digital Signature]] |||[[Gottesman and Chuang Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare and Measure Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Digital Signature (MDI-QDS)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Arbitrated Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Blind Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Designated Verifiable Quantum Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Limited Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Proxy Signature]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Entanglement Verification]]||[[Multipartite Entanglement Verification]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Fingerprinting]]||[[Quantum Fingerprinting]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Identity Authentication]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Key Distribution|(Quantum) Key Distribution]]||[[BB84 Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Key Distribution (MDI-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Device-Independent Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Continuous-Variable Quantum Key Distribution (CV-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Leader Election]]||[[Quantum Leader Election]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Money|(Quantum) Money]]||[[Quantum Cheque]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Coin]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Token]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiesner Quantum Money]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Oblivious Transfer]]||[[Quantum Oblivious Transfer]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[Quantum Secret Sharing|Secret Sharing]] ||[[Quantum Secret Sharing using GHZ States]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Secret Sharing]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;| [[Secure Client- Server Delegated Quantum Computation]] ||[[Classical Fully Homomorphic Encryption for Quantum Circuits]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Prepare-and-Send Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-Secret Random Qubit Generator (PSQRG)]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|[[Secure Verifiable Client-Server Delegated Quantum Computation]]||[[Prepare-and-Send Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Verifiable Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Delegated Classical Computation]]||[[Secure Client-Server Classical Delegated Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Multi-Party Delegated Computation]]||[[Secure Multiparty Delegated Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Teleportation|(Quantum) Teleportation]]||[[Quantum Teleportation|State Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Gate Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Universal Quantum Computation]]||[[Interactive Proofs for Quantum Computation|Quantum Prover Interactive Proofs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Sub-Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of NP-complete problems]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Classical Verification of Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Weak String Erasure]]&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Coin_Flipping&amp;diff=4301</id>
		<title>Coin Flipping</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Coin_Flipping&amp;diff=4301"/>
		<updated>2020-06-07T19:41:27Z</updated>

		<summary type="html">&lt;p&gt;Natansh: Created page with &amp;quot;==Functionality description==  Coin flipping is a cryptographic primitive which allows two mistrustful parties, Alice and Bob, to remotely generate a random bit, such that non...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Functionality description==&lt;br /&gt;
&lt;br /&gt;
Coin flipping is a cryptographic primitive which allows two mistrustful parties, Alice and Bob, to remotely generate a random bit, such that none of the two parties can bias the outcome beyond a specified probability.&lt;br /&gt;
&lt;br /&gt;
In order to explicit the protocol properties, let us first define and upper-bound Alice and Bob&#039;s probabilities of forcing their opponent to declare outcome &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; P_{A}^{(i)} \leq 1/2 + \epsilon_A^{(i)}  &amp;lt;/math&amp;gt; Alice forces Bob to declare &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; P_{B}^{(i)} \leq 1/2 + \epsilon_B^{(i)}  &amp;lt;/math&amp;gt; Bob forces Alice to declare &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
* A coin flipping scheme is &#039;&#039;&#039;fair&#039;&#039;&#039; when it outputs bit &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; with probability &amp;lt;math&amp;gt;\frac{1-\Delta}{2}&amp;lt;/math&amp;gt; and bit &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; with probability &amp;lt;math&amp;gt;\frac{1-\Delta}{2}&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\Delta&amp;lt;/math&amp;gt; is the honest probability that the protocol aborts.&lt;br /&gt;
* A coin flipping scheme is &#039;&#039;&#039;secure&#039;&#039;&#039; with bias &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; when none of the parties can force any outcome with probability higher than &amp;lt;math&amp;gt;\frac{1}{2}+\epsilon&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\epsilon= \max\Bigg\{\epsilon_A^{(0)},\epsilon_A^{(1)},\epsilon_B^{(0)},\epsilon_B^{(1)}\Bigg\}&amp;lt;/math&amp;gt; .&lt;br /&gt;
* A coin flipping scheme is &#039;&#039;&#039;balanced&#039;&#039;&#039; when &amp;lt;math&amp;gt;\epsilon_A^{(0)}=\epsilon_A^{(1)}=\epsilon_B^{(0)}=\epsilon_B^{(1)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Strong coin flipping (SCF)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In SCF, two parties remotely wish to agree on a random bit such that none of the parties can bias any outcome with a probability higher than &amp;lt;math&amp;gt;1/2+\epsilon&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; is the protocol bias. SCF is fundamental in multiparty computation, online gaming and more general randomized consensus protocols involving leader election.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using quantum mechanics, information-theoretically secure SCF is possible, but with a fundamental lower bound on the achievable bias:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \epsilon \geqslant \frac{1}{\sqrt{2}}-\frac{1}{2} \approx 0.207. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Weak coin flipping (WCF)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In WCF, two parties wish to agree on a random bit in the same manner as SCF, but given that they both have known, preferred, opposite outcomes. In other words, the outcome of the flip will designate a winner and a loser. In the classical world, WCF arises from SCF with two unconstrained biases (Alice and Bob can always choose to lose with probability &amp;lt;math&amp;gt;P_{A}^{(1)}=P_{B}^{(0)}=1&amp;lt;/math&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; P_{A}^{(0)} \leqslant\frac{1}{2}+\epsilon_A^{(0)} &amp;lt;/math&amp;gt; Alice forces Bob to declare &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; P_{A}^{(1)}=1 &amp;lt;/math&amp;gt; Alice forces Bob to declare &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; P_{A}^{(0)}=1 &amp;lt;/math&amp;gt; Bob forces Alice to declare &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; P_{B}^{(1)}\leqslant\frac{1}{2}+ \epsilon_B^{(i)} &amp;lt;/math&amp;gt; Bob forces Alice to declare &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With quantum mechanics, on the other hand, WCF is crucial to the construction of optimal quantum SCF and quantum bit commitment schemes. Crucially and unlike quantum SCF, quantum WCF may reach biases arbitrarily close to zero:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \epsilon \rightarrow 0. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;contributed by Mathieu Bozzio&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Coin_Flipping&amp;diff=4300</id>
		<title>Quantum Coin Flipping</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Coin_Flipping&amp;diff=4300"/>
		<updated>2020-06-07T19:10:02Z</updated>

		<summary type="html">&lt;p&gt;Natansh: Natansh moved page Quantum Coin Flipping to Quantum Strong Coin Flipping&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Quantum Strong Coin Flipping]]&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Strong_Coin_Flipping&amp;diff=4299</id>
		<title>Quantum Strong Coin Flipping</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Strong_Coin_Flipping&amp;diff=4299"/>
		<updated>2020-06-07T19:10:00Z</updated>

		<summary type="html">&lt;p&gt;Natansh: Natansh moved page Quantum Coin Flipping to Quantum Strong Coin Flipping&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This [https://arxiv.org/abs/quant-ph/9904078 example protocol] allows two remote participants to share a uniformly distributed random bit.&lt;br /&gt;
The parties do not trust each other and can only use classical and quantum channels to communicate.&lt;br /&gt;
The protocol allows them to perform what coin tossing for nearby parties performs without the involvement of any trusted third party.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Two Party Protocols|Two Party Protocols]], [[:Category:Quantum Enhanced Classical Functionality|Quantum Enhanced Classical Functionality]], [[:Category:Specific Task|Specific Task]]&lt;br /&gt;
[[Category:Two Party Protocols]] [[Category:Quantum Enhanced Classical Functionality]][[Category:Specific Task]]&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&lt;br /&gt;
We consider two parties who wish to perform a coin tossing experiment remotely.&lt;br /&gt;
Two single qubit quantum states are initially decided which have equal probability distribution in the computational basis and label them 0 and 1.&lt;br /&gt;
The Coin Tossing protocol consists of 5 steps:&lt;br /&gt;
&lt;br /&gt;
# Both the parties prepare an equal number of random bits.&lt;br /&gt;
# Now, both parties prepare another equal number of random bits for each random bit prepared in step 1. For each random bit thus prepared, each party sends the other party a pair of qubits in the two states defined earlier, the sequence of which is decided by the random bit. &lt;br /&gt;
# Both the parties now announce the xor of each random bit prepared in the second step with the corresponding random bit from the first step. Based on the value of the xor operation performed by the other party, each party returns one of the two qubits it received in the second step. For every random bit prepared in the first step, each party is now left with qubits in the state labelled by the other party&#039;s random bit.&lt;br /&gt;
# Both the parties now announce their random bits which they prepared in the first step. They also measure the qubits they did not return based on the values of the random bits announced by the other party. If any of the measurement fails, the protocol aborts.&lt;br /&gt;
# For every random bit prepared in the first step, each party now also measures the qubits they were returned back. If any of the measurement fails, the protocol aborts.&lt;br /&gt;
&lt;br /&gt;
The final bit of each of the party is the xor of xor of the random bits they prepared in the first step and xor of the bits they measured in the fourth step.&lt;br /&gt;
This final bit is the random bit which has come up in the &#039;coin toss&#039;.&lt;br /&gt;
Thus ends the protocol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;math&amp;gt;\psi(i) \ \forall \ i \in \{0,1\}&amp;lt;/math&amp;gt;: Predetermined single qubit states&lt;br /&gt;
# &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;: Angle between &amp;lt;math&amp;gt;\psi(0)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\psi(1)&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;a_j&amp;lt;/math&amp;gt;: A random bit prepared by the first party in step 1&lt;br /&gt;
# &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt;: A random bit prepared by the second party in step 1&lt;br /&gt;
# &amp;lt;math&amp;gt;\{a_1,...,a_m\}&amp;lt;/math&amp;gt;: Set of random bits prepared by first party in step 1&lt;br /&gt;
# &amp;lt;math&amp;gt;\{b_1,...,b_m\}&amp;lt;/math&amp;gt;: Set of random bits prepared by second party in step 1&lt;br /&gt;
# &amp;lt;math&amp;gt;c_{ij}&amp;lt;/math&amp;gt;: A random bit prepared by the first party in step 2&lt;br /&gt;
# &amp;lt;math&amp;gt;d_{ij}&amp;lt;/math&amp;gt;: A random bit prepared by the second party in step 2&lt;br /&gt;
# &amp;lt;math&amp;gt;\{c_{11},...,c_{nm}\}&amp;lt;/math&amp;gt;: Set of random bits prepared by first party in step 2&lt;br /&gt;
# &amp;lt;math&amp;gt;\{d_{11},...,d_{nm}\}&amp;lt;/math&amp;gt;: Set of random bits prepared by second party in step 2&lt;br /&gt;
# &amp;lt;math&amp;gt;\Phi(i)&amp;lt;/math&amp;gt;: Set of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; qubits, each in &amp;lt;math&amp;gt;\psi(i)&amp;lt;/math&amp;gt; state&lt;br /&gt;
# &amp;lt;math&amp;gt;(E_i,E_i^\perp)&amp;lt;/math&amp;gt;: POVMs defined by &amp;lt;math&amp;gt;E_i = |\Phi(i)\rangle\langle\Phi(i)|&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;E_i^\perp = 1 - E_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
*&#039;&#039;&#039;Network Stage:&#039;&#039;&#039; [[:Category:Fully Quantum Computing Network Stage|Fully Quantum Computing Network Stage]][[Category:Fully Quantum Computing Network Stage]]&lt;br /&gt;
* Authenticated Quantum channel capable of sending a pair of qubits&lt;br /&gt;
* Authenticated Classical channel to send multiple bits&lt;br /&gt;
* Quantum memory for both parties to store qubits&lt;br /&gt;
* Measurement Devices for each party&lt;br /&gt;
* Random bit generator for each party&lt;br /&gt;
&lt;br /&gt;
==Knowledge Graph==&lt;br /&gt;
&lt;br /&gt;
{{graph}}&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
* The protocol is successfully completed when both parties are honest.&lt;br /&gt;
* If any of the parties is dishonest at any step, the protocol simply aborts.&lt;br /&gt;
* The attack on the protocol can generate a bias which is greater than &amp;lt;math&amp;gt;O(1/{m^3})&amp;lt;/math&amp;gt; and less than &amp;lt;math&amp;gt;1/m&amp;lt;/math&amp;gt;.&lt;br /&gt;
* The proposed unconditionally secure quantum protocol realises a non-exact coin tossing.&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&lt;br /&gt;
Two single qubit quantum states &amp;lt;math&amp;gt;\psi(0) = c|0\rangle + s|1\rangle&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\psi(1) = c|0\rangle - s|1\rangle&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;c,s \in \mathbb{R}&amp;lt;/math&amp;gt; are defined such that the angle between them is &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt; is proposed to be &amp;lt;math&amp;gt;\pi/9&amp;lt;/math&amp;gt;.&lt;br /&gt;
Thus, &amp;lt;math&amp;gt;\Phi(0)=\otimes^n_{k=1}\psi(0)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Phi(1)=\otimes^n_{k=1}\psi(1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# For &amp;lt;math&amp;gt;j = 1,2,...,m&amp;lt;/math&amp;gt;:&lt;br /&gt;
## First party picks at random a bit &amp;lt;math&amp;gt;a_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
## Second party picks at random a bit &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
# For &amp;lt;math&amp;gt;i = 1,2,...n,&amp;lt;/math&amp;gt;:&lt;br /&gt;
## For &amp;lt;math&amp;gt;j = 1,2,...,m&amp;lt;/math&amp;gt;:&lt;br /&gt;
### The first party picks a random bit &amp;lt;math&amp;gt;c_{ij}&amp;lt;/math&amp;gt; and sends a pair of qubits in the state &amp;lt;math&amp;gt;\psi(c_{ij})\otimes\psi(\bar{c}_{ij})&amp;lt;/math&amp;gt; to the second party.&lt;br /&gt;
### The second party picks a random bit &amp;lt;math&amp;gt;d_{ij}&amp;lt;/math&amp;gt; and sends a pair of qubits in the state &amp;lt;math&amp;gt;\psi(d_{ij})\otimes\psi(\bar{d}_{ij})&amp;lt;/math&amp;gt; to the first party.&lt;br /&gt;
# For &amp;lt;math&amp;gt;i = 1,2,...n,&amp;lt;/math&amp;gt;:&lt;br /&gt;
## For &amp;lt;math&amp;gt;j = 1,2,...,m&amp;lt;/math&amp;gt;:&lt;br /&gt;
### The first party announces &amp;lt;math&amp;gt;e_{ij} = a_j \oplus c_{ij}&amp;lt;/math&amp;gt;.&lt;br /&gt;
### The second party returns the second particle if &amp;lt;math&amp;gt;e_{ij}=0&amp;lt;/math&amp;gt; and first particle otherwise.&lt;br /&gt;
### The second party announces &amp;lt;math&amp;gt;f_{ij} = b_j \oplus d_{ij}&amp;lt;/math&amp;gt;.&lt;br /&gt;
### The first party returns the second particle if &amp;lt;math&amp;gt;f_{ij}=0&amp;lt;/math&amp;gt; and first particle otherwise. &amp;lt;br/&amp;gt; At this stage, for every &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;, the &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; qubits sent by the first party and not returned by the second party are in the state &amp;lt;math&amp;gt;\Phi(a_j)&amp;lt;/math&amp;gt; and the &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; qubits sent by the second party and not returned by the first party are in the state &amp;lt;math&amp;gt;\Phi(b_j)&amp;lt;/math&amp;gt;.&amp;lt;br/&amp;gt;Also, for every j, the n qubits returned by the first party are in the state &amp;lt;math&amp;gt;\Phi(\bar{b}_j)&amp;lt;/math&amp;gt; and the n qubits returned by the second party are in the state &amp;lt;math&amp;gt;\Phi(\bar{a}_j)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# For &amp;lt;math&amp;gt;j = 1,2,...,m&amp;lt;/math&amp;gt;:&lt;br /&gt;
## First party announces &amp;lt;math&amp;gt;a_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
## Second party announces &amp;lt;math&amp;gt;b_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
## Second party executes POVM &amp;lt;math&amp;gt;(E_{a_j},E_{a_j}^\perp)&amp;lt;/math&amp;gt; on &amp;lt;math&amp;gt;\Phi(a_j)&amp;lt;/math&amp;gt; and notes the outcome &amp;lt;math&amp;gt;\tilde{a}&amp;lt;/math&amp;gt;.&lt;br /&gt;
## First party executes POVM &amp;lt;math&amp;gt;(E_{b_j},E_{b_j}^\perp)&amp;lt;/math&amp;gt; on &amp;lt;math&amp;gt;\Phi(b_j)&amp;lt;/math&amp;gt; and notes the outcome &amp;lt;math&amp;gt;\tilde{b}&amp;lt;/math&amp;gt;.&amp;lt;br/&amp;gt;If either &amp;lt;math&amp;gt;\tilde{a} = \perp&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;\tilde{b} = \perp&amp;lt;/math&amp;gt;, the protocol aborts.   &lt;br /&gt;
# For &amp;lt;math&amp;gt;j = 1,2,...,m&amp;lt;/math&amp;gt;:&lt;br /&gt;
## First party measures the returned state &amp;lt;math&amp;gt;\Phi(\bar{a}_j)&amp;lt;/math&amp;gt; with POVM &amp;lt;math&amp;gt;(E_{\bar{a}_j},E_{\bar{a}_j}^\perp)&amp;lt;/math&amp;gt;.&lt;br /&gt;
## Second party measures the returned state &amp;lt;math&amp;gt;\Phi(\bar{b}_j)&amp;lt;/math&amp;gt; with POVM &amp;lt;math&amp;gt;(E_{\bar{b}_j},E_{\bar{b}_j}^\perp)&amp;lt;/math&amp;gt;. &lt;br /&gt;
If either of the outcomes is &amp;lt;math&amp;gt;\perp&amp;lt;/math&amp;gt;, the protocol aborts.&lt;br /&gt;
&lt;br /&gt;
The final bit of the first party is &amp;lt;math&amp;gt;A\oplus\tilde{B}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A=\oplus_ja_j&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\tilde{B}=\oplus_j\tilde{b}_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
The second party’s final bit is &amp;lt;math&amp;gt;\tilde{A}\oplus B&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\tilde{A}=\oplus_j\tilde{a}_j&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;B=\oplus_jb_j&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Natansh Mathur&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4298</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4298"/>
		<updated>2020-06-07T19:09:50Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Functionality&lt;br /&gt;
!width=&amp;quot;60%&amp;quot;|Protocols&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Anonymous Transmission]]||[[GHZ-based Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Authentication of Classical Messages]]||[[]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Uncloneable Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Authentication of Quantum Messages]]||[[]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Polynomial Code based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Byzantine Agreement]]||[[Fast Quantum Byzantine Agreement]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Bit Commitment]]||[[Quantum Bit Commitment]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Coin Flipping]]||[[Quantum Strong Coin Flipping]]&lt;br /&gt;
|- &lt;br /&gt;
|rowspan=&amp;quot;8&amp;quot;|[[Quantum Digital Signature|(Quantum) Digital Signature]] |||[[Gottesman and Chuang Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare and Measure Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Digital Signature (MDI-QDS)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Arbitrated Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Blind Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Designated Verifiable Quantum Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Limited Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Proxy Signature]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Entanglement Verification]]||[[Multipartite Entanglement Verification]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Fingerprinting]]||[[Quantum Fingerprinting]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Identity Authentication]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Key Distribution|(Quantum) Key Distribution]]||[[BB84 Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Key Distribution (MDI-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Device-Independent Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Continuous-Variable Quantum Key Distribution (CV-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Leader Election]]||[[Quantum Leader Election]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Money|(Quantum) Money]]||[[Quantum Cheque]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Coin]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Token]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiesner Quantum Money]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Oblivious Transfer]]||[[Quantum Oblivious Transfer]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[Quantum Secret Sharing|Secret Sharing]] ||[[Quantum Secret Sharing using GHZ States]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Secret Sharing]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;| [[Secure Client- Server Delegated Quantum Computation]] ||[[Classical Fully Homomorphic Encryption for Quantum Circuits]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Prepare-and-Send Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-Secret Random Qubit Generator (PSQRG)]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|[[Secure Verifiable Client-Server Delegated Quantum Computation]]||[[Prepare-and-Send Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Verifiable Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Delegated Classical Computation]]||[[Secure Client-Server Classical Delegated Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Multi-Party Delegated Computation]]||[[Secure Multiparty Delegated Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Teleportation|(Quantum) Teleportation]]||[[Quantum Teleportation|State Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Gate Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Universal Quantum Computation]]||[[Interactive Proofs for Quantum Computation|Quantum Prover Interactive Proofs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Sub-Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of NP-complete problems]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Classical Verification of Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Weak String Erasure]]&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4277</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4277"/>
		<updated>2020-05-05T08:04:22Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Functionality&lt;br /&gt;
!width=&amp;quot;60%&amp;quot;|Protocols&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Anonymous Transmission]]||[[GHZ-based Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Authentication of Classical Messages]]||[[]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Uncloneable Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Authentication of Quantum Messages]]||[[]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Polynomial Code based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Byzantine Agreement]]||[[Fast Quantum Byzantine Agreement]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Bit Commitment]]||[[Quantum Bit Commitment]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Coin Flipping]]||[[Quantum Coin Flipping]]&lt;br /&gt;
|- &lt;br /&gt;
|rowspan=&amp;quot;8&amp;quot;|[[Quantum Digital Signature|(Quantum) Digital Signature]] |||[[Gottesman and Chuang Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare and Measure Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Digital Signature (MDI-QDS)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Arbitrated Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Blind Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Designated Verifiable Quantum Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Limited Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Proxy Signature]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Entanglement Verification]]||[[Multipartite Entanglement Verification]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Fingerprinting]]||[[Quantum Fingerprinting]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Identity Authentication]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Key Distribution|(Quantum) Key Distribution]]||[[BB84 Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Key Distribution (MDI-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Device-Independent Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Continuous-Variable Quantum Key Distribution (CV-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Leader Election]]||[[Quantum Leader Election]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Money|(Quantum) Money]]||[[Quantum Cheque]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Coin]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Token]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiesner Quantum Money]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Oblivious Transfer]]||[[Quantum Oblivious Transfer]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[Quantum Secret Sharing|Secret Sharing]] ||[[Quantum Secret Sharing using GHZ States]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Secret Sharing]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;| [[Secure Client- Server Delegated Quantum Computation]] ||[[Classical Fully Homomorphic Encryption for Quantum Circuits]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Prepare-and-Send Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-Secret Random Qubit Generator (PSQRG)]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|[[Secure Verifiable Client-Server Delegated Quantum Computation]]||[[Prepare-and-Send Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Verifiable Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Delegated Classical Computation]]||[[Secure Client-Server Classical Delegated Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Multi-Party Delegated Computation]]||[[Secure Multiparty Delegated Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Teleportation|(Quantum) Teleportation]]||[[Quantum Teleportation|State Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Gate Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Universal Quantum Computation]]||[[Interactive Proofs for Quantum Computation|Quantum Prover Interactive Proofs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Sub-Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of NP-complete problems]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Classical Verification of Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Weak String Erasure]]&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Uncloneable_Encryption&amp;diff=4276</id>
		<title>Uncloneable Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Uncloneable_Encryption&amp;diff=4276"/>
		<updated>2020-04-26T15:30:07Z</updated>

		<summary type="html">&lt;p&gt;Natansh: Created page with &amp;quot;This [https://arxiv.org/pdf/quant-ph/0210062.pdf example protocol] achieves the task of Unclonable Encryption in which the sender sends classical message encoded using qua...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This [https://arxiv.org/pdf/quant-ph/0210062.pdf example protocol] achieves the task of [[Unclonable Encryption]] in which the sender sends classical message encoded using quantum states to the receiver.&lt;br /&gt;
An eavesdropper can neither decrypt the message without the key nor can he copy the encrypted message for later decoding without getting caught.&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&lt;br /&gt;
* Classical authenticated channels are available between sender and receiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&lt;br /&gt;
The protocol requires a pre-shared set of four keys that are partially consumed in the protocol and that can be regenerated by using the protocol itself.&lt;br /&gt;
&lt;br /&gt;
===Encoding phase:===&lt;br /&gt;
&lt;br /&gt;
The message is divided into parts (registers). A polynomial of degree equal to the number of parts is defined with the value of the registers as its coefficients. The constant term is chosen such that the first key value is a root of the polynomial. The string formed by coefficients of the polynomial is then XORed with the second key value. This classical pre-processing step is reminiscent to Shamir Secret Sharing scheme.&lt;br /&gt;
&lt;br /&gt;
Both codes are then used in conjunction with the obtained string to pick a string to encode the pre-processed string such that the first one offers error protection against noise in the channel and the second one for privacy amplification.&lt;br /&gt;
&lt;br /&gt;
The obtained classical string is then encoded in the computational or Hadamard basis according to the corresponding bit in the fourth key value and sent to the receiver.&lt;br /&gt;
&lt;br /&gt;
===Decoding phase:===&lt;br /&gt;
&lt;br /&gt;
Upon receiving the qubits, they are measured in the computational or Hadamard basis according to the corresponding bit in the fourth key value.&lt;br /&gt;
&lt;br /&gt;
Calculate the parity checks of the first classical code. If they are not equal to the third shared key value, there are errors in the state, which can be corrected using the standard decoding map. Evaluate the parity checks of &amp;lt;math&amp;gt;C_2/C_1^{\perp}&amp;lt;/math&amp;gt;, producing another string.&lt;br /&gt;
    &lt;br /&gt;
The string obtained is XORed with the second key value and used as coefficients of a polynomial. The polynomial is then evaluated at the first key value and if it gives zero, the message is accepted. It is rejected otherwise.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;: Bit length of the message.&lt;br /&gt;
* &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;: Number of registers of size &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; the message is divided into.&lt;br /&gt;
* &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;: Bit length of each register the message is divided into.&lt;br /&gt;
* &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;: Random key of length &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;m_k&amp;lt;/math&amp;gt;: Value of the &amp;lt;math&amp;gt;k^{th}&amp;lt;/math&amp;gt; register for &amp;lt;math&amp;gt;k \in \{0,1,..,r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt;: Random key of length &amp;lt;math&amp;gt;n+s&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;c_1&amp;lt;/math&amp;gt;: Random key for selecting the coset from &amp;lt;math&amp;gt;C_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;C_1&amp;lt;/math&amp;gt;: Classical linear code for correcting bit flip errors.&lt;br /&gt;
* &amp;lt;math&amp;gt;C_2&amp;lt;/math&amp;gt;: Classical linear code for performing privacy amplification.&lt;br /&gt;
* &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;: XORed product of &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;m_k&amp;lt;/math&amp;gt;s.&lt;br /&gt;
* &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;: Random string from the coset &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; selected from &amp;lt;math&amp;gt;C_1/C_2^{\perp}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;: Bit length of &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;: Random key of length &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Network stage&#039;&#039;&#039;: Prepare and measure. &lt;br /&gt;
&lt;br /&gt;
* A classical linear code for correcting bit-flip errors.&lt;br /&gt;
* A classical linear code for performing privacy amplification.&lt;br /&gt;
* Basic state preparation and measurement devices.&lt;br /&gt;
* A classical and a quantum channel between the sender and the receiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
* It uses up more than twice as much key as a classical one-time pad but the key can be partially reused upon successful transmission. The scheme can also be used to regenerate the keys itself.&lt;br /&gt;
* The protocol can be used for QKD with some slight modifications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&lt;br /&gt;
Pre-shared key &amp;lt;math&amp;gt;(k, e, c_1, b)&amp;lt;/math&amp;gt; is established.&lt;br /&gt;
&lt;br /&gt;
===Encoding:===&lt;br /&gt;
&lt;br /&gt;
# Divide the &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-bit message into &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; groups of &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; bits.&lt;br /&gt;
# Define a polynomial &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; of degree &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; whose first &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; coefficients are the registers &amp;lt;math&amp;gt;m_0, m_1,\ldots, m_{r-1}&amp;lt;/math&amp;gt; of the &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-bit message.&lt;br /&gt;
# The constant term, &amp;lt;math&amp;gt;m_r&amp;lt;/math&amp;gt;, is chosen such that &amp;lt;math&amp;gt;f(k) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
# XOR the string &amp;lt;math&amp;gt;(m_0, \ldots , m_r)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt;, producing a new classical string &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; of length &amp;lt;math&amp;gt;n+s&amp;lt;/math&amp;gt; bits.&lt;br /&gt;
# Consider the particular coset of the classical error-correcting code &amp;lt;math&amp;gt;C_1&amp;lt;/math&amp;gt; given by the syndrome &amp;lt;math&amp;gt;c_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Pick the string &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; at random so that its coset of &amp;lt;math&amp;gt;C_1/C_2^{\perp}&amp;lt;/math&amp;gt; in the coset &amp;lt;math&amp;gt;c_1&amp;lt;/math&amp;gt; of &amp;lt;math&amp;gt;C_1&amp;lt;/math&amp;gt; corresponds to &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;&lt;br /&gt;
# Transmit &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; qubits after operations based on b such that:&lt;br /&gt;
## When the &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; bit of &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;, transmit the &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; bit of &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; in the computational basis.&lt;br /&gt;
## When the &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; bit of &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, transmit the &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; bit of &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; in the Hadamard basis.&lt;br /&gt;
&lt;br /&gt;
===Decoding:===&lt;br /&gt;
# Upon receiving the &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; qubits, measure in the computational basis if the &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; bit of &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;, else in the Hadamard basis the &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; bit of &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, to get &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Calculate the parity checks of the classical code &amp;lt;math&amp;gt;C_1^{\perp}&amp;lt;/math&amp;gt;. If they are not equal to the string &amp;lt;math&amp;gt;c_1&amp;lt;/math&amp;gt;, there are errors in the state, which can be corrected using the standard decoding map.&lt;br /&gt;
# Evaluate the parity checks of &amp;lt;math&amp;gt;C_2/C_1^{\perp}&amp;lt;/math&amp;gt;, producing a &amp;lt;math&amp;gt;n + s&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;.&lt;br /&gt;
# XOR &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt;, producing a new string &amp;lt;math&amp;gt;(m_0, \ldots , m_r)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Consider the &amp;lt;math&amp;gt;(m_0, \ldots, m_r)&amp;lt;/math&amp;gt; as the coefficients of a polynomial &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;. Accept only if &amp;lt;math&amp;gt;f(k) = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Natansh Mathur&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4275</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4275"/>
		<updated>2020-04-26T14:59:19Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Functionality&lt;br /&gt;
!width=&amp;quot;60%&amp;quot;|Protocols&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Anonymous Transmission]]||[[GHZ-based Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Anonymous Transmission]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Authentication of Classical Messages]]||[[]]&lt;br /&gt;
|-&lt;br /&gt;
|[[]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Authentication of Quantum Messages]]||[[]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Polynomial Code based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Byzantine Agreement]]||[[Fast Quantum Byzantine Agreement]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Bit Commitment]]||[[Quantum Bit Commitment]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Coin Flipping]]||[[Quantum Coin Flipping]]&lt;br /&gt;
|- &lt;br /&gt;
|rowspan=&amp;quot;8&amp;quot;|[[Quantum Digital Signature|(Quantum) Digital Signature]] |||[[Gottesman and Chuang Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare and Measure Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Digital Signature (MDI-QDS)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Arbitrated Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Blind Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Designated Verifiable Quantum Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Limited Delegation of Quantum Digital Signature]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Proxy Signature]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Entanglement Verification]]||[[Multipartite Entanglement Verification]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Fingerprinting]]||[[Quantum Fingerprinting]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Identity Authentication]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Key Distribution|(Quantum) Key Distribution]]||[[BB84 Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement Device Independent Quantum Key Distribution (MDI-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Device-Independent Quantum Key Distribution]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Continuous-Variable Quantum Key Distribution (CV-QKD)]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Leader Election]]||[[Quantum Leader Election]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|[[Quantum Money|(Quantum) Money]]||[[Quantum Cheque]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Coin]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Quantum Token]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiesner Quantum Money]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Oblivious Transfer]]||[[Quantum Oblivious Transfer]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[Quantum Secret Sharing|Secret Sharing]] ||[[Quantum Secret Sharing using GHZ States]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verifiable Quantum Secret Sharing]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&amp;quot;| [[Secure Client- Server Delegated Quantum Computation]] ||[[Classical Fully Homomorphic Encryption for Quantum Circuits]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Prepare-and-Send Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-Secret Random Qubit Generator (PSQRG)]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|[[Secure Verifiable Client-Server Delegated Quantum Computation]]||[[Prepare-and-Send Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Measurement-Only Verifiable Universal Blind Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Prepare-and-Send Verifiable Quantum Fully Homomorphic Encryption]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Delegated Classical Computation]]||[[Secure Client-Server Classical Delegated Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Secure Multi-Party Delegated Computation]]||[[Secure Multiparty Delegated Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Secure Multiparty Delegated Classical Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Teleportation|(Quantum) Teleportation]]||[[Quantum Teleportation|State Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Gate Teleporation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Universal Quantum Computation]]||[[Interactive Proofs for Quantum Computation|Quantum Prover Interactive Proofs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Sub-Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of NP-complete problems]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Classical Verification of Universal Quantum Computation]]||[[-]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Weak String Erasure]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Uncloneable Encryption]]&lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Main_Page&amp;diff=3783</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Main_Page&amp;diff=3783"/>
		<updated>2019-07-16T21:26:30Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Welcome to The Quantum Protocol Zoo -&#039;&#039;&#039; &#039;&#039;Explore, Learn, Code and Implement Quantum Protocols&#039;&#039;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;The quantum protocol zoo is an open repository of protocols for quantum networks. It provides a compact and canonical way to explore such protocols. Moreover, it allows for easy communication among computer scientists, engineers, and physicists on a single platform.&lt;br /&gt;
*[[Quantum Protocol Zoo: About|About us]]&lt;br /&gt;
*[[Quantum Protocol Zoo: General disclaimer| Disclaimer]]&lt;br /&gt;
*[[Quantum Protocol Zoo: Copyrights|Copyrights]]&lt;br /&gt;
== Getting started ==&lt;br /&gt;
Quantum Protocol Zoo is a repository of protocols for quantum networks. It presents a wiki of protocols for various functionalities classified in terms of the [[:Category: Network Stages|network stages]] for a quantum internet. It is important to note that, although there are several different ways of defining a protocol, we characterise it as something that involves more than one party. In particular, we define a protocol as a sequence of steps, specifically designed to accomplish a task. It may or may not involve an algorithm and could be run between trusted parties as well as parties who don&#039;t trust each other. &lt;br /&gt;
&lt;br /&gt;
The wiki consists of two types of pages: The first type is a functionality page, describing a general task which can be realised in a quantum network (the &amp;quot;what&amp;quot;). The second type of page is a protocol page, which describes a specific protocol implementing the defined functionality (the &amp;quot;how&amp;quot;). These pages are listed in [[Protocol Library]]. Furthermore, a page on [[Supplementary Information]] has been provided for background information about quantum theory. Any information on [[How to Submit]] or contact can be found in the Navigation Menu on the sidebar. Every page has a Discussion section, where users are welcome to leave their comments.&lt;br /&gt;
&lt;br /&gt;
== The goal ==&lt;br /&gt;
The goal of this project is multifold. First, it aims to provide a compact and precise review of all the existing protocols in one place, such that it is accessible to both the young researchers motivated to enter into the field as well as quantum enthusiasts. Second, our platform enables the experts from academia and industry to find real-life use cases for the listed protocols and at the same time innovate on (or compose) the existing ones to tailor-made new protocols for the desired task. Finally, our main intention is to also develop a standardised form for protocol descriptions to make the community quantum-internet ready. At the same time, we emphasise that our purpose is not to point out the strengths or weaknesses of any particular protocol or functionality. &lt;br /&gt;
&lt;br /&gt;
As a direct consequence of this effort, hosting and analysing the protocols in this fashion provides an underlying link between several protocols and would enable everyone to gain a deeper understanding of their working. With the rapid progress in quantum technologies and improvements in the current protocols, it is extremely beneficial to have a resource for all the quantum protocols in one place that can be regularly updated to keep track of the advancements, something that can not be achieved with the review articles or a book. We, therefore, invite everyone from the quantum information science community to join and contribute to this initiative in collectively making the quantum protocol zoo a crucial source for quantum protocols.&lt;br /&gt;
&lt;br /&gt;
== Wonder what&#039;s the format for contribution? ==&lt;br /&gt;
We welcome contributions from various fields, here we give the format of the kinds of pages, the wiki is composed of. A more detailed set of guidelines for submissions can be found on the [[How to Submit]] page.&lt;br /&gt;
=== Functionality Page===&lt;br /&gt;
----&lt;br /&gt;
Functionality page describes a general task which can be realised in a quantum network (the &amp;quot;what&amp;quot;). It consists of the following sections.&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: white; border: solid thin black;title=Functionality Description;&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Functionality Description&#039;&#039;&#039; A lucid definition of functionality in discussion.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;&#039;Tags&#039;&#039;&#039; Any related page or list of protocols is connected by this section&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;&#039;Use Case&#039;&#039;&#039; (if available) analyses how practical the protocol is, for industry use when compared to other alternatives. It answers the following questions:&lt;br /&gt;
**Quantum or classical task?&lt;br /&gt;
**Any classical or post-quantum secure analogue?&lt;br /&gt;
**Benchmark values for key length, security parameters, threshold values, etc?&lt;br /&gt;
**Scalability in terms of time, key length etc..&lt;br /&gt;
**Real World Applications?&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Protocols&#039;&#039;&#039; List of different types of example protocol achieving the functionality (each protocol in this list is written in the format given below) depending on the task achieved or [[:Category: Network Stages|Network Stages]] required to achieve the same functionality&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Properties&#039;&#039;&#039; All properties that should be satisfied by any protocol achieving the concerned functionality and other common terminologies used in all the protocols.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Further Information&#039;&#039;&#039; Any issue that could not be addressed or find a place in the above sections or any review paper discussing a feature of various types of protocols related to the functionality. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Protocol Page ===&lt;br /&gt;
----&lt;br /&gt;
Protocol page describes a specific protocol implementing the defined functionality (the &amp;quot;how&amp;quot;). It consists of the following sections.&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: white; border: solid thin black;title=Functionality Description;&amp;quot;&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Link&#039;&#039;&#039; to the corresponding functionality together with a short description of the method used and properties satisfied by a protocol.&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Tags&#039;&#039;&#039; Any related page or list of protocols is connected by this section&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Assumptions&#039;&#039;&#039; It describes the setting in which the protocol will be successful. Any assumption on the setup for the protocol below is listed in this section.&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Outline&#039;&#039;&#039; A non-mathematical detailed outline which provides a rough idea of the concerned protocol. A figure is accommodated for most protocols. &lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Notation&#039;&#039;&#039; Connects the non-mathematical outline with further sections.&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Requirements&#039;&#039;&#039; &lt;br /&gt;
**[[:Category: Network Stages|Network Stage]]&lt;br /&gt;
**Relevant network parameters&lt;br /&gt;
**Technology required by each party&lt;br /&gt;
**Available information from implementations like the order of digits related to threshold values, QBit Error Rate (QBER), parameters, etc..&lt;br /&gt;
It accommodates a figure on the &#039;&#039;&#039;decomposition of the protocol&#039;&#039;&#039; into various components required for implementation including the physical resources, nodal subroutines, and other protocols used.&lt;br /&gt;
&#039;&#039;&#039;Color Coding:&#039;&#039;&#039;&lt;br /&gt;
*** The protocols are shown in a blue rectangular box.&lt;br /&gt;
*** The nodal subroutines are shown in a green rounded rectangular box.&lt;br /&gt;
*** The physical resources are shown in red ovals.&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Properties&#039;&#039;&#039; A list of important information extracted from the protocol such as parameters (threshold values), security claim, success probability,  etc..&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Protocol Description&#039;&#039;&#039; Mathematical step-wise protocol algorithm helpful to write a subroutine.&lt;br /&gt;
----&lt;br /&gt;
*&#039;&#039;&#039;Further Information&#039;&#039;&#039; Any useful information that could not find its place in the above description goes here. Also, some pages on protocols might include a short description as below for a list of protocols in the same class of functionality and network stage that are easy to interpret after reading the concerned formal description (or are variants of the protocol discussed above):&lt;br /&gt;
*Theoretical Papers: &lt;br /&gt;
**How is it different from the above protocol&lt;br /&gt;
**Requirements&lt;br /&gt;
**Security&lt;br /&gt;
*Experimental Papers: &lt;br /&gt;
**Which paper or protocol does it implement&lt;br /&gt;
**Benchmark values for this demonstration&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Weak_String_Erasure&amp;diff=3782</id>
		<title>Weak String Erasure</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Weak_String_Erasure&amp;diff=3782"/>
		<updated>2019-07-16T10:03:48Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Weak String Erasure (WSE) is a two-party functionality, say between Alice and Bob, that allows Alice to send a random bit string to Bob, in such a way that Alice is guaranteed that a fraction (ideally half) of the bits are lost during the transmission. However, Alice should not know which bits Bob has received, and which bits have been lost.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Specific Task|Specific Task]][[Category:Specific Task]], &lt;br /&gt;
[[:Category: Two Party Protocols|Two Party Protocols]] [[Category: Two Party Protocols]], weak string erasure,  [[Category: Building Blocks]][[:Category: Building Blocks|Building Blocks]], Bounded Storage Mode [[Weak String Erasure#Further Information| [4]]]&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
*We assume that the adversary has access to a quantum memory that is bounded in size, say the memory is of at most &amp;lt;math&amp;gt;\log_2(d)&amp;lt;/math&amp;gt; qubits. See Bounded/Noisy Storage Model in [[Weak String Erasure#References|&lt;br /&gt;
 [4]/[3] ]]&lt;br /&gt;
* The transmission of the qubits is noiseless/lossless.&lt;br /&gt;
* The preparation devices (for quantum state) are assumed to be fully characterized and trusted. We assume the same for the measurement devices.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
Alice and Bob first agree on a duration &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; that should correspond to an estimation of the time needed to make any known quantum memory decoheres. The protocol can be decomposed into three parts. &lt;br /&gt;
*&#039;&#039;&#039;Distribution&#039;&#039;&#039; This step involves preparation, exchange, and measurement of quantum states. Alice chooses a random basis among the X or Z bases. She then chooses at random one of the two states of this basis, prepares this state and sends it over to Bob. Upon receiving the state from Alice, Bob will choose a random basis among the X or Z bases, and measure the incoming qubit in this basis. They both record the basis they have used. Bob records his measurement outcome and Alice records which state she has sent. Both parties repeat this procedure n times. &lt;br /&gt;
*&#039;&#039;&#039;Waiting time&#039;&#039;&#039; Both parties will wait for time &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt;. This is to force a malicious party to store part his quantum state in his memory. Of course, he will be limited by the size of his quantum memory.&lt;br /&gt;
* &#039;&#039;&#039;Classical post-processing&#039;&#039;&#039; Alice will send to Bob, the bases she has used to prepare her states. Bob will erase all the measurement outcomes of the rounds where he measured in a different basis than Alice has prepared the state.&amp;lt;/br&amp;gt;&lt;br /&gt;
The losses in the transmission happen in the distribution step when Bob measures the incoming qubit in a different basis than the one Alice has chosen for the preparation.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
** &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; the total number of rounds.&lt;br /&gt;
** &amp;lt;math&amp;gt;A_1^n&amp;lt;/math&amp;gt; denotes the string &amp;lt;math&amp;gt;A_1,\ldots,A_n&amp;lt;/math&amp;gt;.&lt;br /&gt;
** &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; denotes the Hadamard gate. &amp;lt;math&amp;gt;H^0=I&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;H^1=H&amp;lt;/math&amp;gt;&lt;br /&gt;
** &amp;lt;math&amp;gt;X_1^n&amp;lt;/math&amp;gt; is the random string Alice sends to Bob by the WSE protocol.&lt;br /&gt;
** &amp;lt;math&amp;gt;\Theta_i&amp;lt;/math&amp;gt; encodes Alice&#039;s choice of basis in round &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;.&lt;br /&gt;
** &amp;lt;math&amp;gt;\hat X_1^n&amp;lt;/math&amp;gt; is Bob&#039;s outcomes measurement.&lt;br /&gt;
** &amp;lt;math&amp;gt;\hat \Theta_i&amp;lt;/math&amp;gt; encodes Bob&#039;s choice of basis in round &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;.&lt;br /&gt;
** &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; denotes dishonest Bob quantum memory, that can store a state of dimension at most $d$.&lt;br /&gt;
** &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt; is a duration during which both parties will wait.&lt;br /&gt;
** &amp;lt;math&amp;gt;\epsilon&amp;gt;0&amp;lt;/math&amp;gt; is a security parameter.&lt;br /&gt;
** &amp;lt;math&amp;gt;\mathcal{I}&amp;lt;/math&amp;gt; denotes the set of rounds where Alice and Bob have chosen the same basis.&lt;br /&gt;
** &amp;lt;math&amp;gt;A_\mathcal{I}&amp;lt;/math&amp;gt; denotes the sub-string of &amp;lt;math&amp;gt;A_1^n&amp;lt;/math&amp;gt; whose bit are in &amp;lt;math&amp;gt;\mathcal{I}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Let us define the following function.&lt;br /&gt;
&amp;lt;math&amp;gt;\gamma(x):= \begin{cases} x, &amp;amp; \text{ if } x&amp;gt;1/2 \\ g^{-1}(x), &amp;amp; \text{ if } x\leq 1/2 \end{cases} &amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
where &amp;lt;math&amp;gt;g(x):= h(x)+x-1&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;h(x):=-x\log(x)-(1-x)\log(1-x)&amp;lt;/math&amp;gt;. &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* Network Stage: [[:Category: Prepare and Measure Network Stage|Prepare and Measure]].&lt;br /&gt;
* Relevant Network Parameters: &amp;lt;math&amp;gt;\epsilon_T&amp;lt;/math&amp;gt; , &amp;lt;math&amp;gt;\epsilon_M&amp;lt;/math&amp;gt; (see [[:Category: Prepare and Measure Network Stage|Prepare and Measure Network Stage]][[Category: Prepare and Measure Network Stage]])&lt;br /&gt;
* The parties need a random number generator.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:WSE_Sender.PNG|center|Weak String Erasure (Sender)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:WSE_Receiver.PNG|center|Weak String Erasure (Receiver)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
* If (dishonest) Bob holds a quantum memory of dimension at most &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, then his (smooth) min-entropy is lower bounded as follows,&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;H_{\min}^\epsilon(X_1^n | K \Theta_1^n M) \geq n \gamma\left(\frac{-\log_2(d)}{n}\right) -1- \log_2\frac{2}{\epsilon^2},&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
where &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt; is any classical information Bob can hold, and &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; represents Bob&#039;s quantum state in his memory. This quantum state has dimension at most &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Alice is ignorant about the set &amp;lt;math&amp;gt;\mathcal{I}&amp;lt;/math&amp;gt;, the set of rounds in which Alice and Bob have chosen the same basis.&lt;br /&gt;
&lt;br /&gt;
See [[Weak String Erasure#References|(WSE?)]] for precise definition.&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&#039;&#039;&#039;Inputs:&#039;&#039;&#039; n&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; &amp;lt;math&amp;gt;X_1^n&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\mathcal{I}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;X_{\mathcal{I}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Alice and Bob agree on a time &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt;.&lt;br /&gt;
# For &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;[n]&amp;lt;/math&amp;gt; do:&lt;br /&gt;
## Alice chooses uniformly at random &amp;lt;math&amp;gt;\Theta_i \in\{0,1\}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;X_i \in \{0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
## Alice prepares the state &amp;lt;math&amp;gt;H^{\Theta_i} |X_i\rangle&amp;lt;/math&amp;gt;. She sends it over to Bob.&lt;br /&gt;
## Bob announces receiving a state.&lt;br /&gt;
## Bob chooses uniformly at random &amp;lt;math&amp;gt;\hat \Theta_i \in\{0,1\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
## Bob measures the incoming qubit in the standard basis if &amp;lt;math&amp;gt;\hat \Theta_i=0&amp;lt;/math&amp;gt; and in the Hadamard basis otherwise. He gets outcome &amp;lt;math&amp;gt;\hat X_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#At this stage Alice has string &amp;lt;math&amp;gt;X_1^n&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Theta_1^n&amp;lt;/math&amp;gt;, and Bob has strings &amp;lt;math&amp;gt;\hat X_1^n&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\hat \Theta_1^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Alice and Bob wait for time &amp;lt;math&amp;gt;\Delta t&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Alice sends &amp;lt;math&amp;gt;\Theta_1^n&amp;lt;/math&amp;gt; to Bob.&lt;br /&gt;
# Bob computes &amp;lt;math&amp;gt;\mathcal{I}:=\{i \in [n] : \Theta_i = \hat \Theta_i\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Bob erases all bits from &amp;lt;math&amp;gt;\hat X_1^n&amp;lt;/math&amp;gt; with index &amp;lt;math&amp;gt;i\notin \mathcal{I}&amp;lt;/math&amp;gt;. Bob holds string &amp;lt;math&amp;gt;\hat X_{\mathcal{I}}&amp;lt;/math&amp;gt;, and we should have &amp;lt;math&amp;gt; X_{\mathcal{I}} = \hat{X}_{\mathcal{I}} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
* The Bounded Storage Model was introduced in [[Weak String Erasure#References|[5], [4] ]]&lt;br /&gt;
* The Bounded Storage Model can be generalised into the Noisy Storage Models [[Weak String Erasure#References|[3], [1] ]]&lt;br /&gt;
* The security of Weak String Erasure has been analyzed in the presence of noise and losses [[Weak String Erasure#References|[2] ]]&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
#[https://dl.acm.org/citation.cfm?id=2332405 KWW (2012)]&lt;br /&gt;
#[https://journals.aps.org/pra/abstract/10.1103/PhysRevA.81.052336 WCSL (2010)]&lt;br /&gt;
#[https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.100.220502 WST (2008)]&lt;br /&gt;
#[https://arxiv.org/abs/0709.0289 Schaffner(2007)]&lt;br /&gt;
#[https://dl.acm.org/citation.cfm?id=1097480 DFSS (2005)]&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;contributed by Jérémy Ribeiro&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:WSE_Receiver.PNG&amp;diff=3781</id>
		<title>File:WSE Receiver.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:WSE_Receiver.PNG&amp;diff=3781"/>
		<updated>2019-07-16T10:03:06Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:WSE_Sender.PNG&amp;diff=3780</id>
		<title>File:WSE Sender.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:WSE_Sender.PNG&amp;diff=3780"/>
		<updated>2019-07-16T10:02:36Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Teleportation&amp;diff=3779</id>
		<title>Quantum Teleportation</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Teleportation&amp;diff=3779"/>
		<updated>2019-07-16T10:01:14Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This [https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.70.1895 example protocol] performs the task of [[(Quantum) Teleportation]] by which a quantum state (or information stored in a quantum state) can be transmitted physically from one location (or one party) to another. This protocol requires sharing an [[entangled state]] like an [[EPR pair]] between two parties and also allowing the parties to communicate classically (sending bits of information). Quantum teleportation can be treated as a send/receive scheme for qubits. Quantum teleportation provides a mechanism of sending an unknown qubit from one location to another, without physically moving the particle. This task can be done due to the existence of long-range correlations between entangled pairs. The quantum teleportation is used widely as a basic protocol in many other quantum communication and quantum cryptography protocols.&lt;br /&gt;
&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category: Building Blocks|Building Blocks]], teleportation, quantum communication, sending quantum information, send/receive in the quantum network, [[:Category: Quantum Functionality|Quantum Functionality]], [[:Category: Specific Task|Specific Task]]&lt;br /&gt;
[[Category: Quantum Functionality]] [[Category: Building Blocks]] [[Category: Specific Task]]&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* The protocol is deterministic i.e. the entangled state and the measurements and gates are assumed perfect, the protocol will always succeed.&lt;br /&gt;
* During the protocol, value of &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; will remain unknown to both the parties (and any adversary as well).&lt;br /&gt;
* A public classical channel is assumed between the two parties.&lt;br /&gt;
* There is no transfer of matter or energy involved. Sender&#039;s particle has not been physically moved to receiver; only the particle&#039;s state has been transferred.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&lt;br /&gt;
The quantum teleportation protocol begins with a quantum state or qubit, in the possession of the first party (the sender). We need this quantum state to be transferred to the second party (the receiver). This state is unknown to both parties meaning that the sender does not know the representation of the qubit on any basis. Before starting the protocol the two parties must share an entangled state (for example an [[EPR pair]]). The entangled state here is a two-qubit state where each party has one share of these qubits which have a special [[quantum correlation]]. After sharing the entangled state, the parties can take an arbitrary distance (In theory, without any noise and by assuming that the entanglement can be held for an arbitrary distance which is not the case in the real experiments). After this preparation stage, the two parties will perform the protocol as follows:&amp;lt;/br&amp;gt;&lt;br /&gt;
* At sender&#039;s location, a Bell measurement of the EPR pair qubit and the qubit to be teleported is performed, yielding one of four measurement outcomes, which can be encoded in two classical bits of information. Both qubits at the sender&#039;s location are then discarded.&lt;br /&gt;
* Using the classical channel, the two bits are sent from the sender to the receiver.&lt;br /&gt;
* As a result of the measurement performed at the sender&#039;s location, the EPR pair qubit at the receiver&#039;s location is in one of four possible states. Of these four possible states, one is identical to the original quantum state, and the other three are closely related. Which of these four possibilities actually obtained, is encoded in the two classical bits. Knowing this, the EPR pair qubit at the receiver&#039;s location is modified by local unitary operations that the receiver performs on his state. And the result will be the original qubit.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
[[File:ST_TP.PNG|center|State Teleportation (Third Party)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ST_Sender.PNG|center|State Teleportation (Sender)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ST_Receiver.PNG|center|State Teleportation (Receiver)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;|\psi\rangle_O:&amp;lt;/math&amp;gt; The unknown original state to be teleported from the sender to the receiver.&lt;br /&gt;
* &amp;lt;math&amp;gt;|\Phi^+\rangle_{AB}:&amp;lt;/math&amp;gt; The EPR pair (or Bell state) shared between two parties.&lt;br /&gt;
* Bell States(&amp;lt;math&amp;gt;|\Phi^+\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;|\Phi^-\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;|\Psi^+\rangle&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;|\Psi^-\rangle&amp;lt;/math&amp;gt;): Set of orthonormal two-qubit states having the maximum amount of entanglement. These states can be used as a basis for a two-qubit quantum system.&lt;br /&gt;
* &amp;lt;math&amp;gt;I:&amp;lt;/math&amp;gt; The identity operator.&lt;br /&gt;
*&amp;lt;math&amp;gt;X,Y,Z:&amp;lt;/math&amp;gt; The [[Pauli Operators]].&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
* This protocol uses a public classical channel to transfer two bits of classical information.&lt;br /&gt;
* The teleportation protocol uses entanglement (or entangled EPR states) as a resource.&lt;br /&gt;
* The teleportation protocol is secure against cloning attacks, as a result of [[no-cloning theorem]] in quantum mechanics i.e. any of the involved states in the protocol cannot perfectly be copied. Also, any other interference will affect the shared state between the two parties and the attack will be discovered.&lt;br /&gt;
* The teleportation protocol is secure against entanglement attacks because of the [[monogamy of entanglement]] in quantum mechanics. It means that if an adversary tries to entangle her state with the shared EPR pair, the amount of the entanglement of the shared state between two parties will change and the attacker will be discovered.&lt;br /&gt;
* The size of the classical information sent by the sender to the receiver is infinitely smaller than the information required to give a classical description of the teleported quantum state.&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
[https://github.com/apassenger/CQC-Python/tree/master/examples/pythonLib/teleport/Quantum%20State%20Teleportation &amp;lt;u&amp;gt;click here for SimulaQron code&amp;lt;/u&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Input:&#039;&#039;&#039; The qubit &amp;lt;math&amp;gt;|\psi\rangle&amp;lt;/math&amp;gt; is the to-be-sent state which the first party (the sender) wants to transfer to the second party (the receiver). The quantum state can be written generally in standard basis as:&lt;br /&gt;
&amp;lt;math&amp;gt;|\psi\rangle = \alpha |0\rangle_{O} + \beta |1\rangle_{O}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt; coefficients are unknown to the sender.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Stage 1&amp;lt;/u&amp;gt;&#039;&#039;&#039; Share entangled qubits (EPR pair)&amp;lt;/br&amp;gt;&lt;br /&gt;
#  Generate an EPR pair (or a maximally-entangled two-qubit sate) and give one qubit to the sender (A) and one to the receiver (B). The shared EPR state between the two parties is described as:&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;|\Phi^+\rangle_{AB} = \frac{1}{\sqrt{2}} (|0\rangle_A|0\rangle_B + |1\rangle_A|1\rangle_B)&amp;lt;/math&amp;gt;&lt;br /&gt;
#This step is a pre-preparation step which should be run before the protocol starts. The state of all the three particles are as follows:&lt;br /&gt;
&amp;lt;math&amp;gt;|\psi\rangle_O \otimes |\Phi^+\rangle_{AB} = (\alpha|0\rangle_O + \beta|1\rangle_O) \otimes \frac{1}{\sqrt{2}} (|0\rangle_A|0\rangle_B + |1\rangle_A|1\rangle_B)&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
In order to make the next step more clear, the above three-qubit states can be written in [[Bell basis]] (spaned by four two-qubit Bell states &amp;lt;math&amp;gt;|\Phi^+\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;|\Phi^-\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;|\Psi^+\rangle&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;|\Psi^-\rangle&amp;lt;/math&amp;gt;)&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;|\psi\rangle_O \otimes |\Phi^+\rangle_{AB} = \frac{1}{2} [|\Phi^+\rangle_{AO} \otimes (\alpha |0\rangle + \beta |1\rangle)_B + |\Phi^-\rangle_{AO} \otimes (\alpha |0\rangle - \beta |1\rangle)_B + |\Psi^+\rangle_{AO} \otimes (\beta |0\rangle + \alpha |1\rangle)_B + |\Psi^-\rangle_{AO} \otimes (\beta |0\rangle - \alpha |1\rangle)_B]&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Stage 2&amp;lt;/u&amp;gt;&#039;&#039;&#039; Local Measurement by the sender(A)&lt;br /&gt;
* &#039;&#039;&#039;Input:&#039;&#039;&#039; &amp;lt;math&amp;gt;|\psi\rangle_O \otimes |\Phi^+\rangle_{AB}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Output:&#039;&#039;&#039; The output of the sender&#039;s measurement in Bell basis&lt;br /&gt;
&lt;br /&gt;
# The sender(A) performs a local measurement on two qubits that she has (the original state and her share of the EPR pair) in the Bell basis.&lt;br /&gt;
#  The output of this measurement will be one of the four Bell states: &amp;lt;math&amp;gt;|\Phi^+\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;|\Phi^-\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;|\Psi^+\rangle&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;|\Psi^-\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Stage 3&amp;lt;/u&amp;gt;&#039;&#039;&#039; Send classical information&lt;br /&gt;
# According to the result of the measurement on the previous step, the sender A sends two bits of classical information to B indicating the result of her measurement:&lt;br /&gt;
##  &#039;&#039;&#039;if&#039;&#039;&#039; the result is &amp;lt;math&amp;gt;|\Phi^+\rangle \rightarrow&amp;lt;/math&amp;gt; send &amp;lt;math&amp;gt;00&amp;lt;/math&amp;gt;&lt;br /&gt;
##&#039;&#039;&#039;if&#039;&#039;&#039; the result is &amp;lt;math&amp;gt;|\Phi^-\rangle \rightarrow&amp;lt;/math&amp;gt; send &amp;lt;math&amp;gt;01&amp;lt;/math&amp;gt;&lt;br /&gt;
## &#039;&#039;&#039;if&#039;&#039;&#039; the result is &amp;lt;math&amp;gt;|\Psi^+\rangle \rightarrow&amp;lt;/math&amp;gt; send &amp;lt;math&amp;gt;10&amp;lt;/math&amp;gt;&lt;br /&gt;
## &#039;&#039;&#039;if&#039;&#039;&#039; the result is &amp;lt;math&amp;gt;|\Psi^-\rangle \rightarrow&amp;lt;/math&amp;gt; send &amp;lt;math&amp;gt;11&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;u&amp;gt;Stage 4&amp;lt;/u&amp;gt;&#039;&#039;&#039; Local Operation by the receiver(B)&lt;br /&gt;
*&#039;&#039;&#039;Input:&#039;&#039;&#039; two classical bits: c &amp;lt;math&amp;gt;\in \{00, 01, 10, 11\}&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Output:&#039;&#039;&#039; Teleported state &amp;lt;math&amp;gt;|\psi\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
# The receiver performs a local unitary operation on his qubit. Before this step and after that the two-qubit measurement is performed by the sender, The state of the receiver will change to the following states according to the sender&#039;s measurement results: &lt;br /&gt;
# &#039;&#039;&#039;if&#039;&#039;&#039; the result is &amp;lt;math&amp;gt;|\Phi^+\rangle \rightarrow&amp;lt;/math&amp;gt;, receiver&#039;s state will be: &amp;lt;math&amp;gt;\alpha |0\rangle + \beta |1\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;if&#039;&#039;&#039; the result is &amp;lt;math&amp;gt;|\Phi^-\rangle \rightarrow&amp;lt;/math&amp;gt;, receiver&#039;s state will be: &amp;lt;math&amp;gt;\alpha |0\rangle - \beta |1\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;if&#039;&#039;&#039; the result is &amp;lt;math&amp;gt;|\Psi^+\rangle \rightarrow&amp;lt;/math&amp;gt;, receiver&#039;s state will be: &amp;lt;math&amp;gt;\beta |0\rangle + \alpha |1\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;if&#039;&#039;&#039; the result is &amp;lt;math&amp;gt;|\Psi^-\rangle \rightarrow&amp;lt;/math&amp;gt;, receiver&#039;s state will be: &amp;lt;math&amp;gt;\beta |0\rangle - \alpha |1\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
*  The receiver will perform following operators on the above states:&lt;br /&gt;
# &#039;&#039;&#039;if&#039;&#039;&#039;  he receives &amp;lt;math&amp;gt;00 \rightarrow&amp;lt;/math&amp;gt;, he performs &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; (does nothing)&lt;br /&gt;
# &#039;&#039;&#039;if&#039;&#039;&#039;  he receives &amp;lt;math&amp;gt;01 \rightarrow&amp;lt;/math&amp;gt;, he performs &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; ([[Pauli Z]])&lt;br /&gt;
# &#039;&#039;&#039;if&#039;&#039;&#039;  he receives &amp;lt;math&amp;gt;10 \rightarrow&amp;lt;/math&amp;gt;, he performs &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ([[Pauli X]])&lt;br /&gt;
# &#039;&#039;&#039;if&#039;&#039;&#039;  he receives &amp;lt;math&amp;gt;11 \rightarrow&amp;lt;/math&amp;gt;, he performs &amp;lt;math&amp;gt;ZX&amp;lt;/math&amp;gt; (Pauli X then a Pauli Z)&lt;br /&gt;
*As a result, the state of the receiver will be: &amp;lt;math&amp;gt;|\psi\rangle_B = \alpha|0\rangle + \beta |1\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Mina Doosti&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:ST_Receiver.PNG&amp;diff=3778</id>
		<title>File:ST Receiver.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:ST_Receiver.PNG&amp;diff=3778"/>
		<updated>2019-07-16T09:57:53Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:ST_Sender.PNG&amp;diff=3777</id>
		<title>File:ST Sender.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:ST_Sender.PNG&amp;diff=3777"/>
		<updated>2019-07-16T09:57:36Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:ST_TP.PNG&amp;diff=3776</id>
		<title>File:ST TP.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:ST_TP.PNG&amp;diff=3776"/>
		<updated>2019-07-16T09:57:15Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Secure_Multiparty_Delegated_Quantum_Computation&amp;diff=3775</id>
		<title>Secure Multiparty Delegated Quantum Computation</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Secure_Multiparty_Delegated_Quantum_Computation&amp;diff=3775"/>
		<updated>2019-07-16T09:55:13Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This [https://arxiv.org/abs/1606.09200 example protocol] achieves the functionality of [[Secure Client- Server Delegated Computation|Delegation Quantum Computation]] to a server for multiple Clients with the guarantee that Server is unknown of any Clients&#039; inputs, outputs, and computation. This protocol is an extension of [[Prepare-and-Send Universal Blind Quantum Computation]] in the multiparty setting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Multi Party Protocols|Multi Party Protocols]], [[:Category:Quantum Functionality|Quantum Functionality]], [[:Category:Universal Task|Universal Task]]&lt;br /&gt;
[[Category:Multi Party Protocols]] [[Category:Quantum Functionality]][[Category:Universal Task]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&lt;br /&gt;
* The clients have secure access to classical multiparty functionalities, which will be treated as oracles.&lt;br /&gt;
* A set of malicious clients cannot corrupt the Server, and the other way around.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&lt;br /&gt;
The Protocol consists of 2 phases: Preparation phase and Computation phase.&lt;br /&gt;
&lt;br /&gt;
===Preparation phase===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Input qubits:&#039;&#039;&#039; For the input qubit states, each client one-time pads their qubit and uses secret sharing schemes to share the secret values with other clients. The honest behaviour for every client is enforced via the given protocol. The server then one-time pads them and measures the one-time padded qubits and announces the measurement values.&lt;br /&gt;
* &#039;&#039;&#039;Non-output and non-input qubits:&#039;&#039;&#039; The clients send the qubits in random phases allowed in MBQC. The server then one-time pads them and announces the measurement values.&lt;br /&gt;
* &#039;&#039;&#039;Output qubits:&#039;&#039;&#039; The server prepares them in the &amp;lt;math&amp;gt;|+\rangle&amp;lt;/math&amp;gt; state.&lt;br /&gt;
* &#039;&#039;&#039;Graph state:&#039;&#039;&#039; The server entangles the qubits to a brickwork state.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Computation phase===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Non-output qubits:&#039;&#039;&#039; All clients choose a random bit based on which they compute the measurement angle of the qubits. They send this angle to the server who then returns the result based on the measurement.    &lt;br /&gt;
* &#039;&#039;&#039;Output qubits:&#039;&#039;&#039; The server sends the encrypted qubits to the corresponding clients. The clients then jointly compute the Pauli corrections and apply them to get the actual output.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;: Total clients.&lt;br /&gt;
* &amp;lt;math&amp;gt;C_k&amp;lt;/math&amp;gt;: Client with index &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{C}_k&amp;lt;/math&amp;gt;: Register of client &amp;lt;math&amp;gt;C_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: Server performing the computation.&lt;br /&gt;
* &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt;: Set of input qubits.&lt;br /&gt;
* &amp;lt;math&amp;gt;O&amp;lt;/math&amp;gt;: Set of output qubits.&lt;br /&gt;
* &amp;lt;math&amp;gt;O^c&amp;lt;/math&amp;gt;: Set of all qubits except the output qubits.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{S}_k&amp;lt;/math&amp;gt;: Register of server with register index &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;t^i_j&amp;lt;/math&amp;gt;: Outcome of the measurement for the qubit corresponding to &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; client for &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; qubit.&lt;br /&gt;
* &amp;lt;math&amp;gt;a_j&amp;lt;/math&amp;gt;: Random bit chosen by &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; client in preparation phase.&lt;br /&gt;
* &amp;lt;math&amp;gt;r^k_j&amp;lt;/math&amp;gt;: Random bit chosen by &amp;lt;math&amp;gt;k^{th}&amp;lt;/math&amp;gt; client for &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; qubit in computation phase.&lt;br /&gt;
* &amp;lt;math&amp;gt;\theta^j_j&amp;lt;/math&amp;gt;: Random phase given by &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; client to &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; qubit.&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta_j&amp;lt;/math&amp;gt;: Measurement angle for encrypted qubit &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;\phi_j&amp;lt;/math&amp;gt;: Measurementangle for &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; decrypted qubit.&lt;br /&gt;
* &amp;lt;math&amp;gt;s^X_j&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; correction term for &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; qubit.&lt;br /&gt;
* &amp;lt;math&amp;gt;s^Z_j&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; correction term for &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; qubit.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
* The quantum operations required from the clients are limited to creating &amp;lt;math&amp;gt;|+\rangle&amp;lt;/math&amp;gt; states and applying X gates and rotations around the z-axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SMPDQC_Server.PNG|center|Secure Multiparty Delegated Quantum Computation (Server)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SMPDQC_Client.PNG|center|Secure Multiparty Delegated Quantum Computation (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
* There is no need of quantum memory for the clients as the quantum communication from the clients to the server can be done in single-qubit rounds.&lt;br /&gt;
* The protocol provides security against a dishonest Server and against a coalition of dishonest clients.&lt;br /&gt;
* Security in the more general scenario where a Server and some clients collaborate to cheat is not guaranteed.&lt;br /&gt;
* No guarantee is given on the correctness of the computation outcome.&lt;br /&gt;
* The protocol uses Verifiable Secret Sharing (VSS) schemes and a computation oracle to calculate the necessary values at each step of the protocol and to ensure that the clients behave honestly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
*Enforcing honest behavior for client &amp;lt;math&amp;gt;C_k&amp;lt;/math&amp;gt;&lt;br /&gt;
# Client &amp;lt;math&amp;gt;C_k&amp;lt;/math&amp;gt; sends &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; qubits &amp;lt;math&amp;gt;|+_{\theta_i^k}\rangle=\frac{1}{\sqrt{2}}(|0\rangle+e^{i\theta_i^k}|1\rangle)&amp;lt;/math&amp;gt; to the Server and secret-shares the values &amp;lt;math&amp;gt;\{\theta_i^k\}_{i=1}^m&amp;lt;/math&amp;gt; with all clients, using a VSS scheme.&lt;br /&gt;
# The Server requests the shared values from the clients for all but one qubit, and measures in the resconstructed bases. If the bases agree with the results of the measurements, then with high probability, the remaining state is correctly formed in relation to the shared angle.&lt;br /&gt;
*State preparation for &amp;lt;math&amp;gt;j\in I&amp;lt;/math&amp;gt;)&lt;br /&gt;
#Server stores states received from clients &amp;lt;math&amp;gt;C_k&amp;lt;/math&amp;gt; to distinct registers &amp;lt;math&amp;gt;\mathcal{S}_k\subset \mathcal{S}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k=1,\dots,n&amp;lt;/math&amp;gt;);&lt;br /&gt;
##for &amp;lt;math&amp;gt;k=1,\dots,n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
###if &amp;lt;math&amp;gt;k=j&amp;lt;/math&amp;gt; &#039;&#039;&#039;then&#039;&#039;&#039; break;&lt;br /&gt;
###if &amp;lt;math&amp;gt;k=n-1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;j=n&amp;lt;/math&amp;gt; &#039;&#039;&#039;then&#039;&#039;&#039; break;&lt;br /&gt;
###if &amp;lt;math&amp;gt;k=j-1&amp;lt;/math&amp;gt;, &#039;&#039;&#039;then&#039;&#039;&#039;&lt;br /&gt;
####CNOT on &amp;lt;math&amp;gt;\mathcal{S}_k\otimes\mathcal{S}_{k+2}&amp;lt;/math&amp;gt;;&lt;br /&gt;
###&#039;&#039;&#039;else&#039;&#039;&#039;&lt;br /&gt;
####CNOT on &amp;lt;math&amp;gt;\mathcal{S}_k\otimes\mathcal{S}_{k+1}&amp;lt;/math&amp;gt;;&lt;br /&gt;
###measure state in &amp;lt;math&amp;gt;\mathcal{S}_k&amp;lt;/math&amp;gt; and get outcome &amp;lt;math&amp;gt;t_j^k&amp;lt;/math&amp;gt;;&lt;br /&gt;
##if &amp;lt;math&amp;gt;j=n&amp;lt;/math&amp;gt; &#039;&#039;&#039;then&#039;&#039;&#039; &lt;br /&gt;
###CNOT on &amp;lt;math&amp;gt;\mathcal{S}_{n-1}\otimes\mathcal{S}_n&amp;lt;/math&amp;gt;;&lt;br /&gt;
####Measure state in &amp;lt;math&amp;gt;\mathcal{S}_{n-1}&amp;lt;/math&amp;gt; and get outcome &amp;lt;math&amp;gt;t_n^{n-1}&amp;lt;/math&amp;gt;;&lt;br /&gt;
##else&lt;br /&gt;
###CNOT on &amp;lt;math&amp;gt;(\mathcal{S}_{n}\otimes\mathcal{S}_j)&amp;lt;/math&amp;gt;; &lt;br /&gt;
####Measure state in &amp;lt;math&amp;gt;\mathcal{S}_n&amp;lt;/math&amp;gt; and get outcome &amp;lt;math&amp;gt;t_j^n&amp;lt;/math&amp;gt;;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
\begin{figure}[H]&lt;br /&gt;
            &lt;br /&gt;
    \centerline{&lt;br /&gt;
    \Qcircuit @C=0.5em @R=1.5em {&lt;br /&gt;
    \lstick{C_1:20:28, 17 April 2019 (CEST)20:28, 17 April 2019 (CEST)\ket{+_{\theta_j^1}}}	&amp;amp;\qw	&amp;amp;\targ &amp;amp;\meter	&amp;amp;	\cw 	&amp;amp; t_j^1\\	&lt;br /&gt;
    \lstick{C_2:20:28, 17 April 2019 (CEST)20:28, 17 April 2019 (CEST)\ket{+_{\theta_j^2}}}  	&amp;amp;\qw		&amp;amp;\ctrl{-1}&amp;amp;\qw	&amp;amp;\targ		 &amp;amp;	\meter 	&amp;amp;	\cw		&amp;amp;	t_j^2\\&lt;br /&gt;
    \lstick{C_3:20:28, 17 April 2019 (CEST)20:28, 17 April 2019 (CEST)\ket{+_{\theta_j^3}}} 	&amp;amp;\qw		&amp;amp;\qw	  &amp;amp;\qw	  	&amp;amp;\ctrl{-1}		&amp;amp;\qw &amp;amp;\targ{+1} &amp;amp; \meter	&amp;amp;	\cw		&amp;amp; \cw	&amp;amp;[[User:Shraddha|Shraddha]] ([[User talk:Shraddha|talk]]) 20:28, 17 April 2019 (CEST)  t_j^3\\&lt;br /&gt;
    \lstick{\vdots \hspace{1in}\vdots}  				&amp;amp;				 &amp;amp;		   &amp;amp;		&amp;amp;		 &amp;amp;			&amp;amp;	\vdots	&amp;amp;		&amp;amp;	&amp;amp; &amp;amp; &amp;amp; &amp;amp; 	&amp;amp;  &amp;amp;  &amp;amp; &amp;amp; \ddots \\&lt;br /&gt;
    \lstick{C_n:20:28, 17 April 2019 (CEST)20:28, 17 April 2019 (CEST)\ket{+_{\theta_j^n}}}				&amp;amp;\qw   			 &amp;amp;\qw 	   &amp;amp;\qw		&amp;amp; \qw	 &amp;amp;\qw		&amp;amp;\qw		&amp;amp;\qw	&amp;amp;\qw	&amp;amp; \qw	&amp;amp;\qw	&amp;amp;\qw &amp;amp;\qw &amp;amp; \qw &amp;amp;\ctrl{-1}		&amp;amp;\qw &amp;amp;\targ &amp;amp; \meter	&amp;amp;	\cw		&amp;amp; \cw &amp;amp;20:28, 17 April 2019 (CEST)~	t_j^n\\&lt;br /&gt;
    \lstick{C_j:~X^{a_j}Z(\theta_j^j)\big[\mathcal{C}_j\big] } 	[[User:Shraddha|Shraddha]] ([[User talk:Shraddha|talk]]) 20:28, 17 April 2019 (CEST)			&amp;amp;\qw   			 &amp;amp;\qw 	   &amp;amp;\qw		&amp;amp; \qw	 &amp;amp;\qw		&amp;amp;\qw		&amp;amp;\qw	&amp;amp;\qw	&amp;amp; \qw	&amp;amp;\qw	&amp;amp;\qw &amp;amp; \qw &amp;amp; \qw	&amp;amp; \qw	&amp;amp;\qw	&amp;amp; \ctrl{-1}	&amp;amp;\qw &amp;amp; \qw &amp;amp; &amp;amp; &amp;amp;\hspace{0.7in}X^{a_j}Z(\theta_j)\big[\mathcal{C}_j\big] \\\\&lt;br /&gt;
                         }		&lt;br /&gt;
        }&lt;br /&gt;
        \caption{Remote State Preparation with quantum input (Protocol \ref{Algo2}). Client &amp;lt;/math&amp;gt;C_j&amp;lt;/math&amp;gt; performs a one-time pad on his register &amp;lt;/math&amp;gt;\mathcal{C}_j&amp;lt;/math&amp;gt; and the result of the circuit remains one-time padded, where &amp;lt;/math&amp;gt;\theta_j=\theta_j^j+\sum_{k=1,k\neq j}^n (-1)^{\bigoplus_{i=k}^n t_j^i+a_j}\theta_j^k&amp;lt;/math&amp;gt;.}\label{fig:algo1}&lt;br /&gt;
\end{figure}&lt;br /&gt;
    &lt;br /&gt;
 &lt;br /&gt;
====State preparation for (&amp;lt;math&amp;gt;j\in O^c\setminus I&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&lt;br /&gt;
# Server stores states received from clients &amp;lt;math&amp;gt;C_k&amp;lt;/math&amp;gt; to distinct registers &amp;lt;math&amp;gt;\mathcal{S}_k\subset \mathcal{S}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;k=1,\dots,n&amp;lt;/math&amp;gt;);&lt;br /&gt;
# For &amp;lt;math&amp;gt;k=1,\dots,n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
## CNOT on &amp;lt;math&amp;gt;\mathcal{S}_k\otimes\mathcal{S}_{k+1}&amp;lt;/math&amp;gt;;&lt;br /&gt;
## Measure state in &amp;lt;math&amp;gt;\mathcal{S}_k&amp;lt;/math&amp;gt; and get outcome &amp;lt;math&amp;gt;t_j^k&amp;lt;/math&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
\begin{figure}[H]&lt;br /&gt;
    \centerline{&lt;br /&gt;
    \Qcircuit @C=0.5em @R=1.5em {&lt;br /&gt;
    \lstick{C_1:[[User:Shraddha|Shraddha]] ([[User talk:Shraddha|talk]]) 20:28, 17 April 2019 (CEST)\ket{+_{\theta_j^1}}}	&amp;amp;\qw  &amp;amp;\targ &amp;amp;\meter	&amp;amp;	\cw 	&amp;amp; t_j^1\\	&lt;br /&gt;
    \lstick{C_2:[[User:Shraddha|Shraddha]] ([[User talk:Shraddha|talk]]) 20:28, 17 April 2019 (CEST)\ket{+_{\theta_j^2}}}  	&amp;amp;\qw		&amp;amp;\ctrl{-1}&amp;amp;\qw	&amp;amp;\targ		 &amp;amp;	\meter 	&amp;amp;	\cw		&amp;amp;	t_j^2\\&lt;br /&gt;
    \lstick{C_3:[[User:Shraddha|Shraddha]] ([[User talk:Shraddha|talk]]) 20:28, 17 April 2019 (CEST)\ket{+_{\theta_j^3}}} 	&amp;amp;\qw		&amp;amp;\qw	  &amp;amp;\qw	  	&amp;amp;\ctrl{-1}		&amp;amp;\qw &amp;amp;\targ &amp;amp; \meter	&amp;amp;	\cw		&amp;amp; \cw	&amp;amp;[[User:Shraddha|Shraddha]] ([[User talk:Shraddha|talk]]) 20:28, 17 April 2019 (CEST)  t_j^3\\&lt;br /&gt;
    \lstick{\vdots \hspace{0.7in}\vdots}  \hspace{0.5in}				&amp;amp;				 &amp;amp;		   &amp;amp;		&amp;amp;		 &amp;amp;			&amp;amp;	\vdots	&amp;amp;		&amp;amp;	&amp;amp; &amp;amp; &amp;amp; &amp;amp; 	&amp;amp;  &amp;amp;  &amp;amp; &amp;amp; \ddots \\&lt;br /&gt;
    \lstick{C_{n-1}:\hspace{0.1in}\ket{+_{\theta_j^{n-1}}}}				&amp;amp;\qw   			 &amp;amp;\qw 	   &amp;amp;\qw		&amp;amp; \qw	 &amp;amp;\qw		&amp;amp;\qw		&amp;amp;\qw	&amp;amp;\qw	&amp;amp; \qw	&amp;amp;\qw	&amp;amp;\qw &amp;amp;\qw &amp;amp; \qw &amp;amp;\ctrl{-1}		&amp;amp;\qw &amp;amp;\targ &amp;amp; \meter	&amp;amp;	\cw		&amp;amp; \cw &amp;amp; 20:28, 17 April 2019 (CEST)	t_j^{n-1}\\&lt;br /&gt;
    \lstick{C_n:[[User:Shraddha|Shraddha]] ([[User talk:Shraddha|talk]]) 20:28, 17 April 2019 (CEST)\ket{+_{\theta_j^n}}}				&amp;amp;\qw   			 &amp;amp;\qw 	   &amp;amp;\qw		&amp;amp; \qw	 &amp;amp;\qw		&amp;amp;\qw		&amp;amp;\qw	&amp;amp;\qw	&amp;amp; \qw	&amp;amp;\qw	&amp;amp;\qw &amp;amp; \qw &amp;amp; \qw	&amp;amp; \qw	&amp;amp;\qw	&amp;amp; \ctrl{-1}	&amp;amp;\qw &amp;amp; \qw &amp;amp; &amp;amp; &amp;amp;\hspace{0.3in}\mathbf{\ket{+_{\theta_j}}}\\&lt;br /&gt;
                         }		&lt;br /&gt;
        }&lt;br /&gt;
    \caption{Remote State Preparation without quantum input (Protocol \ref{Algo3}), where &amp;lt;/math&amp;gt;\theta_j=\theta_j^n+\sum_{k=1}^{n-1} (-1)^{\bigoplus_{i=k}^{n-1} t_j^i}\theta_j^k&amp;lt;/math&amp;gt;.}\label{fig:algo2}&lt;br /&gt;
\end{figure}&lt;br /&gt;
    &lt;br /&gt;
====Multiparty Quantum Computing Protocol====&lt;br /&gt;
* A quantum input &amp;lt;math&amp;gt;\rho_{in}&amp;lt;/math&amp;gt; and measurement angles &amp;lt;math&amp;gt;\{\phi_j\}_{j=1}^q&amp;lt;/math&amp;gt; for qubits &amp;lt;math&amp;gt;j\in O^c&amp;lt;/math&amp;gt; .&lt;br /&gt;
    &lt;br /&gt;
&#039;&#039;&#039;Preparation phase&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Quantum input&#039;&#039;: For &amp;lt;math&amp;gt;j\in I&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Client &amp;lt;math&amp;gt;C_j&amp;lt;/math&amp;gt; applies a one-time pad &amp;lt;math&amp;gt;X^{a_j}Z(\theta_j^j)&amp;lt;/math&amp;gt; to his qubit, where &amp;lt;math&amp;gt;a_j\in_R\{0,1\}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_j^j\in_R\{l\pi/4\}_{l=0}^7&amp;lt;/math&amp;gt; and sends it to the Server. He secret-shares the values &amp;lt;math&amp;gt;a_j&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_j^j&amp;lt;/math&amp;gt; with the other clients.&lt;br /&gt;
# Each client &amp;lt;math&amp;gt;C_k (k\neq j)&amp;lt;/math&amp;gt;, runs Protocol 1 with the Server. If all clients pass the test, the Server at the end has &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt; states &amp;lt;math&amp;gt;|+_{\theta_j^k}\rangle=\frac{1}{\sqrt{2}}\big(|0\rangle+e^{i\theta_j^k}|1\rangle \big)&amp;lt;/math&amp;gt; for &amp;lt;math&amp;gt;k\neq j&amp;lt;/math&amp;gt;.&lt;br /&gt;
# The Server runs Protocol2 and announces outcome vector &amp;lt;math&amp;gt;\mathbf{t}_j&amp;lt;/math&amp;gt;. &lt;br /&gt;
At this point the Server has the state  &amp;lt;math&amp;gt;\rho&#039;_{in}=\big(X^{a_1}Z(\theta_1)\otimes \dots \otimes X^{a_n} Z(\theta_n)\otimes \mathbf{1}_{\mathcal{R}}\big)\cdot \rho_{in}&amp;lt;/math&amp;gt;, where &lt;br /&gt;
&amp;lt;math&amp;gt;\theta_j=\theta_j^j+\sum_{k=1, k\neq j}^n (-1)^{\bigoplus_{i=k}^n t_j^i+a_j}\theta_j^k &amp;lt;/math&amp;gt;&lt;br /&gt;
# [non-output / non-input qubits:] For &amp;lt;math&amp;gt;j\in O^c\setminus I&amp;lt;/math&amp;gt; &lt;br /&gt;
        \begin{enumerate}&lt;br /&gt;
            \item[4.] All clients &amp;lt;/math&amp;gt;C_k&amp;lt;/math&amp;gt;, &amp;lt;/math&amp;gt;k\in[n]&amp;lt;/math&amp;gt;  run Protocol \ref{Algo1} with the Server. If all clients pass the test, the Server at the end has &amp;lt;/math&amp;gt;n&amp;lt;/math&amp;gt; states &amp;lt;/math&amp;gt;\ket{+_{\theta_j^k}}=\frac{1}{\sqrt{2}}\big(\ket{0}+e^{i\theta_j^k}\ket{1}  \big)&amp;lt;/math&amp;gt; for &amp;lt;/math&amp;gt;k=1,\dots,n&amp;lt;/math&amp;gt;.&lt;br /&gt;
            \item[5.] The Server runs Protocol \ref{Algo3} getting outcome vector &amp;lt;/math&amp;gt;\mathbf{t}_j&amp;lt;/math&amp;gt;. He ends up with the state &amp;lt;/math&amp;gt;\ket{+_{\theta_j}}&amp;lt;/math&amp;gt;, where:&lt;br /&gt;
            \begin{equation}\label{eq:entangle2}&lt;br /&gt;
                \theta_j=\theta_j^n+\sum_{k=1}^{n-1} (-1)^{\bigoplus_{i=k}^{n-1} t_j^i}\theta_j^k&lt;br /&gt;
            \end{equation}&lt;br /&gt;
        \end{enumerate}&lt;br /&gt;
        \item[output qubits:] For &amp;lt;/math&amp;gt;j\in O&amp;lt;/math&amp;gt;, the Server prepares &amp;lt;/math&amp;gt;\ket{+}&amp;lt;/math&amp;gt; states.&lt;br /&gt;
        \item[graph state:] The Server entangles the &amp;lt;/math&amp;gt;n+q&amp;lt;/math&amp;gt; qubits to a brickwork state by applying ctrl-&amp;lt;/math&amp;gt;Z&amp;lt;/math&amp;gt; gates.&lt;br /&gt;
    &lt;br /&gt;
    \end{description}&lt;br /&gt;
        &lt;br /&gt;
    \begin{flushleft}&lt;br /&gt;
        \underline{\emph{Computation phase}}&lt;br /&gt;
        \vspace{-7pt}&lt;br /&gt;
    \end{flushleft}&lt;br /&gt;
    &lt;br /&gt;
    \begin{description}&lt;br /&gt;
        \item[non-output qubits:] For &amp;lt;/math&amp;gt;j\in O^c&amp;lt;/math&amp;gt;&lt;br /&gt;
        \begin{enumerate}&lt;br /&gt;
            \item All clients &amp;lt;/math&amp;gt;C_k&amp;lt;/math&amp;gt;, &amp;lt;/math&amp;gt;k=1,\dots,n&amp;lt;/math&amp;gt; choose random &amp;lt;/math&amp;gt;r_j^k\in\{0,1\}&amp;lt;/math&amp;gt;, which they secret-share with the other clients. Then using a computation oracle, they compute the measurement angle of qubit &amp;lt;/math&amp;gt;j&amp;lt;/math&amp;gt;:&lt;br /&gt;
            \begin{equation}\label{angle}&lt;br /&gt;
                \delta_j:=\phi&#039;_j+\pi r_j+\theta_j&lt;br /&gt;
            \end{equation}&lt;br /&gt;
            where undefined values are equal to zero, or otherwise:&lt;br /&gt;
            \begin{itemize}&lt;br /&gt;
                \item &amp;lt;/math&amp;gt;\phi&#039;_j=(-1)^{a_j+s_j^X}\phi_j+s^Z_j\pi+a_{f^{-1}(j)}\pi&amp;lt;/math&amp;gt;.&lt;br /&gt;
                \item &amp;lt;/math&amp;gt;r_j=\bigoplus\limits_{k=1}^n r_j^k&amp;lt;/math&amp;gt;.&lt;br /&gt;
                \item &amp;lt;/math&amp;gt;s_i=b_i\oplus r_i&amp;lt;/math&amp;gt;, for &amp;lt;/math&amp;gt;i\leq j&amp;lt;/math&amp;gt;.&lt;br /&gt;
            \end{itemize}&lt;br /&gt;
            \item The Server receives &amp;lt;/math&amp;gt;\delta_j&amp;lt;/math&amp;gt; and measures qubit &amp;lt;/math&amp;gt;j&amp;lt;/math&amp;gt; in basis &amp;lt;/math&amp;gt;\{\ket{+_{\delta_j}},\ket{-_{\delta_j}}\}&amp;lt;/math&amp;gt;, getting result &amp;lt;/math&amp;gt;b_j&amp;lt;/math&amp;gt;. He announces &amp;lt;/math&amp;gt;b_j&amp;lt;/math&amp;gt; to the clients.&lt;br /&gt;
        \end{enumerate}&lt;br /&gt;
        \item[output qubits:] For &amp;lt;/math&amp;gt;j\in O&amp;lt;/math&amp;gt;, the Server sends the ``encrypted&#039;&#039; quantum state to client &amp;lt;/math&amp;gt;C_{j-q}&amp;lt;/math&amp;gt;. All participants jointly compute &amp;lt;/math&amp;gt;s_j^X&amp;lt;/math&amp;gt; and &amp;lt;/math&amp;gt;s_j^Z&amp;lt;/math&amp;gt; and send it to client &amp;lt;/math&amp;gt;C_{j-q}&amp;lt;/math&amp;gt;, who applies operation &amp;lt;/math&amp;gt;Z^{s_j^Z}X^{s_j^X}&amp;lt;/math&amp;gt; to retrieve the actual quantum output. &lt;br /&gt;
    \end{description}&lt;br /&gt;
&lt;br /&gt;
\end{algorithm}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Natansh Mathur&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:SMPDQC_Client.PNG&amp;diff=3774</id>
		<title>File:SMPDQC Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:SMPDQC_Client.PNG&amp;diff=3774"/>
		<updated>2019-07-16T09:54:18Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:SMPDQC_Server.PNG&amp;diff=3773</id>
		<title>File:SMPDQC Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:SMPDQC_Server.PNG&amp;diff=3773"/>
		<updated>2019-07-16T09:54:00Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Secure_Multiparty_Delegated_Classical_Computation&amp;diff=3772</id>
		<title>Secure Multiparty Delegated Classical Computation</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Secure_Multiparty_Delegated_Classical_Computation&amp;diff=3772"/>
		<updated>2019-07-16T09:51:55Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
To demonstrate this protocol, the pairwise AND function is computed and can be used as a building block for other functions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Multi Party Protocols|Multi Party Protocols]], [[:Category:Quantum Enhanced Classical Functionality|Quantum Enhanced Classical Functionality]], [[:Category:Universal Task|Universal Task]]&lt;br /&gt;
[[Category:Multi Party Protocols]] [[Category:Quantum Enhanced Classical Functionality]][[Category:Universal Task]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&lt;br /&gt;
* The clients have limited computational capabilities, namely access to linear XOR functionalities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&lt;br /&gt;
===Main Routine===&lt;br /&gt;
&lt;br /&gt;
The server sends an ancilla bit to the first client.&lt;br /&gt;
The first client performs the &amp;lt;math&amp;gt;\pi/2&amp;lt;/math&amp;gt; rotation along &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;-axis according to his input bit and &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; rotation according to his random bit for security.&lt;br /&gt;
He then sends the qubit to the next client who performs the same rotation according to his bits.&lt;br /&gt;
This process is followed until all clients have performed their operations.&lt;br /&gt;
Now, one of the clients performs the conjugate transpose of the &amp;lt;math&amp;gt;\pi/2&amp;lt;/math&amp;gt; rotation on the qubit based on the global XOR of all the inputs which he gets by the XOR routine.&lt;br /&gt;
The state now prepared is the value of the function XORed with the XOR of the random bits of all clients.&lt;br /&gt;
The clients now announce the random bits with the help of which the final result is calculated.&lt;br /&gt;
&lt;br /&gt;
===XOR Routine===&lt;br /&gt;
&lt;br /&gt;
The clients choose random bits whose XOR is their input bit and send each such random bit to each client.&lt;br /&gt;
The clients now perform the XOR of the received bits.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;C_i&amp;lt;/math&amp;gt;: Client with index &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;: Input bit of &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; client.&lt;br /&gt;
* &amp;lt;math&amp;gt;r_i&amp;lt;/math&amp;gt;: Random bit of &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; client.&lt;br /&gt;
* &amp;lt;math&amp;gt;R_y(\theta)&amp;lt;/math&amp;gt;: Rotation around &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;-axis in Bloch sphere by angle &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;: Operator for performing &amp;lt;math&amp;gt;\pi/2&amp;lt;/math&amp;gt; rotation around &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;-axis in Bloch Sphere.&lt;br /&gt;
* &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt;: Operator for performing &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; rotation around &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;-axis in Bloch Sphere.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
* Basic state preparation and measurement devices.&lt;br /&gt;
* Access to secure classical channels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SMPDCC_Server.PNG|center|Secure Multiparty Delegated Classical Computation (Server)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:SMPDCC_Client.PNG|center|Secure Multiparty Delegated Classical Computation (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
* The input of each client remains hidden from the other clients and from the server.&lt;br /&gt;
* The server performs the computation without learning anything about the result.&lt;br /&gt;
* As long as at least two clients are honest, it is enough to guarantee the secrecy of the independent inputs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&lt;br /&gt;
To compute &amp;lt;math&amp;gt;f(x_1, x_2,... , x_n) = \Sigma_{i,j = 1}^{n} x_i x_j  \forall i \neq j&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
===Main Routine===&lt;br /&gt;
&lt;br /&gt;
# The server generates an ancilla bit &amp;lt;math&amp;gt;|0\rangle&amp;lt;/math&amp;gt; and sends it to client &amp;lt;math&amp;gt;C_1&amp;lt;/math&amp;gt;.&lt;br /&gt;
# For &amp;lt;math&amp;gt;i = 1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;n-1&amp;lt;/math&amp;gt;:&lt;br /&gt;
## &amp;lt;math&amp;gt;C_i&amp;lt;/math&amp;gt; applies &amp;lt;math&amp;gt;V^{r_i}U^{x_i}&amp;lt;/math&amp;gt; on the received qubit and sends it to client &amp;lt;math&amp;gt;C_{i+1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# &amp;lt;math&amp;gt;C_n&amp;lt;/math&amp;gt; applies &amp;lt;math&amp;gt;V^{r_n}U^{x_n}&amp;lt;/math&amp;gt; on the received qubit.&lt;br /&gt;
# Any client then applies &amp;lt;math&amp;gt;(U^\dagger)^{\oplus_i x_i}&amp;lt;/math&amp;gt;. &amp;lt;br/&amp;gt; &amp;lt;math&amp;gt;(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 &amp;lt;/math&amp;gt;&lt;br /&gt;
# The resulting state is now sent to the server who measures the outcome &amp;lt;math&amp;gt;r \oplus f&amp;lt;/math&amp;gt; and announces it.&lt;br /&gt;
# The clients locally compute XOR of the random bits of other clients.&lt;br /&gt;
# They then perform the operation &amp;lt;math&amp;gt;f = r \oplus (r \oplus f)&amp;lt;/math&amp;gt; to get the result.&lt;br /&gt;
&lt;br /&gt;
===XOR Routine===&lt;br /&gt;
&lt;br /&gt;
# For &amp;lt;math&amp;gt;i,j=1,\dots,n&amp;lt;/math&amp;gt;&lt;br /&gt;
## Each client &amp;lt;math&amp;gt;C_j&amp;lt;/math&amp;gt; chooses random bits &amp;lt;math&amp;gt;x_j^i,~r_j^i\in\{0,1\}&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;x_j=\bigoplus_{i=1}^nx_j^i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;r_j=\bigoplus_{i=1}^nr_j^i&amp;lt;/math&amp;gt; and sends &amp;lt;math&amp;gt;x_j^i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;r_j^i&amp;lt;/math&amp;gt; to client &amp;lt;math&amp;gt;C_i&amp;lt;/math&amp;gt;. &lt;br /&gt;
## Each client &amp;lt;math&amp;gt;C_i&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;\tilde{x}_i=\bigoplus_{j=1}^n x_j^i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\tilde{r}_i=\bigoplus_{j=1}^n r_j^i&amp;lt;/math&amp;gt;.&lt;br /&gt;
# To perform the operation &amp;lt;math&amp;gt;U^\dagger&amp;lt;/math&amp;gt;, the clients send &amp;lt;math&amp;gt;\tilde{x}_i&amp;lt;/math&amp;gt; to the designated client, who computes the global XOR. &amp;lt;br/&amp;gt; &amp;lt;math&amp;gt; \bigoplus_{i=1}^n x_i=\bigoplus_{i=1}^n \tilde{x}_i &amp;lt;/math&amp;gt;&lt;br /&gt;
# When server announces &amp;lt;math&amp;gt;r \oplus f&amp;lt;/math&amp;gt;, all clients broadcast &amp;lt;math&amp;gt;\tilde{r}_i&amp;lt;/math&amp;gt; to calculate &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; and know the value of &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Further Information ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Natansh Mathur&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Prepare-and-Send_Verifiable_Universal_Blind_Quantum_Computation&amp;diff=3771</id>
		<title>Prepare-and-Send Verifiable Universal Blind Quantum Computation</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Prepare-and-Send_Verifiable_Universal_Blind_Quantum_Computation&amp;diff=3771"/>
		<updated>2019-07-16T09:51:02Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://arxiv.org/abs/1203.5217 example protocol] achieves the functionality of [[Secure Verifiable Client-Server Delegated Quantum Computation|Secure Verifiable Delegated Quantum 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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[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]].&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* The protocol assumes perfect state preparation, transmissions, and measurements.&lt;br /&gt;
* The client never deviates from the protocol.&lt;br /&gt;
* The position of the trap qubit always remains hidden from the server.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
MBQC required a set of the initial state for computation. The [[Glossary#Brickwork States|brickwork states]] used in [[Prepare-and-Send Universal Blind Quantum Computation]] are modified to [[Glossary#Cylinder Brickwork States|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&#039;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 [[Glossary#Cylinder Brickwork States|cylinder brickwork states]]. &lt;br /&gt;
&lt;br /&gt;
This protocol is divided into four stages: Client&#039;s preparation, server&#039;s preparation, interaction and measurement, verification.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Client&#039;s preparation&#039;&#039;&#039;: 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. &lt;br /&gt;
** For the server to create a cylinder brickwork state, the client prepares &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; single qubit states. The first &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; qubit input states are specially encoded and [[Supplementary Information#Quantum One Time Pad|Quantum one time pad]] is applied to these states with randomly chosen keys.&lt;br /&gt;
** 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 &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;. The dummy qubits isolate the trap qubit from the graph state.&lt;br /&gt;
** The remaining non-input qubit states (not including the dummy states and trap qubit) are prepared with randomly chosen local phase angles.&lt;br /&gt;
** The client then sends all the prepared qubits in the respective order to the server so the graph state can be constructed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Server&#039;s Preparation&#039;&#039;&#039;: The server receives the qubits in a sequential order of rows and columns till all &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; qubits are received. The server then entangles them according to the cylinder brickwork state (using CZ gate).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Interaction and Measurement&#039;&#039;&#039;: This step is exactly the same as for [[Prepare-and-Send Universal Blind Quantum Computation]].&lt;br /&gt;
** 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 &#039;&#039;&#039;[[Supplementary Information#Flow Construction-Determinism|flow construction]]&#039;&#039;&#039;. 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 &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; 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.&lt;br /&gt;
** The server sends the classical output of each non-input qubit&#039;s measurement to the client. The client considers the &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Verification&#039;&#039;&#039;: The verification is carried on by the client by comparing the outcome of the trap qubit measurements with the expected outcome.&lt;br /&gt;
**&#039;&#039;&#039;For Quantum outputs&#039;&#039;&#039;:&lt;br /&gt;
*** The server sends all the output qubits to the client.&lt;br /&gt;
*** 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.&lt;br /&gt;
*** If the computation is accepted, output correction is performed on the other output qubits (except the trap qubit).&lt;br /&gt;
**&#039;&#039;&#039;For Classical outputs&#039;&#039;&#039;:&lt;br /&gt;
*** The server continues performing measurements on the output qubits with the measurement angles sent by the server.&lt;br /&gt;
*** 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.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;: Total number of input qubits. Also total number of output qubits in quantum outputs.&lt;br /&gt;
* &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: Total number of qubits in the graph state.&lt;br /&gt;
* &amp;lt;math&amp;gt;|I\rangle&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; qubit input state.&lt;br /&gt;
* &amp;lt;math&amp;gt;|e\rangle&amp;lt;/math&amp;gt;: Encoded &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; qubit input state.&lt;br /&gt;
* &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;: Set of random bits used in encoding &amp;lt;math&amp;gt;|I\rangle&amp;lt;/math&amp;gt; via quantum one time pad.&lt;br /&gt;
* &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;: Trap qubit position vertex in the graph state.&lt;br /&gt;
* &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;: Set of all position vertices in the tape of the cylinder brickwork state.&lt;br /&gt;
* &amp;lt;math&amp;gt;\theta_i&amp;lt;/math&amp;gt;: Random local phase angles for qubit &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;|+\rangle_{\theta_i}&amp;lt;/math&amp;gt;:  &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}} (|0\rangle +e^{i\theta_i}|1\rangle)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\phi_i&amp;lt;/math&amp;gt;: True measurement angle for qubit &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;. This is assigned corresponding to the graph state.&lt;br /&gt;
* &amp;lt;math&amp;gt;r \in \{ 0, 1\}&amp;lt;/math&amp;gt;: randomly chosen parameter for &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; rotation in order to hide classical output.&lt;br /&gt;
* &amp;lt;math&amp;gt;N_g(k)&amp;lt;/math&amp;gt;: Denotes neighborhood of vertex k in graph state&lt;br /&gt;
* &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;: Function which defines flow from measured qubits to noninput qubits, &amp;lt;math&amp;gt;f:&amp;lt;/math&amp;gt; output vertices &amp;lt;math&amp;gt;\xrightarrow{}&amp;lt;/math&amp;gt; input vertices&lt;br /&gt;
* &amp;lt;math&amp;gt;\theta^{&#039;}_i&amp;lt;/math&amp;gt;: Updated version of Random local phase angle for qubit &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta_i&amp;lt;/math&amp;gt;: Final measurement angle for qubit &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt;: Measurement output by the server.&lt;br /&gt;
* &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;: Sequence of length m describing the result of the nonoutput measurements. &amp;lt;math&amp;gt;s_i \in \{0, 1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* Quantum computation resources for the server.&lt;br /&gt;
* A quantum channel from the client to the server to transfer initial quantum states.&lt;br /&gt;
* Classical channel from the client to the server to transfer measurement angles and outputs.&lt;br /&gt;
* Measurement devices for the server.&lt;br /&gt;
* Measurement devices for the client in case of quantum outputs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PSVUBQC_Server.PNG|center|Prepare-and-Send Verifiable Universal Blind Quantum Computation (Server)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PSVUBQC_Client.PNG|center|Prepare-and-Send Verifiable Universal Blind Quantum Computation (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
* The client is partially quantum and should be able to prepare the given initial quantum states.&lt;br /&gt;
* Security: This protocol is secure against malicious adversary setting and also detects a cheating server.&lt;br /&gt;
* Universality: This protocol is universal in nature. The universality of the cylinder brickwork state guarantees that the server’s knowledge about the graph does not reveal anything about the underlying computation.&lt;br /&gt;
* Correctness If Client and Server follow the protocol as described above, the outcome will be correct.&lt;br /&gt;
* Blindness: This protocol is blind in nature, only revealing &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;.&lt;br /&gt;
* This protocol requires no quantum memory for the client.&lt;br /&gt;
* This protocol is &amp;lt;math&amp;gt;1-\frac{1}{2m}&amp;lt;/math&amp;gt; verifiable in quantum output case.&lt;br /&gt;
* This protocol is &amp;lt;math&amp;gt;1-\frac{1}{m}&amp;lt;/math&amp;gt; verifiable in classical output case.&lt;br /&gt;
* The trap qubit in the tape format of the cylinder brickwork state remains disentangled from the rest of the graph.&lt;br /&gt;
* Every qubit of the underlying graph could potentially be an isolated trap qubit.&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Protocol for quantum output case&#039;&#039;&#039;: &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Stage 1: &#039;&#039;&#039;Client&#039;s preparation:&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: Cylindrical brickwork state, &amp;lt;math&amp;gt;|I\rangle&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: Server: &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; qubits sequentially. &lt;br /&gt;
&lt;br /&gt;
* The client prepares &amp;lt;math&amp;gt;|e\rangle = X^{x1}_1 Z_1(\theta_1) \otimes ... \otimes X^{xn}_n Z_n(\theta_n)|I\rangle&amp;lt;/math&amp;gt; using QOTP.&lt;br /&gt;
* Client randomly chooses &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;t \in D&amp;lt;/math&amp;gt;.&lt;br /&gt;
* For &amp;lt;math&amp;gt;i = n+1, n+2, ....m&amp;lt;/math&amp;gt; (non-input qubits):&lt;br /&gt;
** if &amp;lt;math&amp;gt;i \in D&amp;lt;/math&amp;gt;:&lt;br /&gt;
*** if &amp;lt;math&amp;gt;i  != t&amp;lt;/math&amp;gt; then state &amp;lt;math&amp;gt;|0\rangle&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;|1\rangle&amp;lt;/math&amp;gt; is prepared&lt;br /&gt;
*** if &amp;lt;math&amp;gt;i == t&amp;lt;/math&amp;gt; then &amp;lt;math&amp;gt;|+\rangle_{\theta_i}&amp;lt;/math&amp;gt; is prepared&lt;br /&gt;
** else &amp;lt;math&amp;gt;|+\rangle_{\theta_i}&amp;lt;/math&amp;gt; is prepared&lt;br /&gt;
* &amp;lt;math&amp;gt;\forall l\epsilon\{1,..,n\}&amp;lt;/math&amp;gt;, Client sends all qubits to server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage 2: &#039;&#039;&#039;Server&#039;s preparation:&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; qubits sequentially.&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: entangled graph state with a disentangled trap qubit.&lt;br /&gt;
* Server creates an entangled state from all received qubits using CZ operations according to their indices and creates the cylinder brickwork state.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage 3: &#039;&#039;&#039;Interaction and Measurement:&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: &amp;lt;math&amp;gt;\delta_i&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: &amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For &amp;lt;math&amp;gt;i = 1, 2, ... m-n&amp;lt;/math&amp;gt; (received qubits): &lt;br /&gt;
** Client computes &amp;lt;math&amp;gt;\phi_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
*** if &amp;lt;math&amp;gt;i == t&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;\phi_i = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
** Client randomly selects &amp;lt;math&amp;gt;r_i&amp;lt;/math&amp;gt; and generates &amp;lt;math&amp;gt;\theta&#039;_i = \theta_i + r_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
** Client then computes the angle &amp;lt;math&amp;gt;\delta_i = (-1)^{x_i + s_{f^{-1}(i)}}\phi_i + \sum_{j:i \in N_g(f(j)}\theta&#039;_i + s_i\pi&amp;lt;/math&amp;gt; and sends &amp;lt;math&amp;gt;\delta_i&amp;lt;/math&amp;gt; to server.&lt;br /&gt;
** Server measures &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; and sends &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt; to client.&lt;br /&gt;
** Client sets the value &amp;lt;math&amp;gt;s_i = b_i \oplus r_i&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage 4: &#039;&#039;&#039;Verification:&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: Output qubits &amp;lt;math&amp;gt;m-n+1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: Verification result&lt;br /&gt;
* For &amp;lt;math&amp;gt;i = m-n+1, ... m&amp;lt;/math&amp;gt; (output qubits): &lt;br /&gt;
** Server sends &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; to client.&lt;br /&gt;
* Client measures the output trap qubit &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; (which was disentangled) with angle &amp;lt;math&amp;gt;\delta_t = \phi_t + r_t\pi&amp;lt;/math&amp;gt;. &lt;br /&gt;
** Client obtains the result &amp;lt;math&amp;gt;b_t&amp;lt;/math&amp;gt;.&lt;br /&gt;
*** If &amp;lt;math&amp;gt;b_t == r_t&amp;lt;/math&amp;gt;, then computation is accepted.&lt;br /&gt;
*** else, computation is rejected.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Rhea Parekh&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:SMPDCC_Client.PNG&amp;diff=3770</id>
		<title>File:SMPDCC Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:SMPDCC_Client.PNG&amp;diff=3770"/>
		<updated>2019-07-16T09:50:45Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:SMPDCC_Server.PNG&amp;diff=3769</id>
		<title>File:SMPDCC Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:SMPDCC_Server.PNG&amp;diff=3769"/>
		<updated>2019-07-16T09:50:13Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:PSVUBQC_Server.PNG&amp;diff=3768</id>
		<title>File:PSVUBQC Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:PSVUBQC_Server.PNG&amp;diff=3768"/>
		<updated>2019-07-16T09:47:57Z</updated>

		<summary type="html">&lt;p&gt;Natansh: Natansh uploaded a new version of File:PSVUBQC Server.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:PSVUBQC_Client.PNG&amp;diff=3767</id>
		<title>File:PSVUBQC Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:PSVUBQC_Client.PNG&amp;diff=3767"/>
		<updated>2019-07-16T09:47:14Z</updated>

		<summary type="html">&lt;p&gt;Natansh: Natansh uploaded a new version of File:PSVUBQC Client.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:PSVUBQC_Client.PNG&amp;diff=3766</id>
		<title>File:PSVUBQC Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:PSVUBQC_Client.PNG&amp;diff=3766"/>
		<updated>2019-07-16T09:45:40Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:PSVUBQC_Server.PNG&amp;diff=3765</id>
		<title>File:PSVUBQC Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:PSVUBQC_Server.PNG&amp;diff=3765"/>
		<updated>2019-07-16T09:45:21Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Prepare-and-Send_Universal_Blind_Quantum_Computation&amp;diff=3764</id>
		<title>Prepare-and-Send Universal Blind Quantum Computation</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Prepare-and-Send_Universal_Blind_Quantum_Computation&amp;diff=3764"/>
		<updated>2019-07-16T09:43:40Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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]].&lt;br /&gt;
&amp;lt;/br&amp;gt; &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039;  [[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)]].&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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 &#039;&#039;Prepare and Send UBQC&#039;&#039;. 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.&lt;br /&gt;
&lt;br /&gt;
*	&#039;&#039;&#039;Client’s preparation&#039;&#039;&#039; 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.&lt;br /&gt;
*	&#039;&#039;&#039;Server’s preparation&#039;&#039;&#039; 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.&lt;br /&gt;
*	&#039;&#039;&#039;Interaction and Measurement&#039;&#039;&#039; 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 &#039;&#039;&#039;[[Supplementary Information#Flow Construction-Determinism|flow construction]]&#039;&#039;&#039;. 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.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
*&#039;&#039;&#039;Network Stage:&#039;&#039;&#039; [[:Category:Quantum Memory Network Stage|Quantum Memory]] [[Category:Quantum Memory Network Stage]]&lt;br /&gt;
*&#039;&#039;&#039;Required Network Parameters:&#039;&#039;&#039; &lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;math&amp;gt;\epsilon_j&amp;lt;/math&amp;gt;&#039;&#039;&#039;, which measures the error due to noisy operations.&lt;br /&gt;
**Number of communication rounds&lt;br /&gt;
**Circuit depth&lt;br /&gt;
**Number of physical qubits used&lt;br /&gt;
*Client should have preparation devices&lt;br /&gt;
*Quantum offline channel&lt;br /&gt;
*Classical online channel&lt;br /&gt;
*Server should be able to generate and store large network of entangled quantum states.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PSUBQC_Server.PNG|center|Prepare-and-Send Universal Blind Quantum Computation (Server)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PSUBQC_Client.PNG|center|Prepare-and-Send Universal Blind Quantum Computation (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
*(m,n) define dimensions of the brickwork state&lt;br /&gt;
*This protocol is secure/blind in every setting (universal)&lt;br /&gt;
*The Protocol needs Client to be able to prepare given initial quantum states&lt;br /&gt;
*The Protocols needs a quantum channel from Client to Server to transfer initial quantum states&lt;br /&gt;
*This protocol requires no quantum memory for the Client&lt;br /&gt;
*This protocol is universally composable [[Prepare-and-Send Universal Blind Quantum Computation#References|(1)]]&lt;br /&gt;
*[[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.&lt;br /&gt;
*[[Secure Client- Server Delegated Quantum Computation#Properties|Correctness]] If Client and Server follow the protocol as described above, the outcome will be correct.&lt;br /&gt;
*[[Secure Client- Server Delegated Quantum Computation#Properties|Blindness]] The protocol is blind while leaking at most (m,n) to the Server.&lt;br /&gt;
&lt;br /&gt;
==Notations==&lt;br /&gt;
**&amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;, measurement angle for given MBQC pattern to implement the required computation&lt;br /&gt;
**&amp;lt;math&amp;gt;\phi_0&amp;lt;/math&amp;gt;, measurement angle including Pauli X,Z corrections&lt;br /&gt;
**&amp;lt;math&amp;gt;s_X,s_Z&amp;lt;/math&amp;gt; Dependency sets for Pauli X and Pauli Z corrections, respectively (obtained from flow construction).&lt;br /&gt;
**&amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;, randomly chosen angles by Client in order to hide classical input&lt;br /&gt;
** r &amp;lt;math&amp;gt;\epsilon_R\{0,1\}&amp;lt;/math&amp;gt;, randomly chosen parameter for &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt; rotation in order to hide classical output&lt;br /&gt;
**&amp;lt;math&amp;gt;\delta_x,y&amp;lt;/math&amp;gt;, final measurement angle for the qubit at position (x,y) in the brickwork state&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
[https://github.com/cgmcintyr/SimulaQron/tree/develop/examples/ubqc &amp;lt;u&amp;gt;click here for SimulaQron code&amp;lt;/u&amp;gt;]&lt;br /&gt;
===&#039;&#039;&#039;Stage 1:&#039;&#039;&#039; Preparation===&lt;br /&gt;
*Input: Client: Dimensions of Brickwork State (m,n), Input States (&amp;lt;math&amp;gt;\psi_{0,y})&amp;lt;/math&amp;gt;, Auxilliary Input States (&amp;lt;math&amp;gt;\psi_{x,y}&amp;lt;/math&amp;gt;)&lt;br /&gt;
*Output: Server: Brickwork State &amp;lt;math&amp;gt;G_{\text{mxn}}&amp;lt;/math&amp;gt;&lt;br /&gt;
**&#039;&#039;&#039;Client’s preparation&#039;&#039;&#039; &lt;br /&gt;
##For each column x = 1,...,n&lt;br /&gt;
###For each row y = 1,...,m&lt;br /&gt;
#### Client prepares  and sends the qubits to Server.&lt;br /&gt;
**&#039;&#039;&#039;Server’s preparation&#039;&#039;&#039;&lt;br /&gt;
#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 &amp;lt;math&amp;gt;G_{\text{n x m}}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;Stage 2:&#039;&#039;&#039; Computation Stage===&lt;br /&gt;
*Input: Client: Measurement Angle: &amp;lt;math&amp;gt;\delta_{x,y}&amp;lt;/math&amp;gt;&lt;br /&gt;
*Output: Server: Measurement Outcome: &amp;lt;math&amp;gt;s_{x,y}&amp;lt;/math&amp;gt;&lt;br /&gt;
**&#039;&#039;&#039;Interaction and measurement&#039;&#039;&#039;&lt;br /&gt;
#For each column x = 1,...,n &lt;br /&gt;
##For each row y = 1,...,m&lt;br /&gt;
###Client computes &amp;lt;math&amp;gt;\phi &#039;_{x,y}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;s^X_{0,y}=s^Z_{0,y}=0&amp;lt;/math&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
###Client chooses &amp;lt;math&amp;gt;r_{x,y} \epsilon_R {0,1}&amp;lt;/math&amp;gt; and computes &amp;lt;math&amp;gt;\delta_{x,y}=\phi &#039;_{x,y}+\theta_{x,y}+\pi r_{x,y}&amp;lt;/math&amp;gt;.&lt;br /&gt;
###Client transmits &amp;lt;math&amp;gt;\delta_{x,y}&amp;lt;/math&amp;gt; to Server. Server measures in the basis &amp;lt;math&amp;gt;\{|+_{\delta_{x,y}}\rangle, |-_{\delta_{x,y}}\rangle\}&amp;lt;/math&amp;gt;&lt;br /&gt;
###Server transmits the result &amp;lt;math&amp;gt;s_{x,y}\epsilon {0,1}&amp;lt;/math&amp;gt; to Client.&lt;br /&gt;
###If &amp;lt;math&amp;gt;r_{x,y} = 1,&amp;lt;/math&amp;gt; Client flips &amp;lt;math&amp;gt;s_{x,y}&amp;lt;/math&amp;gt;; otherwise she does nothing.&lt;br /&gt;
**&#039;&#039;&#039;Output Correction [only for quantum outputs]&#039;&#039;&#039;&lt;br /&gt;
#Server sends to Client all qubits in the last layer.&lt;br /&gt;
#Client performs the final Pauli corrections .&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
#[https://arxiv.org/abs/1301.3662 Dunjko et al (2014)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Shraddha Singh&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:PSUBQC_Client.PNG&amp;diff=3763</id>
		<title>File:PSUBQC Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:PSUBQC_Client.PNG&amp;diff=3763"/>
		<updated>2019-07-16T09:42:24Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:PSUBQC_Server.PNG&amp;diff=3762</id>
		<title>File:PSUBQC Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:PSUBQC_Server.PNG&amp;diff=3762"/>
		<updated>2019-07-16T09:41:52Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Prepare-and-Send_Quantum_Fully_Homomorphic_Encryption&amp;diff=3761</id>
		<title>Prepare-and-Send Quantum Fully Homomorphic Encryption</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Prepare-and-Send_Quantum_Fully_Homomorphic_Encryption&amp;diff=3761"/>
		<updated>2019-07-16T09:39:07Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This [https://arxiv.org/abs/1603.09717 example protocol] achieves the functionality of [[Secure Client- Server Delegated Computation]] by a method which involves quantum offline and classical offline communication, called Quantum Fully Homomorphic Encryption (QFHE). Offline communication means there is exchange of information is not required throughout the protocol but only once at the start or end of the protocol. It allows the Client to encrypt quantum data in such a way that Server can carry out any arbitrary quantum computations on the encrypted data without having to interact with the encrypting party. It hides the output and input of the computation while Server is allowed to choose the unitary operation for required computation. Thus, the circuit is known to the Server while efforts can be made to hide it from the encrypting party i.e. Client. Based on the existence of classical [https://en.wikipedia.org/wiki/Homomorphic_encryption Homomorphic Encryption] (HE) scheme, it comes with properties of [[Secure Client- Server Delegated Computation#Properties|correctness]], [[Secure Client- Server Delegated Computation#Properties|compactness]] and [[Secure Client- Server Delegated Computation#Properties|full homomorphism]]. QFHE can be used to keep the circuit private to the Server and hidden from the Client unlike UBQC where the circuit is private to the Client and hidden from the Server.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Two Party Protocols|Two Party]],[[:Category:Universal Task|Universal Task]], [[:Category:Quantum Functionality|Quantum Functionality]], [[Secure Delegated Quantum Computation|Secure Delegated Quantum Computation]], Quantum Offline Communication, Classical Offline Communication, [[Supplementary Information#Entanglement|Entanglement]], [[Quantum Gadgets]], Garden Hose Model, [[Prepare and Send Verifiable Quantum Fully Homomorphic Encryption]], [[Classical Fully Homomorphic Encryption for Quantum Circuits]].&lt;br /&gt;
[[Category:Two-Party Protocols]][[Category: Universal Task]][[Category:Quantum Functionality]]&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* This protocol is secure against malicious adversary setting&lt;br /&gt;
* One cannot decrypt the ciphertext without performing the Evaluation step&lt;br /&gt;
* A one-time quantum channel from Client to Server&lt;br /&gt;
* A one-time quantum channel from Server to Client&lt;br /&gt;
* The circuit has a polynomial number of T-Gates.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
Homomorphic Encryption [[Glossary#Quantum Capable Homomorphic Encryption|(HE)]] schemes can be divided into four stages: Key Generation generates keys for encryption, decryption, and evaluation of the circuit, Encryption encodes the input into a ciphertext using encryption key, Homomorphic Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key and Decryption transforms result of the ciphertext to actual outcome of the circuit using decryption key. This protocol requires Client to prepare and send the quantum states to Server, hence the name, &#039;&#039;Prepare and Send QFHE&#039;&#039;. A QFHE scheme is fundamentally different from classical FHE in the aspect that an evaluation key is allowed to be a quantum state in the former case. Also, in the last step decryption for FHE is carried out subsystem by subsystem. This cannot be correct for QFHE as quantum states can be entangled, hence decryption should be carried out on the system as a whole. The QFHE version of encryption is based on [[quantum one-time pad]] i.e. randomly applying a Pauli Gate (X, Y, Z, I) in order to hide the input. A Fully Homomorphic Encryption can implement Universal Gates (a set of gates which can implement any quantum circuit). Most of the gates in this set work well with QOTP while for T gates one needs an additional gadget, in order to implement any arbitrary circuit and make the scheme Fully Homomorphic. This adds an additional step called ”Gadget Construction” during Key Generation Stage in this protocol&lt;br /&gt;
*&#039;&#039;&#039;Key Generation (QFHE.KeyGen())&#039;&#039;&#039; &lt;br /&gt;
This step generates homomorphic key sets consisting of the classical public key for encryption, a classical private key for decryption and a quantum evaluation key for operation on the encrypted input state. If the circuit involves L T gates, Client needs L+1 such key sets for L gadgets and one input state. The Client uses the classical HE Key Generation (HE.KeyGen) to get classical key sets. She stores all the public keys and secret keys in two separate sets (tuples). Quantum evaluation keys consist of the classical evaluation keys and L gadgets. Once constructed, the gadget is also encrypted using all public keys except the first one by the Client. As construction of gadgets takes secret keys (first L) as inputs, the public key used for its encryption should not belong to the same homomorphic key set used to construct the gadget. A classical description of the gadget, useful for evaluation is also encrypted and included in the gadget. Construction and encryption of gadgets is described in the last step.&amp;lt;br/&amp;gt;&lt;br /&gt;
**&#039;&#039;&#039;Gadget Construction&#039;&#039;&#039; This step involves the construction of gadgets to correct any additional phase gate error on the input due to T gates in the circuit. If there are L T gates in the Circuit, one needs L Gadgets constructed using L private keys and then encrypted using L public keys. The public key used for encryption should not belong to the same homomorphic key set of the private key used for construction. A gadget consists of 2m [[Glossary#EPR pairs|EPR pairs]] (maximally entangled qubits). The client starts with 4m such pairs. Performs pairwise [[Glosssary#Bell State Measurement|Bell measurement]] on one-half of the EPR pairs. Pairs for Bell measurement are chosen according to the private decryption key used for the particular gadget. This leaves the other half of the EPR pairs entangled in the same pairs as chosen by Client to perform bell measurement. E.g. if (a,b) and (c,d) denote two EPR pairs and one performs bell measurement on a and c, then b and d become maximally entangled with some extra [[Glossary#Unitary Operations|Pauli X, Z]] corrections due to measurement. These corrections are determined by Client’s measurement outcomes according to [[one pad key]]. The resulting gadget thus has 2m EPR pairs, some of which have an inverse phase gate. Classical information of a gadget includes private key used, Client’s measurement outcomes and locations of inverse phase gates. This data is encrypted with the public key. Hence, L such gadgets consisting of encrypted classical information and 2m EPR pairs quantum one-time padded by the Pauli X, Z gates, are sent to the server.&amp;lt;br/&amp;gt;&lt;br /&gt;
Finally, Client stores all the gadgets with the classical evaluation key of the corresponding secret key (generated from HE.KeyGen) used to construct the gadget, as the set of quantum evaluation keys. Note that, the gadgets are quantum states and classical evaluation keys are random numbers, the resulting quantum evaluation key is what we call a classical-quantum (CQ) state.&lt;br /&gt;
*&#039;&#039;&#039;Encryption (QFHE.Enc())&#039;&#039;&#039; This step is used to encrypt the quantum input into a quantum cipher-text (secret text) using the first public key which has not been used for gadget construction. Every input qubit state is [[quantum one time padded]] by the Client, using two classical random bits, one of which decided the operation of Pauli-X and the other operation of Pauli-Z gate on the qubit state. She also encrypts the classical random bits (called pad key) with the same public key using classical HE (HE.Enc) and hence stores it with the corresponding encrypted qubit state as a classical-quantum state. She then sends this CQ state, encrypted pad key, public key tuple, and evaluation key tuple to Server.&lt;br /&gt;
*&#039;&#039;&#039;Circuit Evaluation (QFHE.Eval())&#039;&#039;&#039; This step operates the circuit on the encrypted input state and updates the encrypted classical information using the evaluation key. As stated earlier, any circuit can be implemented using a set of Universal Gates. This set consists of Clifford Gates and T gates.&lt;br /&gt;
The Clifford group gates may affect a single qubit or multiple qubits but they follow a simple set of rules for updation of the encrypted classical information (pad key), given in the pseudocode. The server operates the circuit and with each gate in the circuit, it updates the encrypted classical description.&amp;lt;br/&amp;gt;&lt;br /&gt;
On the other hand, T gates affect only single qubits but one needs to make use of the gadgets constructed during key generation. The issue with T gates is that it adds an additional [[Glossary#Unitary Operations|Phase gate (P)]] depending on the classical random bit used for QOTP in the previous step. As P gates do not commute like Pauli-X and Pauli-Z, so they need to be corrected before applying the next gate by the Server. This would reveal the pad key used for QOTP to the Server. Hence, to avoid this, the Client constructed gadgets, which apply an Inverse Phase operator or Identity on a qubit after every T-Gate, depending on the encrypted bit without leaking any information about the pad key. Thus, after applying a T gate on a qubit, P error is removed using a gadget as follows.&lt;br /&gt;
Out of 2m EPR pairs, some qubits are measured pairwise including the input qubit with/without error and excluding one qubit entangled with one of the measured qubits. Input qubit is thus, transferred to this last unmeasured qubit, according to one-bit teleportation. Following are the steps to get the correct output qubit.&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Generate Measurement (QFHE.GenMeasurement())&#039;&#039;&#039; The encrypted one pad key bit which determines phase gate error and the classical information of the gadget is used to determine a measurement order. Private key tells which qubits are entangled, thus, using the location of inverse phase gates, the qubits needed to be measured are decided. If one-pad key bit indicates a phase error then the measurement order of qubits includes an EPR pair with a phase gate else not.&lt;br /&gt;
*&#039;&#039;&#039;Gadget Correction (QFHE.Measurement())&#039;&#039;&#039; Server performs the required measurements. The last unmeasured qubit is corrected input qubit. The qubit is one time padded with pad key determined by Client’s measurement outcomes, encrypted with the public key used for the gadget and Server’s measurement outcomes. Hence, it is still hidden from the Server.&amp;lt;br/&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Recryption (QFHE.Rec())&#039;&#039;&#039; Server recrypts pad key of the qubit with the same public key that encrypts the corrected output state i.e. the one used for the corresponding gadget. Then, he updates the encrypted pad key according to the T Gate (similar to what is done for the Clifford Gate), Client’s encrypted measurement outcomes and Server’s (his) measurement outcomes.&lt;br /&gt;
The server performs all the Clifford and T gates in the circuit following the respective procedure given above. Finally, he is left with the one time padded quantum output of the computation together with the required classical pad key encrypted with the public key of the gadget used for the last T gate, the last public key in the set. The server sends both the quantum state and classical encryptions to the Client.&lt;br /&gt;
*&#039;&#039;&#039;Decryption (QFHE.Dec())&#039;&#039;&#039; The Client uses the last secret key in the set, which was not used to create any gadget (Gadgets used 0-(L-1) secret keys only) and decrypts sent encryptions to obtain the pad key. The pad key thus obtained determines the Pauli operations on the sent quantum state to obtain the final and correct outcome of the computation. The client performs the required operations on individual qubits of the quantum state and gets the output of his computation.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
*&#039;&#039;&#039;Network Stage:&#039;&#039;&#039; [[:Category:Quantum Memory Network Stage|Quantum Memory]] [[Category:Quantum Memory Network Stage]]&lt;br /&gt;
*&#039;&#039;&#039;Required Network Parameters:&#039;&#039;&#039; &lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;math&amp;gt;\epsilon_j&amp;lt;/math&amp;gt;&#039;&#039;&#039;, which measures the error due to noisy operations.&lt;br /&gt;
**Number of communication rounds&lt;br /&gt;
**Circuit depth&lt;br /&gt;
**Number of physical qubits used&lt;br /&gt;
*Client should be able to generate and store entanglement in order to make quantum gadgets, perform [[Glosssary#Bell State Measurement|Bell measurement]], perform [[quantum one time pad]], process and store classical quantum states.&lt;br /&gt;
*Quantum offline channel&lt;br /&gt;
*Classical offline channel&lt;br /&gt;
*A classical HE scheme is required&lt;br /&gt;
*Server should be able to store entangled states, perform all Clifford and T gates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PSQFHE_Server.PNG|center|Prepare-and-Send Quantum Fully Homomorphic Encryption (Server)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PSQFHE_Client.PNG|center|Prepare-and-Send Quantum Fully Homomorphic Encryption (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties ==&lt;br /&gt;
*	&#039;&#039;Indistinguishability under Chosen Plaintext Attacks by an adversary with quantum computational powers(q-IND-CPA).&#039;&#039; If FHE is q-IND-CPA secure then this protocol is q-IND-CPA secure. It means that an adversary cannot distinguish between ciphertext from a message and a ciphertext from an arbitrary quantum state such as &amp;lt;math&amp;gt;|0\rangle \langle 0|&amp;lt;/math&amp;gt;&lt;br /&gt;
*	&#039;&#039;Correctness.&#039;&#039; This protocol is perfectly correct such that,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;Pr[QFHE.Dec_{s_k}(QFHE.Eval^C_{evk}(HE.Enc_{p_k}(x)))\neq C(x)] \le \eta(k)&amp;lt;/math&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
, where &amp;lt;math&amp;gt;\eta_k&amp;lt;/math&amp;gt; is a negligible function.Note that, negligible function $\eta(n)$ is a function such that for every positive integer d, &amp;lt;math&amp;gt;\eta(n) &amp;lt; 1/n^d&amp;lt;/math&amp;gt;, for big enough n. This means that if the protocol is followed it results in the same output as when the circuit is operated on the input states directly with overwhelming probability.&lt;br /&gt;
*	&#039;&#039;Compactness.&#039;&#039; If HE is compact then this protocol is compact. The complexity of applying QFHE.Dec on the results of QFHE.Eval is at most p(k), where p(k) is a polynomial dependent only on the security parameter k. This implies that decryption is independent of the size of the quantum circuit for evaluation.&lt;br /&gt;
*	&#039;&#039;Circuit Privacy.&#039;&#039; This protocol is not circuit private as it does not guarantee that the client cannot gain information about the circuit evaluated i.e. the circuit is not private to one party and unknown to another. It can make the circuit private to the evaluator (Server) and hidden from the Client apart from the necessary leakage the output states gives if one uses circuit private HE for the protocol. &lt;br /&gt;
•	&#039;&#039;Full Homomorphism.&#039;&#039; This scheme is fully homomorphic for circuits with polynomial sized T gates&lt;br /&gt;
&lt;br /&gt;
== Notation ==&lt;br /&gt;
*	&amp;lt;math&amp;gt;\mathrm{k}&amp;lt;/math&amp;gt;, security parameter&lt;br /&gt;
*	&amp;lt;math&amp;gt;\mathrm{L}&amp;lt;/math&amp;gt;, number of T gates in the evaluation circuit&lt;br /&gt;
*	&amp;lt;math&amp;gt;\mathrm{n}&amp;lt;/math&amp;gt;, dimension of input qubit&lt;br /&gt;
*	&amp;lt;math&amp;gt;\mathrm{{pk_i,sk_i,evk_i}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\mathrm{i_{th}}&amp;lt;/math&amp;gt; homomorphic key set generated from HE.KeyGen(). Public key for encryption, secret key for decryption, evaluation function key, respectively for given k, the security parameter.&lt;br /&gt;
*	&amp;lt;math&amp;gt;\Gamma_{pk_{i+1}}(\mathrm{sk_i})&amp;lt;/math&amp;gt;, Gadget using &amp;lt;math&amp;gt;\mathrm{i_th}&amp;lt;/math&amp;gt; secret key (&amp;lt;math&amp;gt;sk_i&amp;lt;/math&amp;gt;) and encrypted by &amp;lt;math&amp;gt;\mathrm{(i + 1)_{th}}&amp;lt;/math&amp;gt; public key (&amp;lt;math&amp;gt;\mathrm{pk_{i+1}}&amp;lt;/math&amp;gt;)&lt;br /&gt;
*	&amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt;, single qubit state&lt;br /&gt;
*	&amp;lt;math&amp;gt;\rho=|\psi\rangle\langle\psi|&amp;lt;/math&amp;gt;, here &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; is the density matrix of quantum state &amp;lt;math&amp;gt;|\psi\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
*	&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;, n-qubit input state, where n is determined by the Client&lt;br /&gt;
*	&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;(HE.Encpk(a)), a is encrypted with public key pk and is represented by density matrix ρ&lt;br /&gt;
*	p, location of inverse phase gate&lt;br /&gt;
*	x,z measurement outcome sets of Client for her Bell Pair measurements.&lt;br /&gt;
*	&amp;lt;math&amp;gt;x&#039;,z&#039;&amp;lt;/math&amp;gt; measurement outcome sets of Server for his Gadget measurement.&lt;br /&gt;
*	&amp;lt;math&amp;gt;\tilde{x}^{[i]}&amp;lt;/math&amp;gt;, resulting ciphertext one gets for an input &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; element of array x or &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; bit of key x after the Encrypting it with &amp;lt;math&amp;gt;i^{th}&amp;lt;/math&amp;gt; of public key string, pk.&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
===Stage 1 Client’s Preparation===&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Key Generation (QFHE.KeyGen(1k,1L))&#039;&#039;&#039;&lt;br /&gt;
*Input: No. of T gates (L), Security Parameter (k),&lt;br /&gt;
*Output: L+1 evaluation keys (encrypted Gadgets, classical HE evaluation key), L+1 public keys, L+1 secret keys&lt;br /&gt;
#	For i = 0 to L&lt;br /&gt;
## Client executes &amp;lt;math&amp;gt;(pk_i, sk_i, evk_i) \leftarrow \text{HE.KeyGen}(1^{\kappa})&amp;lt;/math&amp;gt; to obtain &amp;lt;math&amp;gt;L+1&amp;lt;/math&amp;gt; independent classical homomorphic key sets.&lt;br /&gt;
# She sets the public key to be the tuple &amp;lt;math&amp;gt;(pk_i)_{i = 0}^{L}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# She sets the secret key to be the tuple &amp;lt;math&amp;gt;(sk_i)_{i = 0}^{L}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# For i = 0 to L-1&lt;br /&gt;
## Client runs the procedure &amp;lt;math&amp;gt;\text{QFHE.GenGadget}_{pk_{i+1}}(sk_i)&amp;lt;/math&amp;gt; to create the gadget &amp;lt;math&amp;gt;\Gamma_{pk_{i+1}}(sk_i)&amp;lt;/math&amp;gt;. &lt;br /&gt;
# Client sets the evaluation key to be the set of all gadgets created in the previous step (including their encrypted classical information), plus the tuple &amp;lt;math&amp;gt;(evk_i)_{i=0}^L&amp;lt;/math&amp;gt;. The resulting evaluation key is the classical-quantum  (CQ) state&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;\bigotimes_{i = 0}^{L-1}\Big(\Gamma _{pk_{i+1}}(sk_i)\otimes |evk_i\rangle \langle evk_i|)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Encryption(QFHE.Enc())&#039;&#039;&#039;&lt;br /&gt;
*Input: Quantum Input state density matrix (&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;) (say composed of n single qubit states, &amp;lt;math&amp;gt;\sigma&amp;lt;/math&amp;gt;)&lt;br /&gt;
*Output: Encrypted pad keys:&amp;lt;math&amp;gt;\{\tilde{a}^{[0]}...\tilde{a}^{[n]}&amp;lt;/math&amp;gt;,&amp;lt;math&amp;gt;\tilde{b}^{[i]}...\tilde{b}^{[n]}\}&amp;lt;/math&amp;gt;; QOTP state: &amp;lt;math&amp;gt;X^{a^{[1]}}Z^{b^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}\rho Z^{b^{[1]}}X^{a^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#	For i=1 to n&lt;br /&gt;
## Client chooses pad keys a,b &amp;lt;math&amp;gt;\epsilon_R\{0,1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
## She quantum one time pads the single qubit by applying $X^aZ^b$ on the single qubit state. &amp;lt;math&amp;gt;X^aZ^b\sigma Z^bX^a\leftarrow\sigma&amp;lt;/math&amp;gt;&lt;br /&gt;
## She encrypts the pad keys using one bit for each of a and b from the public key string &amp;lt;math&amp;gt;pk_0&amp;lt;/math&amp;gt; using HE.Enc. (&amp;lt;math&amp;gt;\tilde{a}^{[i]},\tilde{b}^{[i]}&amp;lt;/math&amp;gt;)=(HE.Enc&amp;lt;math&amp;gt;_{pk_0^{[i]}}(a^{[i]}&amp;lt;/math&amp;gt;),HE.Enc&amp;lt;math&amp;gt;_{pk_0^{[i]}}(b^{[i]}))\leftarrow&amp;lt;/math&amp;gt; (a,b)&lt;br /&gt;
## She apprehends encrypted pad keys to the one time padded quantum state to obtain CQ state, &lt;br /&gt;
&amp;lt;math&amp;gt;\sum_{a,b\epsilon\{0,1\}}\frac{1}{4}\rho(HE.Enc_{pk_0^{[i]}}(a^{[i]}),HE.Enc_{pk_0^{[i]}}(b^{[i]}))\otimes X^aZ^b\sigma Z^bX^a&amp;lt;/math&amp;gt;&lt;br /&gt;
#Client sends encryptions  (&amp;lt;math&amp;gt;\tilde{a}^{[i]},\tilde{b}^{[i]}&amp;lt;/math&amp;gt;) and the quantum one time padded (QOTP) state&amp;lt;math&amp;gt; X^{a^{[1]}}Z^{b^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}\rho Z^{b^{[1]}}X^{a^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}} \forall i&amp;lt;/math&amp;gt;,  to the Server with the evaluation keys and public keys.&lt;br /&gt;
&#039;&#039;&#039;Gadget Construction (&amp;lt;math&amp;gt;\text{QFHE.GenGadget}_{pk_{i+1}}(sk_i)&amp;lt;/math&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
# Generate &amp;lt;math&amp;gt;4m&amp;lt;/math&amp;gt; EPR pairs (&amp;lt;math&amp;gt;|\phi\rangle=\frac{1}{\sqrt{2}}(00+11))&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\{(a_1,b_1),...,(a_{4m},b_{4m})\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Choose &amp;lt;math&amp;gt;2m&amp;lt;/math&amp;gt; pairs &amp;lt;math&amp;gt;\epsilon \{a_1, a_2,....,a_{4m}\}&amp;lt;/math&amp;gt; using sk&lt;br /&gt;
## If &amp;lt;math&amp;gt;(sk=0)&amp;lt;/math&amp;gt; then &amp;lt;math&amp;gt;\{(a_1,a_2),(a_2,a_3),...,(a_{4m-1},a_{4m})\}&amp;lt;/math&amp;gt; &lt;br /&gt;
## If &amp;lt;math&amp;gt;(sk=1)&amp;lt;/math&amp;gt; then &amp;lt;math&amp;gt;\{(a_1,a_3),(a_2,a_4),...,(a_{4m-2},a_{4m})\}&amp;lt;/math&amp;gt; &lt;br /&gt;
# For j=1 to 2m, &lt;br /&gt;
## Choose p[j] &amp;lt;math&amp;gt;\epsilon_R \{0,1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
## Perform Bell Measurement on &amp;lt;math&amp;gt;j^{th}&amp;lt;/math&amp;gt; pair with an extra &amp;lt;math&amp;gt;(P^\dagger)^p&amp;lt;/math&amp;gt; operation, get outcomes (x[j],z[j])&lt;br /&gt;
## Thus, new EPR pairs are&lt;br /&gt;
### If &amp;lt;math&amp;gt;(sk=0)&amp;lt;/math&amp;gt; then &amp;lt;math&amp;gt;\{(b_1,b_2),(b_2,b_3),...,(b_{4m-1},b_{4m})\}&amp;lt;/math&amp;gt;&lt;br /&gt;
### If &amp;lt;math&amp;gt;(sk=1)&amp;lt;/math&amp;gt; then &amp;lt;math&amp;gt;\{(b_1,b_3),(b_2,b_4),...,(b_{4m-2},b_{4m})\}&amp;lt;/math&amp;gt;&lt;br /&gt;
## Denote the &amp;lt;math&amp;gt;2m&amp;lt;/math&amp;gt; entangled pairs be denoted by &amp;lt;math&amp;gt;\{(s_1,t_1),(s_2,t_2),...,(s_{2m},t_{2m})\}&amp;lt;/math&amp;gt;, such that&lt;br /&gt;
## The classical information of gadget be g(sk)&amp;lt;math&amp;gt;=(\{(s_1,t_1),(s_2,t_2),...,(s_{2m},t_{2m}),p,sk\}&amp;lt;/math&amp;gt;. &lt;br /&gt;
## The quantum state of gadget can be written as &amp;lt;math&amp;gt;\gamma_{x,z}(g(sk))=\pi_{j=1}^mX^{x[i]}Z^{z[i]}(P^\dagger){p[i]}|\phi\rangle\langle\phi|_{s_jt_j}(P^\dagger){p[i]}Z^{z[i]}X^{x[i]}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Encrypt (x[j],z[j]), p[j] for all j and sk using &amp;lt;math&amp;gt;pk_{i+1}&amp;lt;/math&amp;gt;. Resulting Gadget is the classical-quantum  (CQ) state,&lt;br /&gt;
&amp;lt;math&amp;gt;\Gamma_{pk_{i+1}}(sk_i)=\rho(HE.Enc_{pk_{i+1}}(g(sk))\otimes \frac{1}{2^{2m}}\sum_{x,z\epsilon\{0,1\}^m}\rho(HE.Enc_{pk_{i+1}}(x,z)\otimes \gamma_{x,z}(g(sk))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stage 2 Server’s Computation===&lt;br /&gt;
&#039;&#039;&#039;Circuit&#039;s Evaluation (QFHE.Eval())&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Input:&#039;&#039;&#039; public key tuple &amp;lt;math&amp;gt;(pk_i)_{i = 0}^{L}&amp;lt;/math&amp;gt;, Evaluation key tuple, Encrypted Pad key (&amp;lt;math&amp;gt;\{\tilde{a}^{[0]}...\tilde{a}^{[n]}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\tilde{b}^{[i]}...\tilde{b}^{[n]}\}&amp;lt;/math&amp;gt;), QOTP Input State (&amp;lt;math&amp;gt; X^{a^{[1]}}Z^{b^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}\rho Z^{b^{[1]}}X^{a^{[1]}}\otimes.....\otimes X^{a^{[n]}}Z^{b^{[n]}}&amp;lt;/math&amp;gt;)&amp;lt;/br&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Output:&#039;&#039;&#039; QOTP Circuit Output State (&amp;lt;math&amp;gt; X^{a&#039;^{[1]}}Z^{b&#039;^{[1]}}\otimes.....\otimes X^{a&#039;^{[k]}}Z^{b&#039;^{[k]}}\rho&#039; Z^{b&#039;^{[1]}}X^{a&#039;^{[1]}}\otimes.....\otimes X^{a&#039;^{[k]}}Z^{b&#039;^{[k]}}&amp;lt;/math&amp;gt;), Corresponding Encrypted Pad key (&amp;lt;math&amp;gt;\tilde{a&#039;},\tilde{b&#039;}&amp;lt;/math&amp;gt;)=(HE.Eval&amp;lt;math&amp;gt;_{evk_L}^\text{C}(\tilde{a}&amp;lt;/math&amp;gt;),HE.Eval&amp;lt;math&amp;gt;_{evk_L}^\text{C}(\tilde{b}&amp;lt;/math&amp;gt;))&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
Let the Circuit be denoted by C and the gates be &amp;lt;math&amp;gt;c_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# For all i, &amp;lt;math&amp;gt;c_i&amp;lt;/math&amp;gt; gate is applied on qubit m and the &amp;lt;math&amp;gt;m_{th}&amp;lt;/math&amp;gt; bits of pad key &amp;lt;math&amp;gt;(\tilde {a}^{[m]},\tilde{b}^{[m]})&amp;lt;/math&amp;gt; are updated to &amp;lt;math&amp;gt;(\tilde {a}&#039;^{[m]},\tilde{b}&#039;^{[m]})&amp;lt;/math&amp;gt; as follows. &lt;br /&gt;
## If &amp;lt;math&amp;gt;c_i=\{P,H,CNOT\}&amp;lt;/math&amp;gt;, a Clifford gate then &amp;lt;math&amp;gt;c_iX^{a^{[m]}}Z^{b^{[m]}}\psi=X^{a&#039;^{[m]}}Z^{b&#039;^{[m]}}c_i\psi&amp;lt;/math&amp;gt;)&lt;br /&gt;
### if &amp;lt;math&amp;gt;c_i=&amp;lt;/math&amp;gt;H then: &amp;lt;math&amp;gt;(\tilde {a}^{[m]},\tilde{b}^{[m]})\rightarrow (\tilde{b}^{[m]},\tilde{a}^{[m]})&amp;lt;/math&amp;gt; (Hadamard tranforms X gate into Z and Z into X)&lt;br /&gt;
### if &amp;lt;math&amp;gt;c_i=&amp;lt;/math&amp;gt;P then: &amp;lt;math&amp;gt;(\tilde {a}^{[m]},\tilde{b}^{[m]})\rightarrow (\tilde{a}^{[m]},\tilde{a}^{[m]}\oplus\tilde{b}^{[m]})&amp;lt;/math&amp;gt; &lt;br /&gt;
### if &amp;lt;math&amp;gt;c_i=&amp;lt;/math&amp;gt;CNOT with m as target bit and n as control bit then: &amp;lt;math&amp;gt;(\tilde {a}^{[m]},\tilde{b}^{[m]};\tilde {a}^{[n]},\tilde{b}^{[n]})\rightarrow (\tilde {a}^{[m]},\tilde{b}^{[m]}\oplus \tilde {b}^{[n]};\tilde{a}^{[m]}\oplus \tilde {a}^{[n]},\tilde{b}^{[n]})&amp;lt;/math&amp;gt;&lt;br /&gt;
## If &amp;lt;math&amp;gt;c_i=T_j&amp;lt;/math&amp;gt; gate then: &amp;lt;math&amp;gt; (T_jX^{a^{[m]}}Z^{b^{[m]}}\psi=P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\psi)&amp;lt;/math&amp;gt;&lt;br /&gt;
###&#039;&#039;&#039;Generate Measurement&#039;&#039;&#039; M&amp;lt;math&amp;gt;\leftarrow&amp;lt;/math&amp;gt; QFHE.GenMeasurement(&amp;lt;math&amp;gt;\tilde {a}^{[m]},\Gamma_{pk_{j+1}}(sk_j),evk_j)&amp;lt;/math&amp;gt;&lt;br /&gt;
###&#039;&#039;&#039;Gadget Correction&#039;&#039;&#039;&amp;lt;math&amp;gt;(X^{a&#039;^{[m]}}Z^{b&#039;^{[m]}}T_j)\psi\leftarrow&amp;lt;/math&amp;gt; QFHE.Measurement(M, &amp;lt;math&amp;gt;P^{a^{[m]}}X^{a^{[m]}}Z^{b^{[m]}}T_j\psi)&amp;lt;/math&amp;gt;&lt;br /&gt;
### Server gets measurement outcome x&#039;,z&#039;&lt;br /&gt;
###&#039;&#039;&#039;Recryption&#039;&#039;&#039; Server recrypts one-pad key using pk&amp;lt;math&amp;gt;_{k+1}&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;\tilde {a&#039;&#039;}^{[m]},\tilde{b&#039;&#039;}^{[m]})\leftarrow&amp;lt;/math&amp;gt; QFHE.Rec&amp;lt;math&amp;gt;_{pk_{k+1}}(\tilde {a}^{[m]},\tilde{b}^{[m]})&amp;lt;/math&amp;gt;&lt;br /&gt;
### Server updates the recrypted key using x,z and x&#039;,z&#039;. (&amp;lt;math&amp;gt;\tilde {a&#039;}^{[m]},\tilde{b&#039;}^{[m]})\leftarrow (\tilde {a&#039;&#039;}^{[m]},\tilde{b&#039;&#039;}^{[m]}&amp;lt;/math&amp;gt;)&lt;br /&gt;
## Server sends the updated encryption and QOTP output state to Client.&lt;br /&gt;
&lt;br /&gt;
===Stage 3 Client’s Correction===&lt;br /&gt;
&#039;&#039;&#039;Decryption (QFHE.Dec())&lt;br /&gt;
*&#039;&#039;&#039;Input:&#039;&#039;&#039; QOTP Circuit Output State (&amp;lt;math&amp;gt; X^{a&#039;^{[1]}}Z^{b&#039;^{[1]}}\otimes.....\otimes X^{a&#039;^{[k]}}Z^{b&#039;^{[k]}}\rho&#039; Z^{b&#039;^{[1]}}X^{a&#039;^{[1]}}\otimes.....\otimes X^{a&#039;^{[k]}}Z^{b&#039;^{[k]}}&amp;lt;/math&amp;gt;), Corresponding Encrypted Pad key (&amp;lt;math&amp;gt;\tilde{a&#039;},\tilde{b&#039;}&amp;lt;/math&amp;gt;)&lt;br /&gt;
*&#039;&#039;&#039;Output:&#039;&#039;&#039; Final outcome of the computation C&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;C&amp;lt;math&amp;gt;^\dagger=\rho&#039;&amp;lt;/math&amp;gt;&lt;br /&gt;
# Client uses &amp;lt;math&amp;gt;sk_L&amp;lt;/math&amp;gt; to restore the pad key from sent encryption: (&amp;lt;math&amp;gt;{a&#039;}^{[i]},{b&#039;}^{[i]}&amp;lt;/math&amp;gt;)=(HE.Dec&amp;lt;math&amp;gt;_{sk_L^{[i]}}(a&#039;^{[i]}&amp;lt;/math&amp;gt;),HE.Dec&amp;lt;math&amp;gt;_{pk_L^{[i]}}(b&#039;^{[i]}))&amp;lt;/math&amp;gt;&lt;br /&gt;
# Client uses pad key and operates &amp;lt;math&amp;gt;X^{a&#039;^{[i]}}Z^{b&#039;^{[i]}}&amp;lt;/math&amp;gt; on single qubits i separately just like encryption. &lt;br /&gt;
##Let single qubit representation of the output state be &amp;lt;math&amp;gt;X^{a&#039;^{[i]}}Z^{b&#039;^{[i]}}\sigma&#039; Z^{b&#039;^{[i]}}X^{a&#039;^{[i]}}&amp;lt;/math&amp;gt;, then operation of Pauli X,Z gates as above yields &amp;lt;math&amp;gt;\sigma&#039;&amp;lt;/math&amp;gt;&lt;br /&gt;
# Client repeats this for all single qubits and hence gets the quantum state &amp;lt;math&amp;gt;\rho&#039;&amp;lt;/math&amp;gt;, final outcome of the computation.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Shraddha Singh&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:PSQFHE_Client.PNG&amp;diff=3760</id>
		<title>File:PSQFHE Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:PSQFHE_Client.PNG&amp;diff=3760"/>
		<updated>2019-07-16T09:37:49Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:PSQFHE_Server.PNG&amp;diff=3759</id>
		<title>File:PSQFHE Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:PSQFHE_Server.PNG&amp;diff=3759"/>
		<updated>2019-07-16T09:37:29Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Measurement-Only_Verifiable_Universal_Blind_Quantum_Computation&amp;diff=3758</id>
		<title>Measurement-Only Verifiable Universal Blind Quantum Computation</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Measurement-Only_Verifiable_Universal_Blind_Quantum_Computation&amp;diff=3758"/>
		<updated>2019-07-16T09:35:42Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://arxiv.org/abs/1208.1495 example protocol] achieves the functionality of [[Secure Verifiable Client-Server Delegated Quantum Computation|Secure Verifiable Delegated Quantum Computation]] which is the task of assigning quantum computation to an untrusted device while maintaining privacy of the computation. This protocol allows the client to verify the correctness of the blind delegated quantum computing with high probability. Here, the server prepares and sends a universal resource quantum state to the client, and the client performs measurements on the resource state to carry out the quantum computation. Using this method, it is easy to verify with high probability whether the server is honest. The computation here remains perfectly private from the server and this protocol can implement any quantum computation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags&#039;&#039;&#039; [[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 Online communication, Classical Online communication, [[Supplementary Information#Measurement Based Quantum Computation|Measurement Based Quantum Computation (MBQC)]]&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* The protocol assumes perfect state preparation, transmissions and measurements.&lt;br /&gt;
* There is no communication channel from the client to the server.&lt;br /&gt;
* The quantum channel from the server to the client should not be too lossy.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&lt;br /&gt;
This protocol is based on MBQC and is mainly derived from Measurement-Only Universal Blind Quantum Computation. In this protocol, the server prepares and sends the resource state to the client, whereas the client performs measurements on the received states. The server is considered to be a general adversary and any computational deviations can be detected in this method by the client. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
By performing measurements, the client creates the final state to be a mixture of resource state and trap qubits, in a random distribution. If the measurement of all the trap qubits matches the expected outcome, then it shows with high probability that the server is honest and has not deviated from the protocol.  &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
This protocol is dived into two stages: Servers&#039; preparation and Client&#039;s measurement.&lt;br /&gt;
* &#039;&#039;&#039;Server&#039;s preparation&#039;&#039;&#039;: Server prepares the resource graph state required for MBQC by the Client. The server sends each qubit of this state to the Client, one by one. &lt;br /&gt;
* &#039;&#039;&#039;Client&#039;s Measurement&#039;&#039;&#039;&lt;br /&gt;
** The client receives the qubits from the server and measures them in order to finally create an n-qubit state with the server, following the principle of MBQC. This n-qubit state comprises of randomly distributed resource state of measurement-based quantum computation and trap qubits. Based on [[no-signaling principle]], the server can never find out about the random distribution pattern. &lt;br /&gt;
** On receiving the final n-qubit state, the client performs the measurement on these states with certain corrections. If the measurement of all the traps matches the expected outcome, the results are accepted otherwise the protocol is aborted.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
* &amp;lt;math&amp;gt;G_{m\times n}&amp;lt;/math&amp;gt;: Resource state&lt;br /&gt;
* &amp;lt;math&amp;gt;m\times n&amp;lt;/math&amp;gt;: Resource state size&lt;br /&gt;
* &amp;lt;math&amp;gt;|\psi\rangle_P&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;P(|R\rangle\otimes |+\rangle^{\otimes \frac{N}{3}} \otimes |0\rangle^{\otimes \frac{N}{3}})&amp;lt;/math&amp;gt;, this is the &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-qubit state left with the server which contains the trap qubits (&amp;lt;math&amp;gt;|0\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;|+\rangle&amp;lt;/math&amp;gt;) and resource state.&lt;br /&gt;
* &amp;lt;math&amp;gt;|R\rangle&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;\frac{n}{3}&amp;lt;/math&amp;gt;-qubit resource state&lt;br /&gt;
* &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-qubit permutation, which keeps the order of qubits in &amp;lt;math&amp;gt;|R\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt;|+\rangle&amp;lt;/math&amp;gt;:  &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}} (|0\rangle + |1\rangle)&amp;lt;/math&amp;gt;&lt;br /&gt;
* q: &amp;lt;math&amp;gt;(x_1, ..., x_n, z_1, ..., z_n) \in \{0,1\}^{2n}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_q&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;\bigotimes^n_{j=1}X^{x_j}_jZ^{z_j}_j&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* Quantum computation resources for the server.&lt;br /&gt;
* A quantum channel from the server to the client to transfer the quantum states.&lt;br /&gt;
* Measurement device for the client.&lt;br /&gt;
* No channel is required from client to the server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:MOVUBQC_Server.PNG|center|Measurement-Only Verifiable Universal Blind Quantum Computation (Server)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:MOVUBQC_Client.PNG|center|Measurement-Only Verifiable Universal Blind Quantum Computation (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
* This protocol detects a cheating server with high probability.&lt;br /&gt;
* Universality: This protocol is universal in nature. The resource state used is universal and thus can implement any quantum computation.&lt;br /&gt;
* Correctness: The correctness of the protocol is implied from the measurement based quantum computing used.&lt;br /&gt;
* Blindness: As there exists no quantum channel from the client to the server, the [[no-signaling theorem]] ensures that no information about the states is sent to the server using just the measurements.&lt;br /&gt;
* The security of this protocol is device independent, which means client does not need to trust their measurement device in order to guarantee the security.&lt;br /&gt;
* One advantage of this protocol is that no random number generators are required.&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stage 1&#039;&#039;&#039;: Server&#039;s preparation &amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: Dimensions of the resource state.&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: Client: receives all qubits&lt;br /&gt;
* Server creates &amp;lt;math&amp;gt;G_{m\times n}&amp;lt;/math&amp;gt; and sends each qubit to Client&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Stage 2&#039;&#039;&#039;: Client&#039;s measurement&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: Resource state qubits &amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: Final outcome&lt;br /&gt;
* For &amp;lt;math&amp;gt;i = 1, 2, ... m-1&amp;lt;/math&amp;gt;:&lt;br /&gt;
** For &amp;lt;math&amp;gt;j = 1, 2, ...n&amp;lt;/math&amp;gt;:&lt;br /&gt;
*** Client receives resource state qubit &amp;lt;math&amp;gt;|\psi\rangle_{i,j,0}&amp;lt;/math&amp;gt; from server.&lt;br /&gt;
*** Client performs measurement on &amp;lt;math&amp;gt;|\psi\rangle_{i,j,0}&amp;lt;/math&amp;gt; according to the measurement pattern.&lt;br /&gt;
** Through the measurements, Client creates the state &amp;lt;math&amp;gt;\sigma_q|\psi\rangle_P&amp;lt;/math&amp;gt; in the server&#039;s possession, where&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&amp;lt;math&amp;gt; |\psi\rangle_P = P(|R\rangle\otimes |+\rangle^{\otimes \frac{N}{3}} \otimes |0\rangle^{\otimes \frac{N}{3}}) &amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For &amp;lt;math&amp;gt;i = 1, 2, ...n&amp;lt;/math&amp;gt;: (for every qubit of &amp;lt;math&amp;gt;\sigma_q|\psi\rangle_P&amp;lt;/math&amp;gt;)&lt;br /&gt;
** Client receives &amp;lt;math&amp;gt;\sigma_q{|\psi\rangle_P}_i&amp;lt;/math&amp;gt; from the server.&lt;br /&gt;
** Measurement is done after applying the correction &amp;lt;math&amp;gt;\sigma^{\dagger}_q&amp;lt;/math&amp;gt; on the qubit received.&lt;br /&gt;
** If result obtained is &amp;lt;math&amp;gt;|1\rangle&amp;lt;/math&amp;gt; (for trap qubit &amp;lt;math&amp;gt;|0\rangle&amp;lt;/math&amp;gt;) or &amp;lt;math&amp;gt;|-\rangle&amp;lt;/math&amp;gt;(for trap qubit &amp;lt;math&amp;gt;|+\rangle&amp;lt;/math&amp;gt;):&lt;br /&gt;
*** Protocol is aborted.&lt;br /&gt;
** else:&lt;br /&gt;
*** Protocol is continued and accepted if all trap qubits show expected outcome (&amp;lt;math&amp;gt;|0\rangle&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;|+\rangle&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
A second protocol exists which uses the&lt;br /&gt;
property of the topological code, and does not use any&lt;br /&gt;
trap qubits. Here, after the &amp;lt;math&amp;gt;\sigma_q|\psi\rangle_P&amp;lt;/math&amp;gt; state is prepared, client does topological measurement-based quantum computation with a correcting factor. If any error is detected, the protocol is aborted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Rhea Parekh&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:MOVUBQC_Client.PNG&amp;diff=3757</id>
		<title>File:MOVUBQC Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:MOVUBQC_Client.PNG&amp;diff=3757"/>
		<updated>2019-07-16T09:34:53Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:MOVUBQC_Server.PNG&amp;diff=3756</id>
		<title>File:MOVUBQC Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:MOVUBQC_Server.PNG&amp;diff=3756"/>
		<updated>2019-07-16T09:34:36Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Measurement-Only_Universal_Blind_Quantum_Computation&amp;diff=3755</id>
		<title>Measurement-Only Universal Blind Quantum Computation</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Measurement-Only_Universal_Blind_Quantum_Computation&amp;diff=3755"/>
		<updated>2019-07-16T09:32:37Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://journals.aps.org/pra/abstract/10.1103/PhysRevA.87.050301 example protocol] achieves the functionality of [[Secure Client- Server Delegated 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 online and classical online communication, called Blind Quantum Computation. It means the protocol needs continuous quantum ad 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]].&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[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 Online communication, Classical Online communication, [[Supplementary Information#Measurement Based Quantum Computation|Measurement Based Quantum Computation (MBQC)]],&lt;br /&gt;
[[Prepare and Send-Universal Blind Quantum Computation|Prepare and Send-UBQC]], [[Measurement-Only Verifiable Universal Blind Quantum Computation|Measurement Only Verifiable UBQC]], [[Quantum Key Distribution|QKD]], [[Quantum Teleportation]].&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* This protocol is secure against honest but curious adversary setting&lt;br /&gt;
*Client should have the classical means to compute the measurement pattern&lt;br /&gt;
*Client should have measurement devices.&lt;br /&gt;
*Protocol 1a assumes that quantum channel is not too lossy.&lt;br /&gt;
*No unwanted leakage from Client is assumed, i.e. Server cannot bug Client’s laboratory, a fundamental assumption in QKD.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
The following Universal Blind Quantum Computation (UBQC) protocol uses the unique feature of [[Supplementary Information#Measurement Based Quantum Computation|Measurement Based Quantum Computation (MBQC)]] that separates the classical and quantum parts of a computation. Based on its counterpart Prepare and Send UBQC, this protocol requires Client to possess only a measurement device in order to perform blind quantum computation, hence the name &#039;Measurement Only UBQC&#039;. The motivation behind this protocol lies in the fact that for several experimental setups like optical systems, measurement of a state is much easier than the generation of a state. Presented below are two versions of the protocol. The first protocol needs only quantum communication throughout the protocol while the second needs both quantum and classical throughout the communication. These protocols are designed for classical input and output. It can be extended to quantum input/output by modifying the measurement angles of the Client according to Prepare and Send UBQC in order to hide her quantum output from the Server. Like all the other delegated quantum computing protocols, this protocol is also divided into two stages, Preparation and Computation.&lt;br /&gt;
===Protocol 1a: Device Independent===&lt;br /&gt;
*&#039;&#039;Server’s preparation&#039;&#039;: Server prepares the resource graph state required for MBQC by the Client.&lt;br /&gt;
*&#039;&#039; Interaction and Client’s Computation&#039;&#039;: Server sends single qubits of the prepared resource state to the Client who measures it in the basis required to carry out the quantum computation according to the measurement pattern in her mind. She records the outcomes and at the end of the computation stage, gets the result of her computation. This protocol is not tolerant to channel losses.&lt;br /&gt;
&lt;br /&gt;
===Protocol 1b: Tolerant to high channel losses===&lt;br /&gt;
*&#039;&#039;Server’s preparation&#039;&#039;: This step remains the same as protocol 1a&lt;br /&gt;
*&#039;&#039; Interaction and Client’s Computation&#039;&#039;: Server prepares a Bell pair and sends one half of the Bell Pair to the Client. The Client informs the Server if she receives it or else if she doesn’t, Client asks Server to send it again. The client measures her share of entangled pair in a certain measurement basis depending on her MBQC pattern. The Server then entangles his share of Bell pair and qubit of the resource state using CZ gate which transfers the gate/ measurement operated by Client to the resource qubit. Then he measures the resource qubit in X basis and communicates his classical measurement outcome to the Client. Client records it and uses it to compute her final outcome.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
*&#039;&#039;&#039;Network Stage:&#039;&#039;&#039; [[:Category:Quantum Memory Network Stage|Quantum Memory]] [[Category:Quantum Memory Network Stage]]&lt;br /&gt;
*&#039;&#039;&#039;Required Network Parameters:&#039;&#039;&#039; &lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;math&amp;gt;\epsilon_j&amp;lt;/math&amp;gt;&#039;&#039;&#039;, which measures the error due to noisy operations.&lt;br /&gt;
**Number of communication rounds&lt;br /&gt;
**Circuit depth&lt;br /&gt;
**Number of physical qubits used&lt;br /&gt;
*Client should have measurement devices&lt;br /&gt;
*Quantum offline channel&lt;br /&gt;
*Classical online channel&lt;br /&gt;
*Server should be able to generate and store large network of entangled quantum states.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:MOUBQC_Server.PNG|center|Measurement-Only Universal Blind Quantum Computation (Server)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:MOUBQC_Client.PNG|center|Measurement-Only Universal Blind Quantum Computation (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
*Universality - Any model of quantum computation based on MBQC can be changed made blind using these protocols, thus, the universality of the protocol is implied by the universality of the resource state used.&lt;br /&gt;
*Correctness - Correctness for both protocols is implied from MBQC implementing the quantum computation successfully.&lt;br /&gt;
*Blindness - Blindness for protocol 1a is implied by no-signalling theorem as Client does not send any information to Server by measuring her states.&lt;br /&gt;
*Security of protocol 1a is device independent i.e. Client does not need to trust her measurement device in order to guarantee privacy.&lt;br /&gt;
*Protocol 1a can cope with Client’s measurement device inefficiency.&lt;br /&gt;
*Protocol 1b can cope with high channel losses but is no longer a no-signalling protocol. In order to make it no-signalling Client needs to discard measurement device after one use or use a random number generator to indicate if the particle was received or not.&lt;br /&gt;
*Both protocols follow the following definition of blindness: A protocol is blind if,&lt;br /&gt;
**The conditional probability distribution of Alice’s computational angles, given all the classical information Bob can obtain during the protocol, and given the measurement results of any POVMs which Bob may perform on his system at any stage of the protocol, is equal to the a priori probability distribution of Alice’s computational angles, and&lt;br /&gt;
**The conditional probability distribution of the final output of Alice’s algorithm, given all the classical information Bob can obtain during the protocol, and given the measurement results of any POVMs which Bob may perform on his system at any stage of the protocol, is equal to the a priori probability distribution of the final output of Alice’s algorithm.&lt;br /&gt;
&lt;br /&gt;
==Notations==&lt;br /&gt;
*(m,n,o) dimensions of cluster state. It could be 2D or 3D.&lt;br /&gt;
* &amp;lt;math&amp;gt;G_{\text{mxnxo}}&amp;lt;/math&amp;gt;: Graph state/Resource state created by the Server, as required by Client&lt;br /&gt;
* &amp;lt;math&amp;gt;|\psi\rangle_{i,j,k}\rangle&amp;lt;/math&amp;gt;: A qubit of the resource state at position (i,j,k)&lt;br /&gt;
* &amp;lt;math&amp;gt;\Phi_{1,2}&amp;lt;/math&amp;gt;: [[Glossary#Bell States|Bell pair]]&lt;br /&gt;
* &amp;lt;math&amp;gt;|\phi_2\rangle&amp;lt;/math&amp;gt;: Client&#039;s half of the Bell pair&lt;br /&gt;
* &amp;lt;math&amp;gt;|\phi_1\rangle&amp;lt;/math&amp;gt;: Server&#039;s half of the Bell pair&lt;br /&gt;
* &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;: Measurement angle as determined by Client&#039;s MBQC pattern. &amp;lt;math&amp;gt;\theta \epsilon\{0,\pi /2\}&amp;lt;/math&amp;gt; in case of Clifford gates while &amp;lt;math&amp;gt;\theta \epsilon\{\pi /4\}&amp;lt;/math&amp;gt;  in case of non-Clifford gates.&lt;br /&gt;
&lt;br /&gt;
==Protocol Description== &lt;br /&gt;
*Unless given specific mention in [.], following steps apply to both protocols&lt;br /&gt;
*&#039;&#039;&#039;Input:&#039;&#039;&#039; Server: Dimensions of Resource State (m,n,o)&lt;br /&gt;
*&#039;&#039;&#039;Output:&#039;&#039;&#039; Client: Final Outcome&lt;br /&gt;
#Server’s preparation&lt;br /&gt;
##Server creates a resource state &amp;lt;math&amp;gt;G_{\text{mxnxo}}&amp;lt;/math&amp;gt;&lt;br /&gt;
#Interaction and Computation&lt;br /&gt;
##For i= 1,2,...m, j= 1,2,...n, k= 1,2,...o&lt;br /&gt;
##[Protocol 1a]&lt;br /&gt;
###Server sends &amp;lt;math&amp;gt;|\psi\rangle_{i,j,k}\rangle&amp;lt;/math&amp;gt; to Client&lt;br /&gt;
###Client measures &amp;lt;math&amp;gt;|\psi\rangle_{i,j,k}\rangle&amp;lt;/math&amp;gt; in the required measurement basis according to her measurement pattern&lt;br /&gt;
##[Protocol 1b]&lt;br /&gt;
###Server creates &amp;lt;math&amp;gt;\Phi_{1,2}=\frac{1}{\sqrt{2}}(|00\rangle+|11\rangle)&amp;lt;/math&amp;gt;&lt;br /&gt;
###Server sends to Client (&amp;lt;math&amp;gt;|\phi_2\rangle&amp;lt;/math&amp;gt;) and waits for Client&#039;s response&lt;br /&gt;
###Client checks if she received and tells the Server as Client.Response()&lt;br /&gt;
###&#039;&#039;&#039;If Client.Response()=No&#039;&#039;&#039;, Server repeats the previous two steps &lt;br /&gt;
###&#039;&#039;&#039;Else&#039;&#039;&#039; Client measures (&amp;lt;math&amp;gt;|\phi_2\rangle&amp;lt;/math&amp;gt;) in measurement basis {&amp;lt;math&amp;gt;|0\rangle \pm e^{i\theta}|1\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
###&#039;&#039;&#039;Server&#039;s Computation: [[Glossary#Gate Teleportation|Gate Teleportation]]&#039;&#039;&#039;&lt;br /&gt;
####He entangles &amp;lt;math&amp;gt;|\phi_2\rangle&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;|\psi\rangle_{i,j,k}&amp;lt;/math&amp;gt; by performing [[Glossary#Unitary Operations|C-Z]]&lt;br /&gt;
####He measures &amp;lt;math&amp;gt;|\psi\rangle_{i,j,k}&amp;lt;/math&amp;gt; in X basis ({&amp;lt;math&amp;gt;|+\rangle,|-\rangle&amp;lt;/math&amp;gt;}) &lt;br /&gt;
####Server&#039;s applies correction on the classical outcome using Gate Teleporation&lt;br /&gt;
###Server communicates the corrected outcome&lt;br /&gt;
####Client records Server’s outcome and uses it when computing the final result or measurement angles for further qubits&lt;br /&gt;
&lt;br /&gt;
*Interaction and Computation steps are repeated until all the qubits of resource state are measured.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Shraddha Singh&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:MOUBQC_Client.PNG&amp;diff=3754</id>
		<title>File:MOUBQC Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:MOUBQC_Client.PNG&amp;diff=3754"/>
		<updated>2019-07-16T09:31:38Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:MOUBQC_Server.PNG&amp;diff=3753</id>
		<title>File:MOUBQC Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:MOUBQC_Server.PNG&amp;diff=3753"/>
		<updated>2019-07-16T09:31:09Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Classical_Fully_Homomorphic_Encryption_for_Quantum_Circuits&amp;diff=3752</id>
		<title>Classical Fully Homomorphic Encryption for Quantum Circuits</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Classical_Fully_Homomorphic_Encryption_for_Quantum_Circuits&amp;diff=3752"/>
		<updated>2019-07-15T22:53:17Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://arxiv.org/abs/1708.02130 example protocol] achieves the functionality of [[Secure Client- Server Delegated Quantum Computation|Delegated Quantum Computation]] by a method which involves fully [[Secure Client- Server Delegated Quantum Computation#Protocols|classical offline]] and no [[Secure Client- Server Delegated Quantum Computation#Protocols|quantum communication]]. It uses only classical [[Glossary#Quantum Capable Homomorphic Encryption|Homomorphic Encryption]] (HE) scheme to evaluate quantum circuits for classical input/output. It allows a fully classical Client to hide her data such that Server can carry out any arbitrary quantum computation on the encrypted data without having any knowledge about Client’s inputs. It hides the output and input of the computation while Server is allowed to choose the [[Glossary#Unitary Operations|unitary operation]] (any quantum gate) for required computation. Quantum offline communication would be required if Client’s input and output is quantum.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Two Party Protocols|Two Party]], [[:Category:Quantum Functionality|Quantum Functionality]], [[:Category:Universal Task|Universal Task]], [[Secure Client- Server Delegated Quantum Computation]], [[Prepare and Send Quantum Fully Homomorphic Encryption|Prepare and Send Quantum FHE]], Classical Offline Communication, [[Glossary#Superposition|Superposition]], Trapdoor Claw-Free Functions, [https://en.wikipedia.org/wiki/Learning_with_errors Learning With Errors], Encrypted CNOT Operation.&lt;br /&gt;
[[Category:Two Party Protocols]][[Category:Quantum Functionality]][[Category:Universal Task]]&lt;br /&gt;
==Assumptions==&lt;br /&gt;
*	This protocol is secure against honest but curious adversary setting.&lt;br /&gt;
*	HE is a classical leveled fully homomorphic encryption scheme which is [[Glossary#Quantum Capable Homomorphic Encryption|quantum capable]] for given depth of one layer of circuit, &amp;lt;math&amp;gt;L_c&amp;lt;/math&amp;gt; (See Notations below).&lt;br /&gt;
*	A [https://complexityzoo.uwaterloo.ca/Complexity_Zoo:B#bqp BQP] Server (a quantum computer) can generate a superposition of inputs for the encryption function over some distribution given the public key used for encryption. The protocol takes [https://en.wikipedia.org/wiki/Learning_with_errors learning with errors] assumption.&lt;br /&gt;
&lt;br /&gt;
== Outline==&lt;br /&gt;
FHE presents a classical protocol with the help of which a completely classical Client could assign Server a quantum computation for her encrypted (hidden) input/output. Similar to any classical HE this scheme is divided into four steps: Key Generation generates keys for encryption, decryption and evaluation of the circuit; Encryption encodes the input into a secret text using the encryption key generated during Key Generation; Evaluation performs operations (implements the circuit) on the encrypted input using evaluation key generated and Decryption transforms result of the evaluation step hidden in the secret text, to outcome of the circuit for Client&#039;s input using decryption key. Following the stages of [[Secure Delegated Quantum Computation]], in preparation stage, Client encrypts her input by performing [[one time pad]] to hide it from the Server, who, in the computation stage, performs quantum computation by a completely classical evaluation step. There are two kinds of gates in Quantum Computation (See [[Glossary#Hierarchy of Quantum Gates|Glossary]]) Clifford Gates, which consists of [[Glossary#Unitary Operations|Hadamard gate]], [[Glossary#Unitary Operations|CNOT]] and [[Glossary#Unitary Operations|Pauli gates (X, Y, Z)]] and Toffoli gates (any single qubit phase/rotation gate). A universal scheme can perform both these types of gates implying that it can perform any quantum operation. Now, applying [[Glossary#Hierarchy of Quantum Gates|Clifford gates]] remains a simple step as it leaves the state with only Pauli corrections (X, Z) which are easy to handle as these gates commute with every quantum gate and hence can be shifted and cancelled out by applying corresponding inverse gate later by the Client, but when applying [[Glossary#Heirarchy of Quantum Gates|Toffoli Gates]], it leaves the state with some Pauli corrections and Clifford gate corrections depending on the one pad key used for encryption key used by Client. Decryption key cannot deal with Clifford gate errors as they do not commute with all quantum operations and hence it needs to be corrected by applying corresponding inverse gate before the operation of next gate for computation by the Server. These Clifford gate corrections are a combination of CNOT corrections dependent on encryption key and a Hadamard correction independent of encryption key. Thus, applying Hadamard requires no extra information but CNOT gate errors require revelation of the encryption key. FHE deals with this problem via Encrypted CNOT operation using Trapdoor Claw-Free Function (TCF) without revelation of encryption key to the Server. Finally, in the Output Correction stage, Client gets her inputs and updated encryption keys to get the correct final outcome from the secret text using her decryption key. Following is an outline of the steps to illustrate the above mentioned scheme, assuming depth of circuit (see notations used) equal to L.&amp;lt;/br&amp;gt;&lt;br /&gt;
The preparation stage incorporates,&lt;br /&gt;
* &#039;&#039;&#039;Key Generation:&#039;&#039;&#039; Client generates &amp;lt;math&amp;gt;L+1&amp;lt;/math&amp;gt; classical homomorphic key sets consisting of public key, evaluation key, secret key, trapdoor information (a piece of information required to invert the function used for encrypted CNOT operation, as explained in Circuit Evaluation) using HE.KeyGen() (classical HE step). Evaluation key consists of first L pairs of secret key-trapdoor information encrypted with last L public keys such that secret key-trapdoor key pair and public key do not belong to the same key set. Evaluation key also contains this public key used to encrypt the pair.&lt;br /&gt;
* &#039;&#039;&#039;Encryption:&#039;&#039;&#039; Client uses classical one time pad to hide her input and encrypts the pad key with the first public key (not used to encrypt any trapdoor-secret key pair) using HE.Enc() (classical HE step). She then sends the hidden classical input with encrypted pad key and classical evaluation key to the Server over classical channel. This step marks the end of preparation stage.&amp;lt;/br&amp;gt;&lt;br /&gt;
Further, the computation stage incorporates,&lt;br /&gt;
* &#039;&#039;&#039;Circuit Evaluation:&#039;&#039;&#039; Server starts with the classical one time padded states from the Client and generates the required quantum states. For each gate of the circuit that Server applies, he updates the encrypted Pauli encryption according to rules given in Pseudo code below. In case of Toffoli gate operation, an additional step is incorporated where he corrects the extra Clifford gate error performing encrypted CNOT operation and then Hadamard operation on the target qubit. This step uses evaluation key and can be explained as follows.&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Encrypted CNOT operation&#039;&#039;&#039; All errors imposed by Toffoli gates can be represented using encrypted CNOT operation, a Hadamard operation and a set of Pauli gates (X, Z). All errors imposed by Clifford gates can be represented by a combination of Pauli gates. A mathematical representation of this step can be found in the [[Classical Fully Homomorphic Encryption for Quantum Circuits #Pseudo Code|Pseudo Code]] below. &lt;br /&gt;
#&#039;&#039;&#039;TCF:&#039;&#039;&#039; This operation uses Trapdoor Claw Free function pairs which have the same image (output) for different pre-images(inputs) called &#039;random claw pair&#039;. Given the image, it is rendered a hard problem to find this corresponding random claw without its trapdoor information (example, a piece of information required to invert the function). For this protocol, the HE Encryption function (HE.Enc()) is taken as one of the functions. A second function whose distribution is shifted from the previous function by a natural (homomorphic) XOR operation (a requirement for the [[Glossary#Quantum Capable Homomorphic Encryption|classical HE]] scheme used) of encrypted key bit used for that encryption function. This means, the functions have a common range such that for every image (output), the pre-images (input) for each of the functions stated above would also differ by a XOR operation of actual (not encrypted) key bit. Thus, any element in the said range set would have one pre-image in the domain set of each function, together called random claw pair. If one performs a XOR operation on the pair, the result is pad key bit. This is implied from the properties of homomorphic XOR. In simple words, the above paragraph implies that if two functions are separated by encrypted pad key via a homomorphic XOR operation, their inputs for a common output (random claw pair) would be separated by the (not encrypted) pad key bit. Thus, any pre-image pair (random claw) thus, obtained, hides the pad key (to be used later for Encrypted CNOT operation).&lt;br /&gt;
#&#039;&#039;&#039;Server&#039;s preparation&#039;&#039;&#039; Thus, Server creates a superposition of inputs for the functions over some distribution. Next, he creates a superposition of quantum states generated from Client&#039;s input. After applying the gates on qubits, for correction of CNOT errors, Server creates three registers. First has the superposition of quantum states generated from Client&#039;s input, second has the superposition on a distribution chosen for inputs of the function while third register has the output of one of the two functions illustrated above, where the function (one of the two) is chosen according to the first qubit of the first register and its quantum input is taken from the second register. Hence, these registers are entangled. Server, now measures the third register which reduces second register to a random claw pair as discussed before, hiding the pad key. It is still hidden from the Server as he does not know trapdoor information to be able to know the random claw pair and he cannot compute it from the measured output as it is a hard problem. &lt;br /&gt;
#&#039;&#039;&#039;Server&#039;s Toffoli gate operation&#039;&#039;&#039; After some calculations it can be shown that if Server performs [[Glossary#Unitary Operations|Hadamard operation]] on the second register and then measures it, the first register is reduced to corrected quantum state with some extra [[Glossary#Unitary Operations|Pauli corrections]]. These final Pauli corrections require trapdoor information and measurement outcome of the second register. To perform the above operation one needs the secret text to be same throughtout the protocol and existence of a natural XOR operation. This is not known to have been achieved by a single HE together. Hence, this protocol uses AltHE (an alternate HE) which can operate XOR for encrypted CNOT operation while he uses HE for updation of Pauli keys. In order to do this, HE provides a conversion of secret text under HE to secret text under AltHE and vice versa. Thus, after encrypted CNOT operation, encrypted pad key bit and other measurement outcomes are recrypted using public key provided in the evaluation key for that step, under HE. Thus, the trapdoor information and pad key bit are encrypted under same public key. Now, using the measurement outcome and the encrypted trapdoor information with recrypted pad key, Server obtains Pauli corrections. The Server encrypts Pauli corrections under public key for corresponding layer and hence updates the recrypted pad key&amp;lt;br/&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Server&#039;s Clifford gate operation&#039;&#039;&#039; Server obtains with Pauli corrections according to rules described in the Pseudo code and updates the recrypted pad key as before.&amp;lt;/br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Decryption&#039;&#039;&#039; Server repeats the same procedure for each layer and at the end of last layer, sends the updated recryption of pad key and classical measurement output of the first register (containing the corrected quantum state encrypted by pad key) to Client. Client converts the pad key to another secret text using AltHE. The sent pad key is recrypted with public key of the last (&amp;lt;math&amp;gt;L_{th}&amp;lt;/math&amp;gt;) evaluation key used. This is the &amp;lt;math&amp;gt;(L + 1)_{th}&amp;lt;/math&amp;gt; public key. Hence, Client uses &amp;lt;math&amp;gt;(L + 1)_{th}&amp;lt;/math&amp;gt; secret key (which was not included in the evaluation keys) to decrypt the updated encryption of pad key sent by the Server. She (Client) uses the resulting pad key to undo the one time pad on the sent output.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
*&#039;&#039;Quantum Capable&#039;&#039; A classical HE is quantum capable i.e. can perform quantum computation efficiently if there exists AltHE which can execute natural XOR operations.&lt;br /&gt;
*&#039;&#039;Indistinguishability under Chosen Plaintext Attacks by adversary(IND-CPA)&#039;&#039; The presented classical FHE scheme is CPA secure i.e. it is not possible for any polynomial time adversary to distinguish between the encrypted classical message bits 0 and 1, by learning with errors.&lt;br /&gt;
*&#039;&#039;Compactness&#039;&#039; This protocol is compact i.e. decryption does not depend on the complexity of the quantum circuit.&lt;br /&gt;
*&#039;&#039;Correctness&#039;&#039; Correctness is implied from the correctness of encrypted CNOT operation.&lt;br /&gt;
*&#039;&#039;Circuit Privacy&#039;&#039; This protocol is not circuit private as both Client and Server know the quantum circuit used for performing the computation.&lt;br /&gt;
*&#039;&#039;Full Homomorphism&#039;&#039; This protocol is fully homomorphic i.e. Server can operate any quantum circuit using this protocol.&lt;br /&gt;
*&#039;&#039;Circular Security&#039;&#039; This protocol has a stronger notion of circular security where not only the secret key but also the trapdoor functions are encrypted when provided to the Server.&lt;br /&gt;
== Notation ==&lt;br /&gt;
*&amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: classical data of client&#039;s required quantum input states&lt;br /&gt;
*&amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;: security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;: security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;\tilde{x}&amp;lt;/math&amp;gt;: encrypted pad key&lt;br /&gt;
*&amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;: concatenated pad key elements&lt;br /&gt;
*&amp;lt;math&amp;gt;c=HE.Enc_{pk}(s)&amp;lt;/math&amp;gt; Encryption of s using public key &amp;lt;math&amp;gt;pk&amp;lt;/math&amp;gt; via classical HE encryption step.&lt;br /&gt;
*&amp;lt;math&amp;gt;\hat{c}&amp;lt;/math&amp;gt;: converted c using classical HE in order to use it with &amp;lt;math&amp;gt;AltHE&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\tilde{x}^{[l]}&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;l^{th}&amp;lt;/math&amp;gt; bit of encrypted pad key&lt;br /&gt;
* &amp;lt;math&amp;gt;L_c&amp;lt;/math&amp;gt;: depth of a layer of circuit where each layer contains Clifford gates and Toffoli gates&lt;br /&gt;
* &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;: depth of the circuit (no. of layers in the circuit)&lt;br /&gt;
* &amp;lt;math&amp;gt;\{pk_i, sk_i, evk_i, t_{sk_i}\}&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;i_{th}&amp;lt;/math&amp;gt; homomorphic key set generated from HE.KeyGen(). Public key for encryption, secret key for decryption, evaluation function key, trapdoor information required for randomness recovery from secret texts.&lt;br /&gt;
* &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;: measurement outcome of third register&lt;br /&gt;
* &amp;lt;math&amp;gt;(\mu_0,r_0) (\mu_1,r_1)&amp;lt;/math&amp;gt;: random claw for pair, for given y&lt;br /&gt;
* &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;: measurement outcome of the second register&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
*&#039;&#039;&#039;Network Stage:&#039;&#039;&#039; [[:Category:Quantum Memory Network Stage|Quantum Memory]] [[Category:Quantum Memory Network Stage]]&lt;br /&gt;
*&#039;&#039;&#039;Required Network Parameters:&#039;&#039;&#039; &lt;br /&gt;
**&#039;&#039;&#039;&amp;lt;math&amp;gt;\epsilon_j&amp;lt;/math&amp;gt;&#039;&#039;&#039;, which measures the error due to noisy operations.&lt;br /&gt;
**Number of communication rounds&lt;br /&gt;
**Circuit depth&lt;br /&gt;
**Number of physical qubits used&lt;br /&gt;
*The concerned protocol requires classical HE scheme. &lt;br /&gt;
*Classical offline communication links&lt;br /&gt;
*Communication can be performed over a classical network with only one quantum node (in case of classical input and output). &lt;br /&gt;
*The functions &amp;lt;math&amp;gt;f_0, f_1&amp;lt;/math&amp;gt; used must be trapdoor claw-free(TCF) such that one it is not possible to find a triple &amp;lt;math&amp;gt;(\mu_0,\mu_1,y)&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;f_0(\mu_0)=f_1(\mu_1)=y&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:CFHEQC_Server.PNG|center|Classical Fully Homomorphic Encryption for Quantum Circuits (Server)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:CFHEQC_Client.PNG|center|Classical Fully Homomorphic Encryption for Quantum Circuits (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Protocol Description== &lt;br /&gt;
*Boxed texts are not part of the code but contain proofs used in various steps, illustrated for a better understanding of the protocol.&lt;br /&gt;
===&#039;&#039;&#039;Stage 1&#039;&#039;&#039; Client’s Preparation===&lt;br /&gt;
 &lt;br /&gt;
*Input: &amp;lt;math&amp;gt;k, L, L_c&amp;lt;/math&amp;gt;, classical message &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;&lt;br /&gt;
*Output: Homomorphic key sets &amp;lt;math&amp;gt;(pk_i,evk_i,sk_i, t_{sk_i})&amp;lt;/math&amp;gt;, encrypted pad key &amp;lt;math&amp;gt;\tilde{z}, \tilde{x}&amp;lt;/math&amp;gt;, One time Padded message (&amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;)&lt;br /&gt;
**&#039;&#039;&#039;Key Generation (FHE.KeyGen(&amp;lt;math&amp;gt;1^{\lambda}, 1^L&amp;lt;/math&amp;gt;))&#039;&#039;&#039;&lt;br /&gt;
#	For &amp;lt;math&amp;gt;1\leq i\leq L + 1&amp;lt;/math&amp;gt;, &lt;br /&gt;
#	Client generates homomorphic key set, &amp;lt;math&amp;gt;(pk_i,evk_i,sk_i, t_{sk_i}) = &amp;lt;/math&amp;gt;HE.Keygen(&amp;lt;math&amp;gt;1^{\lambda}, 1^{L_c}&amp;lt;/math&amp;gt;).&amp;lt;/br&amp;gt;The public key &amp;lt;math&amp;gt;pk&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;pk_1&amp;lt;/math&amp;gt; and the secret key &amp;lt;math&amp;gt;sk&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;sk_{L+1}&amp;lt;/math&amp;gt;. &amp;lt;/br&amp;gt;The evaluation key &amp;lt;math&amp;gt;evk_i&amp;lt;/math&amp;gt; consists of &amp;lt;math&amp;gt;(pk_{i+1},&amp;lt;/math&amp;gt;HE.Enc&amp;lt;math&amp;gt;_{pk_{i+1}}(sk_{i})&amp;lt;/math&amp;gt;, HE.Enc&amp;lt;math&amp;gt;_{pk_{i+1}}(t_{sk_i})&amp;lt;/math&amp;gt;) for &amp;lt;math&amp;gt;1\leq i\leq L&amp;lt;/math&amp;gt;.&lt;br /&gt;
**&#039;&#039;&#039;Encryption (FHE.Enc&amp;lt;math&amp;gt;_{pk}(m)&amp;lt;/math&amp;gt;))&#039;&#039;&#039;&lt;br /&gt;
#Client chooses pad key for each message bit &amp;lt;math&amp;gt;z,x\in\{0,1\}^{\lambda}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#She one time pads the message m, &amp;lt;math&amp;gt;l= x\oplus m&amp;lt;/math&amp;gt; &amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt;//z is used for quantum input &amp;lt;math&amp;gt;Z^zX^x|\psi\rangle&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;|\psi\rangle&amp;lt;/math&amp;gt; is quantum input.&amp;lt;/div&amp;gt;&lt;br /&gt;
#She then encrypts the pad key. HE.Enc&amp;lt;math&amp;gt;_{pk_1}(z,x)&amp;lt;/math&amp;gt;&lt;br /&gt;
# She sends the encrypted message and pad key to the Server with the evaluation keys.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Stage 2&#039;&#039;&#039; Server’s Computation ===&lt;br /&gt;
 &lt;br /&gt;
*Input: &amp;lt;math&amp;gt;\mathrm{evk}_i&amp;lt;/math&amp;gt;, pad key elements concatenation (&amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;), encryption of s under HE (&amp;lt;math&amp;gt;c=\mathrm{HE.Enc}_{pk}(s)&amp;lt;/math&amp;gt;), one time padded message (&amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;)&lt;br /&gt;
*Output:  Updated encryption of pad key &amp;lt;math&amp;gt;\tilde{z},\tilde{x}&amp;lt;/math&amp;gt; and final classical outcome after performing the circuit.&lt;br /&gt;
**&#039;&#039;&#039;Circuit Evaluation (FHE.Eval())&#039;&#039;&#039;&lt;br /&gt;
#Server creates a quantum superposition state for encrypted input &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;Z^zX^x|\psi\rangle&amp;lt;/math&amp;gt;, where &amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;|\psi\rangle=\sum_{a,b\epsilon\{0,1\}}\alpha_{ab}|a,b\rangle&amp;lt;/math&amp;gt; represents the two qubits superposition state for classical message m,&amp;lt;/br&amp;gt; &amp;lt;math&amp;gt;Z^zX^x&amp;lt;/math&amp;gt; represents quantum one time pad. &amp;lt;/br&amp;gt;&lt;br /&gt;
# For all i, Server applies gate &amp;lt;math&amp;gt;c_i&amp;lt;/math&amp;gt; on qubit l and the &amp;lt;math&amp;gt;l_{th}&amp;lt;/math&amp;gt; bits of pad key &amp;lt;math&amp;gt;(\tilde {x}^{[l]},\tilde{z}^{[l]})&amp;lt;/math&amp;gt; are updated to &amp;lt;math&amp;gt;(\tilde {x}&#039;^{[l]},\tilde{z}&#039;^{[l]})&amp;lt;/math&amp;gt; as follows. &lt;br /&gt;
##	 If &amp;lt;math&amp;gt;c_i=\{P,H,CNOT\}&amp;lt;/math&amp;gt;, a Clifford gate then &amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt;//(&amp;lt;math&amp;gt;c_iZ^{z^{[l]}}X^{x^{[l]}}|\psi\rangle=Z^{z&#039;^{[l]}}X^{x&#039;^{[l]}}c_i|\psi\rangle&amp;lt;/math&amp;gt;)&amp;lt;/div&amp;gt;&lt;br /&gt;
###	 if &amp;lt;math&amp;gt;c_i=&amp;lt;/math&amp;gt;H then&amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt;//Hadamard Gate&amp;lt;/div&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;(\tilde {x}^{[l]},\tilde{z}^{[l]})\rightarrow (\tilde{z}^{[l]},\tilde{x}^{[l]})&amp;lt;/math&amp;gt;&amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt;//Hadamard tranforms X gate into Z and Z into X&amp;lt;/div&amp;gt;&lt;br /&gt;
### if &amp;lt;math&amp;gt;c_i=&amp;lt;/math&amp;gt;P then &amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt;//Pauli Gate&amp;lt;/div&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;(\tilde {x}^{[l]},\tilde{z}^{[l]})\rightarrow (\tilde{x}^{[l]},\tilde{x}^{[l]}\oplus\tilde{z}^{[l]})&amp;lt;/math&amp;gt;&lt;br /&gt;
### if &amp;lt;math&amp;gt;c_i=CNOT_{l,n}&amp;lt;/math&amp;gt; with m as target bit and n as control bit then &amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt;//CNOT&amp;lt;/div&amp;gt;&amp;lt;/br&amp;gt;(&amp;lt;math&amp;gt;\tilde {x}^{[l]},\tilde{z}^{[l]};\tilde {x}^{[n]},\tilde{z}^{[n]})\rightarrow (\tilde {x}^{[l]},\tilde{z}^{[l]}\oplus \tilde {z}^{[n]};\tilde{x}^{[l]}\oplus \tilde {x}^{[n]},\tilde{z}^{[n]})&amp;lt;/math&amp;gt;&lt;br /&gt;
##	 If &amp;lt;math&amp;gt;c_i=T&amp;lt;/math&amp;gt; gate then &amp;lt;div class=&amp;quot;floatright&amp;quot;&amp;gt;//Toffoli Gate on &amp;lt;math&amp;gt;l_{th}, n_{th}, o_{th}&amp;lt;/math&amp;gt; key bits&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: gray; border: solid thin black;title=Functionality Description;&amp;quot;&amp;gt;The Toffoli gate application can be deduced as follows:&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;TZ^{z^{[l]}}X^{x^{[l]}}Z^{z^{[n]}}X^{x^{[n]}}Z^{z^{[o]}}X^{x^{[o]}}|\psi\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=TZ^{z^{[l]}}X^{x^{[l]}}Z^{z^{[n]}}X^{x^{[n]}}Z^{z^{[o]}}X^{x^{[o]}}T\dagger T|\psi\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=CNOT_{l,o}^{x^{[n]}}CNOT_{n,o}^{x^{[l]}}CZ_{l,n}^{z^{[o]}}Z^{z^{[l]}}X^{x^{[l]}}T|\psi\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=CNOT_{l,o}^{x^{[n]}}CNOT_{n,o}^{x^{[l]}}H_nCNOT_{l,n}^{z^{[o]}}H_{n}Z^{z^{[l]}}X^{x^{[l]}}T|\psi\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=C_{zx}P_{zx}T|\psi\rangle&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;C\epsilon \{\text{CNOT,H}\}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;P\epsilon\{X,Z\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
:::#The Pauli key encryptions are homomorphically updated  according to &amp;lt;math&amp;gt;P_{zx}&amp;lt;/math&amp;gt;.&amp;lt;/br&amp;gt; (&amp;lt;math&amp;gt;\tilde {x}^{[l]},\tilde{z}^{[l]};\tilde {x}^{[n]},\tilde{z}^{[n]};\tilde {x}^{[o]},\tilde{z}^{[o]})\rightarrow (\tilde {x}^{[l]},\tilde{z}^{[l]};0,0;0,0)&amp;lt;/math&amp;gt;&lt;br /&gt;
:::# Three encrypted CNOTs are used to correct &amp;lt;math&amp;gt;C^{zx}&amp;lt;/math&amp;gt; as follows under &amp;lt;math&amp;gt;\mathrm{AltHE}&amp;lt;/math&amp;gt;.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
***&#039;&#039;&#039;Server&#039;s Preparation:&#039;&#039;&#039;&lt;br /&gt;
::::#Server converts &amp;lt;math&amp;gt;\hat{c} = \mathrm{HE.Convert(c)}&amp;lt;/math&amp;gt;.&lt;br /&gt;
::::#Server generates superposition on distribution D: &amp;lt;math&amp;gt;\sum_{\mu\in\{0,1\},r}\sqrt{D(\mu,r)}|\mu,r\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
::::#Server entangles above superposition and &amp;lt;math&amp;gt;|\psi\rangle&amp;lt;/math&amp;gt; with a third register:&amp;lt;math&amp;gt;\sum_{a,b,\mu\in\{0,1\},r}\alpha_{ab}\sqrt{D(\mu,r)}|a,b\rangle|\mu,r\rangle|f_a(r)\rangle&amp;lt;/math&amp;gt;, such that &amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;f_0=\mathrm{AltHE.Enc}_{pk}()&amp;lt;/math&amp;gt;;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;f_1(\mu_1,r_1)=f_0 (\mu_0,r_0)\oplus_H \hat{c}=\mathrm{AltHE.Enc}_{pk}(\mu_0,r_0)\oplus_H \mathrm{AltHE.Enc}_{pk}(s)&amp;lt;/math&amp;gt; &amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;\therefore \mu_0\oplus\mu_1=s&amp;lt;/math&amp;gt;&lt;br /&gt;
::::#Server measures the last register to get &amp;lt;math&amp;gt;y =\mathrm{AltHE.Enc}(\mu_0,r_0)=\mathrm{AltHE.Enc}_{pk}(\mu_1,r_1)\oplus_H AltHE.Enc_{pk}(s)&amp;lt;/math&amp;gt;.&amp;lt;/br&amp;gt; The resulting superposition state is:&amp;lt;math&amp;gt;\sum_{a,b\in\{0,1\}}\alpha_{ab}\sqrt{D(\mu_0,r_0)}|a,b\rangle|\mu_a,r_a\rangle|\mathrm{AltHE.Enc}(\mu_0,r_0)\rangle=\sum_{a,b\in\{0,1\}}\alpha_{ab}\sqrt{D(\mu_0,r_0)}|a,b\rangle|\mu_a,r_a\rangle|y\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
***&#039;&#039;&#039;Encrypted CNOT operation:&#039;&#039;&#039;&amp;lt;div style=&amp;quot;background-color: gray; border: solid thin black;title=Functionality Description;&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\sum_{a,b\in\{0,1\}}\alpha_{ab}CNOT_{a,b}^s|a,b\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=\sum_{a,b\in\{0,1\}}\alpha_{ab}|a,b\oplus a\cdot s\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=\sum_{a,b\in\{0,1\}}\alpha_{ab}|a,b\oplus a\cdot(\mu_0\oplus\mu_1)\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=\sum_{b\in\{0,1\}}\alpha_{0b}|0,b\oplus \mu_0\oplus\mu_0\rangle+\alpha_{1b}|1,b\oplus \mu_0\oplus\mu_1\rangle&amp;lt;/math&amp;gt;,   &amp;lt;math&amp;gt;\because q\oplus q=0&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=\sum_{b\in\{0,1\}}\alpha_{0b}|0\rangle\otimes X^{\mu_0}|b\oplus \mu_0\rangle+\alpha_{1b}|1\rangle \otimes X^{\mu_0}|b\oplus \mu_1\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\because |q\oplus y\rangle=X^y|q\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=\sum_{a,b\in\{0,1\}}\alpha_{ab}|a\rangle\otimes X^{\mu_0}|b\oplus \mu_a\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=\sum_{a,b\in\{0,1\}}\alpha_{ab}(I\otimes X^{\mu_0})|a,b\oplus \mu_a\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
::::#Server XORs the second qubit of first register with &amp;lt;math&amp;gt;\mu_a&amp;lt;/math&amp;gt; to get:&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;\sum_{a,b\in\{0,1\}}\alpha_{ab}\sqrt{D(\mu_0,r_0)}(I\otimes X^{\mu_0})CNOT_{a,b}^s|a,b\rangle\otimes|\mu_a,r_a\rangle|y\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
::::#Server performs Hadamard on second register. The resulting superposition state is:&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;\sum_{a,b\in\{0,1\}}\alpha_{ab}\sqrt{D(\mu_0,r_0)}(I\otimes X^{\mu_0})CNOT_{ab}^s|a,b\rangle\otimes H^k|\mu_a,r_a\rangle|y\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=\sum_{a,b\in\{0,1\}}\alpha_{ab}\sqrt{D(\mu_0,r_0)}(I\otimes X^{\mu_0})CNOT_{ab}^s|a,b\rangle\otimes\bigg(\sum_{e\in\{0,1\}^k}(-1)^{e\cdot(\mu_a,r_a) }|e\rangle\bigg)|y\rangle&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\because H^k|q\rangle=\sum_{e\in\{0,1\}^k}(-1)^{e\cdot q}|e\rangle&amp;lt;/math&amp;gt;, where q has k qubits&amp;lt;/br&amp;gt;&lt;br /&gt;
::::#Server measures the second register to get d. The resulting superposition is:&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=\sum_{a,b\in\{0,1\}}\alpha_{ab}\sqrt{D(\mu_0,r_0)}(I\otimes X^{\mu_0})CNOT_{ab}^s|a,b\rangle\otimes(-1)^{d\cdot(\mu_a,r_a)}|d\rangle|y\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: gray; border: solid thin black;title=Functionality Description;&amp;quot;&amp;gt;&lt;br /&gt;
The first register could be equivalently written as:&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;(-1)^{d\cdot(\mu_0,r_0)}|0,b\rangle+(-1)^{d\cdot(\mu_1,r_1)}|1,b\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=(-1)^{d\cdot (\mu_0,r_0)}((-1)^{d\cdot((\mu_0,r_0)\oplus(\mu_0,r_0))}|0,b\rangle+(-1)^{d\cdot((\mu_0,r_0)\oplus(\mu_1,r_1))}|1,b\rangle)&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=(-1)^{d\cdot (\mu_0,r_0)}((-1)^{0\cdot(d\cdot((\mu_0,r_0)\oplus(\mu_1,r_1))})|0,b\rangle+(-1)^{1\cdot(d\cdot((\mu_0,r_0)\oplus(\mu_1,r_1)))}|1,b\rangle)&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=(-1)^{d\cdot (\mu_0,r_0)}((-1)^{a\cdot(d\cdot((\mu_0,r_0)\oplus(\mu_1,r_1))})|a,b\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;=(-1)^{d\cdot (\mu_0,r_0)}(Z^{d\cdot((\mu_0,r_0)\oplus(\mu_1,r_1))}|a,b\rangle)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\because Z|q\rangle=(-1)^q|q\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;Thus, the resulting state (upto a global phase) is: &amp;lt;/br&amp;gt;&amp;lt;math&amp;gt;\approx(Z^{d\cdot((\mu_0,r_0)\oplus(\mu_1,r_1))}\otimes X^{\mu_0})CNOT_{12}^s\sum_{a,b\in\{0,1\}}\alpha_{ab}|a,b\rangle&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
Final superposition at the end of encrypted CNOT operation is:&amp;lt;/br&amp;gt; &amp;lt;math&amp;gt;(Z^{d\cdot ((\mu_0,r_0)\oplus (\mu_1,r_1))}\otimes X^{\mu_0})\mathrm{CNOT}_{1,2}^s|\psi_{12}\rangle&amp;lt;/math&amp;gt; &amp;lt;/br&amp;gt;where &amp;lt;math&amp;gt;(\mu_0,r_0)=(\mu_1,r_1)\oplus_H s&amp;lt;/math&amp;gt;, as &amp;lt;math&amp;gt;\oplus_H&amp;lt;/math&amp;gt; is the homomorphic XOR operation.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
::::#The server uses &amp;lt;math&amp;gt;pk_{i+1}&amp;lt;/math&amp;gt; to recrypt &#039;c&#039; (previously encrypted using &amp;lt;math&amp;gt;pk_{i}&amp;lt;/math&amp;gt;) and encrypt other variables under HE: &amp;lt;math&amp;gt;\mathrm{HE.Enc}_{pk_{i+1}}(c)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\mathrm{HE.Enc}_{pk_{i+1}}(\hat{c},y,d)&amp;lt;/math&amp;gt;. &lt;br /&gt;
::::#The server computes the encryption of &amp;lt;math&amp;gt;z,x&amp;lt;/math&amp;gt; (stored in &amp;lt;math&amp;gt;\tilde{z},\tilde{x}&amp;lt;/math&amp;gt;) under &amp;lt;math&amp;gt;pk_{i+1}&amp;lt;/math&amp;gt; by performing decryption circuit on &amp;lt;math&amp;gt;\mathrm{HE.Enc}_{pk_{i+1}}(c)&amp;lt;/math&amp;gt; using &amp;lt;math&amp;gt;\mathrm{HE.Enc}_{pk_{i+1}}(sk_i)&amp;lt;/math&amp;gt; (provided by the evaluation key). Here, c, as stated before is the concatenation of encryption of x, z under &amp;lt;math&amp;gt;pk_{i}&amp;lt;/math&amp;gt;, provided by the Client.&lt;br /&gt;
::::#The server (homomorphically) computes &amp;lt;math&amp;gt;(\mu_0,r_0)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;(\mu_1,r_1)&amp;lt;/math&amp;gt;, using &amp;lt;math&amp;gt;\mathrm{HE.Enc}_{pk_{i+1}}(t_{sk_i},sk_i)&amp;lt;/math&amp;gt;, provided by the evaluation key &amp;lt;math&amp;gt;\mathrm{evk}_i&amp;lt;/math&amp;gt; encrypted under &amp;lt;math&amp;gt;pk_{i+1}&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;\mathrm{HE.Enc}_{pk_{i+1}}(\hat{c},y,d)&amp;lt;/math&amp;gt;, from the previous step. &lt;br /&gt;
::::#The server then uses this results of the last three steps, to (homomorphically) update Pauli encryptions for encrypted &amp;lt;math&amp;gt;CNOT^s_{l,n}&amp;lt;/math&amp;gt;: &amp;lt;/br&amp;gt;(&amp;lt;math&amp;gt;\tilde {x}^{[l]},\tilde{z}^{[l]};\tilde {x}^{[n]},\tilde{z}^{[n]})\rightarrow (\tilde {x}^{[l]},\tilde{z}^{[l]}+d\cdot ((\mu_0,r_0)\oplus (\mu_1,r_1);\tilde {x}^{[n]}+\mu_0,\tilde{z}^{[n]})&amp;lt;/math&amp;gt;&amp;lt;/br&amp;gt; &lt;br /&gt;
3. Server sends updated encryptions of Pauli corrections &amp;lt;math&amp;gt;\tilde{x},\tilde{z}&amp;lt;/math&amp;gt; and the classical outcome after measurement of the output state to Client.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Stage 3&#039;&#039;&#039; Client’s Output Correction ===&lt;br /&gt;
 &lt;br /&gt;
*Input:  Classical output state (&amp;lt;math&amp;gt;l\in\{0,1\}^{\lambda}&amp;lt;/math&amp;gt;), encrypted Pauli corrections  (&amp;lt;math&amp;gt;\tilde{z},\tilde{x}&amp;lt;/math&amp;gt;)&lt;br /&gt;
*Output:  Decrypted classical message (&amp;lt;math&amp;gt;l\oplus x&amp;lt;/math&amp;gt;)&lt;br /&gt;
**&#039;&#039;&#039;Decryption (FHE.Dec&amp;lt;math&amp;gt;_{sk}&amp;lt;/math&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
#	 Client decrypts &amp;lt;math&amp;gt;\tilde{z},\tilde{x}&amp;lt;/math&amp;gt; using &amp;lt;math&amp;gt;sk_{L+1}&amp;lt;/math&amp;gt; to obtain &amp;lt;math&amp;gt;z,x&amp;lt;/math&amp;gt;. &lt;br /&gt;
#	 She then uses the decrypted Pauli corrections to get the correct output  &amp;lt;math&amp;gt;l\oplus x&amp;lt;/math&amp;gt;.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
In case of Quantum Input, the client additionally sends quantum one tie padded input state. In case of quantum output the Server instead of classical outcome sends the final quantum one time padded output state (operated by the required circuit). Client gets the output by using the updated encryption sent by the server to perform Pauli corrections on the output state. This protocol is first and only protocol currently, to use a classical functionality to solve a quantum task. It provides computationally security. Verification of this protocol is still an open question.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Shraddha Singh&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:CFHEQC_Client.PNG&amp;diff=3751</id>
		<title>File:CFHEQC Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:CFHEQC_Client.PNG&amp;diff=3751"/>
		<updated>2019-07-15T22:53:00Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:CFHEQC_Server.PNG&amp;diff=3750</id>
		<title>File:CFHEQC Server.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:CFHEQC_Server.PNG&amp;diff=3750"/>
		<updated>2019-07-15T22:52:12Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Oblivious_Transfer&amp;diff=3749</id>
		<title>Quantum Oblivious Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Oblivious_Transfer&amp;diff=3749"/>
		<updated>2019-07-15T22:43:55Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Oblivious transfer (OT) is a cryptographic primitive between two parties, sender and receiver. It is generally used as a building block for secure multi-party computation such as bit commitment. The functionality of OT is the following: Sender sends two bits/qubits to the receiver and the receiver can choose to receive only one of them. The protocol is secure when none of the parties obtain an information they are not supposed to obtain i.e. sender does not know which bit/qubit the receiver has chosen, and the receiver does not obtain information about the other bit/qubit. &lt;br /&gt;
This [https://link.springer.com/chapter/10.1007/3-540-46766-1_29 example protocol] achieves the task of practical OT where it can be realised with available optoelectronic apparatus while being computationally secure. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Two Party Protocols|Two Party Protocols]], [[:Category:Quantum Enhanced Classical Functionality|Quantum Enhanced Classical Functionality]], [[:Category:Specific Task|Specific Task]]&lt;br /&gt;
[[Category:Two Party Protocols]] [[Category:Quantum Enhanced Classical Functionality]][[Category:Specific Task]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Experimental constraints==&lt;br /&gt;
&lt;br /&gt;
* The demonstration of quantum oblivious transfer uses the transmission consisting of series of highly attenuated pulses of coherent or incoherent polarized light rather than individual photons.&lt;br /&gt;
* The receiver measures the pulses using noisy, imperfectly quantum-efficient detectors such as photomultiplier tubes.&lt;br /&gt;
* The protocol is a streaming protocol where the receiver measures each pulses on the fly. Thus it does not require the receiver to store the pulses in a quantum memory.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&lt;br /&gt;
This section describes the quantum OT protocol [https://link.springer.com/chapter/10.1007/3-540-46766-1_29 Bennett et al.] under realistic experimental assumptions in two phases. The preparation phase, followed by the computation phase. &lt;br /&gt;
&lt;br /&gt;
===Preparation phase===&lt;br /&gt;
&lt;br /&gt;
The protocol is adjusted to the physical limitations of the receiver&#039;s detection apparatus.&lt;br /&gt;
&lt;br /&gt;
The receiver conveys to the sender the experimental imperfections of his detectors i.e. the quantum efficiency and dark count rate.&lt;br /&gt;
&lt;br /&gt;
The sender conveys the intensity of the light pulses she will use which conveys the information about the fraction of sender&#039;s pulses that will be detected successfully by the receiver, and the bit error rate she will be willing to correct in his data to compensate for his dark counts and other noise sources in the detector.&lt;br /&gt;
&lt;br /&gt;
The sender and receiver agree on the security parameter of the OT protocol and on the linear binary error-correcting code.&lt;br /&gt;
&lt;br /&gt;
Finally, they perform a test run to verify that the receiver indeed detects the sender pulses with the said probability and error rate.&lt;br /&gt;
&lt;br /&gt;
===Computation phase===&lt;br /&gt;
&lt;br /&gt;
The sender sends a random sequence of highly attenuated coherent pulses of the four canonical polarizations from the standard basis and the Hadamard basis.&lt;br /&gt;
&lt;br /&gt;
The receiver randomly decides for each pulse whether to measure it in the standard or the Hadamard basis, and records the basis and measurement results. The receiver then reports the arrival times of all pulses he received to the sender, but not the bases or the measurement results.&lt;br /&gt;
&lt;br /&gt;
The sender then conveys to the receiver the bases measurement she used for each of the pulses received by the receiver. &lt;br /&gt;
&lt;br /&gt;
The receiver partitions his pulses into two sets: a “good” set consisting of pulses he received in the correct basis, and a “bad” set consisting of pulses he received in the incorrect basis.&lt;br /&gt;
He tells the sender the addresses of the two sets without telling which is the good and which is the bad one.&lt;br /&gt;
Now, the receiver shares with the sender a word corresponding to his good set of measurements; he shares nothing with her with respect to his bad set of measurements.&lt;br /&gt;
The sender does not know which word she shares with the receiver.&lt;br /&gt;
&lt;br /&gt;
Using the error-correcting code, sender computes the syndromes of the words corresponding to each set, and she sends them to the receiver over an error free channel.&lt;br /&gt;
Given this data, the receiver is able to recover the original word corresponding to his good set but not that corresponding to his bad set.&lt;br /&gt;
Furthermore, the sender computes the parity of a random subset of each set, and tells the receiver the addresses defining these random subsets, but not the resulting parities.&lt;br /&gt;
At this point, the receiver knows one of these parities exactly, and nothing about the other parity, and he knows which parity he knows.&lt;br /&gt;
The sender knows both parities, but she does not know which one the receiver knows.&lt;br /&gt;
&lt;br /&gt;
The receiver tells the sender whether the index of the parity he knows and the index of the bit he wishes to know are equal.&lt;br /&gt;
If they are equal, sender gives the xor of same indexed bit and the parity, otherwise she gives him the xor of opposite indexed bit and the parity.&lt;br /&gt;
From this, the receiver extracts the desired bit.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;b_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b_1&amp;lt;/math&amp;gt;: The two one-bit messages of the sender out of which one is to be received by the receiver.&lt;br /&gt;
* &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;: Quantum efficiency of receiver&#039;s detectors.&lt;br /&gt;
* &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;: Dark count rate of receiver&#039;s detectors.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;: Intensity of light pulses used by the sender.&lt;br /&gt;
* &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;: Fraction of pulses sender will expect receiver to detect successfully.&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;: Bit error rate sender will be willing to correct in receiver&#039;s data to compensate for his dark counts and other noise sources&lt;br /&gt;
* &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;: Security parameter, bits twice the number of which wil be used in communication&lt;br /&gt;
* &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;: Parities of the two random subsets of each set.&lt;br /&gt;
* &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;: Receiver&#039;s choice of the one-bit message.&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{c}&amp;lt;/math&amp;gt;: Index of the set whose parity is known to the receiver.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
* Basic state preparation and measurement devices.&lt;br /&gt;
* Access to an error-free classical channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:QOT_Sender.PNG|center|Quantum Oblivious Transfer (Sender)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:QOT_Receiver.PNG|center|Quantum Oblivious Transfer (Receiver)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&lt;br /&gt;
* Nothing is known about the unconditional security of our protocol against coherent measurement attack&lt;br /&gt;
* Any attack consistent with quantum physics can be thwarted from a computational point of view under the assumption that one-way functions exist&lt;br /&gt;
* Any attack on the protocol must be carried out &#039;on-line&#039;, that is when the protocol is taking place.&lt;br /&gt;
* Safe oblivious transfer can be achieved when H(~E) &amp;lt; - (1 - e-p - pe-@)/2a, where H is the entropy function. If this condition cannot be met, the sender aborts the protocol.&lt;br /&gt;
* There is no need of quantum memory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&lt;br /&gt;
===Preparation phase===&lt;br /&gt;
&lt;br /&gt;
# The receiver tells the sender the quantum efficiency &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; and the dark count rate &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; of his detectors.&lt;br /&gt;
# If satisfactory, the sender tells the receiver the value of &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Then they agree on a linear binary error-correcting code capable of correcting with very high probability N-bit words transmitted with expected error rate &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Finally, both the parties perform a test run.&lt;br /&gt;
## The sender sends pulses of intensity &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; in a prearranged sequence of polarizations.&lt;br /&gt;
## The receiver reads each pulse in the correct basis&lt;br /&gt;
## He then verifies if he can detect the pulses with probability greater than &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and error rate less than &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Computation phase===&lt;br /&gt;
&lt;br /&gt;
# The sender sends a random sequence of &amp;lt;math&amp;gt;2N/a&amp;lt;/math&amp;gt; pulses in either of &amp;lt;math&amp;gt;\{|0\rangle, |1\rangle, |+\rangle, |-\rangle\}&amp;lt;/math&amp;gt; states.&lt;br /&gt;
# The receiver obtains roughly &amp;lt;math&amp;gt;2N&amp;lt;/math&amp;gt; pulses after measuring each of them randomly in the standard or the Hadamard basis. He records the basis and the measurement.&lt;br /&gt;
# He then reports to the sender the arrival times of all 2N pulses he received, but not the bases he used or his measurement results.&lt;br /&gt;
# The sender then tells the receiver the bases she used to send each of the pulses he received.&lt;br /&gt;
# The receiver creates two sets: a “good” set consisting of pulses he received in the correct basis, and a “bad” set consisting of pulses he received in the wrong basis.&lt;br /&gt;
# He tells the sender the addresses of the two sets without telling which is the good and which is the bad one.&lt;br /&gt;
# Now, the receiver shares with the sender a &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-bit string corresponding to his good set and nothing with respect to his bad set of measurements.&lt;br /&gt;
# Using the error-correcting code, sender computes the syndromes of the words corresponding to each set, and she sends them to the receiver over an errorfree channel.&lt;br /&gt;
# The receiver recovers the original word corresponding to his good set and gets to know nohing about the bad set.&lt;br /&gt;
# The sender now computes the parity of a random subset of each set and tells the receiver the addresses defining these random subsets.&lt;br /&gt;
# The receiver knows one of these parities, indexed &amp;lt;math&amp;gt;\hat{c}&amp;lt;/math&amp;gt;, and nothing about the other parity, and he knows which parity he knows.&lt;br /&gt;
# The sender knows both the parities &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt;, but does not know which one the receiver knows.&lt;br /&gt;
# The receiver tells the sender whether or not &amp;lt;math&amp;gt;c = \hat{c}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# If &amp;lt;math&amp;gt;c = \hat{c}&amp;lt;/math&amp;gt;, sender sends &amp;lt;math&amp;gt;x_0 \oplus b_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_1 \oplus b_1&amp;lt;/math&amp;gt;, else, she sends &amp;lt;math&amp;gt;x_0 \oplus b_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_1 \oplus b_0&amp;lt;/math&amp;gt;.&lt;br /&gt;
# From this, the receiver extracts &amp;lt;math&amp;gt;b_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Further Information ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Natansh Mathur&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:QOT_Receiver.PNG&amp;diff=3748</id>
		<title>File:QOT Receiver.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:QOT_Receiver.PNG&amp;diff=3748"/>
		<updated>2019-07-15T22:42:47Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:QOT_Sender.PNG&amp;diff=3747</id>
		<title>File:QOT Sender.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:QOT_Sender.PNG&amp;diff=3747"/>
		<updated>2019-07-15T22:42:00Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Wiesner_Quantum_Money&amp;diff=3746</id>
		<title>Wiesner Quantum Money</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Wiesner_Quantum_Money&amp;diff=3746"/>
		<updated>2019-07-15T22:38:52Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The classical money scheme involves the Bank distributing notes to untrusted users. Each note has a unique serial number attached to it and this number provides a basis for the verification of the note when the user wants to use it for a transaction. However, in the classical world, nothing prevents a user with sufficient resources to be able to forge the note and create more notes than what he originally had in possession. In the 1980s, Wiesner proposed the idea of quantum money to create unforgeable bank notes. The unforgeability of the note relied on the no-cloning property of quantum mechanics. In this [http://users.cms.caltech.edu/~vidick/teaching/120_qcrypto/wiesner.pdf example protocol], the banknotes are several&lt;br /&gt;
BB84 states prepared by the Bank, who then distributes them to the untrusted users. When the user needs to carry out a transaction with his note, he sends it to the Bank for verification, who then authenticates the validity of the note. Based on the no-cloning property of quantum mechanics, Wiesner showed information-theoretic security against a forger of bank notes. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category: Multi Party Protocols|Multi Party Protocols]], non-local games, [[:Category: Quantum Enhanced Classical Functionality|Quantum Enhanced Classical Functionality]], [[:Category: Specific Task|Specific Task]] &lt;br /&gt;
[[Category: Prepare and Measure Network Stage]]&lt;br /&gt;
[[Category: Specific Tasks]]&lt;br /&gt;
[[Category: Quantum Enhanced Classical Functionality]]&lt;br /&gt;
[[Category: Multi Party Protocols]]&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* The quantum money state which is a two-state system must be isolated from the rest of universe, roughly.&lt;br /&gt;
* When Wiesner wrote his thesis, there was no device operating in which the phase coherence of a two-state system was preserved for longer than about a second.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
Let the money have &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; isolated systems &amp;lt;math&amp;gt;S_i\in\{a, b, \alpha, \beta\}, i=1,...,n&amp;lt;/math&amp;gt;. &lt;br /&gt;
* The Mint creates two random binary sequences of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;  digits &amp;lt;math&amp;gt;M_i,N_i\in\{0,1\}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;i=1,...,n&amp;lt;/math&amp;gt;. Then, two-state systems are placed in one of four states &amp;lt;math&amp;gt;a, b, \alpha, \beta&amp;lt;/math&amp;gt;. &lt;br /&gt;
# Bank prepares a pair of orthonormal base states for each state system. Then the two-state system is located in one of four states &amp;lt;math&amp;gt;a, b, \alpha, \beta&amp;lt;/math&amp;gt;&lt;br /&gt;
# The bank records all polarizations and their serial numbers. On the banknote/quantum money the serial number is plain, while polarizations are kept hidden.&lt;br /&gt;
# If the money is returned to the Mint, it checks whether each isolated system is still in its initial state or not. &lt;br /&gt;
Note that since no one except the Mint knows &amp;lt;math&amp;gt;M_i&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;N_i&amp;lt;/math&amp;gt;, even if someone copies the money, he cannot recover the polarization.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
*&amp;lt;math&amp;gt;S_i&amp;lt;/math&amp;gt;= Isolated system&lt;br /&gt;
*&amp;lt;math&amp;gt;M_i,N_i&amp;lt;/math&amp;gt;= Random binary sequences&lt;br /&gt;
*&amp;lt;math&amp;gt;a,b,\alpha,\beta&amp;lt;/math&amp;gt;= States &lt;br /&gt;
==Requirements== &lt;br /&gt;
* Network stage: quantum memory network&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:WQM_Mint.PNG|center|Wiesner Quantum Money (Mint)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:WQM_Client.PNG|center|Wiesner Quantum Money (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties== &lt;br /&gt;
* The scheme requires a central bank for verifying the money&lt;br /&gt;
* Pairs of conjugate variables has the same relation with Heisenberg uncertainty principle&lt;br /&gt;
* The success probability of the adversary in guessing the state of the target quantum money is &amp;lt;math&amp;gt;(3/4)^n&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: ​Product state of &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; qubit and a serial number&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: ​approved/rejected &amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Stage 1: Preparation&#039;&#039;&#039;&lt;br /&gt;
# The Mint generate a quantum money composed of two component &amp;lt;math&amp;gt;(|S\rangle,k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is the serial number of the banknote and &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; is a product state of &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; qubits. Each qubit is randomly chosen from the set &amp;lt;math&amp;gt;\{|0\rangle,|1\rangle,|+\rangle,|-\rangle\}&amp;lt;/math&amp;gt; &lt;br /&gt;
# Serial numbers and their states are recorded and kept at the Mint&lt;br /&gt;
&#039;&#039;&#039;Stage 2: Verification&#039;&#039;&#039; &lt;br /&gt;
# The Mint looks for the serial number and the corresponding measurement basis in its database. Thus, each qubit is measured in the right basis,&amp;lt;math&amp;gt;\{|0\rangle,|1\rangle\}&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;\{|+\rangle,|-\rangle\}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# The Mint outputs 1 if the result of the measurement corresponds with the data stored in its database, otherwise it returns 0.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
http://users.cms.caltech.edu/~vidick/teaching/120_qcrypto/wiesner.pdf&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;contributed by Gözde Üstün&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:WQM_Client.PNG&amp;diff=3745</id>
		<title>File:WQM Client.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:WQM_Client.PNG&amp;diff=3745"/>
		<updated>2019-07-15T22:37:51Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=File:WQM_Mint.PNG&amp;diff=3744</id>
		<title>File:WQM Mint.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=File:WQM_Mint.PNG&amp;diff=3744"/>
		<updated>2019-07-15T22:37:22Z</updated>

		<summary type="html">&lt;p&gt;Natansh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Token&amp;diff=3743</id>
		<title>Quantum Token</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Token&amp;diff=3743"/>
		<updated>2019-07-15T22:31:45Z</updated>

		<summary type="html">&lt;p&gt;Natansh: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Money is issued by one party (bank) to a prover (client) such that when he presents it to a verifier&lt;br /&gt;
(merchant), he/she is satisfied that the money presented by client comes from the bank. It comes&lt;br /&gt;
with the property of [[unforgeability]] and [[transferability]]. Unforgeability means that there should exist&lt;br /&gt;
no method to produce an identical copy by anyone but the bank, and transferability allows that this&lt;br /&gt;
money can be used by the verifier as a client himself in the next round.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category: Multi Party Protocols|Multi Party Protocols]], non local games, [[:Category: Quantum Enhanced Classical Functionality|Quantum Enhanced Classical Functionality]], [[:Category: Specific Task|Specific Task]] &lt;br /&gt;
[[Category: Prepare and Measure Network Stage]]&lt;br /&gt;
[[Category: Specific Tasks]]&lt;br /&gt;
[[Category: Quantum Enhanced Classical Functionality]]&lt;br /&gt;
[[Category: Multi Party Protocols]]&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* Money is physically transferred to the holders&lt;br /&gt;
* If &amp;lt;math&amp;gt;F^{cv}_{tol} &amp;gt; (1+1/\sqrt{2})/2&amp;lt;/math&amp;gt;, a dishonest user is exponentially unlikely to be authenticated by two independent verifiers (success in cheating to use the same ticket for two independent verifiers by measuring in intermediate basis between the two bases, asked by the verifiers individually).&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
The protocol can be divided into three parts&lt;br /&gt;
* &#039;&#039;&#039;Preparation&#039;&#039;&#039; Bank prepares few rows of qubit-pairs chosen from two different non-orthogonal sets of basis. Each pair has at least one state from both bases, such that the qubit pair states are non-orthogonal. It associates each such chosen set with a serial number and shares the classical information about the choices for respective serial number with trusted merchants.&lt;br /&gt;
* &#039;&#039;&#039;Interaction&#039;&#039;&#039; This step involves challenge questions by the verifier to prove that he has a valid token, by playing a part of a [[non-local game]]. In this game, the merchant asks the client to measure in one of the two bases in from which the qubit pairs were chosen. As each qubit pair contains at least one state from each basis chosen, after the measurement one of the qubits (encoded in the basis chosen by the merchant) would give the correct result. &lt;br /&gt;
* &#039;&#039;&#039;Transaction&#039;&#039;&#039; The merchant compares this qubit outcome whose encoding basis matches with merchant&#039;s basis for the game. The merchant accepts the ticket if the ratio of the number of valid outcomes to the total number of qubits measured is more than or equal to a certain threshold fidelity value.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
*&amp;lt;math&amp;gt;N=n*r*2&amp;lt;/math&amp;gt;, total number of qubits&lt;br /&gt;
*&amp;lt;math&amp;gt;F^{cv}_{tol}:&amp;lt;/math&amp;gt; is the tolerance fidelity set by the verifiers&lt;br /&gt;
*&amp;lt;math&amp;gt;F^{cv}_{tol}(r*2) &amp;lt; F^{exp}:&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt; F^{exp}&amp;lt;/math&amp;gt; is the average experimental fidelity&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
*Network stage: [[:Category: Quantum Memory Network Stage|quantum memory network]][[Category:Quantum Memory Network Stage]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:QT_Bank.PNG|center|Quantum Token (Bank)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:QT_Client.PNG|center|Quantum Token (Client)]]&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
* Challenge questions reveal no information about the token&lt;br /&gt;
* No quantum communication is needed&lt;br /&gt;
* Tokens are remotely verifiable/ classically verifiable&lt;br /&gt;
* A dishonest user is exponentially unlikely to succeed with probability at most, &amp;lt;math&amp;gt;p_d = e^{ND}(2F^{cv}_{tol}-1||2/3)&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;(2F^{cv}_{tol}-1)&amp;lt;/math&amp;gt; is the fraction of qubits to be copied in order to forge a ticket and 2/3 is the average fidelity of copies produced by optimal cloning map, D being relative entropy.&lt;br /&gt;
* An honest user is exponentially likely to succeed with probability at least, &amp;lt;math&amp;gt;p^{cv}_h = e^{ND}(F^{exp}||F^{cv}_{tol})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&#039;&#039;&#039;Input:&#039;&#039;&#039; Bank (&amp;lt;math&amp;gt;\text{n*r}&amp;lt;/math&amp;gt; qubit pairs), where, qubit-pairs &amp;lt;math&amp;gt;\epsilon_R\{(0,+),(0,-),(1,+),(1,-),(+,0),(-,0),(+,1),(-,1)\}&amp;lt;/math&amp;gt; &amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; (Merchant) accept or reject&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Stage 1&#039;&#039;&#039;&amp;lt;/u&amp;gt; Preparation &amp;lt;/br&amp;gt;&lt;br /&gt;
# Bank prepares Token&amp;lt;math&amp;gt;_S&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;n*r&amp;lt;/math&amp;gt; qubit pairs&lt;br /&gt;
# Bank distributes tickets to clients&lt;br /&gt;
# Bank distributes the classical record of states corresponding to S to trusted verifiers (merchants).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Stage 2&#039;&#039;&#039;&amp;lt;/u&amp;gt; Interaction &amp;lt;/br&amp;gt;&lt;br /&gt;
# Merchant asks client to measure a few qubit-pairs(say, a row) in a randomly chosen basis M \epsilon_R \{X,Z\}&lt;br /&gt;
# Client returns measurement outcome (m) for all qubit pairs asked to measure&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Stage 3&#039;&#039;&#039;&amp;lt;/u&amp;gt; Transaction &amp;lt;/br&amp;gt;&lt;br /&gt;
# Merchant compares the number of qubit pairs with the valid outcome for the qubit which was generated in M basis as k.&lt;br /&gt;
# Merchant accepts if &amp;lt;math&amp;gt;k/(r*2)&amp;gt;F^{cv}_{tol}&amp;lt;/math&amp;gt; else he rejects&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
# [https://arxiv.org/abs/1705.01428 BOTZKD-QMoney (2018)] replaces qubits with [[coherent states]] and it implements the quantum money on the fly (i.e. without quantum memory). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Shraddha Singh&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natansh</name></author>
	</entry>
</feed>