<?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=Chirag</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=Chirag"/>
	<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Special:Contributions/Chirag"/>
	<updated>2026-04-18T08:58:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4460</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4460"/>
		<updated>2022-02-08T23:36:11Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &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;7&amp;quot;|[[Authentication of Quantum Messages]]||[[Purity Testing based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Polynomial Code based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Clifford Code for Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Trap Code for Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Auth-QFT-Auth Scheme for Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Unitary Design Scheme for Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Naive approach using Quantum Teleportation]]&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;
|[[Copy Protection]]||[[Copy Protection of Compute and Compare Programs]]&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;
|rowspan=&amp;quot;2&amp;quot;|[[Oblivious Transfer]]||[[Quantum Oblivious Transfer]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Device-Independent 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;
|rowspan=&amp;quot;4&amp;quot;|[[Verification of Quantum Computation]]||[[Interactive Proofs for Quantum Computation|Quantum Prover Interactive Proofs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of NP-complete problems]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Sub-Universal Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Classical Verification of Universal Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&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;
|[[Practical Quantum Electronic Voting]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Weak String Erasure]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|[[Entanglement Routing]]||[[Distributed Routing in a Quantum Internet]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Routing Entanglement in the Quantum Internet]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributing Graph States Over Arbitrary Quantum Networks]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|[[Quantum Conference Key Agreement]]||[[Anonymous Conference Key Agreement using GHZ states]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|[[Quantum Encryption with Certified Deletion]]||[[Prepare-and-Measure Certified Deletion]]&lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Encryption_with_Certified_Deletion&amp;diff=4459</id>
		<title>Quantum Encryption with Certified Deletion</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Encryption_with_Certified_Deletion&amp;diff=4459"/>
		<updated>2022-02-08T23:31:30Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Functionality page describes a general task which can be realised in a quantum network --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Description: A lucid definition of functionality in discussion.--&amp;gt;&lt;br /&gt;
==Functionality==&lt;br /&gt;
This functionality allows encryption of classical data into a quantum ciphertext so that the recipient of the ciphertext can produce a deletion certificate (a classical string) which proves to the originator that the recipient can no longer obtain the original plaintext should the decryption key be revealed.&lt;br /&gt;
&lt;br /&gt;
A Certified Deletion Encryption (CDE) scheme usually consists of the following 5 algorithms:&lt;br /&gt;
* &#039;&#039;KeyGen:&#039;&#039; This algorithm generates the key used in later stages&lt;br /&gt;
* &#039;&#039;Enc:&#039;&#039; This algorithm encrypts the classical plaintext into a quantum ciphertext&lt;br /&gt;
* &#039;&#039;Dec:&#039;&#039; This algorithm decrypts the quantum ciphertext to recover the classical plaintext&lt;br /&gt;
* &#039;&#039;Del:&#039;&#039; This algorithm deletes the ciphertext and generates a deletion certificate&lt;br /&gt;
* &#039;&#039;Ver:&#039;&#039; This algorithm verifies the deletion certificate&lt;br /&gt;
&amp;lt;!-- Tags Any related page or list of protocols is connected by this section--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- All properties that should be satisfied by any protocol achieving the concerned functionality and other common terminologies used in all the protocols.--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Decryption-correctness&#039;&#039;&#039;: Given the ciphertext and the associated key, the probability that &#039;&#039;Dec&#039;&#039; does not output the correct plaintext is negligible in the security parameter&lt;br /&gt;
* &#039;&#039;&#039;Verification-correctness&#039;&#039;&#039;: Given a valid deletion certificate and its associated key, the probability that &#039;&#039;Ver&#039;&#039; does not accept the certificate is negligible in the security parameter&lt;br /&gt;
* &#039;&#039;&#039;Certified Deletion Security&#039;&#039;&#039;: Once the deletion certificate is issued, it becomes impossible to decrypt the certificate, even if the key is later leaked.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
&amp;lt;!-- List of different types of example protocol achieving the functionality--&amp;gt;&lt;br /&gt;
*[[Prepare-and-Measure Certified Deletion]]&lt;br /&gt;
*[[Public Key Encryption with Certified Deletion]]&lt;br /&gt;
*[[Attribute-Based Encryption with Certified Deletion]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [https://arxiv.org/abs/1910.03551 Broadbent &amp;amp; Islam (2019) ]&lt;br /&gt;
* [https://arxiv.org/abs/2105.05393 Hiroka et al. (2021)]&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4458</id>
		<title>Prepare-and-Measure Certified Deletion</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4458"/>
		<updated>2022-02-08T23:25:14Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/1910.03551 example protocol] implements the functionality of Quantum Encryption with Certified Deletion using single-qubit state preparation and measurement. This scheme is limited to the single-use, private-key setting.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* &#039;&#039;&#039;Network Stage: &#039;&#039;&#039; [[:Category:Prepare and Measure Network Stage| Prepare and Measure]]&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
The scheme consists of 5 circuits-&lt;br /&gt;
* &#039;&#039;Key&#039;&#039;: This circuit generates the key used in later stages&lt;br /&gt;
* &#039;&#039;Enc&#039;&#039;: This circuit encrypts the message using the key&lt;br /&gt;
* &#039;&#039;Dec&#039;&#039;: This circuit decrypts the ciphertext using the key and generates an error flag bit&lt;br /&gt;
* &#039;&#039;Del&#039;&#039;: This circuit deletes the ciphertext state and generates a deletion certificate&lt;br /&gt;
* &#039;&#039;Ver&#039;&#039;: This circuit verifies the validity of the deletion certificate using the key  &lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* For any string &amp;lt;math&amp;gt;x \in \{0,1\}^n&amp;lt;/math&amp;gt; and set &amp;lt;math&amp;gt;\mathcal{I} \subseteq [n], x|_\mathcal{I}&amp;lt;/math&amp;gt; denotes the string &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; restricted to the bits indexed by &amp;lt;math&amp;gt;\mathcal{I}&amp;lt;/math&amp;gt;&lt;br /&gt;
* For &amp;lt;math&amp;gt;x,\theta \in \{0,1\}^n, |x^\theta\rangle = H^\theta|x\rangle = H^{\theta_1}|x_1\rangle \otimes H^{\theta_2}|x_2\rangle \otimes ... \otimes H^{\theta_n}|x_n\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{Q} := \mathbb{C}^2&amp;lt;/math&amp;gt; denotes the state space of a single qubit,&amp;lt;math&amp;gt;\mathcal{Q}(n) := \mathcal{Q}^{\otimes n}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{D(H)}&amp;lt;/math&amp;gt; denotes the set of density operators on a Hilbert space &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;: Length, in bits, of the message&lt;br /&gt;
* &amp;lt;math&amp;gt;\omega : \{0,1\} \rightarrow \mathbb{N}&amp;lt;/math&amp;gt; : Hamming weight function&lt;br /&gt;
* &amp;lt;math&amp;gt;m = \kappa(\lambda)&amp;lt;/math&amp;gt;: Total number of qubits sent from encrypting party to decrypting party&lt;br /&gt;
* &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;: Length, in bits, of the string used for verification of deletion&lt;br /&gt;
* &amp;lt;math&amp;gt;s = m - k&amp;lt;/math&amp;gt;: Length, in bits, of the string used for extracting randomness&lt;br /&gt;
* &amp;lt;math&amp;gt;\tau = \tau(\lambda)&amp;lt;/math&amp;gt;: Length, in bits, of error correction hash&lt;br /&gt;
* &amp;lt;math&amp;gt;\mu = \mu(\lambda)&amp;lt;/math&amp;gt;: Length, in bits, of error syndrome&lt;br /&gt;
* &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;: Basis in which the encrypting party prepare her quantum state&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;: Threshold error rate for the verification test&lt;br /&gt;
* &amp;lt;math&amp;gt;\Theta&amp;lt;/math&amp;gt;: Set of possible bases from which \theta is chosen&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathfrak{H}_{pa}&amp;lt;/math&amp;gt;: Universal&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt; family of hash functions used in the privacy amplification scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;: Universal&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt; family of hash functions used in the error correction scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;H_{pa}&amp;lt;/math&amp;gt;: Hash function used in the privacy amplification scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;H_{ec}&amp;lt;/math&amp;gt;: Hash function used in the error correction scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;synd&amp;lt;/math&amp;gt;: Function that computes the error syndrome&lt;br /&gt;
* &amp;lt;math&amp;gt;corr&amp;lt;/math&amp;gt;: Function that computes the corrected string&lt;br /&gt;
&amp;lt;!--==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
===Circuit 1: &#039;&#039;Key&#039;&#039;===&lt;br /&gt;
The key generation circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input &#039;&#039;&#039;: None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: A key state &amp;lt;math&amp;gt;\rho \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;\theta \gets \Theta&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt; r|_{\tilde{\mathcal{I}}} \gets \{0,1\}^k&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\tilde{\mathcal{I}} = \{i \in [m] | \theta_i = 1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;u \gets \{0,1\}^n&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;d \gets \{0,1\}^\mu&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;e \gets \{0,1\}^\tau&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;H_{pa} \gets \mathfrak{H}_{pa}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;H_{ec} \gets \mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho = | r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| &amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 2: &#039;&#039;Enc&#039;&#039;===&lt;br /&gt;
The encryption circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A plaintext state &amp;lt;math&amp;gt;|\mathrm{msg}\rangle\langle\mathrm{msg}|&amp;lt;/math&amp;gt; and a key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A ciphertext state &amp;lt;math&amp;gt;\rho \in \mathcal{D}(\mathcal{Q}(m+n+\tau+\mu))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;r|_\mathcal{I} \gets \{0,1\}^s&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]| \theta_i = 0 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;x = H_{pa}(r|_\mathcal{I})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]| \theta_i = 0 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;p = H_{ec}(r|_\mathcal{I}) \oplus d&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;q = \mathrm{synd}(r|_\mathcal{I})\oplus e&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho = |r^\theta\rangle\langle r^\theta |\otimes|\mathrm{msg}\oplus x \oplus u,p,q\rangle\langle \mathrm{msg}\oplus x \oplus u,p,q |&amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 3: &#039;&#039;Dec&#039;&#039;===&lt;br /&gt;
The decryption circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt; and a ciphertext &amp;lt;math&amp;gt;\rho \otimes |c,p,q\rangle\langle c,p,q| \in \mathcal{D}(\mathcal{Q}(m + n + \mu + \tau)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A plaintext state &amp;lt;math&amp;gt;\sigma \in \mathcal{D}(\mathcal{Q}(n))&amp;lt;/math&amp;gt; and an error flag &amp;lt;math&amp;gt;\gamma \in \mathcal{D}(\mathcal{Q})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;\rho^\prime = \mathrm{H}^\theta \rho \mathrm{H}^\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
# Measure &amp;lt;math&amp;gt;\rho^\prime&amp;lt;/math&amp;gt; in the computational basis. Call the result &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;r^\prime = \mathrm{corr}(r|_\mathcal{I},q\oplus e)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]|\theta_i =0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;p^\prime = H_{ec}(r^\prime) \oplus d &amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;p \neq p^\prime&amp;lt;/math&amp;gt;, then set &amp;lt;math&amp;gt;\gamma = |0\rangle\langle 0|&amp;lt;/math&amp;gt;. Else, set &amp;lt;math&amp;gt;\gamma = |1\rangle\langle 1|&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;x^\prime = H_{pa}(r^\prime)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho \otimes \gamma = |c\oplus x^\prime \oplus u \rangle \langle c\oplus x^\prime \oplus u| \otimes \gamma &amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 4: &#039;&#039;Del&#039;&#039;===&lt;br /&gt;
The deletion circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A ciphertext &amp;lt;math&amp;gt;\rho \otimes |c,p,q\rangle\langle c,p,q| \in \mathcal{D}(\mathcal{Q}(m+n+\mu+\tau))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A certificate string &amp;lt;math&amp;gt;\sigma \in \mathcal{D}(\mathcal{Q}(m))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Measure &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; in the Hadamard basis. Call the output y.&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\sigma = |y\rangle\langle y|&amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 5: &#039;&#039;Ver&#039;&#039;===&lt;br /&gt;
The verification circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt; and a certificate string &amp;lt;math&amp;gt;|y\rangle\langle y| \in \mathcal{D}(\mathcal{Q}(m))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A bit&lt;br /&gt;
&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;\hat y^\prime = \hat y|_\mathcal{\tilde{I}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt; \mathcal{\tilde{I}} = \{i \in [m] | \theta_i = 1 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;q = r|_\tilde{\mathcal{I}}&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;\omega(q\oplus \hat y^\prime) &amp;lt; k\delta&amp;lt;/math&amp;gt;, output &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. Else, output &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
This scheme has the following properties:&lt;br /&gt;
*&#039;&#039;&#039;Correctness&#039;&#039;&#039;: The scheme includes syndrome and correction functions and is thus robust against a certain amount of noise, i.e. below a certain noise threshold, the decryption circuit outputs the original message with high probability.&lt;br /&gt;
*&#039;&#039;&#039;Ciphertext Indistinguishability&#039;&#039;&#039;: This notion implies that an adversary, given a ciphertext, cannot discern whether the original plaintext was a known message or a dummy plaintext &amp;lt;math&amp;gt;0^n&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Certified Deletion Security&#039;&#039;&#039;: After producing a valid deletion certificate, the adversary cannot obtain the original message, even if the key is leaked (after deletion).&lt;br /&gt;
==References==&lt;br /&gt;
* The scheme along with its formal security definitions and their proofs can be found in [https://arxiv.org/abs/1910.03551 Broadbent &amp;amp; Islam (2019)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Encryption_with_Certified_Deletion&amp;diff=4457</id>
		<title>Quantum Encryption with Certified Deletion</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Encryption_with_Certified_Deletion&amp;diff=4457"/>
		<updated>2022-02-07T21:36:46Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Created functionality page for CDE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Functionality page describes a general task which can be realised in a quantum network --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Description: A lucid definition of functionality in discussion.--&amp;gt;&lt;br /&gt;
==Functionality==&lt;br /&gt;
This functionality allows encryption of classical data into a quantum ciphertext so that the recipient of the ciphertext can produce a deletion certificate (a classical string) which proves to the originator that the recipient can no longer obtain the original plaintext should the decryption key be revealed.&lt;br /&gt;
&lt;br /&gt;
A Certified Deletion Encryption (CDE) scheme usually consists of the following 5 algorithms:&lt;br /&gt;
* &#039;&#039;KeyGen:&#039;&#039; This algorithm generates the key used in later stages&lt;br /&gt;
* &#039;&#039;Enc:&#039;&#039; This algorithm encrypts the classical plaintext into a quantum ciphertext&lt;br /&gt;
* &#039;&#039;Dec:&#039;&#039; This algorithm decrypts the quantum ciphertext to recover the classical plaintext&lt;br /&gt;
* &#039;&#039;Del:&#039;&#039; This algorithm deletes the ciphertext and generates a deletion certificate&lt;br /&gt;
* &#039;&#039;Ver:&#039;&#039; This algorithm verifies the deletion certificate&lt;br /&gt;
&amp;lt;!-- Tags Any related page or list of protocols is connected by this section--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- All properties that should be satisfied by any protocol achieving the concerned functionality and other common terminologies used in all the protocols.--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Decryption-correctness&#039;&#039;&#039;: Given the ciphertext and the associated key, the probability that &#039;&#039;Dec&#039;&#039; does not output the correct plaintext is negligible in the security parameter&lt;br /&gt;
* &#039;&#039;&#039;Verification-correctness&#039;&#039;&#039;: Given a valid deletion certificate and its associated key, the probability that &#039;&#039;Ver&#039;&#039; does not accept the certificate is negligible in the security parameter&lt;br /&gt;
* &#039;&#039;&#039;Certified Deletion Security&#039;&#039;&#039;: Once the deletion certificate is issued, it becomes impossible to decrypt the certificate, even if the key is later leaked.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
&amp;lt;!-- List of different types of example protocol achieving the functionality--&amp;gt;&lt;br /&gt;
*[[Prepare-and-Measure Certified Deletion]]&lt;br /&gt;
*[[Public Key Encryption with Certified Deletion]]&lt;br /&gt;
*[[Attribute-Based Encryption with Certified Deletion]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [https://arxiv.org/abs/1910.03551 Broadbent &amp;amp; Islam (2019) ]&lt;br /&gt;
* [https://arxiv.org/abs/2105.05393 Hiroka et al. (2021)]&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4456</id>
		<title>Prepare-and-Measure Certified Deletion</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4456"/>
		<updated>2022-02-05T18:21:58Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/1910.03551 example protocol] implements the functionality of Quantum Encryption with Certified Deletion using single-qubit state preparation and measurement. This scheme is limited to the single-use, private-key setting.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* &#039;&#039;&#039;Network Stage: &#039;&#039;&#039; [[:Category:Prepare and Measure Network Stage| Prepare and Measure]]&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
The scheme consists of 5 circuits-&lt;br /&gt;
* &#039;&#039;Key&#039;&#039;: This circuit generates the key used in later stages&lt;br /&gt;
* &#039;&#039;Enc&#039;&#039;: This circuit encrypts the message using the key&lt;br /&gt;
* &#039;&#039;Dec&#039;&#039;: This circuit decrypts the ciphertext using the key and generates an error flag bit&lt;br /&gt;
* &#039;&#039;Del&#039;&#039;: This circuit deletes the ciphertext state and generates a deletion certificate&lt;br /&gt;
* &#039;&#039;Ver&#039;&#039;: This circuit verifies the validity of the deletion certificate using the key  &lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* For any string &amp;lt;math&amp;gt;x \in \{0,1\}^n&amp;lt;/math&amp;gt; and set &amp;lt;math&amp;gt;\mathcal{I} \subseteq [n], x|_\mathcal{I}&amp;lt;/math&amp;gt; denotes the string &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; restricted to the bits indexed by &amp;lt;math&amp;gt;\mathcal{I}&amp;lt;/math&amp;gt;&lt;br /&gt;
* For &amp;lt;math&amp;gt;x,\theta \in \{0,1\}^n, |x^\theta\rangle = H^\theta|x\rangle = H^{\theta_1}|x_1\rangle \otimes H^{\theta_2}|x_2\rangle \otimes ... \otimes H^{\theta_n}|x_n\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{Q} := \mathbb{C}^2&amp;lt;/math&amp;gt; denotes the state space of a single qubit,&amp;lt;math&amp;gt;\mathcal{Q}(n) := \mathcal{Q}^{\otimes n}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{D(H)}&amp;lt;/math&amp;gt; denotes the set of density operators on a Hilbert space &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;: Length, in bits, of the message&lt;br /&gt;
* &amp;lt;math&amp;gt;m = \kappa(\lambda)&amp;lt;/math&amp;gt;: Total number of qubits sent from encrypting party to decrypting party&lt;br /&gt;
* &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;: Length, in bits, of the string used for verification of deletion&lt;br /&gt;
* &amp;lt;math&amp;gt;s = m - k&amp;lt;/math&amp;gt;: Length, in bits, of the string used for extracting randomness&lt;br /&gt;
* &amp;lt;math&amp;gt;\tau = \tau(\lambda)&amp;lt;/math&amp;gt;: Length, in bits, of error correction hash&lt;br /&gt;
* &amp;lt;math&amp;gt;\mu = \mu(\lambda)&amp;lt;/math&amp;gt;: Length, in bits, of error syndrome&lt;br /&gt;
* &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;: Basis in which the encrypting party prepare her quantum state&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;: Threshold error rate for the verification test&lt;br /&gt;
* &amp;lt;math&amp;gt;\Theta&amp;lt;/math&amp;gt;: Set of possible bases from which \theta is chosen&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathfrak{H}_{pa}&amp;lt;/math&amp;gt;: Universal&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt; family of hash functions used in the privacy amplification scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;: Universal&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt; family of hash functions used in the error correction scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;H_{pa}&amp;lt;/math&amp;gt;: Hash function used in the privacy amplification scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;H_{ec}&amp;lt;/math&amp;gt;: Hash function used in the error correction scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;synd&amp;lt;/math&amp;gt;: Function that computes the error syndrome&lt;br /&gt;
* &amp;lt;math&amp;gt;corr&amp;lt;/math&amp;gt;: Function that computes the corrected string&lt;br /&gt;
&amp;lt;!--==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
===Circuit 1: &#039;&#039;Key&#039;&#039;===&lt;br /&gt;
The key generation circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input &#039;&#039;&#039;: None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: A key state &amp;lt;math&amp;gt;\rho \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;\theta \gets \Theta&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt; r|_{\tilde{\mathcal{I}}} \gets \{0,1\}^k&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\tilde{\mathcal{I}} = \{i \in [m] | \theta_i = 1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;u \gets \{0,1\}^n&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;d \gets \{0,1\}^\mu&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;e \gets \{0,1\}^\tau&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;H_{pa} \gets \mathfrak{H}_{pa}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;H_{ec} \gets \mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho = | r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| &amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 2: &#039;&#039;Enc&#039;&#039;===&lt;br /&gt;
The encryption circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A plaintext state &amp;lt;math&amp;gt;|\mathrm{msg}\rangle\langle\mathrm{msg}|&amp;lt;/math&amp;gt; and a key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A ciphertext state &amp;lt;math&amp;gt;\rho \in \mathcal{D}(\mathcal{Q}(m+n+\tau+\mu))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;r|_\mathcal{I} \gets \{0,1\}^s&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]| \theta_i = 0 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;x = H_{pa}(r|_\mathcal{I})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]| \theta_i = 0 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;p = H_{ec}(r|_\mathcal{I}) \oplus d&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;q = \mathrm{synd}(r|_\mathcal{I})\oplus e&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho = |r^\theta\rangle\langle r^\theta |\otimes|\mathrm{msg}\oplus x \oplus u,p,q\rangle\langle \mathrm{msg}\oplus x \oplus u,p,q |&amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 3: &#039;&#039;Dec&#039;&#039;===&lt;br /&gt;
The decryption circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt; and a ciphertext &amp;lt;math&amp;gt;\rho \otimes |c,p,q\rangle\langle c,p,q| \in \mathcal{D}(\mathcal{Q}(m + n + \mu + \tau)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A plaintext state &amp;lt;math&amp;gt;\sigma \in \mathcal{D}(\mathcal{Q}(n))&amp;lt;/math&amp;gt; and an error flag &amp;lt;math&amp;gt;\gamma \in \mathcal{D}(\mathcal{Q})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;\rho^\prime = \mathrm{H}^\theta \rho \mathrm{H}^\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
# Measure &amp;lt;math&amp;gt;\rho^\prime&amp;lt;/math&amp;gt; in the computational basis. Call the result &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;r^\prime = \mathrm{corr}(r|_\mathcal{I},q\oplus e)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]|\theta_i =0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;p^\prime = H_{ec}(r^\prime) \oplus d &amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;p \neq p^\prime&amp;lt;/math&amp;gt;, then set &amp;lt;math&amp;gt;\gamma = |0\rangle\langle 0|&amp;lt;/math&amp;gt;. Else, set &amp;lt;math&amp;gt;\gamma = |1\rangle\langle 1|&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;x^\prime = H_{pa}(r^\prime)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho \otimes \gamma = |c\oplus x^\prime \oplus u \rangle \langle c\oplus x^\prime \oplus u| \otimes \gamma &amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 4: &#039;&#039;Del&#039;&#039;===&lt;br /&gt;
The deletion circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A ciphertext &amp;lt;math&amp;gt;\rho \otimes |c,p,q\rangle\langle c,p,q| \in \mathcal{D}(\mathcal{Q}(m+n+\mu+\tau))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A certificate string &amp;lt;math&amp;gt;\sigma \in \mathcal{D}(\mathcal{Q}(m))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Measure &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; in the Hadamard basis. Call the output y.&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\sigma = |y\rangle\langle y|&amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 5: &#039;&#039;Ver&#039;&#039;===&lt;br /&gt;
The verification circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt; and a certificate string &amp;lt;math&amp;gt;|y\rangle\langle y| \in \mathcal{D}(\mathcal{Q}(m))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A bit&lt;br /&gt;
&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;\hat y^\prime = \hat y|_\mathcal{\tilde{I}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt; \mathcal{\tilde{I}} = \{i \in [m] | \theta_i = 1 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;q = r|_\tilde{\mathcal{I}}&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;\omega(q\oplus \hat y^\prime) &amp;lt; k\delta&amp;lt;/math&amp;gt;, output &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. Else, output &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
This scheme has the following properties:&lt;br /&gt;
*&#039;&#039;&#039;Correctness&#039;&#039;&#039;: The scheme includes syndrome and correction functions and is thus robust against a certain amount of noise, i.e. below a certain noise threshold, the decryption circuit outputs the original message with high probability.&lt;br /&gt;
*&#039;&#039;&#039;Ciphertext Indistinguishability&#039;&#039;&#039;: This notion implies that an adversary, given a ciphertext, cannot discern whether the original plaintext was a known message or a dummy plaintext &amp;lt;math&amp;gt;0^n&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Certified Deletion Security&#039;&#039;&#039;: After producing a valid deletion certificate, the adversary cannot obtain the original message, even if the key is leaked (after deletion).&lt;br /&gt;
==References==&lt;br /&gt;
* The scheme along with its formal security definitions and their proofs can be found in [https://arxiv.org/abs/1910.03551 Broadbent &amp;amp; Islam (2019)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4455</id>
		<title>Prepare-and-Measure Certified Deletion</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4455"/>
		<updated>2022-02-04T13:21:34Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/1910.03551 example protocol] implements the functionality of Quantum Encryption with Certified Deletion using single-qubit state preparation and measurement.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
The scheme consists of 5 circuits-&lt;br /&gt;
* &#039;&#039;Key&#039;&#039;: This circuit generates the key used in later stages&lt;br /&gt;
* &#039;&#039;Enc&#039;&#039;: This circuit encrypts the message using the key&lt;br /&gt;
* &#039;&#039;Dec&#039;&#039;: This circuit decrypts the ciphertext using the key and generates an error flag bit&lt;br /&gt;
* &#039;&#039;Del&#039;&#039;: This circuit deletes the ciphertext state and generates a deletion certificate&lt;br /&gt;
* &#039;&#039;Ver&#039;&#039;: This circuit verifies the validity of the deletion certificate using the key  &lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* For any string &amp;lt;math&amp;gt;x \in \{0,1\}^n&amp;lt;/math&amp;gt; and set &amp;lt;math&amp;gt;\mathcal{I} \subseteq [n], x|_\mathcal{I}&amp;lt;/math&amp;gt; denotes the string &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; restricted to the bits indexed by &amp;lt;math&amp;gt;\mathcal{I}&amp;lt;/math&amp;gt;&lt;br /&gt;
* For &amp;lt;math&amp;gt;x,\theta \in \{0,1\}^n, |x^\theta\rangle = H^\theta|x\rangle = H^{\theta_1}|x_1\rangle \otimes H^{\theta_2}|x_2\rangle \otimes ... \otimes H^{\theta_n}|x_n\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{Q} := \mathbb{C}^2&amp;lt;/math&amp;gt; denotes the state space of a single qubit,&amp;lt;math&amp;gt;\mathcal{Q}(n) := \mathcal{Q}^{\otimes n}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathcal{D(H)}&amp;lt;/math&amp;gt; denotes the set of density operators on a Hilbert space &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;: Length, in bits, of the message&lt;br /&gt;
* &amp;lt;math&amp;gt;m = \kappa(\lambda)&amp;lt;/math&amp;gt;: Total number of qubits sent from encrypting party to decrypting party&lt;br /&gt;
* &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;: Length, in bits, of the string used for verification of deletion&lt;br /&gt;
* &amp;lt;math&amp;gt;s = m - k&amp;lt;/math&amp;gt;: Length, in bits, of the string used for extracting randomness&lt;br /&gt;
* &amp;lt;math&amp;gt;\tau = \tau(\lambda)&amp;lt;/math&amp;gt;: Length, in bits, of error correction hash&lt;br /&gt;
* &amp;lt;math&amp;gt;\mu = \mu(\lambda)&amp;lt;/math&amp;gt;: Length, in bits, of error syndrome&lt;br /&gt;
* &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt;: Basis in which the encrypting party prepare her quantum state&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;: Threshold error rate for the verification test&lt;br /&gt;
* &amp;lt;math&amp;gt;\Theta&amp;lt;/math&amp;gt;: Set of possible bases from which \theta is chosen&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathfrak{H}_{pa}&amp;lt;/math&amp;gt;: Universal&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt; family of hash functions used in the privacy amplification scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;: Universal&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt; family of hash functions used in the error correction scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;H_{pa}&amp;lt;/math&amp;gt;: Hash function used in the privacy amplification scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;H_{ec}&amp;lt;/math&amp;gt;: Hash function used in the error correction scheme&lt;br /&gt;
* &amp;lt;math&amp;gt;synd&amp;lt;/math&amp;gt;: Function that computes the error syndrome&lt;br /&gt;
* &amp;lt;math&amp;gt;corr&amp;lt;/math&amp;gt;: Function that computes the corrected string&lt;br /&gt;
&amp;lt;!--==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
===Circuit 1: &#039;&#039;Key&#039;&#039;===&lt;br /&gt;
The key generation circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input &#039;&#039;&#039;: None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: A key state &amp;lt;math&amp;gt;\rho \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;\theta \gets \Theta&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt; r|_{\tilde{\mathcal{I}}} \gets \{0,1\}^k&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\tilde{\mathcal{I}} = \{i \in [m] | \theta_i = 1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;u \gets \{0,1\}^n&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;d \gets \{0,1\}^\mu&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;e \gets \{0,1\}^\tau&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;H_{pa} \gets \mathfrak{H}_{pa}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;H_{ec} \gets \mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho = | r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| &amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 2: &#039;&#039;Enc&#039;&#039;===&lt;br /&gt;
The encryption circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A plaintext state &amp;lt;math&amp;gt;|\mathrm{msg}\rangle\langle\mathrm{msg}|&amp;lt;/math&amp;gt; and a key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A ciphertext state &amp;lt;math&amp;gt;\rho \in \mathcal{D}(\mathcal{Q}(m+n+\tau+\mu))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;r|_\mathcal{I} \gets \{0,1\}^s&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]| \theta_i = 0 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;x = H_{pa}(r|_\mathcal{I})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]| \theta_i = 0 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;p = H_{ec}(r|_\mathcal{I}) \oplus d&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;q = \mathrm{synd}(r|_\mathcal{I})\oplus e&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho = |r^\theta\rangle\langle r^\theta |\otimes|\mathrm{msg}\oplus x \oplus u,p,q\rangle\langle \mathrm{msg}\oplus x \oplus u,p,q |&amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 3: &#039;&#039;Dec&#039;&#039;===&lt;br /&gt;
The decryption circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt; and a ciphertext &amp;lt;math&amp;gt;\rho \otimes |c,p,q\rangle\langle c,p,q| \in \mathcal{D}(\mathcal{Q}(m + n + \mu + \tau)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A plaintext state &amp;lt;math&amp;gt;\sigma \in \mathcal{D}(\mathcal{Q}(n))&amp;lt;/math&amp;gt; and an error flag &amp;lt;math&amp;gt;\gamma \in \mathcal{D}(\mathcal{Q})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;\rho^\prime = \mathrm{H}^\theta \rho \mathrm{H}^\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
# Measure &amp;lt;math&amp;gt;\rho^\prime&amp;lt;/math&amp;gt; in the computational basis. Call the result &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;r^\prime = \mathrm{corr}(r|_\mathcal{I},q\oplus e)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]|\theta_i =0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;p^\prime = H_{ec}(r^\prime) \oplus d &amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;p \neq p^\prime&amp;lt;/math&amp;gt;, then set &amp;lt;math&amp;gt;\gamma = |0\rangle\langle 0|&amp;lt;/math&amp;gt;. Else, set &amp;lt;math&amp;gt;\gamma = |1\rangle\langle 1|&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;x^\prime = H_{pa}(r^\prime)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho \otimes \gamma = |c\oplus x^\prime \oplus u \rangle \langle c\oplus x^\prime \oplus u| \otimes \gamma &amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 4: &#039;&#039;Del&#039;&#039;===&lt;br /&gt;
The deletion circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A ciphertext &amp;lt;math&amp;gt;\rho \otimes |c,p,q\rangle\langle c,p,q| \in \mathcal{D}(\mathcal{Q}(m+n+\mu+\tau))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A certificate string &amp;lt;math&amp;gt;\sigma \in \mathcal{D}(\mathcal{Q}(m))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Measure &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; in the Hadamard basis. Call the output y.&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\sigma = |y\rangle\langle y|&amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 5: &#039;&#039;Ver&#039;&#039;===&lt;br /&gt;
The verification circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt; and a certificate string &amp;lt;math&amp;gt;|y\rangle\langle y| \in \mathcal{D}(\mathcal{Q}(m))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A bit&lt;br /&gt;
&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;\hat y^\prime = \hat y|_\mathcal{\tilde{I}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt; \mathcal{\tilde{I}} = \{i \in [m] | \theta_i = 1 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;q = r|_\tilde{\mathcal{I}}&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;\omega(q\oplus \hat y^\prime) &amp;lt; k\delta&amp;lt;/math&amp;gt;, output &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. Else, output &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4454</id>
		<title>Prepare-and-Measure Certified Deletion</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4454"/>
		<updated>2022-02-02T02:29:56Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/1910.03551 example protocol] implements the functionality of Quantum Encryption with Certified Deletion using single-qubit state preparation and measurement.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
The scheme consists of 5 circuits-&lt;br /&gt;
* &#039;&#039;Key&#039;&#039;: This circuit generates the key used in later stages&lt;br /&gt;
* &#039;&#039;Enc&#039;&#039;: This circuit encrypts the message using the key&lt;br /&gt;
* &#039;&#039;Dec&#039;&#039;: This circuit decrypts the ciphertext using the key and generates an error flag bit&lt;br /&gt;
* &#039;&#039;Del&#039;&#039;: This circuit deletes the ciphertext state and generates a deletion certificate&lt;br /&gt;
* &#039;&#039;Ver&#039;&#039;: This circuit verifies the validity of the deletion certificate using the key  &lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
===Circuit 1: &#039;&#039;Key&#039;&#039;===&lt;br /&gt;
The key generation circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input &#039;&#039;&#039;: None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: A key state &amp;lt;math&amp;gt;\rho \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;\theta \gets \Theta&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt; r|_{\tilde{\mathcal{I}}} \gets \{0,1\}^k&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\tilde{\mathcal{I}} = \{i \in [m] | \theta_i = 1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;u \gets \{0,1\}^n&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;d \gets \{0,1\}^\mu&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;e \gets \{0,1\}^\tau&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;H_{pa} \gets \mathfrak{H}_{pa}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;H_{ec} \gets \mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho = | r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| &amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 2: &#039;&#039;Enc&#039;&#039;===&lt;br /&gt;
The encryption circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A plaintext state &amp;lt;math&amp;gt;|\mathrm{msg}\rangle\langle\mathrm{msg}|&amp;lt;/math&amp;gt; and a key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A ciphertext state &amp;lt;math&amp;gt;\rho \in \mathcal{D}(\mathcal{Q}(m+n+\tau+\mu))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Sample &amp;lt;math&amp;gt;r|_\mathcal{I} \gets \{0,1\}^s&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]| \theta_i = 0 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;x = H_{pa}(r|_\mathcal{I})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]| \theta_i = 0 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;p = H_{ec}(r|_\mathcal{I}) \oplus d&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;q = \mathrm{synd}(r|_\mathcal{I})\oplus e&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho = |r^\theta\rangle\langle r^\theta |\otimes|\mathrm{msg}\oplus x \oplus u,p,q\rangle\langle \mathrm{msg}\oplus x \oplus u,p,q |&amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 3: &#039;&#039;Dec&#039;&#039;===&lt;br /&gt;
The decryption circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt; and a ciphertext &amp;lt;math&amp;gt;\rho \otimes |c,p,q\rangle\langle c,p,q| \in \mathcal{D}(\mathcal{Q}(m + n + \mu + \tau)) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A plaintext state &amp;lt;math&amp;gt;\sigma \in \mathcal{D}(\mathcal{Q}(n))&amp;lt;/math&amp;gt; and an error flag &amp;lt;math&amp;gt;\gamma \in \mathcal{D}(\mathcal{Q})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;\rho^\prime = \mathrm{H}^\theta \rho \mathrm{H}^\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
# Measure &amp;lt;math&amp;gt;\rho^\prime&amp;lt;/math&amp;gt; in the computational basis. Call the result &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;r^\prime = \mathrm{corr}(r|_\mathcal{I},q\oplus e)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;\mathcal{I} = \{i \in [m]|\theta_i =0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;p^\prime = H_{ec}(r^\prime) \oplus d &amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;p \neq p^\prime&amp;lt;/math&amp;gt;, then set &amp;lt;math&amp;gt;\gamma = |0\rangle\langle 0|&amp;lt;/math&amp;gt;. Else, set &amp;lt;math&amp;gt;\gamma = |1\rangle\langle 1|&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;x^\prime = H_{pa}(r^\prime)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\rho \otimes \gamma = |c\oplus x^\prime \oplus u \rangle \langle c\oplus x^\prime \oplus u| \otimes \gamma &amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 4: &#039;&#039;Del&#039;&#039;===&lt;br /&gt;
The deletion circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A ciphertext &amp;lt;math&amp;gt;\rho \otimes |c,p,q\rangle\langle c,p,q| \in \mathcal{D}(\mathcal{Q}(m+n+\mu+\tau))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A certificate string &amp;lt;math&amp;gt;\sigma \in \mathcal{D}(\mathcal{Q}(m))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Measure &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; in the Hadamard basis. Call the output y.&lt;br /&gt;
# Output &amp;lt;math&amp;gt;\sigma = |y\rangle\langle y|&amp;lt;/math&amp;gt;&lt;br /&gt;
===Circuit 5: &#039;&#039;Ver&#039;&#039;===&lt;br /&gt;
The verification circuit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input :&#039;&#039;&#039; A key state &amp;lt;math&amp;gt;| r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}\rangle \langle r|_\tilde{\mathcal{I}},\theta,u,d,e,H_{pa},H_{ec}| \in \mathcal{D}(\mathcal{Q}(k+m+n+\mu+\tau)\otimes\mathfrak{H}_{pa}\otimes\mathfrak{H}_{ec}&amp;lt;/math&amp;gt; and a certificate string &amp;lt;math&amp;gt;|y\rangle\langle y| \in \mathcal{D}(\mathcal{Q}(m))&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; A bit&lt;br /&gt;
&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;\hat y^\prime = \hat y|_\mathcal{\tilde{I}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt; \mathcal{\tilde{I}} = \{i \in [m] | \theta_i = 1 \}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Compute &amp;lt;math&amp;gt;q = r|_\tilde{\mathcal{I}}&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;\omega(q\oplus \hat y^\prime) &amp;lt; k\delta&amp;lt;/math&amp;gt;, output &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. Else, output &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4453</id>
		<title>Prepare-and-Measure Certified Deletion</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Prepare-and-Measure_Certified_Deletion&amp;diff=4453"/>
		<updated>2022-02-01T02:13:06Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Initial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/1910.03551 example protocol] implements the functionality of Quantum Encryption with Certified Deletion using single-qubit state preparation and measurement.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
The scheme consists of 5 circuits-&lt;br /&gt;
* &#039;&#039;Key&#039;&#039;: This circuit generates the key used in later stages&lt;br /&gt;
* &#039;&#039;Enc&#039;&#039;: This circuit encrypts the message using the key&lt;br /&gt;
* &#039;&#039;Dec&#039;&#039;: This circuit decrypts the ciphertext using the key and generates an error flag bit&lt;br /&gt;
* &#039;&#039;Del&#039;&#039;: This circuit deletes the ciphertext state and generates a deletion certificate&lt;br /&gt;
* &#039;&#039;Ver&#039;&#039;: This circuit verifies the validity of the deletion certificate using the key  &lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4452</id>
		<title>Device-Independent Oblivious Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4452"/>
		<updated>2022-02-01T00:30:39Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2111.08595 example protocol] achieves the task of device-independent oblivious transfer in the bounded quantum storage model using a computational assumption.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* The quantum storage of the receiver is bounded during the execution of the protocol&lt;br /&gt;
* The device used is computationally bounded - it cannot solve the Learning with Errors (LWE) problem during the execution of the protocol&lt;br /&gt;
* The device behaves in an IID manner - it behaves independently and identically during each round of the protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* &#039;&#039;&#039;Network Stage: &#039;&#039;&#039; [[:Category:Entanglement Distribution Network stage| Entanglement Distribution]]&lt;br /&gt;
* Classical communication between the parties&lt;br /&gt;
* Extended noisy trapdoor claw-free (ENTCF) function family&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* The protocol consists of multiple rounds, which are randomly chosen for testing or string generation&lt;br /&gt;
* The testing rounds are carried out to ensure that the devices used are following the expected behaviour. The self-testing protocol used is a modification of the one used in [[Device-Independent Quantum Key Distribution | DIQKD]]. This modification is necessary as, unlike the DIQKD scenario, the parties involved in OT may not trust each other to cooperate. The self-testing protocol uses the computational assumptions associated with &#039;&#039;Extended noisy trapdoor claw-free&#039;&#039; (ENTCF) function families to certify that the device has created the desired quantum states. If the fraction of failed testing rounds exceeds a certain limit, the protocol is aborted.&lt;br /&gt;
* At the end of the protocol, the honest sender outputs two randomly generated strings of equal length, and the honest receiver outputs their chosen string out of the two.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: The sender&lt;br /&gt;
* &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;: The receiver&lt;br /&gt;
* &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;: Length of the output strings&lt;br /&gt;
* &amp;lt;math&amp;gt;s_0, s_1&amp;lt;/math&amp;gt;: The strings output by the sender&lt;br /&gt;
* &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;: A bit denoting the receiver&#039;s choice &lt;br /&gt;
* For any bit &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, [&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;]&amp;lt;math&amp;gt;_r = \begin{cases}\mbox{Computational, if } r = 0\\ \mbox{Hadamard,         if } r = 1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_X = \begin{pmatrix}0 &amp;amp; 1 \\ 1 &amp;amp; 0 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_Z = \begin{pmatrix}1 &amp;amp; 0 \\ 0 &amp;amp; -1 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* For bits &amp;lt;math&amp;gt;v^{\alpha},v^{\beta}: |\phi^{(v^{\alpha},v^{\beta})}\rangle = (\sigma_Z^{v^{\alpha}}\sigma_X^{v^{\beta}} \otimes I) \frac{|00\rangle+|11\rangle}{\sqrt{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
* An ENTCF family consists of two families of function pairs: &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;. A function pair &amp;lt;math&amp;gt;(f_{k,0},f_{k,1})&amp;lt;/math&amp;gt;is indexed by a public key &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in F&amp;lt;/math&amp;gt;, then it is a &#039;&#039;claw-free pair&#039;&#039;; and if &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in G&amp;lt;/math&amp;gt;, then it is called an &#039;&#039;injective pair&#039;&#039;. ENTCF families satisfy the following properties:&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_F, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k,1}&amp;lt;/math&amp;gt; are bijections with the same image; for every image &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, there exists a unique pair &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt;, called a &#039;&#039;claw&#039;&#039;, such that &amp;lt;math&amp;gt;f_{k,0}(x_0) = f_{k,1}(x_1) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
*# Given a &#039;&#039;key&#039;&#039; &amp;lt;math&amp;gt;k \in K_F&amp;lt;/math&amp;gt;, for a claw-free pair, it is quantum-computationally intractable (without access to &#039;&#039;trapdoor&#039;&#039; information) to compute both a &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and a single generalized bit of &amp;lt;math&amp;gt;x_0 \oplus x_1&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt; forms a valid claw. This is known as the &#039;&#039;adaptive hardcore bit&#039;&#039; property.&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_G, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k_1}&amp;lt;/math&amp;gt; are injunctive functions with disjoint images.&lt;br /&gt;
*# Given a key &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, it is quantum-computationally hard (without access to &#039;&#039;trapdoor&#039;&#039; information) to determine whether &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a key for a claw-free or an injective pair. This property is known as &#039;&#039;injective invariance&#039;&#039;.&lt;br /&gt;
*# For every &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, there exists a trapdoor &amp;lt;math&amp;gt;t_k&amp;lt;/math&amp;gt; which can be sampled together with &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; and with which 2 and 4 are computationally easy.&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
&#039;&#039;&#039;Requirements:&#039;&#039;&#039; Entanglement distribution, classical communication&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input:&#039;&#039;&#039; Receiver - a bit &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; Sender outputs randomly generated  &amp;lt;math&amp;gt;s_0,s_1 \in \{0,1\}^l&amp;lt;/math&amp;gt;, Receiver outputs &amp;lt;math&amp;gt;s_c&amp;lt;/math&amp;gt;&lt;br /&gt;
# A device prepares &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; uniformly random Bell pairs &amp;lt;math&amp;gt;|\phi^{(v_i^{\alpha},v_i^{\beta})}\rangle, i = 1,...,n&amp;lt;/math&amp;gt;, where the first qubit of each pair goes to &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\alpha}&amp;lt;/math&amp;gt;, and the second qubit of each pair goes to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\beta}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# R measures all qubits in the basis &amp;lt;math&amp;gt;y = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;&#039;s choice bit. Let &amp;lt;math&amp;gt;b \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;b \oplus w^{\beta}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; is defined by &lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\beta} := \begin{cases} 0, \mbox{if } y = \mbox{ Hadamard}\\ v_i^{\beta}, \mbox{if } y = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks uniformly random &amp;lt;math&amp;gt;x \in \{&amp;lt;/math&amp;gt; &#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;\}^n&amp;lt;/math&amp;gt;, and measures the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th qubit in basis &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;a \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;a \oplus w^{\alpha}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; is defined by&lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\alpha} := \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{ Hadamard}\\ 0, \mbox{if } x_i = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks two uniformly random hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; and outputs &amp;lt;math&amp;gt;s_0 := f_0(a \oplus w^{\alpha} |_{I_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 := f_1(a \oplus w^{\alpha} |_{I_1})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;I_r := \{i \in I: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; outputs &amp;lt;math&amp;gt;s_c = f_c(b \oplus w^{\beta} |_{I_c})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Self-testing with a single verifier===&lt;br /&gt;
&#039;&#039;&#039;Requirements:&#039;&#039;&#039; ENTCF function family, classical communication&lt;br /&gt;
&lt;br /&gt;
# Alice chooses the state bases &amp;lt;math&amp;gt;\theta^A,\theta^B \in &amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} uniformly at random and generates key-trapdoor pairs &amp;lt;math&amp;gt;(k^A,t^A),(k^B,t^B)&amp;lt;/math&amp;gt;, where the generation procedure for &amp;lt;math&amp;gt;k^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^A&amp;lt;/math&amp;gt; depends on &amp;lt;math&amp;gt;\theta^A&amp;lt;/math&amp;gt; and a security parameter &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;, and likewise for &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^B&amp;lt;/math&amp;gt;. Alice supplies Bob with &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt;. Alice and Bob then respectively send &amp;lt;math&amp;gt;k^A, k^B&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
# Alice and Bob receive strings &amp;lt;math&amp;gt;c^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;c^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# Alice chooses a &#039;&#039;challenge type&#039;&#039; &amp;lt;math&amp;gt;CT \in \{a,b\}&amp;lt;/math&amp;gt;, uniformly at random and sends it to Bob. Alice and Bob then send &amp;lt;math&amp;gt;CT&amp;lt;/math&amp;gt; to each component of their device.&lt;br /&gt;
# If &amp;lt;math&amp;gt;CT = a&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;z^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# If  &amp;lt;math&amp;gt;CT = b&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;d^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;d^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
## Alice chooses uniformly random &#039;&#039;measurement bases (questions)&#039;&#039; &amp;lt;math&amp;gt;x,y \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} and sends &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to Bob. Alice and Bob then, respectively, send &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
## Alice and Bob receive answer bits &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, respectively, from the device. Alice and Bob also receive bits &amp;lt;math&amp;gt;h^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;h^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: DI Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
&#039;&#039;&#039;Requirements:&#039;&#039;&#039; Entanglement distribution, ENTCF function family, classical communication&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input:&#039;&#039;&#039; Receiver - a bit &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; Sender outputs randomly generated  &amp;lt;math&amp;gt;s_0,s_1 \in \{0,1\}^l&amp;lt;/math&amp;gt;, Receiver outputs &amp;lt;math&amp;gt;s_c&amp;lt;/math&amp;gt;&lt;br /&gt;
::&#039;&#039;&#039;Data generation:&#039;&#039;&#039;&lt;br /&gt;
# The sender and receiver execute &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; rounds of &#039;&#039;&#039;Protocol 2&#039;&#039;&#039; (Self-testing) with the sender as Alice and receiver as Bob, and with the following modification:&lt;br /&gt;
#: If &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;, then with probability &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, the receiver does not use the measurement basis question supplied by the sender and instead inputs &amp;lt;math&amp;gt;y_i=[&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is the receiver&#039;s choice bit. Let &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; be the set of indices marking the rounds where this has been done. &lt;br /&gt;
#: For each round &amp;lt;math&amp;gt; i \in \{1,...,n\} &amp;lt;/math&amp;gt;, the receiver stores:&lt;br /&gt;
#:* &amp;lt;math&amp;gt;c_i^B&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* &amp;lt;math&amp;gt;z_i^B&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* or &amp;lt;math&amp;gt;(d_i^B,y_i,b_i,h_i^B)&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
#: The sender stores &amp;lt;math&amp;gt;\theta_i^A,\theta_i^B,(k_i^A,t_i^A),(k_i^B,t_i^B),c_i^A,CT_i;&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z_i^A&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;(d_i^A,x_i,a_i,h_i^A)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender stores the variable &amp;lt;math&amp;gt;RT_i&amp;lt;/math&amp;gt; (round type), defined as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_i^A = \theta_i^B = &amp;lt;/math&amp;gt;&#039;&#039;&#039;Hadamard&#039;&#039;&#039;, then &amp;lt;math&amp;gt;RT_i =&amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Product&#039;&#039;&#039;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender chooses &amp;lt;math&amp;gt;T_i&amp;lt;/math&amp;gt;, indicating a test round or generation round, as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;, choose &amp;lt;math&amp;gt;T_i \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Test, Generate&#039;&#039;&#039;} uniformly at random&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
#: The sender sends (&amp;lt;math&amp;gt;T_1,...,T_n&amp;lt;/math&amp;gt;) to the receiver&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Testing:&#039;&#039;&#039;&lt;br /&gt;
# The receiver sends the set of indices &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; to the sender. The receiver publishes their output for all &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039; rounds where &amp;lt;math&amp;gt;i \notin I&amp;lt;/math&amp;gt;. Using this published data, the sender determines the bits which an honest device would have returned.&lt;br /&gt;
# The sender computes the fraction of test rounds (for which the receiver has published data for) that failed. If this exceeds some &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;, the protocol aborts&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Preparing data:&#039;&#039;&#039;&lt;br /&gt;
# Let &amp;lt;math&amp;gt;\tilde{I} := \{i : i \in I&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Generate&#039;&#039;&#039;} and &amp;lt;math&amp;gt;n^{\prime} = |\tilde{I}|&amp;lt;/math&amp;gt;. The sender checks if there exists a &amp;lt;math&amp;gt; k &amp;gt; 0 &amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\gamma n^{\prime} \leq n^{\prime}/4 - 2l -kn^{\prime}&amp;lt;/math&amp;gt;. If such a &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; exists, the sender publishes &amp;lt;math&amp;gt;\tilde{I}&amp;lt;/math&amp;gt; and, for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, the trapdoor &amp;lt;math&amp;gt;t_i^B&amp;lt;/math&amp;gt; corresponding to the key &amp;lt;math&amp;gt;k_i^B&amp;lt;/math&amp;gt; (given by the sender in the execution of &#039;&#039;&#039;Protocol 2,Step 1&#039;&#039;&#039;); otherwise the protocol aborts.&lt;br /&gt;
&amp;lt;!-- INCLUDE V_i^ALPHA CALCULATION --&amp;gt;&lt;br /&gt;
# For each &amp;lt;math&amp;gt;i \in \tilde{I},&amp;lt;/math&amp;gt; the sender calculates &amp;lt;math&amp;gt;v_i^{\alpha} = d^A_i.(x_{i,0}^A \oplus x_{i,1}^A)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\alpha} = \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{Hadamard}\\ 0, \mbox{if } x_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: and the receiver calculates &amp;lt;math&amp;gt;v_i^{\beta} =  = d^B_i.(x_{i,0}^B \oplus x_{i,1}^B)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\beta} = \begin{cases} 0, \mbox{if } y_i = \mbox{Hadamard}\\ v_i^{\beta}, \mbox{if } y_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: &#039;&#039;&#039;Obtaining output:&#039;&#039;&#039;&lt;br /&gt;
# The sender randomly picks two hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, and outputs &amp;lt;math&amp;gt;s_0 = f_0(a \oplus w^{\alpha}|_{\tilde{I}_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 = f_1(a \oplus w^{\alpha}|_{\tilde{I}_1})&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\tilde{I}_r := \{i \in \tilde{I}: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Receiver outputs &amp;lt;math&amp;gt;s_c = f_c(a \oplus w^{\beta}|_{\tilde{I}_c})&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;-&#039;&#039;&#039;Receiver security:&#039;&#039;&#039; If &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; is honest, then for any &amp;lt;math&amp;gt;\tilde{S}&amp;lt;/math&amp;gt;, there exist random variables &amp;lt;math&amp;gt;S_0^{\prime}, S_1^{\prime}&amp;lt;/math&amp;gt; such that Pr[&amp;lt;math&amp;gt;Y = S_c^{\prime}] \geq 1 - \epsilon&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;D(\rho_{c,S_0^{\prime}, S_1^{\prime},\tilde{S}}, \rho_c \otimes \rho_{S_0^{\prime}, S_1^{\prime},\tilde{S}}) \leq \epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
*: Protocol 3 is perfectly receiver secure, i.e. &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; = 0&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;-&#039;&#039;&#039;Sender security:&#039;&#039;&#039; If S is honest, then for any &amp;lt;math&amp;gt;\tilde{R}&amp;lt;/math&amp;gt;, there exist a random variable &amp;lt;math&amp;gt;c^{\prime}&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;D(\rho_{S_{1-c^{\prime}},S_{c^{\prime}},c^{\prime},\tilde{R}}, \frac{1}{2^l}I \otimes \rho_{S_{c^{\prime}},c^{\prime},\tilde{R}}) \leq \epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
*: Protocol 3 is &amp;lt;math&amp;gt;\epsilon^{\prime}&amp;lt;/math&amp;gt;-sender secure, where &amp;lt;math&amp;gt;\epsilon^{\prime}&amp;lt;/math&amp;gt; can be made negligible in certain conditions.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* The protocol and its security proofs can be found in [https://arxiv.org/abs/2111.08595 Broadbent and Yuen(2021)] &lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4451</id>
		<title>Practical Quantum Electronic Voting</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4451"/>
		<updated>2022-02-01T00:10:56Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2107.14719 example protocol] achieves the functionality of [[Quantum Electronic Voting]]. In this protocol, an untrusted multipartite entanglement source can be used to carry out an election without any election authorities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;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:Specific Task | Specific Task]]&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* Classical communication between the voting agents&lt;br /&gt;
* A multipartite entanglement source connected to each agent by a quantum channel. The source need not be trusted.&lt;br /&gt;
* Voting agents must be able to generate random numbers&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* In the first phase of the protocol, each agent is assigned a secret unique random index&lt;br /&gt;
* Next, we perform multiple rounds of voting, one for each agent. In each round, the following steps are carried out:&lt;br /&gt;
** The agent with the same index as the round number is designated the voter for that round&lt;br /&gt;
** The source distributes one qubit of a GHZ state to each agent. The voting agent randomly chooses to either &#039;&#039;&#039;verify&#039;&#039;&#039; the GHZ state or &#039;&#039;&#039;vote&#039;&#039;&#039; with a certain probability. This step, including state distribution, is repeated until the voter chooses to vote. Once voting is chosen, the voter anonymously transmits their vote to all agents.&lt;br /&gt;
* Finally, all the votes are tallied. All agents have the votes for each round and can thus verify the final tally.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;: Number of agents&lt;br /&gt;
* &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt;: The votes&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;: Distance from the perfect GHZ state&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;: Threshold for verification&lt;br /&gt;
* &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;: Probability of failure of verification&lt;br /&gt;
* &#039;&#039;&#039;B&#039;&#039;&#039;: Bulletin board - &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; x &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; binary matrix. Each row corresponds to one round of voting, and each column contains the output of a single voter across all rounds&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: Vote vector - The list of votes across &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; rounds. Each element is computed as the parity of a row from &#039;&#039;&#039;B&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T&#039;&#039;&#039;: Final tally&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1 : Quantum e-voting===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt; - Set of votes; &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; - Security parameter; &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; - Distance from the perfect GHZ state; &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; - Threshold for verification; &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; Probability of failure of verification&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The candidate with majority votes or &#039;&#039;Abort&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, N-qubit GHZ source, quantum channels&lt;br /&gt;
* Phase 1 [getting unique secret indices]&lt;br /&gt;
** Agents perform &#039;&#039;&#039;UniqueIndex&#039;&#039;&#039; until each agent has a secret unique random index  &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;&lt;br /&gt;
* Phase 2 [casting votes]&lt;br /&gt;
** For &amp;lt;math&amp;gt;l = 1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;&lt;br /&gt;
*** The voting agent is the agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;\omega_k = l&amp;lt;/math&amp;gt;&lt;br /&gt;
*** Repeat until &#039;&#039;&#039;Voting&#039;&#039;&#039; is announced&lt;br /&gt;
**** The source distributes to each of the N agents one qubit of the GHZ source&lt;br /&gt;
**** All agents &amp;lt;math&amp;gt; j \in [N] &amp;lt;/math&amp;gt; set rejections&amp;lt;math&amp;gt;_j = &amp;lt;/math&amp;gt; trials&amp;lt;math&amp;gt;_j = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
**** The voting agent tosses log&amp;lt;math&amp;gt;_2[\frac{16N\epsilon^2}{(\epsilon^2-4\delta)^2}&amp;lt;/math&amp;gt;ln&amp;lt;math&amp;gt;(\frac{1}{\eta})]&amp;lt;/math&amp;gt; &amp;lt;!--NEEDS FORMATTING CHANGES--&amp;gt;&lt;br /&gt;
**** The agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;, where output 1 indicates &#039;&#039;&#039;Verification&#039;&#039;&#039; and output 0 indicates &#039;&#039;&#039;Voting&#039;&#039;&#039;. Everyone except the voting agent inputs 0; if the coin toss is &#039;all heads&#039; the voting agent also inputs 0, otherwise the voting agent inputs 1&lt;br /&gt;
**** If &#039;&#039;&#039;Verification&#039;&#039;&#039; is chosen, the agents perform &#039;&#039;&#039;RandomAgent&#039;&#039;&#039; and the voting agent anonymously picks an agent &amp;lt;math&amp;gt;j \in [N]&amp;lt;/math&amp;gt; to be the verifier. Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; updates trials&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt; and if &#039;&#039;&#039;Verification&#039;&#039;&#039; outputs reject: rejections&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
*** If for any &amp;lt;math&amp;gt;j \in [N], \delta_j = \frac{rejections_j}{trials_j} &amp;gt; \delta &amp;lt;/math&amp;gt;, the protocol &#039;&#039;Aborts&#039;&#039;&lt;br /&gt;
*** Perform &#039;&#039;&#039;Voting&#039;&#039;&#039;. The outcome is one row of the Bulletin Board &#039;&#039;&#039;B&#039;&#039;&#039;. The parity of the row gives one entry in the vote vector &#039;&#039;&#039;E&#039;&#039;&#039;.&lt;br /&gt;
** Given the votes &#039;&#039;&#039;E&#039;&#039;&#039;, the tally &#039;&#039;&#039;T&#039;&#039;&#039; can be computed.&lt;br /&gt;
*Phase 3 [Verification of results]:&lt;br /&gt;
** All agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;, and input 1 if their vote is not the same as the entry in &#039;&#039;&#039;E&#039;&#039;&#039; for the round in which they voted, and 0 otherwise.&lt;br /&gt;
** If &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; outputs 1, &#039;&#039;Abort&#039;&#039; the protocol. Else output the candidate with the most votes according to the tally &#039;&#039;&#039;T&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2 : UniqueIndex===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; to be used in &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;,&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: Each agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a secret unique index &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
# Beginning of round R = 1&lt;br /&gt;
# Agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with inputs &amp;lt;math&amp;gt;x_k = 0&amp;lt;/math&amp;gt; if they already have an index and &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; if they do not.&lt;br /&gt;
# If &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;, repeat from step 2&lt;br /&gt;
# If an agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a bit &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\omega_k = 0&amp;lt;/math&amp;gt; they know they are the only one and has been assigned the secret index corresponding to the round &amp;lt;math&amp;gt;\omega_k = R&amp;lt;/math&amp;gt;, otherwise there is a collision.&lt;br /&gt;
# [notification]  Everybody performs a &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with input 0, unless they received the index in this round, in which case they input 1.&lt;br /&gt;
# If the output of &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; is 0, no index was assigned and we repeat from step 2.&lt;br /&gt;
# If the output of &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; is 1, the index was assigned and we repeat from step 2 with R+ = 1.&lt;br /&gt;
# Repeat from step 2 until all indices have been assigned.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3 : Verification===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: A quantum state distributed and shared by &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; parties, security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; for &#039;&#039;&#039;RandomAgent&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: If the state is a GHZ state &amp;lt;math&amp;gt; \rightarrow &amp;lt;/math&amp;gt; YES.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, quantum state source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Everyone executes &#039;&#039;&#039;RandomAgent&#039;&#039;&#039; to choose uniformly at random one of the voters to be the verifier.&lt;br /&gt;
# The verifier generates random angles &amp;lt;math&amp;gt;\theta_j \in [0, \pi)&amp;lt;/math&amp;gt; for all agents including themselves, such that the sum is a multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;. The angles are then sent out to all the agents.&lt;br /&gt;
# Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; measures in the basis &amp;lt;math&amp;gt;[|+_\theta\rangle,|-_\theta\rangle] = [\frac{1}{\sqrt{2}}(|0\rangle + e^{i\theta_j}|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle - e^{i\theta_j}|1\rangle)]&amp;lt;/math&amp;gt; and publicly announces the result &amp;lt;math&amp;gt;Y_j = \{0,1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# The state passes the verification test when the following condition is satisfied: if the sum of the randomly chosen angles is an even multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;, there must be an even number of 1 outcomes for &amp;lt;math&amp;gt;Y_j&amp;lt;/math&amp;gt; , and if the sum is an odd multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;, there must be an odd number of 1 outcomes for &amp;lt;math&amp;gt;Y_j : \bigoplus_j Y_j = \frac{1}{\pi}\sum_i\theta_i &amp;lt;/math&amp;gt; (mod 2)&lt;br /&gt;
&lt;br /&gt;
===Protocol 4 : Voting===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Voting agent preference &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: All agents get one row of the bulletin board.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, GHZ source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Each agent measures the state they received in the Hadamard basis and records the outcome.&lt;br /&gt;
# The outcomes of the measurement of each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt;. Then we know that &amp;lt;math&amp;gt;\sum_kd_k = 0&amp;lt;/math&amp;gt; mod &amp;lt;math&amp;gt; 2&amp;lt;/math&amp;gt;&lt;br /&gt;
# The voting agent performs an XOR between the outcome &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt; and their vote &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;d_k \leftarrow d_k \oplus v_k &amp;lt;/math&amp;gt;. However, this alone will still appear as a random string.&lt;br /&gt;
# Every agent publicly broadcasts &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt; which gives one line &amp;lt;math&amp;gt;b_k&amp;lt;/math&amp;gt; of the bulletin board &#039;&#039;&#039;B&#039;&#039;&#039; &amp;lt;math&amp;gt; = \{b_k\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Protocol 5 : LogicalOR===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; agents, &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, security parameter &amp;lt;math&amp;gt;S = (1 - 2^{-\Gamma})^\Sigma \in (0,1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: &amp;lt;math&amp;gt;y = \vee_i^N x_i &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers&lt;br /&gt;
&lt;br /&gt;
# Decide &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random orderings, such that each voter is the last once. For each ordering repeat \Sigma times the following.&lt;br /&gt;
# Each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; gives an input &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;x_k = 0 &amp;lt;/math&amp;gt;, set &amp;lt;math&amp;gt;p_k = 0&amp;lt;/math&amp;gt;, otherwise toss &amp;lt;math&amp;gt;\Gamma&amp;lt;/math&amp;gt; coins and set &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; if the result is ‘all heads’ and to &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise&lt;br /&gt;
# Then each voter generates uniformly at random an &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;r_k = r_k^1r_k^2...r_k^N&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;\bigoplus_{i=1}^N r_k^i = p_k&amp;lt;/math&amp;gt; &lt;br /&gt;
# Voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; sends &amp;lt;math&amp;gt;r_k^i&amp;lt;/math&amp;gt; to voter &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, keeping &amp;lt;math&amp;gt;r_k^k&amp;lt;/math&amp;gt;&lt;br /&gt;
# Each voter sums the received bits and broadcasts the parity &amp;lt;math&amp;gt;z_i = \bigoplus_{k=1}^N r_k^i &amp;lt;/math&amp;gt; according to the ordering.&lt;br /&gt;
# Compute the parity of the original bits &amp;lt;math&amp;gt;y = \bigoplus_i z_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# From this everyone can also compute the parity of all other inputs except their own &amp;lt;math&amp;gt;w_k = \bigoplus_{i = 1}^N (z_i \otimes r_k^i)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Repeat &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; times from step 4: each time repeat with &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; as new inputs&lt;br /&gt;
# If at least once in the &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; repetitions for the various orderings &amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;, this is the output of the protocol, otherwise it is &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Protocol 6 : RandomBit===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;, &#039;&#039;voting agent&#039;&#039;: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously announces a random bit according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
*Perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with security parameter S where the voting agent inputs a random bit according to D and the other agents input 0.&lt;br /&gt;
&lt;br /&gt;
===Protocol 7 : RandomAgent===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in &#039;&#039;&#039;RandomBit&#039;&#039;&#039;, voting agent: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously chooses a random agent according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
* Repeat &#039;&#039;&#039;RandomBit&#039;&#039;&#039; log2 N times.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;(\sigma_H,\sigma_D,\gamma)&amp;lt;/math&amp;gt;-&#039;&#039;Correctness&#039;&#039;: This notion of approximate correctness includes two properties:&lt;br /&gt;
** &amp;lt;math&amp;gt;\sigma_H&amp;lt;/math&amp;gt;-&#039;&#039;Completeness&#039;&#039;: If all agents are honest, the election is accepted with probability more than &amp;lt;math&amp;gt;\sigma_H&amp;lt;/math&amp;gt; - Pr[election accepted] &amp;lt;math&amp;gt; \geq \sigma_H&amp;lt;/math&amp;gt;&lt;br /&gt;
** &amp;lt;math&amp;gt;(\sigma_D,\gamma)&amp;lt;/math&amp;gt;-&#039;&#039;Soundness&#039;&#039;: the probability that the election result is accepted, given that the set of the votes &#039;&#039;&#039;E&#039;&#039;&#039; computed from the bulletin board &#039;&#039;&#039;B&#039;&#039;&#039; resulting from the election is more than &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; away from the real votes &#039;&#039;&#039;V&#039;&#039;&#039;, is smaller than &amp;lt;math&amp;gt;\sigma_D&amp;lt;/math&amp;gt; - &lt;br /&gt;
:: Pr[election accepted &amp;lt;math&amp;gt;| \frac{1}{N}||&amp;lt;/math&amp;gt;&#039;&#039;&#039;V&#039;&#039;&#039; - &#039;&#039;&#039;E&#039;&#039;&#039;&amp;lt;math&amp;gt;||_1 \geq \gamma] \leq \sigma_D &amp;lt;/math&amp;gt;&lt;br /&gt;
: This particular protocol is &amp;lt;math&amp;gt;([1-\epsilon(1-S)]^N, S^{N(1+\lambda)[\epsilon(1-\eta)+\eta]},(1+\lambda)[\epsilon(1-\eta)+\eta])&amp;lt;/math&amp;gt;-correct, for a small constant &amp;lt;math&amp;gt;\lambda &amp;gt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt;-&#039;&#039;Privacy&#039;&#039;: The privacy of the election scheme implies that for any voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, the probability that any subset of malicious parties &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; that deviates from the honest protocol can guess the vote &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt; of the voter is at most &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt; more than in the case they just have access to the bulletin board and to their own votes - &lt;br /&gt;
: &amp;lt;math&amp;gt;\forall k, &amp;lt;/math&amp;gt; Pr&amp;lt;math&amp;gt;[v_k|D] -&amp;lt;/math&amp;gt; Pr&amp;lt;math&amp;gt;[v_k|B,v_j \in &amp;lt;/math&amp;gt; &#039;&#039;&#039;V&#039;&#039;&#039;&amp;lt;math&amp;gt;_D] \leq \zeta&amp;lt;/math&amp;gt;&lt;br /&gt;
: This particular protocol is &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt;-private with &amp;lt;math&amp;gt;\zeta = (1-\eta)^N\epsilon + (1 - (1-\eta)^N)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Authentication&#039;&#039;: This e-voting protocol does not provide authentication, which should be taken care of by the physical implementation of the protocol.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Double voting&#039;&#039;: Each voter can vote at most once. Since the number of voters is known in advance for this protocol, double voting is easily taken care of.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Verifiability&#039;&#039;: Each voter can verify that their vote has been counted correctly. In this protocol, the tally is performed by the voters themselves. The bulletin board produced as an output of the protocol is public and can always be checked by everyone, while still appearing random.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Receipt freeness&#039;&#039;: In order to prevent vote-selling, voters should not be able to prove how they voted. As the unique indices stay secret, voters cannot produce a receipt of their vote.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Additional candidates&#039;&#039;: The protocol described here only allows an election consisting of 2 candidates. This can be extended to more candidates by repeating the protocol multiple times in sequence. In particular, if there are K candidates, we can express each of them using log&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt;K bits and repeat the election as many times so that each vote set corresponds to one bit. This however does affect the correctness and privacy.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
* Proofs of the protocol properties can be found in [https://arxiv.org/abs/2107.14719 Centrone et al. (2021)]&lt;br /&gt;
* Protocols 5-7 are classical anonymous protocols taken from [https://arxiv.org/abs/0706.2010 Broadbent and Tapp(2007)] and used in [https://arxiv.org/abs/1811.04729 Unnikrishnan et al.(2018)]&lt;br /&gt;
* Protocol 3 is the same as that of [https://arxiv.org/abs/1112.5064 Pappa et al.(2011)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4450</id>
		<title>Device-Independent Oblivious Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4450"/>
		<updated>2022-01-29T16:05:45Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Added requirements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2111.08595 example protocol] achieves the task of device-independent oblivious transfer in the bounded quantum storage model using a computational assumption.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* The quantum storage of the receiver is bounded during the execution of the protocol&lt;br /&gt;
* The device used is computationally bounded - it cannot solve the Learning with Errors (LWE) problem during the execution of the protocol&lt;br /&gt;
* The device behaves in an IID manner - it behaves independently and identically during each round of the protocol&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* The protocol consists of multiple rounds, which are randomly chosen for testing or string generation&lt;br /&gt;
* The testing rounds are carried out to ensure that the devices used are following the expected behaviour. The self-testing protocol used is a modification of the one used in [[Device-Independent Quantum Key Distribution | DIQKD]]. This modification is necessary as, unlike the DIQKD scenario, the parties involved in OT may not trust each other to cooperate. The self-testing protocol uses the computational assumptions associated with &#039;&#039;Extended noisy trapdoor claw-free&#039;&#039; (ENTCF) function families to certify that the device has created the desired quantum states. If the fraction of failed testing rounds exceeds a certain limit, the protocol is aborted.&lt;br /&gt;
* At the end of the protocol, the honest sender outputs two randomly generated strings of equal length, and the honest receiver outputs their chosen string out of the two.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: The sender&lt;br /&gt;
* &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;: The receiver&lt;br /&gt;
* &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;: Length of the output strings&lt;br /&gt;
* &amp;lt;math&amp;gt;s_0, s_1&amp;lt;/math&amp;gt;: The strings output by the sender&lt;br /&gt;
* &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;: A bit denoting the receiver&#039;s choice &lt;br /&gt;
* For any bit &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, [&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;]&amp;lt;math&amp;gt;_r = \begin{cases}\mbox{Computational, if } r = 0\\ \mbox{Hadamard,         if } r = 1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_X = \begin{pmatrix}0 &amp;amp; 1 \\ 1 &amp;amp; 0 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_Z = \begin{pmatrix}1 &amp;amp; 0 \\ 0 &amp;amp; -1 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* For bits &amp;lt;math&amp;gt;v^{\alpha},v^{\beta}: |\phi^{(v^{\alpha},v^{\beta})}\rangle = (\sigma_Z^{v^{\alpha}}\sigma_X^{v^{\beta}} \otimes I) \frac{|00\rangle+|11\rangle}{\sqrt{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
* An ENTCF family consists of two families of function pairs: &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;. A function pair &amp;lt;math&amp;gt;(f_{k,0},f_{k,1})&amp;lt;/math&amp;gt;is indexed by a public key &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in F&amp;lt;/math&amp;gt;, then it is a &#039;&#039;claw-free pair&#039;&#039;; and if &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in G&amp;lt;/math&amp;gt;, then it is called an &#039;&#039;injective pair&#039;&#039;. ENTCF families satisfy the following properties:&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_F, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k,1}&amp;lt;/math&amp;gt; are bijections with the same image; for every image &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, there exists a unique pair &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt;, called a &#039;&#039;claw&#039;&#039;, such that &amp;lt;math&amp;gt;f_{k,0}(x_0) = f_{k,1}(x_1) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
*# Given a &#039;&#039;key&#039;&#039; &amp;lt;math&amp;gt;k \in K_F&amp;lt;/math&amp;gt;, for a claw-free pair, it is quantum-computationally intractable (without access to &#039;&#039;trapdoor&#039;&#039; information) to compute both a &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and a single generalized bit of &amp;lt;math&amp;gt;x_0 \oplus x_1&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt; forms a valid claw. This is known as the &#039;&#039;adaptive hardcore bit&#039;&#039; property.&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_G, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k_1}&amp;lt;/math&amp;gt; are injunctive functions with disjoint images.&lt;br /&gt;
*# Given a key &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, it is quantum-computationally hard (without access to &#039;&#039;trapdoor&#039;&#039; information) to determine whether &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a key for a claw-free or an injective pair. This property is known as &#039;&#039;injective invariance&#039;&#039;.&lt;br /&gt;
*# For every &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, there exists a trapdoor &amp;lt;math&amp;gt;t_k&amp;lt;/math&amp;gt; which can be sampled together with &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; and with which 2 and 4 are computationally easy.&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
&#039;&#039;&#039;Requirements:&#039;&#039;&#039; Entanglement distribution, classical communication&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input:&#039;&#039;&#039; Receiver - a bit &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; Sender outputs randomly generated  &amp;lt;math&amp;gt;s_0,s_1 \in \{0,1\}^l&amp;lt;/math&amp;gt;, Receiver outputs &amp;lt;math&amp;gt;s_c&amp;lt;/math&amp;gt;&lt;br /&gt;
# A device prepares &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; uniformly random Bell pairs &amp;lt;math&amp;gt;|\phi^{(v_i^{\alpha},v_i^{\beta})}\rangle, i = 1,...,n&amp;lt;/math&amp;gt;, where the first qubit of each pair goes to &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\alpha}&amp;lt;/math&amp;gt;, and the second qubit of each pair goes to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\beta}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# R measures all qubits in the basis &amp;lt;math&amp;gt;y = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;&#039;s choice bit. Let &amp;lt;math&amp;gt;b \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;b \oplus w^{\beta}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; is defined by &lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\beta} := \begin{cases} 0, \mbox{if } y = \mbox{ Hadamard}\\ v_i^{\beta}, \mbox{if } y = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks uniformly random &amp;lt;math&amp;gt;x \in \{&amp;lt;/math&amp;gt; &#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;\}^n&amp;lt;/math&amp;gt;, and measures the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th qubit in basis &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;a \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;a \oplus w^{\alpha}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; is defined by&lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\alpha} := \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{ Hadamard}\\ 0, \mbox{if } x_i = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks two uniformly random hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; and outputs &amp;lt;math&amp;gt;s_0 := f_0(a \oplus w^{\alpha} |_{I_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 := f_1(a \oplus w^{\alpha} |_{I_1})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;I_r := \{i \in I: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; outputs &amp;lt;math&amp;gt;s_c = f_c(b \oplus w^{\beta} |_{I_c})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Self-testing with a single verifier===&lt;br /&gt;
&#039;&#039;&#039;Requirements:&#039;&#039;&#039; ENTCF function family, classical communication&lt;br /&gt;
&lt;br /&gt;
# Alice chooses the state bases &amp;lt;math&amp;gt;\theta^A,\theta^B \in &amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} uniformly at random and generates key-trapdoor pairs &amp;lt;math&amp;gt;(k^A,t^A),(k^B,t^B)&amp;lt;/math&amp;gt;, where the generation procedure for &amp;lt;math&amp;gt;k^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^A&amp;lt;/math&amp;gt; depends on &amp;lt;math&amp;gt;\theta^A&amp;lt;/math&amp;gt; and a security parameter &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;, and likewise for &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^B&amp;lt;/math&amp;gt;. Alice supplies Bob with &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt;. Alice and Bob then respectively send &amp;lt;math&amp;gt;k^A, k^B&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
# Alice and Bob receive strings &amp;lt;math&amp;gt;c^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;c^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# Alice chooses a &#039;&#039;challenge type&#039;&#039; &amp;lt;math&amp;gt;CT \in \{a,b\}&amp;lt;/math&amp;gt;, uniformly at random and sends it to Bob. Alice and Bob then send &amp;lt;math&amp;gt;CT&amp;lt;/math&amp;gt; to each component of their device.&lt;br /&gt;
# If &amp;lt;math&amp;gt;CT = a&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;z^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# If  &amp;lt;math&amp;gt;CT = b&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;d^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;d^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
## Alice chooses uniformly random &#039;&#039;measurement bases (questions)&#039;&#039; &amp;lt;math&amp;gt;x,y \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} and sends &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to Bob. Alice and Bob then, respectively, send &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
## Alice and Bob receive answer bits &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, respectively, from the device. Alice and Bob also receive bits &amp;lt;math&amp;gt;h^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;h^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: DI Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
&#039;&#039;&#039;Requirements:&#039;&#039;&#039; Entanglement distribution, ENTCF function family, classical communication&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input:&#039;&#039;&#039; Receiver - a bit &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output:&#039;&#039;&#039; Sender outputs randomly generated  &amp;lt;math&amp;gt;s_0,s_1 \in \{0,1\}^l&amp;lt;/math&amp;gt;, Receiver outputs &amp;lt;math&amp;gt;s_c&amp;lt;/math&amp;gt;&lt;br /&gt;
::&#039;&#039;&#039;Data generation:&#039;&#039;&#039;&lt;br /&gt;
# The sender and receiver execute &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; rounds of &#039;&#039;&#039;Protocol 2&#039;&#039;&#039; (Self-testing) with the sender as Alice and receiver as Bob, and with the following modification:&lt;br /&gt;
#: If &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;, then with probability &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, the receiver does not use the measurement basis question supplied by the sender and instead inputs &amp;lt;math&amp;gt;y_i=[&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is the receiver&#039;s choice bit. Let &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; be the set of indices marking the rounds where this has been done. &lt;br /&gt;
#: For each round &amp;lt;math&amp;gt; i \in \{1,...,n\} &amp;lt;/math&amp;gt;, the receiver stores:&lt;br /&gt;
#:* &amp;lt;math&amp;gt;c_i^B&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* &amp;lt;math&amp;gt;z_i^B&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* or &amp;lt;math&amp;gt;(d_i^B,y_i,b_i,h_i^B)&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
#: The sender stores &amp;lt;math&amp;gt;\theta_i^A,\theta_i^B,(k_i^A,t_i^A),(k_i^B,t_i^B),c_i^A,CT_i;&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z_i^A&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;(d_i^A,x_i,a_i,h_i^A)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender stores the variable &amp;lt;math&amp;gt;RT_i&amp;lt;/math&amp;gt; (round type), defined as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_i^A = \theta_i^B = &amp;lt;/math&amp;gt;&#039;&#039;&#039;Hadamard&#039;&#039;&#039;, then &amp;lt;math&amp;gt;RT_i =&amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Product&#039;&#039;&#039;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender chooses &amp;lt;math&amp;gt;T_i&amp;lt;/math&amp;gt;, indicating a test round or generation round, as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;, choose &amp;lt;math&amp;gt;T_i \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Test, Generate&#039;&#039;&#039;} uniformly at random&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
#: The sender sends (&amp;lt;math&amp;gt;T_1,...,T_n&amp;lt;/math&amp;gt;) to the receiver&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Testing:&#039;&#039;&#039;&lt;br /&gt;
# The receiver sends the set of indices &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; to the sender. The receiver publishes their output for all &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039; rounds where &amp;lt;math&amp;gt;i \notin I&amp;lt;/math&amp;gt;. Using this published data, the sender determines the bits which an honest device would have returned.&lt;br /&gt;
# The sender computes the fraction of test rounds (for which the receiver has published data for) that failed. If this exceeds some &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;, the protocol aborts&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Preparing data:&#039;&#039;&#039;&lt;br /&gt;
# Let &amp;lt;math&amp;gt;\tilde{I} := \{i : i \in I&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Generate&#039;&#039;&#039;} and &amp;lt;math&amp;gt;n^{\prime} = |\tilde{I}|&amp;lt;/math&amp;gt;. The sender checks if there exists a &amp;lt;math&amp;gt; k &amp;gt; 0 &amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\gamma n^{\prime} \leq n^{\prime}/4 - 2l -kn^{\prime}&amp;lt;/math&amp;gt;. If such a &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; exists, the sender publishes &amp;lt;math&amp;gt;\tilde{I}&amp;lt;/math&amp;gt; and, for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, the trapdoor &amp;lt;math&amp;gt;t_i^B&amp;lt;/math&amp;gt; corresponding to the key &amp;lt;math&amp;gt;k_i^B&amp;lt;/math&amp;gt; (given by the sender in the execution of &#039;&#039;&#039;Protocol 2,Step 1&#039;&#039;&#039;); otherwise the protocol aborts.&lt;br /&gt;
&amp;lt;!-- INCLUDE V_i^ALPHA CALCULATION --&amp;gt;&lt;br /&gt;
# For each &amp;lt;math&amp;gt;i \in \tilde{I},&amp;lt;/math&amp;gt; the sender calculates &amp;lt;math&amp;gt;v_i^{\alpha} = d^A_i.(x_{i,0}^A \oplus x_{i,1}^A)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\alpha} = \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{Hadamard}\\ 0, \mbox{if } x_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: and the receiver calculates &amp;lt;math&amp;gt;v_i^{\beta} =  = d^B_i.(x_{i,0}^B \oplus x_{i,1}^B)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\beta} = \begin{cases} 0, \mbox{if } y_i = \mbox{Hadamard}\\ v_i^{\beta}, \mbox{if } y_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: &#039;&#039;&#039;Obtaining output:&#039;&#039;&#039;&lt;br /&gt;
# The sender randomly picks two hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, and outputs &amp;lt;math&amp;gt;s_0 = f_0(a \oplus w^{\alpha}|_{\tilde{I}_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 = f_1(a \oplus w^{\alpha}|_{\tilde{I}_1})&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\tilde{I}_r := \{i \in \tilde{I}: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Receiver outputs &amp;lt;math&amp;gt;s_c = f_c(a \oplus w^{\beta}|_{\tilde{I}_c})&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;-&#039;&#039;&#039;Receiver security:&#039;&#039;&#039; If &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; is honest, then for any &amp;lt;math&amp;gt;\tilde{S}&amp;lt;/math&amp;gt;, there exist random variables &amp;lt;math&amp;gt;S_0^{\prime}, S_1^{\prime}&amp;lt;/math&amp;gt; such that Pr[&amp;lt;math&amp;gt;Y = S_c^{\prime}] \geq 1 - \epsilon&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;D(\rho_{c,S_0^{\prime}, S_1^{\prime},\tilde{S}}, \rho_c \otimes \rho_{S_0^{\prime}, S_1^{\prime},\tilde{S}}) \leq \epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
*: Protocol 3 is perfectly receiver secure, i.e. &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; = 0&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;-&#039;&#039;&#039;Sender security:&#039;&#039;&#039; If S is honest, then for any &amp;lt;math&amp;gt;\tilde{R}&amp;lt;/math&amp;gt;, there exist a random variable &amp;lt;math&amp;gt;c^{\prime}&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;D(\rho_{S_{1-c^{\prime}},S_{c^{\prime}},c^{\prime},\tilde{R}}, \frac{1}{2^l}I \otimes \rho_{S_{c^{\prime}},c^{\prime},\tilde{R}}) \leq \epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
*: Protocol 3 is &amp;lt;math&amp;gt;\epsilon^{\prime}&amp;lt;/math&amp;gt;-sender secure, where &amp;lt;math&amp;gt;\epsilon^{\prime}&amp;lt;/math&amp;gt; can be made negligible in certain conditions.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* The protocol and its security proofs can be found in [https://arxiv.org/abs/2111.08595 Broadbent and Yuen(2021)] &lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4449</id>
		<title>Device-Independent Oblivious Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4449"/>
		<updated>2022-01-23T09:34:10Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2111.08595 example protocol] achieves the task of device-independent oblivious transfer in the bounded quantum storage model using a computational assumption.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* The quantum storage of the receiver is bounded during the execution of the protocol&lt;br /&gt;
* The device used is computationally bounded - it cannot solve the Learning with Errors (LWE) problem during the execution of the protocol&lt;br /&gt;
* The device behaves in an IID manner - it behaves independently and identically during each round of the protocol&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* The protocol consists of multiple rounds, which are randomly chosen for testing or string generation&lt;br /&gt;
* The testing rounds are carried out to ensure that the devices used are following the expected behaviour. The self-testing protocol used is a modification of the one used in DIQKD. This modification is necessary as, unlike the DIQKD scenario, the parties involved in OT may not trust each other to cooperate. The self-testing protocol uses the computational assumptions associated with &#039;&#039;Extended noisy trapdoor claw-free&#039;&#039; (ENTCF) function families to certify that the device has created the desired quantum states. If the fraction of failed testing rounds exceeds a certain limit, the protocol is aborted.&lt;br /&gt;
* At the end of the protocol, the honest sender outputs two randomly generated strings of equal length, and the honest receiver outputs their chosen string out of the two.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: The sender&lt;br /&gt;
* &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;: The receiver&lt;br /&gt;
* &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;: Length of the output strings&lt;br /&gt;
* &amp;lt;math&amp;gt;s_0, s_1&amp;lt;/math&amp;gt;: The strings output by the sender&lt;br /&gt;
* &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;: A bit denoting the receiver&#039;s choice &lt;br /&gt;
* For any bit &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, [&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;]&amp;lt;math&amp;gt;_r = \begin{cases}\mbox{Computational, if } r = 0\\ \mbox{Hadamard,         if } r = 1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_X = \begin{pmatrix}0 &amp;amp; 1 \\ 1 &amp;amp; 0 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_Z = \begin{pmatrix}1 &amp;amp; 0 \\ 0 &amp;amp; -1 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* For bits &amp;lt;math&amp;gt;v^{\alpha},v^{\beta}: |\phi^{(v^{\alpha},v^{\beta})}\rangle = (\sigma_Z^{v^{\alpha}}\sigma_X^{v^{\beta}} \otimes I) \frac{|00\rangle+|11\rangle}{\sqrt{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
* An ENTCF family consists of two families of function pairs: &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;. A function pair &amp;lt;math&amp;gt;(f_{k,0},f_{k,1})&amp;lt;/math&amp;gt;is indexed by a public key &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in F&amp;lt;/math&amp;gt;, then it is a &#039;&#039;claw-free pair&#039;&#039;; and if &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in G&amp;lt;/math&amp;gt;, then it is called an &#039;&#039;injective pair&#039;&#039;. ENTCF families satisfy the following properties:&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_F, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k,1}&amp;lt;/math&amp;gt; are bijections with the same image; for every image &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, there exists a unique pair &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt;, called a &#039;&#039;claw&#039;&#039;, such that &amp;lt;math&amp;gt;f_{k,0}(x_0) = f_{k,1}(x_1) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
*# Given a &#039;&#039;key&#039;&#039; &amp;lt;math&amp;gt;k \in K_F&amp;lt;/math&amp;gt;, for a claw-free pair, it is quantum-computationally intractable (without access to &#039;&#039;trapdoor&#039;&#039; information) to compute both a &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and a single generalized bit of &amp;lt;math&amp;gt;x_0 \oplus x_1&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt; forms a valid claw. This is known as the &#039;&#039;adaptive hardcore bit&#039;&#039; property.&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_G, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k_1}&amp;lt;/math&amp;gt; are injunctive functions with disjoint images.&lt;br /&gt;
*# Given a key &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, it is quantum-computationally hard (without access to &#039;&#039;trapdoor&#039;&#039; information) to determine whether &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a key for a claw-free or an injective pair. This property is known as &#039;&#039;injective invariance&#039;&#039;.&lt;br /&gt;
*# For every &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, there exists a trapdoor &amp;lt;math&amp;gt;t_k&amp;lt;/math&amp;gt; which can be sampled together with &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; and with which 2 and 4 are computationally easy.&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
# A device prepares &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; uniformly random Bell pairs &amp;lt;math&amp;gt;|\phi^{(v_i^{\alpha},v_i^{\beta})}\rangle, i = 1,...,n&amp;lt;/math&amp;gt;, where the first qubit of each pair goes to &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\alpha}&amp;lt;/math&amp;gt;, and the second qubit of each pair goes to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\beta}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# R measures all qubits in the basis &amp;lt;math&amp;gt;y = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;&#039;s choice bit. Let &amp;lt;math&amp;gt;b \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;b \oplus w^{\beta}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; is defined by &lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\beta} := \begin{cases} 0, \mbox{if } y = \mbox{ Hadamard}\\ v_i^{\beta}, \mbox{if } y = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks uniformly random &amp;lt;math&amp;gt;x \in \{&amp;lt;/math&amp;gt; &#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;\}^n&amp;lt;/math&amp;gt;, and measures the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th qubit in basis &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;a \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;a \oplus w^{\alpha}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; is defined by&lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\alpha} := \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{ Hadamard}\\ 0, \mbox{if } x_i = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks two uniformly random hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; and outputs &amp;lt;math&amp;gt;s_0 := f_0(a \oplus w^{\alpha} |_{I_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 := f_1(a \oplus w^{\alpha} |_{I_1})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;I_r := \{i \in I: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; outputs &amp;lt;math&amp;gt;s_c = f_c(b \oplus w^{\beta} |_{I_c})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Self-testing with a single verifier===&lt;br /&gt;
# Alice chooses the state bases &amp;lt;math&amp;gt;\theta^A,\theta^B \in &amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} uniformly at random and generates key-trapdoor pairs &amp;lt;math&amp;gt;(k^A,t^A),(k^B,t^B)&amp;lt;/math&amp;gt;, where the generation procedure for &amp;lt;math&amp;gt;k^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^A&amp;lt;/math&amp;gt; depends on &amp;lt;math&amp;gt;\theta^A&amp;lt;/math&amp;gt; and a security parameter &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;, and likewise for &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^B&amp;lt;/math&amp;gt;. Alice supplies Bob with &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt;. Alice and Bob then respectively send &amp;lt;math&amp;gt;k^A, k^B&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
# Alice and Bob receive strings &amp;lt;math&amp;gt;c^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;c^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# Alice chooses a &#039;&#039;challenge type&#039;&#039; &amp;lt;math&amp;gt;CT \in \{a,b\}&amp;lt;/math&amp;gt;, uniformly at random and sends it to Bob. Alice and Bob then send &amp;lt;math&amp;gt;CT&amp;lt;/math&amp;gt; to each component of their device.&lt;br /&gt;
# If &amp;lt;math&amp;gt;CT = a&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;z^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# If  &amp;lt;math&amp;gt;CT = b&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;d^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;d^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
## Alice chooses uniformly random &#039;&#039;measurement bases (questions)&#039;&#039; &amp;lt;math&amp;gt;x,y \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} and sends &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to Bob. Alice and Bob then, respectively, send &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
## Alice and Bob receive answer bits &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, respectively, from the device. Alice and Bob also receive bits &amp;lt;math&amp;gt;h^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;h^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: DI Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
::&#039;&#039;&#039;Data generation:&#039;&#039;&#039;&lt;br /&gt;
# The sender and receiver execute &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; rounds of &#039;&#039;&#039;Protocol 2&#039;&#039;&#039; (Self-testing) with the sender as Alice and receiver as Bob, and with the following modification:&lt;br /&gt;
#: If &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;, then with probability &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, the receiver does not use the measurement basis question supplied by the sender and instead inputs &amp;lt;math&amp;gt;y_i=[&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is the receiver&#039;s choice bit. Let &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; be the set of indices marking the rounds where this has been done. &lt;br /&gt;
#: For each round &amp;lt;math&amp;gt; i \in \{1,...,n\} &amp;lt;/math&amp;gt;, the receiver stores:&lt;br /&gt;
#:* &amp;lt;math&amp;gt;c_i^B&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* &amp;lt;math&amp;gt;z_i^B&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* or &amp;lt;math&amp;gt;(d_i^B,y_i,b_i,h_i^B)&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
#: The sender stores &amp;lt;math&amp;gt;\theta_i^A,\theta_i^B,(k_i^A,t_i^A),(k_i^B,t_i^B),c_i^A,CT_i;&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z_i^A&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;(d_i^A,x_i,a_i,h_i^A)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender stores the variable &amp;lt;math&amp;gt;RT_i&amp;lt;/math&amp;gt; (round type), defined as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_i^A = \theta_i^B = &amp;lt;/math&amp;gt;&#039;&#039;&#039;Hadamard&#039;&#039;&#039;, then &amp;lt;math&amp;gt;RT_i =&amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Product&#039;&#039;&#039;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender chooses &amp;lt;math&amp;gt;T_i&amp;lt;/math&amp;gt;, indicating a test round or generation round, as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;, choose &amp;lt;math&amp;gt;T_i \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Test, Generate&#039;&#039;&#039;} uniformly at random&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
#: The sender sends (&amp;lt;math&amp;gt;T_1,...,T_n&amp;lt;/math&amp;gt;) to the receiver&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Testing:&#039;&#039;&#039;&lt;br /&gt;
# The receiver sends the set of indices &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; to the sender. The receiver publishes their output for all &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039; rounds where &amp;lt;math&amp;gt;i \notin I&amp;lt;/math&amp;gt;. Using this published data, the sender determines the bits which an honest device would have returned.&lt;br /&gt;
# The sender computes the fraction of test rounds (for which the receiver has published data for) that failed. If this exceeds some &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;, the protocol aborts&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Preparing data:&#039;&#039;&#039;&lt;br /&gt;
# Let &amp;lt;math&amp;gt;\tilde{I} := \{i : i \in I&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Generate&#039;&#039;&#039;} and &amp;lt;math&amp;gt;n^{\prime} = |\tilde{I}|&amp;lt;/math&amp;gt;. The sender checks if there exists a &amp;lt;math&amp;gt; k &amp;gt; 0 &amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\gamma n^{\prime} \leq n^{\prime}/4 - 2l -kn^{\prime}&amp;lt;/math&amp;gt;. If such a &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; exists, the sender publishes &amp;lt;math&amp;gt;\tilde{I}&amp;lt;/math&amp;gt; and, for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, the trapdoor &amp;lt;math&amp;gt;t_i^B&amp;lt;/math&amp;gt; corresponding to the key &amp;lt;math&amp;gt;k_i^B&amp;lt;/math&amp;gt; (given by the sender in the execution of &#039;&#039;&#039;Protocol 2,Step 1&#039;&#039;&#039;); otherwise the protocol aborts.&lt;br /&gt;
&amp;lt;!-- INCLUDE V_i^ALPHA CALCULATION --&amp;gt;&lt;br /&gt;
# For each &amp;lt;math&amp;gt;i \in \tilde{I},&amp;lt;/math&amp;gt; the sender calculates &amp;lt;math&amp;gt;v_i^{\alpha} = d^A_i.(x_{i,0}^A \oplus x_{i,1}^A)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\alpha} = \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{Hadamard}\\ 0, \mbox{if } x_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: and the receiver calculates &amp;lt;math&amp;gt;v_i^{\beta} =  = d^B_i.(x_{i,0}^B \oplus x_{i,1}^B)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\beta} = \begin{cases} 0, \mbox{if } y_i = \mbox{Hadamard}\\ v_i^{\beta}, \mbox{if } y_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: &#039;&#039;&#039;Obtaining output:&#039;&#039;&#039;&lt;br /&gt;
# The sender randomly picks two hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, and outputs &amp;lt;math&amp;gt;s_0 = f_0(a \oplus w^{\alpha}|_{\tilde{I}_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 = f_1(a \oplus w^{\alpha}|_{\tilde{I}_1})&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\tilde{I}_r := \{i \in \tilde{I}: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Receiver outputs &amp;lt;math&amp;gt;s_c = f_c(a \oplus w^{\beta}|_{\tilde{I}_c})&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;-&#039;&#039;&#039;Receiver security:&#039;&#039;&#039; If &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; is honest, then for any &amp;lt;math&amp;gt;\tilde{S}&amp;lt;/math&amp;gt;, there exist random variables &amp;lt;math&amp;gt;S_0^{\prime}, S_1^{\prime}&amp;lt;/math&amp;gt; such that Pr[&amp;lt;math&amp;gt;Y = S_c^{\prime}] \geq 1 - \epsilon&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;D(\rho_{c,S_0^{\prime}, S_1^{\prime},\tilde{S}}, \rho_c \otimes \rho_{S_0^{\prime}, S_1^{\prime},\tilde{S}}) \leq \epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
*: Protocol 3 is perfectly receiver secure, i.e. &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; = 0&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;-&#039;&#039;&#039;Sender security:&#039;&#039;&#039; If S is honest, then for any &amp;lt;math&amp;gt;\tilde{R}&amp;lt;/math&amp;gt;, there exist a random variable &amp;lt;math&amp;gt;c^{\prime}&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;D(\rho_{S_{1-c^{\prime}},S_{c^{\prime}},c^{\prime},\tilde{R}}, \frac{1}{2^l}I \otimes \rho_{S_{c^{\prime}},c^{\prime},\tilde{R}}) \leq \epsilon&amp;lt;/math&amp;gt;&lt;br /&gt;
*: Protocol 3 is &amp;lt;math&amp;gt;\epsilon^{\prime}&amp;lt;/math&amp;gt;-sender secure, where &amp;lt;math&amp;gt;\epsilon^{\prime}&amp;lt;/math&amp;gt; can be made negligible in certain conditions.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* The protocol and its security proofs can be found in [https://arxiv.org/abs/2111.08595 Broadbent and Yuen(2021)] &lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4448</id>
		<title>Device-Independent Oblivious Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4448"/>
		<updated>2022-01-22T15:38:20Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2111.08595 example protocol] achieves the task of device-independent oblivious transfer in the bounded quantum storage model using a computational assumption.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* The quantum storage of the receiver is bounded during the execution of the protocol&lt;br /&gt;
* The device used is computationally bounded - it cannot solve the Learning with Errors (LWE) problem during the execution of the protocol&lt;br /&gt;
* The device behaves in an IID manner - it behaves independently and identically during each round of the protocol&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* The protocol consists of multiple rounds, which are randomly chosen for testing or string generation&lt;br /&gt;
* The testing rounds are carried out to ensure that the devices used are following the expected behaviour. The self-testing protocol used is a modification of the one used in DIQKD. This modification is necessary as, unlike the DIQKD scenario, the parties involved in OT may not trust each other to cooperate. The self-testing protocol uses the computational assumptions associated with &#039;&#039;Extended noisy trapdoor claw-free&#039;&#039; (ENTCF) function families to certify that the device has created the desired quantum states. If the fraction of failed testing rounds exceeds a certain limit, the protocol is aborted.&lt;br /&gt;
* At the end of the protocol, the honest sender outputs two randomly generated strings of equal length, and the honest receiver outputs their chosen string out of the two.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: The sender&lt;br /&gt;
* &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;: The receiver&lt;br /&gt;
* &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;: Length of the output strings&lt;br /&gt;
* &amp;lt;math&amp;gt;s_0, s_1&amp;lt;/math&amp;gt;: The strings output by the sender&lt;br /&gt;
* &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;: A bit denoting the receiver&#039;s choice &lt;br /&gt;
* For any bit &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, [&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;]&amp;lt;math&amp;gt;_r = \begin{cases}\mbox{Computational, if } r = 0\\ \mbox{Hadamard,         if } r = 1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_X = \begin{pmatrix}0 &amp;amp; 1 \\ 1 &amp;amp; 0 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_Z = \begin{pmatrix}1 &amp;amp; 0 \\ 0 &amp;amp; -1 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* For bits &amp;lt;math&amp;gt;v^{\alpha},v^{\beta}: |\phi^{(v^{\alpha},v^{\beta})}\rangle = (\sigma_Z^{v^{\alpha}}\sigma_X^{v^{\beta}} \otimes I) \frac{|00\rangle+|11\rangle}{\sqrt{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
* An ENTCF family consists of two families of function pairs: &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;. A function pair &amp;lt;math&amp;gt;(f_{k,0},f_{k,1})&amp;lt;/math&amp;gt;is indexed by a public key &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in F&amp;lt;/math&amp;gt;, then it is a &#039;&#039;claw-free pair&#039;&#039;; and if &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in G&amp;lt;/math&amp;gt;, then it is called an &#039;&#039;injective pair&#039;&#039;. ENTCF families satisfy the following properties:&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_F, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k,1}&amp;lt;/math&amp;gt; are bijections with the same image; for every image &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, there exists a unique pair &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt;, called a &#039;&#039;claw&#039;&#039;, such that &amp;lt;math&amp;gt;f_{k,0}(x_0) = f_{k,1}(x_1) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
*# Given a &#039;&#039;key&#039;&#039; &amp;lt;math&amp;gt;k \in K_F&amp;lt;/math&amp;gt;, for a claw-free pair, it is quantum-computationally intractable (without access to &#039;&#039;trapdoor&#039;&#039; information) to compute both a &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and a single generalized bit of &amp;lt;math&amp;gt;x_0 \oplus x_1&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt; forms a valid claw. This is known as the &#039;&#039;adaptive hardcore bit&#039;&#039; property.&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_G, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k_1}&amp;lt;/math&amp;gt; are injunctive functions with disjoint images.&lt;br /&gt;
*# Given a key &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, it is quantum-computationally hard (without access to &#039;&#039;trapdoor&#039;&#039; information) to determine whether &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a key for a claw-free or an injective pair. This property is known as &#039;&#039;injective invariance&#039;&#039;.&lt;br /&gt;
*# For every &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, there exists a trapdoor &amp;lt;math&amp;gt;t_k&amp;lt;/math&amp;gt; which can be sampled together with &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; and with which 2 and 4 are computationally easy.&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
# A device prepares &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; uniformly random Bell pairs &amp;lt;math&amp;gt;|\phi^{(v_i^{\alpha},v_i^{\beta})}\rangle, i = 1,...,n&amp;lt;/math&amp;gt;, where the first qubit of each pair goes to &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\alpha}&amp;lt;/math&amp;gt;, and the second qubit of each pair goes to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\beta}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# R measures all qubits in the basis &amp;lt;math&amp;gt;y = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;&#039;s choice bit. Let &amp;lt;math&amp;gt;b \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;b \oplus w^{\beta}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; is defined by &lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\beta} := \begin{cases} 0, \mbox{if } y = \mbox{ Hadamard}\\ v_i^{\beta}, \mbox{if } y = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks uniformly random &amp;lt;math&amp;gt;x \in \{&amp;lt;/math&amp;gt; &#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;\}^n&amp;lt;/math&amp;gt;, and measures the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th qubit in basis &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;a \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;a \oplus w^{\alpha}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; is defined by&lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\alpha} := \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{ Hadamard}\\ 0, \mbox{if } x_i = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks two uniformly random hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; and outputs &amp;lt;math&amp;gt;s_0 := f_0(a \oplus w^{\alpha} |_{I_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 := f_1(a \oplus w^{\alpha} |_{I_1})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;I_r := \{i \in I: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; outputs &amp;lt;math&amp;gt;s_c = f_c(b \oplus w^{\beta} |_{I_c})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Self-testing with a single verifier===&lt;br /&gt;
# Alice chooses the state bases &amp;lt;math&amp;gt;\theta^A,\theta^B \in &amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} uniformly at random and generates key-trapdoor pairs &amp;lt;math&amp;gt;(k^A,t^A),(k^B,t^B)&amp;lt;/math&amp;gt;, where the generation procedure for &amp;lt;math&amp;gt;k^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^A&amp;lt;/math&amp;gt; depends on &amp;lt;math&amp;gt;\theta^A&amp;lt;/math&amp;gt; and a security parameter &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;, and likewise for &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^B&amp;lt;/math&amp;gt;. Alice supplies Bob with &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt;. Alice and Bob then respectively send &amp;lt;math&amp;gt;k^A, k^B&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
# Alice and Bob receive strings &amp;lt;math&amp;gt;c^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;c^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# Alice chooses a &#039;&#039;challenge type&#039;&#039; &amp;lt;math&amp;gt;CT \in \{a,b\}&amp;lt;/math&amp;gt;, uniformly at random and sends it to Bob. Alice and Bob then send &amp;lt;math&amp;gt;CT&amp;lt;/math&amp;gt; to each component of their device.&lt;br /&gt;
# If &amp;lt;math&amp;gt;CT = a&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;z^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# If  &amp;lt;math&amp;gt;CT = b&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;d^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;d^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
## Alice chooses uniformly random &#039;&#039;measurement bases (questions)&#039;&#039; &amp;lt;math&amp;gt;x,y \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} and sends &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to Bob. Alice and Bob then, respectively, send &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
## Alice and Bob receive answer bits &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, respectively, from the device. Alice and Bob also receive bits &amp;lt;math&amp;gt;h^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;h^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: DI Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
::&#039;&#039;&#039;Data generation:&#039;&#039;&#039;&lt;br /&gt;
# The sender and receiver execute &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; rounds of &#039;&#039;&#039;Protocol 2&#039;&#039;&#039; (Self-testing) with the sender as Alice and receiver as Bob, and with the following modification:&lt;br /&gt;
#: If &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;, then with probability &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, the receiver does not use the measurement basis question supplied by the sender and instead inputs &amp;lt;math&amp;gt;y_i=[&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is the receiver&#039;s choice bit. Let &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; be the set of indices marking the rounds where this has been done. &lt;br /&gt;
#: For each round &amp;lt;math&amp;gt; i \in \{1,...,n\} &amp;lt;/math&amp;gt;, the receiver stores:&lt;br /&gt;
#:* &amp;lt;math&amp;gt;c_i^B&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* &amp;lt;math&amp;gt;z_i^B&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* or &amp;lt;math&amp;gt;(d_i^B,y_i,b_i,h_i^B)&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
#: The sender stores &amp;lt;math&amp;gt;\theta_i^A,\theta_i^B,(k_i^A,t_i^A),(k_i^B,t_i^B),c_i^A,CT_i;&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z_i^A&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;(d_i^A,x_i,a_i,h_i^A)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender stores the variable &amp;lt;math&amp;gt;RT_i&amp;lt;/math&amp;gt; (round type), defined as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_i^A = \theta_i^B = &amp;lt;/math&amp;gt;&#039;&#039;&#039;Hadamard&#039;&#039;&#039;, then &amp;lt;math&amp;gt;RT_i =&amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Product&#039;&#039;&#039;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender chooses &amp;lt;math&amp;gt;T_i&amp;lt;/math&amp;gt;, indicating a test round or generation round, as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;, choose &amp;lt;math&amp;gt;T_i \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Test, Generate&#039;&#039;&#039;} uniformly at random&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
#: The sender sends (&amp;lt;math&amp;gt;T_1,...,T_n&amp;lt;/math&amp;gt;) to the receiver&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Testing:&#039;&#039;&#039;&lt;br /&gt;
# The receiver sends the set of indices &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; to the sender. The receiver publishes their output for all &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039; rounds where &amp;lt;math&amp;gt;i \notin I&amp;lt;/math&amp;gt;. Using this published data, the sender determines the bits which an honest device would have returned.&lt;br /&gt;
# The sender computes the fraction of test rounds (for which the receiver has published data for) that failed. If this exceeds some &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;, the protocol aborts&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Preparing data:&#039;&#039;&#039;&lt;br /&gt;
# Let &amp;lt;math&amp;gt;\tilde{I} := \{i : i \in I&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Generate&#039;&#039;&#039;} and &amp;lt;math&amp;gt;n^{\prime} = |\tilde{I}|&amp;lt;/math&amp;gt;. The sender checks if there exists a &amp;lt;math&amp;gt; k &amp;gt; 0 &amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\gamma n^{\prime} \leq n^{\prime}/4 - 2l -kn^{\prime}&amp;lt;/math&amp;gt;. If such a &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; exists, the sender publishes &amp;lt;math&amp;gt;\tilde{I}&amp;lt;/math&amp;gt; and, for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, the trapdoor &amp;lt;math&amp;gt;t_i^B&amp;lt;/math&amp;gt; corresponding to the key &amp;lt;math&amp;gt;k_i^B&amp;lt;/math&amp;gt; (given by the sender in the execution of &#039;&#039;&#039;Protocol 2,Step 1&#039;&#039;&#039;); otherwise the protocol aborts.&lt;br /&gt;
&amp;lt;!-- INCLUDE V_i^ALPHA CALCULATION --&amp;gt;&lt;br /&gt;
# For each &amp;lt;math&amp;gt;i \in \tilde{I},&amp;lt;/math&amp;gt; the sender calculates &amp;lt;math&amp;gt;v_i^{\alpha} = d^A_i.(x_{i,0}^A \oplus x_{i,1}^A)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\alpha} = \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{Hadamard}\\ 0, \mbox{if } x_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: and the receiver calculates &amp;lt;math&amp;gt;v_i^{\beta} =  = d^B_i.(x_{i,0}^B \oplus x_{i,1}^B)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\beta} = \begin{cases} 0, \mbox{if } y_i = \mbox{Hadamard}\\ v_i^{\beta}, \mbox{if } y_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: &#039;&#039;&#039;Obtaining output:&#039;&#039;&#039;&lt;br /&gt;
# The sender randomly picks two hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, and outputs &amp;lt;math&amp;gt;s_0 = f_0(a \oplus w^{\alpha}|_{\tilde{I}_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 = f_1(a \oplus w^{\alpha}|_{\tilde{I}_1})&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\tilde{I}_r := \{i \in \tilde{I}: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Receiver outputs &amp;lt;math&amp;gt;s_c = f_c(a \oplus w^{\beta}|_{\tilde{I}_c})&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&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 Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4447</id>
		<title>Device-Independent Oblivious Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4447"/>
		<updated>2022-01-22T15:35:24Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Added outline and notation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2111.08595 example protocol] achieves the task of device-independent oblivious transfer in the bounded quantum storage model using a computational assumption.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* The quantum storage of the receiver is bounded during the execution of the protocol&lt;br /&gt;
* The device used is computationally bounded - it cannot solve the Learning with Errors (LWE) problem during the execution of the protocol&lt;br /&gt;
* The device behaves in an IID manner - it behaves independently and identically during each round of the protocol&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* The protocol consists of multiple rounds, which are randomly chosen for testing or string generation&lt;br /&gt;
* The testing rounds are carried out to ensure that the devices used are following the expected behaviour. The self-testing protocol used is a modification of the one used in DIQKD. This modification is necessary as, unlike the DIQKD scenario, the parties involved in OT may not trust each other to cooperate. The self-testing protocol uses the computational assumptions associated with &#039;&#039;Extended noisy trapdoor claw-free&#039;&#039; (ENTCF) function families to certify that the device has created the desired quantum states. If the fraction of failed testing rounds exceeds a certain limit, the protocol is aborted.&lt;br /&gt;
* Following the generation rounds, the honest sender outputs two randomly generated strings of equal length, and the honest receiver outputs their chosen string out of the two.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: The sender&lt;br /&gt;
* &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;: The receiver&lt;br /&gt;
* &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt;: Length of the output strings&lt;br /&gt;
* &amp;lt;math&amp;gt;s_0, s_1&amp;lt;/math&amp;gt;: The strings output by the sender&lt;br /&gt;
* &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;: A bit denoting the receiver&#039;s choice &lt;br /&gt;
* For any bit &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, [&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;]&amp;lt;math&amp;gt;_r = \begin{cases}\mbox{Computational, if } r = 0\\ \mbox{Hadamard,         if } r = 1\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\sigma_Z = \begin{pmatrix}1 &amp;amp; 0 \\ 0 &amp;amp; -1 \end{pmatrix} &amp;lt;/math&amp;gt;&lt;br /&gt;
* For bits &amp;lt;math&amp;gt;v^{\alpha},v^{\beta}: |\phi^{(v^{\alpha},v^{\beta})}\rangle = (\sigma_Z^{v^{\alpha}}\sigma_X^{v^{\beta}} \otimes I) \frac{|00\rangle+|11\rangle}{\sqrt{2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
* An ENTCF family consists of two families of function pairs: &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;. A function pair &amp;lt;math&amp;gt;(f_{k,0},f_{k,1})&amp;lt;/math&amp;gt;is indexed by a public key &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in F&amp;lt;/math&amp;gt;, then it is a &#039;&#039;claw-free pair&#039;&#039;; and if &amp;lt;math&amp;gt;(f_{k,0},f_{k,1}) \in G&amp;lt;/math&amp;gt;, then it is called an &#039;&#039;injective pair&#039;&#039;. ENTCF families satisfy the following properties:&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_F, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k,1}&amp;lt;/math&amp;gt; are bijections with the same image; for every image &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;, there exists a unique pair &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt;, called a &#039;&#039;claw&#039;&#039;, such that &amp;lt;math&amp;gt;f_{k,0}(x_0) = f_{k,1}(x_1) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
*# Given a &#039;&#039;key&#039;&#039; &amp;lt;math&amp;gt;k \in K_F&amp;lt;/math&amp;gt;, for a claw-free pair, it is quantum-computationally intractable (without access to &#039;&#039;trapdoor&#039;&#039; information) to compute both a &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; and a single generalized bit of &amp;lt;math&amp;gt;x_0 \oplus x_1&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;(x_0,x_1)&amp;lt;/math&amp;gt; forms a valid claw. This is known as the &#039;&#039;adaptive hardcore bit&#039;&#039; property.&lt;br /&gt;
*# For a fixed &amp;lt;math&amp;gt;k \in K_G, f_{k,0}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_{k_1}&amp;lt;/math&amp;gt; are injunctive functions with disjoint images.&lt;br /&gt;
*# Given a key &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, it is quantum-computationally hard (without access to &#039;&#039;trapdoor&#039;&#039; information) to determine whether &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a key for a claw-free or an injective pair. This property is known as &#039;&#039;injective invariance&#039;&#039;.&lt;br /&gt;
*# For every &amp;lt;math&amp;gt;k \in K_F \cup K_G&amp;lt;/math&amp;gt;, there exists a trapdoor &amp;lt;math&amp;gt;t_k&amp;lt;/math&amp;gt; which can be sampled together with &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; and with which 2 and 4 are computationally easy.&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
# A device prepares &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; uniformly random Bell pairs &amp;lt;math&amp;gt;|\phi^{(v_i^{\alpha},v_i^{\beta})}\rangle, i = 1,...,n&amp;lt;/math&amp;gt;, where the first qubit of each pair goes to &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\alpha}&amp;lt;/math&amp;gt;, and the second qubit of each pair goes to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\beta}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# R measures all qubits in the basis &amp;lt;math&amp;gt;y = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;&#039;s choice bit. Let &amp;lt;math&amp;gt;b \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;b \oplus w^{\beta}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; is defined by &lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\beta} := \begin{cases} 0, \mbox{if } y = \mbox{ Hadamard}\\ v_i^{\beta}, \mbox{if } y = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks uniformly random &amp;lt;math&amp;gt;x \in \{&amp;lt;/math&amp;gt; &#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;\}^n&amp;lt;/math&amp;gt;, and measures the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th qubit in basis &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;a \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;a \oplus w^{\alpha}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; is defined by&lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\alpha} := \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{ Hadamard}\\ 0, \mbox{if } x_i = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks two uniformly random hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; and outputs &amp;lt;math&amp;gt;s_0 := f_0(a \oplus w^{\alpha} |_{I_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 := f_1(a \oplus w^{\alpha} |_{I_1})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;I_r := \{i \in I: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; outputs &amp;lt;math&amp;gt;s_c = f_c(b \oplus w^{\beta} |_{I_c})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Self-testing with a single verifier===&lt;br /&gt;
# Alice chooses the state bases &amp;lt;math&amp;gt;\theta^A,\theta^B \in &amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} uniformly at random and generates key-trapdoor pairs &amp;lt;math&amp;gt;(k^A,t^A),(k^B,t^B)&amp;lt;/math&amp;gt;, where the generation procedure for &amp;lt;math&amp;gt;k^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^A&amp;lt;/math&amp;gt; depends on &amp;lt;math&amp;gt;\theta^A&amp;lt;/math&amp;gt; and a security parameter &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;, and likewise for &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^B&amp;lt;/math&amp;gt;. Alice supplies Bob with &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt;. Alice and Bob then respectively send &amp;lt;math&amp;gt;k^A, k^B&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
# Alice and Bob receive strings &amp;lt;math&amp;gt;c^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;c^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# Alice chooses a &#039;&#039;challenge type&#039;&#039; &amp;lt;math&amp;gt;CT \in \{a,b\}&amp;lt;/math&amp;gt;, uniformly at random and sends it to Bob. Alice and Bob then send &amp;lt;math&amp;gt;CT&amp;lt;/math&amp;gt; to each component of their device.&lt;br /&gt;
# If &amp;lt;math&amp;gt;CT = a&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;z^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# If  &amp;lt;math&amp;gt;CT = b&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;d^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;d^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
## Alice chooses uniformly random &#039;&#039;measurement bases (questions)&#039;&#039; &amp;lt;math&amp;gt;x,y \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} and sends &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to Bob. Alice and Bob then, respectively, send &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
## Alice and Bob receive answer bits &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, respectively, from the device. Alice and Bob also receive bits &amp;lt;math&amp;gt;h^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;h^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: DI Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
::&#039;&#039;&#039;Data generation:&#039;&#039;&#039;&lt;br /&gt;
# The sender and receiver execute &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; rounds of &#039;&#039;&#039;Protocol 2&#039;&#039;&#039; (Self-testing) with the sender as Alice and receiver as Bob, and with the following modification:&lt;br /&gt;
#: If &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;, then with probability &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, the receiver does not use the measurement basis question supplied by the sender and instead inputs &amp;lt;math&amp;gt;y_i=[&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is the receiver&#039;s choice bit. Let &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; be the set of indices marking the rounds where this has been done. &lt;br /&gt;
#: For each round &amp;lt;math&amp;gt; i \in \{1,...,n\} &amp;lt;/math&amp;gt;, the receiver stores:&lt;br /&gt;
#:* &amp;lt;math&amp;gt;c_i^B&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* &amp;lt;math&amp;gt;z_i^B&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* or &amp;lt;math&amp;gt;(d_i^B,y_i,b_i,h_i^B)&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
#: The sender stores &amp;lt;math&amp;gt;\theta_i^A,\theta_i^B,(k_i^A,t_i^A),(k_i^B,t_i^B),c_i^A,CT_i;&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z_i^A&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;(d_i^A,x_i,a_i,h_i^A)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender stores the variable &amp;lt;math&amp;gt;RT_i&amp;lt;/math&amp;gt; (round type), defined as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_i^A = \theta_i^B = &amp;lt;/math&amp;gt;&#039;&#039;&#039;Hadamard&#039;&#039;&#039;, then &amp;lt;math&amp;gt;RT_i =&amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Product&#039;&#039;&#039;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender chooses &amp;lt;math&amp;gt;T_i&amp;lt;/math&amp;gt;, indicating a test round or generation round, as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;, choose &amp;lt;math&amp;gt;T_i \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Test, Generate&#039;&#039;&#039;} uniformly at random&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
#: The sender sends (&amp;lt;math&amp;gt;T_1,...,T_n&amp;lt;/math&amp;gt;) to the receiver&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Testing:&#039;&#039;&#039;&lt;br /&gt;
# The receiver sends the set of indices &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; to the sender. The receiver publishes their output for all &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039; rounds where &amp;lt;math&amp;gt;i \notin I&amp;lt;/math&amp;gt;. Using this published data, the sender determines the bits which an honest device would have returned.&lt;br /&gt;
# The sender computes the fraction of test rounds (for which the receiver has published data for) that failed. If this exceeds some &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;, the protocol aborts&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Preparing data:&#039;&#039;&#039;&lt;br /&gt;
# Let &amp;lt;math&amp;gt;\tilde{I} := \{i : i \in I&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Generate&#039;&#039;&#039;} and &amp;lt;math&amp;gt;n^{\prime} = |\tilde{I}|&amp;lt;/math&amp;gt;. The sender checks if there exists a &amp;lt;math&amp;gt; k &amp;gt; 0 &amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\gamma n^{\prime} \leq n^{\prime}/4 - 2l -kn^{\prime}&amp;lt;/math&amp;gt;. If such a &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; exists, the sender publishes &amp;lt;math&amp;gt;\tilde{I}&amp;lt;/math&amp;gt; and, for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, the trapdoor &amp;lt;math&amp;gt;t_i^B&amp;lt;/math&amp;gt; corresponding to the key &amp;lt;math&amp;gt;k_i^B&amp;lt;/math&amp;gt; (given by the sender in the execution of &#039;&#039;&#039;Protocol 2,Step 1&#039;&#039;&#039;); otherwise the protocol aborts.&lt;br /&gt;
&amp;lt;!-- INCLUDE V_i^ALPHA CALCULATION --&amp;gt;&lt;br /&gt;
# For each &amp;lt;math&amp;gt;i \in \tilde{I},&amp;lt;/math&amp;gt; the sender calculates &amp;lt;math&amp;gt;v_i^{\alpha} = d^A_i.(x_{i,0}^A \oplus x_{i,1}^A)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\alpha} = \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{Hadamard}\\ 0, \mbox{if } x_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: and the receiver calculates &amp;lt;math&amp;gt;v_i^{\beta} =  = d^B_i.(x_{i,0}^B \oplus x_{i,1}^B)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\beta} = \begin{cases} 0, \mbox{if } y_i = \mbox{Hadamard}\\ v_i^{\beta}, \mbox{if } y_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: &#039;&#039;&#039;Obtaining output:&#039;&#039;&#039;&lt;br /&gt;
# The sender randomly picks two hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, and outputs &amp;lt;math&amp;gt;s_0 = f_0(a \oplus w^{\alpha}|_{\tilde{I}_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 = f_1(a \oplus w^{\alpha}|_{\tilde{I}_1})&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\tilde{I}_r := \{i \in \tilde{I}: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Receiver outputs &amp;lt;math&amp;gt;s_c = f_c(a \oplus w^{\beta}|_{\tilde{I}_c})&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&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 Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4436</id>
		<title>Device-Independent Oblivious Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4436"/>
		<updated>2022-01-20T16:19:27Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2111.08595 example protocol] achieves the task of device-independent oblivious transfer in the bounded quantum storage model using a computational assumption.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* The quantum storage of the receiver is bounded during the execution of the protocol&lt;br /&gt;
* The device used is computationally bounded - it cannot solve the Learning with Errors (LWE) problem during the execution of the protocol&lt;br /&gt;
* The device behaves in an IID manner - it behaves independently and identically during each round of the protocol&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
# A device prepares &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; uniformly random Bell pairs &amp;lt;math&amp;gt;|\phi^{(v_i^{\alpha},v_i^{\beta})}\rangle, i = 1,...,n&amp;lt;/math&amp;gt;, where the first qubit of each pair goes to &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\alpha}&amp;lt;/math&amp;gt;, and the second qubit of each pair goes to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; along with the string &amp;lt;math&amp;gt;v^{\beta}&amp;lt;/math&amp;gt;.&lt;br /&gt;
# R measures all qubits in the basis &amp;lt;math&amp;gt;y = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt;&#039;s choice bit. Let &amp;lt;math&amp;gt;b \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;b \oplus w^{\beta}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; is defined by &lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\beta} := \begin{cases} 0, \mbox{if } y = \mbox{ Hadamard}\\ v_i^{\beta}, \mbox{if } y = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks uniformly random &amp;lt;math&amp;gt;x \in \{&amp;lt;/math&amp;gt; &#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;\}^n&amp;lt;/math&amp;gt;, and measures the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th qubit in basis &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;. Let &amp;lt;math&amp;gt;a \in \{0,1\}^n&amp;lt;/math&amp;gt; be the outcome. &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; then computes &amp;lt;math&amp;gt;a \oplus w^{\alpha}&amp;lt;/math&amp;gt;, where the &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;-th entry of &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; is defined by&lt;br /&gt;
#: &amp;lt;math&amp;gt;w_i^{\alpha} := \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{ Hadamard}\\ 0, \mbox{if } x_i = \mbox{ Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; picks two uniformly random hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; and outputs &amp;lt;math&amp;gt;s_0 := f_0(a \oplus w^{\alpha} |_{I_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 := f_1(a \oplus w^{\alpha} |_{I_1})&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;I_r := \{i \in I: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; outputs &amp;lt;math&amp;gt;s_c = f_c(b \oplus w^{\beta} |_{I_c})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Self-testing with a single verifier===&lt;br /&gt;
# Alice chooses the state bases &amp;lt;math&amp;gt;\theta^A,\theta^B \in &amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} uniformly at random and generates key-trapdoor pairs &amp;lt;math&amp;gt;(k^A,t^A),(k^B,t^B)&amp;lt;/math&amp;gt;, where the generation procedure for &amp;lt;math&amp;gt;k^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^A&amp;lt;/math&amp;gt; depends on &amp;lt;math&amp;gt;\theta^A&amp;lt;/math&amp;gt; and a security parameter &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;, and likewise for &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^B&amp;lt;/math&amp;gt;. Alice supplies Bob with &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt;. Alice and Bob then respectively send &amp;lt;math&amp;gt;k^A, k^B&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
# Alice and Bob receive strings &amp;lt;math&amp;gt;c^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;c^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# Alice chooses a &#039;&#039;challenge type&#039;&#039; &amp;lt;math&amp;gt;CT \in \{a,b\}&amp;lt;/math&amp;gt;, uniformly at random and sends it to Bob. Alice and Bob then send &amp;lt;math&amp;gt;CT&amp;lt;/math&amp;gt; to each component of their device.&lt;br /&gt;
# If &amp;lt;math&amp;gt;CT = a&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;z^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# If  &amp;lt;math&amp;gt;CT = b&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;d^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;d^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
## Alice chooses uniformly random &#039;&#039;measurement bases (questions)&#039;&#039; &amp;lt;math&amp;gt;x,y \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} and sends &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to Bob. Alice and Bob then, respectively, send &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
## Alice and Bob receive answer bits &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, respectively, from the device. Alice and Bob also receive bits &amp;lt;math&amp;gt;h^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;h^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: DI Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
::&#039;&#039;&#039;Data generation:&#039;&#039;&#039;&lt;br /&gt;
# The sender and receiver execute &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; rounds of &#039;&#039;&#039;Protocol 2&#039;&#039;&#039; (Self-testing) with the sender as Alice and receiver as Bob, and with the following modification:&lt;br /&gt;
#: If &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;, then with probability &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, the receiver does not use the measurement basis question supplied by the sender and instead inputs &amp;lt;math&amp;gt;y_i=[&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is the receiver&#039;s choice bit. Let &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; be the set of indices marking the rounds where this has been done. &lt;br /&gt;
#: For each round &amp;lt;math&amp;gt; i \in \{1,...,n\} &amp;lt;/math&amp;gt;, the receiver stores:&lt;br /&gt;
#:* &amp;lt;math&amp;gt;c_i^B&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* &amp;lt;math&amp;gt;z_i^B&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* or &amp;lt;math&amp;gt;(d_i^B,y_i,b_i,h_i^B)&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
#: The sender stores &amp;lt;math&amp;gt;\theta_i^A,\theta_i^B,(k_i^A,t_i^A),(k_i^B,t_i^B),c_i^A,CT_i;&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z_i^A&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;(d_i^A,x_i,a_i,h_i^A)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender stores the variable &amp;lt;math&amp;gt;RT_i&amp;lt;/math&amp;gt; (round type), defined as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_i^A = \theta_i^B = &amp;lt;/math&amp;gt;&#039;&#039;&#039;Hadamard&#039;&#039;&#039;, then &amp;lt;math&amp;gt;RT_i =&amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Product&#039;&#039;&#039;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender chooses &amp;lt;math&amp;gt;T_i&amp;lt;/math&amp;gt;, indicating a test round or generation round, as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;, choose &amp;lt;math&amp;gt;T_i \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Test, Generate&#039;&#039;&#039;} uniformly at random&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
#: The sender sends (&amp;lt;math&amp;gt;T_1,...,T_n&amp;lt;/math&amp;gt;) to the receiver&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Testing:&#039;&#039;&#039;&lt;br /&gt;
# The receiver sends the set of indices &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; to the sender. The receiver publishes their output for all &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039; rounds where &amp;lt;math&amp;gt;i \notin I&amp;lt;/math&amp;gt;. Using this published data, the sender determines the bits which an honest device would have returned.&lt;br /&gt;
# The sender computes the fraction of test rounds (for which the receiver has published data for) that failed. If this exceeds some &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;, the protocol aborts&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Preparing data:&#039;&#039;&#039;&lt;br /&gt;
# Let &amp;lt;math&amp;gt;\tilde{I} := \{i : i \in I&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Generate&#039;&#039;&#039;} and &amp;lt;math&amp;gt;n^{\prime} = |\tilde{I}|&amp;lt;/math&amp;gt;. The sender checks if there exists a &amp;lt;math&amp;gt; k &amp;gt; 0 &amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\gamma n^{\prime} \leq n^{\prime}/4 - 2l -kn^{\prime}&amp;lt;/math&amp;gt;. If such a &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; exists, the sender publishes &amp;lt;math&amp;gt;\tilde{I}&amp;lt;/math&amp;gt; and, for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, the trapdoor &amp;lt;math&amp;gt;t_i^B&amp;lt;/math&amp;gt; corresponding to the key &amp;lt;math&amp;gt;k_i^B&amp;lt;/math&amp;gt; (given by the sender in the execution of &#039;&#039;&#039;Protocol 2,Step 1&#039;&#039;&#039;); otherwise the protocol aborts.&lt;br /&gt;
&amp;lt;!-- INCLUDE V_i^ALPHA CALCULATION --&amp;gt;&lt;br /&gt;
# For each &amp;lt;math&amp;gt;i \in \tilde{I},&amp;lt;/math&amp;gt; the sender calculates &amp;lt;math&amp;gt;v_i^{\alpha} = d^A_i.(x_{i,0}^A \oplus x_{i,1}^A)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\alpha} = \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{Hadamard}\\ 0, \mbox{if } x_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: and the receiver calculates &amp;lt;math&amp;gt;v_i^{\beta} =  = d^B_i.(x_{i,0}^B \oplus x_{i,1}^B)&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\beta} = \begin{cases} 0, \mbox{if } y_i = \mbox{Hadamard}\\ v_i^{\beta}, \mbox{if } y_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: &#039;&#039;&#039;Obtaining output:&#039;&#039;&#039;&lt;br /&gt;
# The sender randomly picks two hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, and outputs &amp;lt;math&amp;gt;s_0 = f_0(a \oplus w^{\alpha}|_{\tilde{I}_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 = f_1(a \oplus w^{\alpha}|_{\tilde{I}_1})&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\tilde{I}_r := \{i \in \tilde{I}: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Receiver outputs &amp;lt;math&amp;gt;s_c = f_c(a \oplus w^{\beta}|_{\tilde{I}_c})&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&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 Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4435</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4435"/>
		<updated>2022-01-19T19:13:53Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Added Conference Key Agreement functionality and protocol&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;5&amp;quot;|[[Authentication of Quantum Messages]]||[[Purity Testing based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Polynomial Code based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Clifford Code for Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Trap Code for Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Naive approach using Quantum Teleportation]]&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;
|[[Copy Protection]]||[[Copy Protection of Compute and Compare Programs]]&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;
|rowspan=&amp;quot;4&amp;quot;|[[Verification of Quantum Computation]]||[[Interactive Proofs for Quantum Computation|Quantum Prover Interactive Proofs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of NP-complete problems]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Sub-Universal Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Classical Verification of Universal Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&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;
|[[Practical Quantum Electronic Voting]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Weak String Erasure]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|[[Entanglement Routing]]||[[Routing Entanglement in the Quantum Internet]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributed Routing in a Quantum Internet]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributing Graph States Over Arbitrary Quantum Networks]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|[[Quantum Conference Key Agreement]]||[[Anonymous Conference Key Agreement using GHZ states]]&lt;br /&gt;
|-&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Conference_Key_Agreement&amp;diff=4434</id>
		<title>Quantum Conference Key Agreement</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Conference_Key_Agreement&amp;diff=4434"/>
		<updated>2022-01-19T19:08:40Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Added Protocols section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Functionality page describes a general task which can be realised in a quantum network --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Description: A lucid definition of functionality in discussion.--&amp;gt;&lt;br /&gt;
==Functionality==&lt;br /&gt;
Conference key agreement (CKA), or multipartite key distribution is a cryptographic task where more than two parties wish to establish a common secret key. It is possible to compose bipartite QKD protocols to accomplish this task. However, protocols based on multipartite quantum correlations may be more efficient and practical in future large scale quantum networks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Tags Any related page or list of protocols is connected by this section--&amp;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: Specific Task|Specific Task]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Use Case (if available) analyses how practical the protocol is--&amp;gt;&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- All properties that should be satisfied by any protocol achieving the concerned functionality and other common terminologies used in all the protocols.--&amp;gt;&lt;br /&gt;
An ideal CKA protocol, with &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; users, Alice, Bob&amp;lt;math&amp;gt;_1&amp;lt;/math&amp;gt;, Bob&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt;, ..., Bob&amp;lt;math&amp;gt;_{N-1}&amp;lt;/math&amp;gt; should have the following properties:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Correctness:&#039;&#039;&#039; A CKA protocol is said to be &#039;&#039;correct&#039;&#039; if all parties receive the same key at the end of the protocol with high probability. &lt;br /&gt;
: Formally, a CKA protocol is &amp;lt;math&amp;gt;\epsilon_{corr}&amp;lt;/math&amp;gt;-correct if: &lt;br /&gt;
:: &amp;lt;math&amp;gt;p(K_A = K_{B_1} =  ... = K_{B_{N-1}}) \geq 1 - \epsilon_{corr}&amp;lt;/math&amp;gt;&lt;br /&gt;
: where &amp;lt;math&amp;gt;K_A, K_{B_i}&amp;lt;/math&amp;gt; are the final keys held by Alice and Bob&amp;lt;math&amp;gt;_i&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;p(K_A = K_{B_1} =  ... = K_{B_{N-1}})&amp;lt;/math&amp;gt; is the probability that all final keys are identical.&lt;br /&gt;
* &#039;&#039;&#039;Secrecy:&#039;&#039;&#039; A CKA protocol is said to be &#039;&#039;secret&#039;&#039; if an eavesdropper Eve cannot differentiate between the key established and a random bitstring.&lt;br /&gt;
: Formally, a CKA protocol is &amp;lt;math&amp;gt;\epsilon_{sec}&amp;lt;/math&amp;gt;-secret if, for &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; being the event that the protocol does not abort,&lt;br /&gt;
:: &amp;lt;math&amp;gt;p(\Omega)\frac{1}{2}||\rho_{K_AE|\Omega} - \tau_{K_A}\otimes\rho_{E|\Omega}|| \leq \epsilon_{sec}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: where &amp;lt;math&amp;gt;p(\Omega)&amp;lt;/math&amp;gt; is the probability of the event &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\rho_{K_AE|\Omega}&amp;lt;/math&amp;gt; is the state shared by Alice and Eve at the end of the protocol given the event &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\tau_{K_A} = \frac{1}{|S|}\sum_{s_i \in S} |s_i\rangle \langle s_i|&amp;lt;/math&amp;gt; is the maximally mixed state over all possible values that the key &amp;lt;math&amp;gt;K_A&amp;lt;/math&amp;gt; can assume, and &amp;lt;math&amp;gt;S = \{0,1\}^{\times l}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt; is the length of the key &amp;lt;math&amp;gt;K_A&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Completeness:&#039;&#039;&#039; A quantum CKA protocol is &amp;lt;math&amp;gt;\epsilon_c&amp;lt;/math&amp;gt;-complete if there exists an honest implementation of the protocols, such that the probability of not aborting is greater than &amp;lt;math&amp;gt;1-\epsilon_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
==Generic Protocol Structure==&lt;br /&gt;
* &#039;&#039;&#039;Preparation and distribution:&#039;&#039;&#039; A source distributes a multipartite entangled state to the &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; parties. This step is repeated &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Measurements:&#039;&#039;&#039; Upon receiving the systems, the parties perform local measurements and record the classical outcome. The measurements are randomly chosen according to the specifications of the protocol. One of the possible measurement settings is used with higher probability and is called the &amp;lt;u&amp;gt;key generation&amp;lt;/u&amp;gt; measurements. The other measurements are used for &amp;lt;u&amp;gt;test rounds&amp;lt;/u&amp;gt;, which only occasionally occur. &lt;br /&gt;
* &#039;&#039;&#039;Parameter estimation:&#039;&#039;&#039; The parties announce the inputs and outputs of their test rounds and of some randomly chosen key generation rounds which are used to estimate their correlation and the potential influence of an eavesdropper. At the end of this step, each party is left with a string of &amp;lt;math&amp;gt;n_{raw} &amp;lt; n&amp;lt;/math&amp;gt; bits, which constitute their &amp;lt;u&amp;gt;raw key&amp;lt;/u&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Information reconciliation (error correction):&#039;&#039;&#039; The parties publicly exchange classical information in order for the Bobs to correct their raw keys to match Alice&#039;s string. In the multipartite case, the information reconciliation protocol needs to account for the correction of the strings of all the Bobs.&lt;br /&gt;
* &#039;&#039;&#039;Privacy amplification:&#039;&#039;&#039; Alice randomly picks a hash function, chosen among a two-universal family of hash functions, and communicates it to the Bobs. Every party applies the hash function to turn her/his partially secure string of &amp;lt;math&amp;gt;n_{raw}&amp;lt;/math&amp;gt; bits into a secure key of &amp;lt;math&amp;gt; l &amp;lt; n_{raw}&amp;lt;/math&amp;gt; bits.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
* [[Prepare-and-measure Conference Key Agreement]]&lt;br /&gt;
* [[Anonymous Conference Key Agreement using GHZ states]]&lt;br /&gt;
* [[W-State based Conference Key Agreement]]&lt;br /&gt;
* [[Continuous Variable Conference Key Agreement]]&lt;br /&gt;
* [[Device Independent Conference Key Agreement]]&lt;br /&gt;
&amp;lt;!--==Further Information== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- 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. --&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
* [https://arxiv.org/abs/2003.10186 Murta et al.(2020)] discusses the properties of the functionality and provides various example protocols&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Anonymous_Conference_Key_Agreement_using_GHZ_states&amp;diff=4433</id>
		<title>Anonymous Conference Key Agreement using GHZ states</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Anonymous_Conference_Key_Agreement_using_GHZ_states&amp;diff=4433"/>
		<updated>2022-01-19T18:45:29Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Fixed section name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2007.07995 example protocol] achieves the functionality of quantum conference key agreement. This protocol allows multiple parties in a quantum network to establish a shared secret key anonymously.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;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: Specific Task|Specific Task]]&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
We require the following resources for this protocol:&lt;br /&gt;
# A source of n-party GHZ states&lt;br /&gt;
# Private randomness sources&lt;br /&gt;
# A randomness source that is not associated with any party&lt;br /&gt;
# A classical broadcasting channel&lt;br /&gt;
# Pairwise private communication channels&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* First, the sender notifies each receiver in the network anonymously&lt;br /&gt;
* The entanglement source generates and distributes sufficient GHZ states to all nodes in the network&lt;br /&gt;
* The GHZ states are distilled to establish multipartite entanglement shared only by the participating parties (the sender and receivers)&lt;br /&gt;
* Each GHZ state is randomly chosen to be used for either Verification or Key Generation. For Key Generation rounds, a single bit of the key is established using one GHZ state by measuring in the Z-basis&lt;br /&gt;
* If the sender is content with the Verification results, they can anonymously validate the protocol and conclude that the key has been established successfully.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;: Total number of nodes in the network&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: Number of receiving nodes&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;: Number of GHZ states used&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;: Security parameter; expected number of GHZ states used to establish one bit of key&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-partite GHZ state: &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}}(|0\rangle^{\otimes k} + |1\rangle^{\otimes k})&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Anonymous Verifiable Conference Key Agreement===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Parameters &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements&#039;&#039;: A source of n-party GHZ states; private randomness sources; a randomness source that is not associated with any party; a classical broadcasting channel; pairwise private communication channels&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal&#039;&#039;: Anonymoous generation of key between sender and &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers&lt;br /&gt;
&lt;br /&gt;
# The sender notifies the &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers by running the &#039;&#039;Notification&#039;&#039; protocol&lt;br /&gt;
# The source generates and shares &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; GHZ states&lt;br /&gt;
# The parties run the &#039;&#039;Anonymous Multipartite Entanglement&#039;&#039; protocol on the GHZ states&lt;br /&gt;
# For each &amp;lt;math&amp;gt;(m+1)&amp;lt;/math&amp;gt;-partite GHZ state, the parties do the following:&lt;br /&gt;
#* They ask a source of randomness to broadcast a bit &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; such that Pr&amp;lt;math&amp;gt;[b=1] = \frac{1}{D}&amp;lt;/math&amp;gt;&lt;br /&gt;
#*  &#039;&#039;&#039;Verification round: &#039;&#039;&#039;If b = 0, the sender runs &#039;&#039;Verification&#039;&#039; as verifier on the state corresponding to that round, while only considering the announcements of the &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers. The remaining parties announce random values.&lt;br /&gt;
#* &#039;&#039;&#039;KeyGen round: &#039;&#039;&#039;If b = 1, the sender and receivers measure in the Z-basis.&lt;br /&gt;
# If the sender is content with the checks of the &#039;&#039;Verification&#039;&#039; protocol, they can anonymously validate the protocol&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Notification===&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; Sender&#039;s choice of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal: &#039;&#039; The &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers get notified&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; Private pairwise classical communication channels and randomness sources&lt;br /&gt;
&lt;br /&gt;
For agent &amp;lt;math&amp;gt;i = 1,...,n&amp;lt;/math&amp;gt;:&lt;br /&gt;
# All agents &amp;lt;math&amp;gt;j \in \{1,...,n\}&amp;lt;/math&amp;gt; do the following:&lt;br /&gt;
#* &#039;&#039;&#039;When agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; is the sender&#039;&#039;&#039;: If &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; is not a receiver, the sender chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{k = 1}^n&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 0&amp;lt;/math&amp;gt;. Otherwise, if &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; is a receiver, the sender chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 1&amp;lt;/math&amp;gt;. The sender sends bit &amp;lt;math&amp;gt;r_{j,k}^i&amp;lt;/math&amp;gt; to agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;When agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; is not the sender&#039;&#039;&#039;:  The agent chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{k = 1}^n&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 0&amp;lt;/math&amp;gt; and sends bit &amp;lt;math&amp;gt;r_{j,k}^i&amp;lt;/math&amp;gt; to agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;&lt;br /&gt;
# All agents &amp;lt;math&amp;gt;k \in \{1,...,n\}&amp;lt;/math&amp;gt; receive &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{j = 1}^n&amp;lt;/math&amp;gt;, and compute &amp;lt;math&amp;gt;z_k^i = \bigoplus_{j=1}^n r_{j,k}^i&amp;lt;/math&amp;gt; and send it to agent &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;&lt;br /&gt;
# Agent &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; takes the received &amp;lt;math&amp;gt;\{z_k^i\}_{k=1}^n&amp;lt;/math&amp;gt; to compute &amp;lt;math&amp;gt;z^i = \bigoplus_{k=1}^nz_k^i&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;z^i = 1&amp;lt;/math&amp;gt;, they are thereby notified to be a designated receiver.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: Anonymous Multiparty Entanglement===&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-partite GHZ state &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}}(|0\rangle^{\otimes n} + |1\rangle^{\otimes n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output: &#039;&#039; &amp;lt;math&amp;gt;(m+1)&amp;lt;/math&amp;gt;-partite GHZ state &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}}(|0\rangle^{\otimes (m+1)} + |1\rangle^{\otimes (m+1)})&amp;lt;/math&amp;gt; shared between the sender and receivers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; A broadcast channel; private randomness sources&lt;br /&gt;
&lt;br /&gt;
# Sender and receivers draw a random bit each. Everyone else measures their qubits in the X-basis, yielding a measurement outcome bit &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# All parties broadcast their bits in a random order, or if possible, simultaneously.&lt;br /&gt;
# The sender applies a Z gate to their qubit if the parity of the non-participating parties&#039; bits is odd.&lt;br /&gt;
&lt;br /&gt;
===Protocol 4: Verification===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; A verifier V; a shared state between &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; parties&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal: &#039;&#039; Verification or rejection of the shared state as the GHZ&amp;lt;math&amp;gt;_k&amp;lt;/math&amp;gt; state by V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; Private randomness sources; a classical broadcasting channel&lt;br /&gt;
&lt;br /&gt;
# Everyone but V draws a random bit &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt; and measures in the X or Y basis if their bit equals 0 or 1 respectively, obtaining a measurement outcome &amp;lt;math&amp;gt;m_i&amp;lt;/math&amp;gt;. V chooses both bits at random&lt;br /&gt;
# Everyone (including V) broadcasts &amp;lt;math&amp;gt;(b_i,m_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
# V resets her bit such that &amp;lt;math&amp;gt;\sum_ib_i = 0 (&amp;lt;/math&amp;gt;mod &amp;lt;math&amp;gt;2)&amp;lt;/math&amp;gt;. She measures in the X or Y basis if her bit equals 0 or 1 respectively, thereby also resetting her &amp;lt;math&amp;gt;m_i = m_v&amp;lt;/math&amp;gt;&lt;br /&gt;
# V accepts the state if and only if &amp;lt;math&amp;gt;\sum_im_i = \frac{1}{2}\sum_ib_i (&amp;lt;/math&amp;gt;mod &amp;lt;math&amp;gt;2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
* Protocol 1 has an asymptotic key rate of &amp;lt;math&amp;gt;\frac{L}{D}&amp;lt;/math&amp;gt;&lt;br /&gt;
* This protocol satisfies the following notions of anonymity:&lt;br /&gt;
** &#039;&#039;&#039;Sender Anonymity&#039;&#039;&#039;: A protocol allows a sender to remain anonymous sending a message to &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers, if an adversary who corrupts &amp;lt;math&amp;gt;t \leq n-2 &amp;lt;/math&amp;gt; players, cannot guess the identity of the sender with probability higher than &amp;lt;math&amp;gt; \frac{1}{n-t}&amp;lt;/math&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Receiver Anonymity&#039;&#039;&#039;: A protocol allows a receiver to remain anonymous receiving a message, if an adversary who corrupts &amp;lt;math&amp;gt;t \leq n-2 &amp;lt;/math&amp;gt; players, cannot guess the identity of the receiver with probability higher than &amp;lt;math&amp;gt; \frac{1}{n-t}&amp;lt;/math&amp;gt;&lt;br /&gt;
* Error correction and privacy amplification must be carried out anonymously and are not considered in the analysis of this protocol.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* The protocols and their security analysis, along with an experimental implementation for &amp;lt;math&amp;gt;n = 4&amp;lt;/math&amp;gt; can be found in [https://arxiv.org/abs/2007.07995 Hahn et al.(2020)]&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Conference_Key_Agreement&amp;diff=4432</id>
		<title>Quantum Conference Key Agreement</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Conference_Key_Agreement&amp;diff=4432"/>
		<updated>2022-01-19T17:59:26Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Created functionality page for CKA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Functionality page describes a general task which can be realised in a quantum network --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Description: A lucid definition of functionality in discussion.--&amp;gt;&lt;br /&gt;
==Functionality==&lt;br /&gt;
Conference key agreement (CKA), or multipartite key distribution is a cryptographic task where more than two parties wish to establish a common secret key. It is possible to compose bipartite QKD protocols to accomplish this task. However, protocols based on multipartite quantum correlations may be more efficient and practical in future large scale quantum networks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Tags Any related page or list of protocols is connected by this section--&amp;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: Specific Task|Specific Task]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Use Case (if available) analyses how practical the protocol is--&amp;gt;&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- All properties that should be satisfied by any protocol achieving the concerned functionality and other common terminologies used in all the protocols.--&amp;gt;&lt;br /&gt;
An ideal CKA protocol, with &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; users, Alice, Bob&amp;lt;math&amp;gt;_1&amp;lt;/math&amp;gt;, Bob&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt;, ..., Bob&amp;lt;math&amp;gt;_{N-1}&amp;lt;/math&amp;gt; should have the following properties:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Correctness:&#039;&#039;&#039; A CKA protocol is &amp;lt;math&amp;gt;\epsilon_{corr}&amp;lt;/math&amp;gt;-correct if:&lt;br /&gt;
*: &amp;lt;math&amp;gt;p(K_A = K_{B_1} =  ... = K_{B_{N-1}}) \geq 1 - \epsilon_{corr}&amp;lt;/math&amp;gt;&lt;br /&gt;
: where &amp;lt;math&amp;gt;K_A, K_{B_i}&amp;lt;/math&amp;gt; are the final keys held by Alice and Bob&amp;lt;math&amp;gt;_i&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;p(K_A = K_{B_1} =  ... = K_{B_{N-1}})&amp;lt;/math&amp;gt; is the probability that all final keys are identical.&lt;br /&gt;
* &#039;&#039;&#039;Secrecy:&#039;&#039;&#039; A CKA protocol is &amp;lt;math&amp;gt;\epsilon_{sec}&amp;lt;/math&amp;gt;-secret if, for &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; being the event that the protocol does not abort,&lt;br /&gt;
*: &amp;lt;math&amp;gt;p(\Omega)\frac{1}{2}||\rho_{K_AE|\Omega} - \tau_{K_A}\otimes\rho_{E|\Omega}|| \leq \epsilon_{sec}&amp;lt;/math&amp;gt;,&lt;br /&gt;
: where &amp;lt;math&amp;gt;p(\Omega)&amp;lt;/math&amp;gt; is the probability of the event &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\rho_{K_AE|\Omega}&amp;lt;/math&amp;gt; is the state shared by Alice and Eve at the end of the protocol given the event &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\tau_{K_A} = \frac{1}{|S|}\sum_{s_i \in S} |s_i\rangle \langle s_i|&amp;lt;/math&amp;gt; is the maximally mixed state over all possible values that the key &amp;lt;math&amp;gt;K_A&amp;lt;/math&amp;gt; can assume, and &amp;lt;math&amp;gt;S = \{0,1\}^{\times l}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;l&amp;lt;/math&amp;gt; is the length of the key &amp;lt;math&amp;gt;K_A&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Completeness:&#039;&#039;&#039; A quantum CKA protocol is &amp;lt;math&amp;gt;\epsilon_c&amp;lt;/math&amp;gt;-complete if there exists an honest implementation of the protocols, such that the probability of not aborting is greater than &amp;lt;math&amp;gt;1-\epsilon_c&amp;lt;/math&amp;gt;.&lt;br /&gt;
==Generic Protocol Structure==&lt;br /&gt;
* &#039;&#039;&#039;Preparation and distribution:&#039;&#039;&#039; A source distributes a multipartite entangled state to the &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; parties. This step is repeated &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Measurements:&#039;&#039;&#039; Upon receiving the systems, the parties perform local measurements and record the classical outcome. The measurements are randomly chosen according to the specifications of the protocol. One of the possible measurement settings is used with higher probability and is called the &amp;lt;u&amp;gt;key generation&amp;lt;/u&amp;gt; measurements. The other measurements are used for &amp;lt;u&amp;gt;test rounds&amp;lt;/u&amp;gt;, which only occasionally occur. &lt;br /&gt;
* &#039;&#039;&#039;Parameter estimation:&#039;&#039;&#039; The parties announce the inputs and outputs of their test rounds and of some randomly chosen key generation rounds which are used to estimate their correlation and the potential influence of an eavesdropper. At the end of this step, each party is left with a string of &amp;lt;math&amp;gt;n_{raw} &amp;lt; n&amp;lt;/math&amp;gt; bits, which constitute their &amp;lt;u&amp;gt;raw key&amp;lt;/u&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Information reconciliation (error correction):&#039;&#039;&#039; The parties publicly exchange classical information in order for the Bobs to correct their raw keys to match Alice&#039;s string. In the multipartite case, the information reconciliation protocol needs to account for the correction of the strings of all the Bobs.&lt;br /&gt;
* &#039;&#039;&#039;Privacy amplification:&#039;&#039;&#039; Alice randomly picks a hash function, chosen among a two-universal family of hash functions, and communicates it to the Bobs. Every party applies the hash function to turn her/his partially secure string of &amp;lt;math&amp;gt;n_{raw}&amp;lt;/math&amp;gt; bits into a secure key of &amp;lt;math&amp;gt; l &amp;lt; n_{raw}&amp;lt;/math&amp;gt; bits.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Further Information== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- 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. --&amp;gt;&lt;br /&gt;
==References==&lt;br /&gt;
* [https://arxiv.org/abs/2003.10186 Murta et al.(2020)] discusses the properties of the functionality and provides various example protocols&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4431</id>
		<title>Device-Independent Oblivious Transfer</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Device-Independent_Oblivious_Transfer&amp;diff=4431"/>
		<updated>2022-01-16T14:21:18Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Created page for DIOT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2111.08595 example protocol] achieves the task of device-independent oblivious transfer in the bounded quantum storage model using a computational assumption.&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* The quantum storage of the receiver is bounded during the execution of the protocol&lt;br /&gt;
* The device used is computationally bounded - it cannot solve the Learning with Errors (LWE) problem during the execution of the protocol&lt;br /&gt;
* The device behaves in an IID manner - it behaves independently and identically during each round of the protocol&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: DI Rand 1-2 OT&amp;lt;math&amp;gt;^l&amp;lt;/math&amp;gt;===&lt;br /&gt;
::&#039;&#039;&#039;Data generation:&#039;&#039;&#039;&lt;br /&gt;
# The sender and receiver execute &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; rounds of &#039;&#039;&#039;Protocol 2&#039;&#039;&#039; (Self-testing) with the sender as Alice and receiver as Bob, and with the following modification:&lt;br /&gt;
#: If &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;, then with probability &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, the receiver does not use the measurement basis question supplied by the sender and instead inputs &amp;lt;math&amp;gt;y_i=[&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational, Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_c&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; is the receiver&#039;s choice bit. Let &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; be the set of indices marking the rounds where this has been done. &lt;br /&gt;
#: For each round &amp;lt;math&amp;gt; i \in \{1,...,n\} &amp;lt;/math&amp;gt;, the receiver stores:&lt;br /&gt;
#:* &amp;lt;math&amp;gt;c_i^B&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* &amp;lt;math&amp;gt;z_i^B&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt;&lt;br /&gt;
#:* or &amp;lt;math&amp;gt;(d_i^B,y_i,b_i,h_i^B)&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
#: The sender stores &amp;lt;math&amp;gt;\theta_i^A,\theta_i^B,(k_i^A,t_i^A),(k_i^B,t_i^B),c_i^A,CT_i;&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z_i^A&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = a&amp;lt;/math&amp;gt; or &amp;lt;math&amp;gt;(d_i^A,x_i,a_i,h_i^A)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_i&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender stores the variable &amp;lt;math&amp;gt;RT_i&amp;lt;/math&amp;gt; (round type), defined as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;CT_i = b&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\theta_i^A = \theta_i^B = &amp;lt;/math&amp;gt;&#039;&#039;&#039;Hadamard&#039;&#039;&#039;, then &amp;lt;math&amp;gt;RT_i =&amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Product&#039;&#039;&#039;&lt;br /&gt;
# For every &amp;lt;math&amp;gt;i \in \{1,...,n\},&amp;lt;/math&amp;gt; the sender chooses &amp;lt;math&amp;gt;T_i&amp;lt;/math&amp;gt;, indicating a test round or generation round, as follows:&lt;br /&gt;
#* if &amp;lt;math&amp;gt;RT_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Bell&#039;&#039;&#039;, choose &amp;lt;math&amp;gt;T_i \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Test, Generate&#039;&#039;&#039;} uniformly at random&lt;br /&gt;
#* else, set &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039;&lt;br /&gt;
#: The sender sends (&amp;lt;math&amp;gt;T_1,...,T_n&amp;lt;/math&amp;gt;) to the receiver&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Testing:&#039;&#039;&#039;&lt;br /&gt;
# The receiver sends the set of indices &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; to the sender. The receiver publishes their output for all &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Test&#039;&#039;&#039; rounds where &amp;lt;math&amp;gt;i \notin I&amp;lt;/math&amp;gt;. Using this published data, the sender determines the bits which an honest device would have returned.&lt;br /&gt;
# The sender computes the fraction of test rounds (for which the receiver has published data for) that failed. If this exceeds some &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;, the protocol aborts&lt;br /&gt;
#: &lt;br /&gt;
#: &#039;&#039;&#039;Preparing data:&#039;&#039;&#039;&lt;br /&gt;
# Let &amp;lt;math&amp;gt;\tilde{I} := \{i : i \in I&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;T_i = &amp;lt;/math&amp;gt; &#039;&#039;&#039;Generate&#039;&#039;&#039;} and &amp;lt;math&amp;gt;n^{\prime} = |\tilde{I}|&amp;lt;/math&amp;gt;. The sender checks if there exists a &amp;lt;math&amp;gt; k &amp;gt; 0 &amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\gamma n^{\prime} \leq n^{\prime}/4 - 2l -kn^{\prime}&amp;lt;/math&amp;gt;. If such a &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; exists, the sender publishes &amp;lt;math&amp;gt;\tilde{I}&amp;lt;/math&amp;gt; and, for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, the trapdoor &amp;lt;math&amp;gt;t_i^B&amp;lt;/math&amp;gt; corresponding to the key &amp;lt;math&amp;gt;k_i^B&amp;lt;/math&amp;gt; (given by the sender in the execution of &#039;&#039;&#039;Protocol 2,Step 1&#039;&#039;&#039;); otherwise the protocol aborts.&lt;br /&gt;
&amp;lt;!-- INCLUDE V_i^ALPHA CALCULATION --&amp;gt;&lt;br /&gt;
# For each &amp;lt;math&amp;gt;i \in \tilde{I},&amp;lt;/math&amp;gt; the sender calculates &amp;lt;math&amp;gt;v_i^{\alpha}&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\alpha}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\alpha} = \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{Hadamard}\\ 0, \mbox{if } x_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: and the receiver calculates &amp;lt;math&amp;gt;v_i^{\beta}&amp;lt;/math&amp;gt; and defines &amp;lt;math&amp;gt;w^{\beta}&amp;lt;/math&amp;gt; by&lt;br /&gt;
#:&amp;lt;math&amp;gt;w_i^{\beta} = \begin{cases} 0, \mbox{if } y_i = \mbox{Hadamard}\\ v_i^{\beta}, \mbox{if } y_i = \mbox{Computational}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
#: &#039;&#039;&#039;Obtaining output:&#039;&#039;&#039;&lt;br /&gt;
# The sender randomly picks two hash functions &amp;lt;math&amp;gt;f_0,f_1 \in F&amp;lt;/math&amp;gt;, announces &amp;lt;math&amp;gt;f_0,f_1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; for each &amp;lt;math&amp;gt;i \in \tilde{I}&amp;lt;/math&amp;gt;, and outputs &amp;lt;math&amp;gt;s_0 = f_0(a \oplus w^{\alpha}|_{\tilde{I}_0})&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;s_1 = f_1(a \oplus w^{\alpha}|_{\tilde{I}_1})&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\tilde{I}_r := \{i \in \tilde{I}: x_i = [&amp;lt;/math&amp;gt;&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;&amp;lt;math&amp;gt;]_r\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Receiver outputs &amp;lt;math&amp;gt;s_c = f_c(a \oplus w^{\beta}|_{\tilde{I}_c})&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Self-testing with a single verifier===&lt;br /&gt;
# Alice chooses the state bases &amp;lt;math&amp;gt;\theta^A,\theta^B \in &amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} uniformly at random and generates key-trapdoor pairs &amp;lt;math&amp;gt;(k^A,t^A),(k^B,t^B)&amp;lt;/math&amp;gt;, where the generation procedure for &amp;lt;math&amp;gt;k^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^A&amp;lt;/math&amp;gt; depends on &amp;lt;math&amp;gt;\theta^A&amp;lt;/math&amp;gt; and a security parameter &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;, and likewise for &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;t^B&amp;lt;/math&amp;gt;. Alice supplies Bob with &amp;lt;math&amp;gt;k^B&amp;lt;/math&amp;gt;. Alice and Bob then respectively send &amp;lt;math&amp;gt;k^A, k^B&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
# Alice and Bob receive strings &amp;lt;math&amp;gt;c^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;c^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# Alice chooses a &#039;&#039;challenge type&#039;&#039; &amp;lt;math&amp;gt;CT \in \{a,b\}&amp;lt;/math&amp;gt;, uniformly at random and sends it to Bob. Alice and Bob then send &amp;lt;math&amp;gt;CT&amp;lt;/math&amp;gt; to each component of their device.&lt;br /&gt;
# If &amp;lt;math&amp;gt;CT = a&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;z^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;z^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
# If  &amp;lt;math&amp;gt;CT = b&amp;lt;/math&amp;gt;:&lt;br /&gt;
## Alice and Bob receive strings &amp;lt;math&amp;gt;d^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;d^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
## Alice chooses uniformly random &#039;&#039;measurement bases (questions)&#039;&#039; &amp;lt;math&amp;gt;x,y \in&amp;lt;/math&amp;gt; {&#039;&#039;&#039;Computational,Hadamard&#039;&#039;&#039;} and sends &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to Bob. Alice and Bob then, respectively, send &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; to the device.&lt;br /&gt;
## Alice and Bob receive answer bits &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;, respectively, from the device. Alice and Bob also receive bits &amp;lt;math&amp;gt;h^A&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;h^B&amp;lt;/math&amp;gt;, respectively, from the device.&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&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 Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Anonymous_Conference_Key_Agreement_using_GHZ_states&amp;diff=4430</id>
		<title>Anonymous Conference Key Agreement using GHZ states</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Anonymous_Conference_Key_Agreement_using_GHZ_states&amp;diff=4430"/>
		<updated>2022-01-11T19:33:42Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Created page for Anonymous QCKA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2007.07995 example protocol] achieves the functionality of quantum conference key agreement. This protocol allows multiple parties in a quantum network to establish a shared secret key anonymously.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;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: Specific Task|Specific Task]]&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
We require the following resources for this protocol:&lt;br /&gt;
# A source of n-party GHZ states&lt;br /&gt;
# Private randomness sources&lt;br /&gt;
# A randomness source that is not associated with any party&lt;br /&gt;
# A classical broadcasting channel&lt;br /&gt;
# Pairwise private communication channels&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* First, the sender notifies each receiver in the network anonymously&lt;br /&gt;
* The entanglement source generates and distributes sufficient GHZ states to all nodes in the network&lt;br /&gt;
* The GHZ states are distilled to establish multipartite entanglement shared only by the participating parties (the sender and receivers)&lt;br /&gt;
* Each GHZ state is randomly chosen to be used for either Verification or Key Generation. For Key Generation rounds, a single bit of the key is established using one GHZ state by measuring in the Z-basis&lt;br /&gt;
* If the sender is content with the Verification results, they can anonymously validate the protocol and conclude that the key has been established successfully.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
*&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;: Total number of nodes in the network&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt;: Number of receiving nodes&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt;: Number of GHZ states used&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;: Security parameter; expected number of GHZ states used to establish one bit of key&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-partite GHZ state: &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}}(|0\rangle^{\otimes k} + |1\rangle^{\otimes k})&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Anonymous Verifiable Conference Key Agreement===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Parameters &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements&#039;&#039;: A source of n-party GHZ states; private randomness sources; a randomness source that is not associated with any party; a classical broadcasting channel; pairwise private communication channels&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal&#039;&#039;: Anonymoous generation of key between sender and &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers&lt;br /&gt;
&lt;br /&gt;
# The sender notifies the &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers by running the &#039;&#039;Notification&#039;&#039; protocol&lt;br /&gt;
# The source generates and shares &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; GHZ states&lt;br /&gt;
# The parties run the &#039;&#039;Anonymous Multipartite Entanglement&#039;&#039; protocol on the GHZ states&lt;br /&gt;
# For each &amp;lt;math&amp;gt;(m+1)&amp;lt;/math&amp;gt;-partite GHZ state, the parties do the following:&lt;br /&gt;
#* They ask a source of randomness to broadcast a bit &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; such that Pr&amp;lt;math&amp;gt;[b=1] = \frac{1}{D}&amp;lt;/math&amp;gt;&lt;br /&gt;
#*  &#039;&#039;&#039;Verification round: &#039;&#039;&#039;If b = 0, the sender runs &#039;&#039;Verification&#039;&#039; as verifier on the state corresponding to that round, while only considering the announcements of the &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers. The remaining parties announce random values.&lt;br /&gt;
#* &#039;&#039;&#039;KeyGen round: &#039;&#039;&#039;If b = 1, the sender and receivers measure in the Z-basis.&lt;br /&gt;
# If the sender is content with the checks of the &#039;&#039;Verification&#039;&#039; protocol, they can anonymously validate the protocol&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Notification===&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; Sender&#039;s choice of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal: &#039;&#039; The &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers get notified&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; Private pairwise classical communication channels and randomness sources&lt;br /&gt;
&lt;br /&gt;
For agent &amp;lt;math&amp;gt;i = 1,...,n&amp;lt;/math&amp;gt;:&lt;br /&gt;
# All agents &amp;lt;math&amp;gt;j \in \{1,...,n\}&amp;lt;/math&amp;gt; do the following:&lt;br /&gt;
#* &#039;&#039;&#039;When agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; is the sender&#039;&#039;&#039;: If &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; is not a receiver, the sender chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{k = 1}^n&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 0&amp;lt;/math&amp;gt;. Otherwise, if &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; is a receiver, the sender chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 1&amp;lt;/math&amp;gt;. The sender sends bit &amp;lt;math&amp;gt;r_{j,k}^i&amp;lt;/math&amp;gt; to agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;When agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; is not the sender&#039;&#039;&#039;:  The agent chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{k = 1}^n&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 0&amp;lt;/math&amp;gt; and sends bit &amp;lt;math&amp;gt;r_{j,k}^i&amp;lt;/math&amp;gt; to agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;&lt;br /&gt;
# All agents &amp;lt;math&amp;gt;k \in \{1,...,n\}&amp;lt;/math&amp;gt; receive &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{j = 1}^n&amp;lt;/math&amp;gt;, and compute &amp;lt;math&amp;gt;z_k^i = \bigoplus_{j=1}^n r_{j,k}^i&amp;lt;/math&amp;gt; and send it to agent &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;&lt;br /&gt;
# Agent &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; takes the received &amp;lt;math&amp;gt;\{z_k^i\}_{k=1}^n&amp;lt;/math&amp;gt; to compute &amp;lt;math&amp;gt;z^i = \bigoplus_{k=1}^nz_k^i&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;z^i = 1&amp;lt;/math&amp;gt;, they are thereby notified to be a designated receiver.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: Anonymous Multiparty Entanglement===&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-partite GHZ state &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}}(|0\rangle^{\otimes n} + |1\rangle^{\otimes n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output: &#039;&#039; &amp;lt;math&amp;gt;(m+1)&amp;lt;/math&amp;gt;-partite GHZ state &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}}(|0\rangle^{\otimes (m+1)} + |1\rangle^{\otimes (m+1)})&amp;lt;/math&amp;gt; shared between the sender and receivers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; A broadcast channel; private randomness sources&lt;br /&gt;
&lt;br /&gt;
# Sender and receivers draw a random bit each. Everyone else measures their qubits in the X-basis, yielding a measurement outcome bit &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# All parties broadcast their bits in a random order, or if possible, simultaneously.&lt;br /&gt;
# The sender applies a Z gate to their qubit if the parity of the non-participating parties&#039; bits is odd.&lt;br /&gt;
&lt;br /&gt;
===Protocol 4: Verification===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; A verifier V; a shared state between &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; parties&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal: &#039;&#039; Verification or rejection of the shared state as the GHZ&amp;lt;math&amp;gt;_k&amp;lt;/math&amp;gt; state by V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; Private randomness sources; a classical broadcasting channel&lt;br /&gt;
&lt;br /&gt;
# Everyone but V draws a random bit &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt; and measures in the X or Y basis if their bit equals 0 or 1 respectively, obtaining a measurement outcome &amp;lt;math&amp;gt;m_i&amp;lt;/math&amp;gt;. V chooses both bits at random&lt;br /&gt;
# Everyone (including V) broadcasts &amp;lt;math&amp;gt;(b_i,m_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
# V resets her bit such that &amp;lt;math&amp;gt;\sum_ib_i = 0 (&amp;lt;/math&amp;gt;mod &amp;lt;math&amp;gt;2)&amp;lt;/math&amp;gt;. She measures in the X or Y basis if her bit equals 0 or 1 respectively, thereby also resetting her &amp;lt;math&amp;gt;m_i = m_v&amp;lt;/math&amp;gt;&lt;br /&gt;
# V accepts the state if and only if &amp;lt;math&amp;gt;\sum_im_i = \frac{1}{2}\sum_ib_i (&amp;lt;/math&amp;gt;mod &amp;lt;math&amp;gt;2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
* Protocol 1 has an asymptotic key rate of &amp;lt;math&amp;gt;\frac{L}{D}&amp;lt;/math&amp;gt;&lt;br /&gt;
* This protocol satisfies the following notions of anonymity:&lt;br /&gt;
** &#039;&#039;&#039;Sender Anonymity&#039;&#039;&#039;: A protocol allows a sender to remain anonymous sending a message to &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers, if an adversary who corrupts &amp;lt;math&amp;gt;t \leq n-2 &amp;lt;/math&amp;gt; players, cannot guess the identity of the sender with probability higher than &amp;lt;math&amp;gt; \frac{1}{n-t}&amp;lt;/math&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Receiver Anonymity&#039;&#039;&#039;: A protocol allows a receiver to remain anonymous receiving a message, if an adversary who corrupts &amp;lt;math&amp;gt;t \leq n-2 &amp;lt;/math&amp;gt; players, cannot guess the identity of the receiver with probability higher than &amp;lt;math&amp;gt; \frac{1}{n-t}&amp;lt;/math&amp;gt;&lt;br /&gt;
* Error correction and privacy amplification must be carried out anonymously and are not considered in the analysis of this protocol.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* The protocols and their security analysis, along with an experimental implementation for &amp;lt;math&amp;gt;n = 4&amp;lt;/math&amp;gt; can be found in [https://arxiv.org/abs/2007.07995 Hahn et al.(2020)]&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Copy_Protection_of_Compute_and_Compare_Programs&amp;diff=4429</id>
		<title>Copy Protection of Compute and Compare Programs</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Copy_Protection_of_Compute_and_Compare_Programs&amp;diff=4429"/>
		<updated>2022-01-11T17:56:08Z</updated>

		<summary type="html">&lt;p&gt;Chirag: /* Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
The [https://arxiv.org/abs/2009.13865 example protocol] achieves the functionality of [[Copy Protection| Copy Protection]] allowing a Vendor to send a program to a Client such that the Client cannot duplicate it. This protocol, in particular, achieves copy-protection for &#039;compute-and-compare&#039; programs.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Two Party Protocols|Two Party Protocols]], [[:Category:Quantum Functionality|Quantum Functionality]], [[:Category:Universal Task|Universal Task]], Computational Security&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* Vendor and Client are connected by quantum and classical channels&lt;br /&gt;
* Vendor can create and transmit BB84 states&lt;br /&gt;
* Client has the capability to perform universal quantum computation&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
Any Copy Protection protocol consists of two algorithms: &#039;&#039;&#039;Protect&#039;&#039;&#039; and &#039;&#039;&#039;Eval&#039;&#039;&#039;. For the family of compute-and-compare programs, these algorithms are described as follows:&lt;br /&gt;
*&#039;&#039;&#039;Protect&#039;&#039;&#039;: The Vendor encodes the required qubits into BB84 states using the program description. The Vendor then calculates the output of some hash function on the program description as input. The encoded qubits and the hashed description are sent to the Client as output.&lt;br /&gt;
*&#039;&#039;&#039;Eval&#039;&#039;&#039;: The Client decrypts the received qubits using the input on which they wish to evaluate the program. Using these qubits as inputs, the Client computes the same hash function (on ancillary qubits) and coherently compares it with the hashed description received from the vendor. The Client finally measures and outputs the result of the comparison.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt; : The point function to be copy-protected in [[#Protocol 1 - Copy protection of point functions|Protocol 1]]. &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt; is completely specified by a string of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; bits, &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;P_y(x) = 1&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x = y&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise&lt;br /&gt;
* &amp;lt;math&amp;gt;CC[f,y]&amp;lt;/math&amp;gt; : The compute-and-compare program to be copy-protected in [[#Protocol 2 - Copy protection of compute-and-compare programs|Protocol 2]]. It is completely specified by an efficiently computable function &amp;lt;math&amp;gt;f: \{0,1\}^n \rightarrow \{0,1\}^m&amp;lt;/math&amp;gt; and a string of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; bits, &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;CC[f,y](x)&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;f(x) = y&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise.&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; : Size of input string &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;G : \{0,1\}^n \rightarrow \{0,1\}^{m(\lambda)} &amp;lt;/math&amp;gt; (Hash function)&lt;br /&gt;
* &amp;lt;math&amp;gt;H : \{0,1\}^{m(\lambda)} \rightarrow \{0,1\}^\lambda &amp;lt;/math&amp;gt; (Hash function)&lt;br /&gt;
* &amp;lt;math&amp;gt;|x^\theta\rangle = H^\theta |x\rangle = H^{\theta_1} \otimes ... \otimes H^{\theta_\lambda} |x\rangle&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt; is a &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;\theta_1,...,\theta_\lambda&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!--{{graph}}--&amp;gt;&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
First, we define a protocol for copy-protection of point functions. This protocol can then be extended to a protocol for compute-and-compare programs.&lt;br /&gt;
===Protocol 1 - Copy protection of point functions===&lt;br /&gt;
====PF-Protect(&amp;lt;math&amp;gt;\lambda,y&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; - description of point function &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt;&lt;br /&gt;
* Set &amp;lt;math&amp;gt;\theta = G(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Sample &amp;lt;math&amp;gt;v \leftarrow \{0,1\}^{m(\lambda)}&amp;lt;/math&amp;gt; uniformly at random&lt;br /&gt;
* Let &amp;lt;math&amp;gt;z = H(v)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Output (&amp;lt;math&amp;gt;|v^\theta\rangle,z&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====PF-Eval(&amp;lt;math&amp;gt;\lambda,(\rho,z),x&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(\rho,z)&amp;lt;/math&amp;gt; - Alleged copy-protected program; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; - Input on which the program is to be evaluated&lt;br /&gt;
* Set &amp;lt;math&amp;gt;\theta^\prime = G(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Apply the Hadamard operator &amp;lt;math&amp;gt;H^{\theta^\prime}&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;&lt;br /&gt;
* Append &amp;lt;math&amp;gt;n+1&amp;lt;/math&amp;gt; ancillary qubits to &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;, all in state &amp;lt;math&amp;gt;|0\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
* Compute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; onto the first &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ancillary qubits with &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; as input&lt;br /&gt;
* Coherently measure whether the first &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ancilla qubits are in state &amp;lt;math&amp;gt;|z\rangle&amp;lt;/math&amp;gt;, recording the result in the last ancilla qubit&lt;br /&gt;
* Uncompute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; and undo the Hadamards &amp;lt;math&amp;gt;H^{\theta^\prime}&amp;lt;/math&amp;gt;&lt;br /&gt;
* Measure the last ancilla qubit to obtain a bit &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; as output&lt;br /&gt;
&lt;br /&gt;
===Protocol 2 - Copy protection of compute-and-compare programs===&lt;br /&gt;
====CC-Protect(&amp;lt;math&amp;gt;\lambda,(f,y)&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(f,y)&amp;lt;/math&amp;gt; - description of compute-and-compare program &amp;lt;math&amp;gt;CC[f,y]&amp;lt;/math&amp;gt;&lt;br /&gt;
* Let &amp;lt;math&amp;gt;\rho = &amp;lt;/math&amp;gt; &#039;&#039;&#039;PF-Protect&#039;&#039;&#039;(&amp;lt;math&amp;gt;\lambda,y&amp;lt;/math&amp;gt;)&lt;br /&gt;
* Output (&amp;lt;math&amp;gt;f,\rho&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====CC-Eval(&amp;lt;math&amp;gt;\lambda,(f,\rho),x&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(f,\rho)&amp;lt;/math&amp;gt; - Alleged copy protected program; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; - Input on which the program is to be evaluated&lt;br /&gt;
* Compute &amp;lt;math&amp;gt;y^\prime = f(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Let &amp;lt;math&amp;gt;b \leftarrow &amp;lt;/math&amp;gt; &#039;&#039;&#039;PF-Eval&#039;&#039;&#039;(&amp;lt;math&amp;gt;\lambda,\rho,y^\prime&amp;lt;/math&amp;gt;). Output &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
*Both protocols have provable non-trivial security in the quantum random oracle model. Informally, a query bounded adversary fails at pirating with at least some constant probability.&lt;br /&gt;
*The Client should be able to perform universal quantum computation in order to compute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt;&lt;br /&gt;
*The protected programs obtained in both protocols allow polynomially-many evaluations (as we evaluate the copy-protected programs reversibly). &lt;br /&gt;
*[[#Protocol 1 - Copy protection of point functions|Protocol 1]] also satisfies the primitive of Virtual Black Box Obfuscation&lt;br /&gt;
*By adding a verification step, [[#Protocol 2 - Copy protection of compute-and-compare programs|Protocol 2]] can be extended to the weaker primitive of Secure Software Leasing. This protocol for Secure Software Leasing does however provide a standard level of security, i.e. the adversarial success probability is negligible in the security parameter.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
For the security proof and extension of the protocols to other functionalities, refer to the same paper by [http://arxiv.org/abs/2009.13865 Coladangelo et al. (2020)]&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Anonymous_Conference_Key_Agreement_using_GHZ_states&amp;diff=4428</id>
		<title>Anonymous Conference Key Agreement using GHZ states</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Anonymous_Conference_Key_Agreement_using_GHZ_states&amp;diff=4428"/>
		<updated>2022-01-07T19:59:16Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2007.07995 example protocol] achieves the functionality of quantum conference key agreement. This protocol allows multiple parties in a quantum network to establish a shared secret key anonymously.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
We require the following for this protocol:&lt;br /&gt;
# A source of n-party GHZ states&lt;br /&gt;
# Private randomness sources&lt;br /&gt;
# A randomness source that is not associated with any party&lt;br /&gt;
# A classical broadcasting channel&lt;br /&gt;
# Pairwise private communication channels&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* First, the sender notifies each receiver in the network anonymously&lt;br /&gt;
* The entanglement source generates and distributes sufficient GHZ states to all nodes in the network&lt;br /&gt;
* The GHZ states are distilled to establish multipartite entanglement shared only by the participating parties (the sender and receivers)&lt;br /&gt;
* Each GHZ state is randomly chosen to be used for either Verification or Key Generation. For Key Generation rounds, a single bit of the key is established using one GHZ state by measuring in the Z-basis&lt;br /&gt;
* If the sender is content with the Verification results, they can anonymously validate the protocol and conclude that the key has been established successfully.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Anonymous Verifiable Conference Key Agreement===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Parameters &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements&#039;&#039;: A source of n-party GHZ states; private randomness sources; a randomness source that is not associated with any party; a classical broadcasting channel; pairwise private communication channels&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal&#039;&#039;: Anonymoous generation of key between sender and &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers&lt;br /&gt;
&lt;br /&gt;
# The sender notifies the &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers by running the &#039;&#039;Notification&#039;&#039; protocol&lt;br /&gt;
# The source generates and shares &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; GHZ states&lt;br /&gt;
# The parties run the &#039;&#039;Anonymous Multipartite Entanglement&#039;&#039; protocol on the GHZ states&lt;br /&gt;
# For each &amp;lt;math&amp;gt;(m+1)&amp;lt;/math&amp;gt;-partite GHZ state, the parties do the following:&lt;br /&gt;
#* They ask a source of randomness to broadcast a bit &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; such that Pr&amp;lt;math&amp;gt;[b=1] = \frac{1}{D}&amp;lt;/math&amp;gt;&lt;br /&gt;
#*  &#039;&#039;&#039;Verification round: &#039;&#039;&#039;If b = 0, the sender runs &#039;&#039;Verification&#039;&#039; as verifier on the state corresponding to that round, while only considering the announcements of the &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers. The remaining parties announce random values.&lt;br /&gt;
#* &#039;&#039;&#039;KeyGen round: &#039;&#039;&#039;If b = 1, the sender and receivers measure in the Z-basis.&lt;br /&gt;
# If the sender is content with the checks of the &#039;&#039;Verification&#039;&#039; protocol, they can anonymously validate the protocol&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Notification===&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; Sender&#039;s choice of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal: &#039;&#039; The &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers get notified&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; Private pairwise classical communication channels and randomness sources&lt;br /&gt;
&lt;br /&gt;
For agent &amp;lt;math&amp;gt;i = 1,...,n&amp;lt;/math&amp;gt;:&lt;br /&gt;
# All agents &amp;lt;math&amp;gt;j \in \{1,...,n\}&amp;lt;/math&amp;gt; do the following:&lt;br /&gt;
#* &#039;&#039;&#039;When agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; is the sender&#039;&#039;&#039;: If &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; is not a receiver, the sender chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{k = 1}^n&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 0&amp;lt;/math&amp;gt;. Otherwise, if &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; is a receiver, the sender chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 1&amp;lt;/math&amp;gt;. The sender sends bit &amp;lt;math&amp;gt;r_{j,k}^i&amp;lt;/math&amp;gt; to agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;When agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; is not the sender&#039;&#039;&#039;:  The agent chooses &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; random bits &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{k = 1}^n&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\bigoplus_{k=1}^n r_{j,k}^i = 0&amp;lt;/math&amp;gt; and sends bit &amp;lt;math&amp;gt;r_{j,k}^i&amp;lt;/math&amp;gt; to agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;&lt;br /&gt;
# All agents &amp;lt;math&amp;gt;k \in \{1,...,n\}&amp;lt;/math&amp;gt; receive &amp;lt;math&amp;gt;\{r_{j,k}^i\}_{j = 1}^n&amp;lt;/math&amp;gt;, and compute &amp;lt;math&amp;gt;z_k^i = \bigoplus_{j=1}^n r_{j,k}^i&amp;lt;/math&amp;gt; and send it to agent &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;&lt;br /&gt;
# Agent &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; takes the received &amp;lt;math&amp;gt;\{z_k^i\}_{k=1}^n&amp;lt;/math&amp;gt; to compute &amp;lt;math&amp;gt;z^i = \bigoplus_{k=1}^nz_k^i&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;z^i = 1&amp;lt;/math&amp;gt;, they are thereby notified to be a designated receiver.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3: Anonymous Multiparty Entanglement===&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;-partite GHZ state &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}}(|0\rangle^{\otimes n} + |1\rangle^{\otimes n})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output: &#039;&#039; &amp;lt;math&amp;gt;(m+1)&amp;lt;/math&amp;gt;-partite GHZ state &amp;lt;math&amp;gt;\frac{1}{\sqrt{2}}(|0\rangle^{\otimes (m+1)} + |1\rangle^{\otimes (m+1)})&amp;lt;/math&amp;gt; shared between the sender and receivers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; A broadcast channel; private randomness sources&lt;br /&gt;
&lt;br /&gt;
# Sender and receivers draw a random bit each. Everyone else measures their qubits in the X-basis, yielding a measurement outcome bit &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# All parties broadcast their bits in a random order, or if possible, simultaneously.&lt;br /&gt;
# The sender applies a Z gate to their qubit if the parity of the non-participating parties&#039; bits is odd.&lt;br /&gt;
&lt;br /&gt;
===Protocol 4: Verification===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input: &#039;&#039; A verifier V; a shared state between &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; parties&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal: &#039;&#039; Verification or rejection of the shared state as the GHZ&amp;lt;math&amp;gt;_k&amp;lt;/math&amp;gt; state by V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements: &#039;&#039; Private randomness sources; a classical broadcasting channel&lt;br /&gt;
&lt;br /&gt;
# Everyone but V draws a random bit &amp;lt;math&amp;gt;b_i&amp;lt;/math&amp;gt; and measures in the X or Y basis if their bit equals 0 or 1 respectively, obtaining a measurement outcome &amp;lt;math&amp;gt;m_i&amp;lt;/math&amp;gt;. V chooses both bits at random&lt;br /&gt;
# Everyone (including V) broadcasts &amp;lt;math&amp;gt;(b_i,m_i)&amp;lt;/math&amp;gt;&lt;br /&gt;
# V resets her bit such that &amp;lt;math&amp;gt;\sum_ib_i = 0 (&amp;lt;/math&amp;gt;mod &amp;lt;math&amp;gt;2)&amp;lt;/math&amp;gt;. She measures in the X or Y basis if her bit equals 0 or 1 respectively, thereby also resetting her &amp;lt;math&amp;gt;m_i = m_v&amp;lt;/math&amp;gt;&lt;br /&gt;
# V accepts the state if and only if &amp;lt;math&amp;gt;\sum_im_i = \frac{1}{2}\sum_ib_i (&amp;lt;/math&amp;gt;mod &amp;lt;math&amp;gt;2)&amp;lt;/math&amp;gt;&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Anonymous_Conference_Key_Agreement_using_GHZ_states&amp;diff=4427</id>
		<title>Anonymous Conference Key Agreement using GHZ states</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Anonymous_Conference_Key_Agreement_using_GHZ_states&amp;diff=4427"/>
		<updated>2022-01-07T13:50:18Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Created page with &amp;quot;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;  &amp;lt;!-- Intro: brief description of the protocol --&amp;gt; This [https://arxiv.org/abs/2007.07995 example protocol] achie...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2007.07995 example protocol] achieves the functionality of quantum conference key agreement anonymously. This protocol allows multiple parties in a quantum network to establish a shared secret key anonymously.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* First, the sender notifies each receiver in the network anonymously&lt;br /&gt;
* The entanglement source generates and distributes sufficient GHZ states to all nodes in the network&lt;br /&gt;
* The GHZ states are distilled to establish multipartite entanglement shared only by the participating parties (the sender and receivers)&lt;br /&gt;
* Each GHZ state is randomly chosen to be used for either Verification or Key Generation. For Key Generation rounds, a single bit of the key is established using one GHZ state by measuring in the Z-basis&lt;br /&gt;
* If the sender is content with the Verification results, they can anonymously validate the protocol and conclude that the key has been established successfully.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1: Anonymous Verifiable Conference Key Agreement===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Parameters &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements&#039;&#039;: A source of n-party GHZ states; private randomness sources; a randomness source that is not associated with any party; a classical broadcasting channel; pairwise private communication channels&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal&#039;&#039;: Anonymoous generation of key between sender and &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers&lt;br /&gt;
&lt;br /&gt;
# The sender notifies the &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers by running the &#039;&#039;Notification&#039;&#039; protocol&lt;br /&gt;
# The source generates and shares &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; GHZ states&lt;br /&gt;
# The parties run the &#039;&#039;Anonymous Multipartite Entanglement&#039;&#039; protocol on the GHZ states&lt;br /&gt;
# For each &amp;lt;math&amp;gt;(m+1)&amp;lt;/math&amp;gt;-partite GHZ state, the parties do the following:&lt;br /&gt;
#* They ask a source of randomness to broadcast a bit &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; such that Pr&amp;lt;math&amp;gt;[b=1] = \frac{1}{D}&amp;lt;/math&amp;gt;&lt;br /&gt;
#*  &#039;&#039;&#039;Verification round: &#039;&#039;&#039;If b = 0, the sender runs &#039;&#039;Verification&#039;&#039; as verifier on the state corresponding to that round, while only considering the announcements of the &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; receivers. The remaining parties announce random values.&lt;br /&gt;
#* &#039;&#039;&#039;KeyGen round: &#039;&#039;&#039;If b = 1, the sender and receivers measure in the Z-basis.&lt;br /&gt;
# If the sender is content with the checks of the &#039;&#039;Verification&#039;&#039; protocol, they can anonymously validate the protocol&lt;br /&gt;
&lt;br /&gt;
===Protocol 2: Notification===&lt;br /&gt;
===Protocol 3: Anonymous Multiparty Entanglement===&lt;br /&gt;
&lt;br /&gt;
===Protocol 4: Verification===&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4419</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4419"/>
		<updated>2021-12-17T11:01:39Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Added link to Practical Quantum E-voting&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;5&amp;quot;|[[Authentication of Quantum Messages]]||[[Purity Testing based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Polynomial Code based Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Clifford Code for Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Trap Code for Quantum Authentication]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Naive approach using Quantum Teleportation]]&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;
|[[Copy Protection]]||[[Copy Protection of Compute and Compare Programs]]&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;
|rowspan=&amp;quot;4&amp;quot;|[[Verification of Quantum Computation]]||[[Interactive Proofs for Quantum Computation|Quantum Prover Interactive Proofs]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of NP-complete problems]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Verification of Sub-Universal Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Classical Verification of Universal Quantum Computation]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;5&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;
|[[Practical Quantum Electronic Voting]]&lt;br /&gt;
|-&lt;br /&gt;
||-||[[Weak String Erasure]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|[[Entanglement Routing]]||[[Routing Entanglement in the Quantum Internet]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributing Graph States Over Arbitrary Quantum Networks]]&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4418</id>
		<title>Practical Quantum Electronic Voting</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4418"/>
		<updated>2021-12-16T22:30:15Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Add assumptions and further information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2107.14719 example protocol] achieves the functionality of [[Quantum Electronic Voting]]. In this protocol, an untrusted multipartite entanglement source can be used to carry out an election without any election authorities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;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:Specific Task | Specific Task]]&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* Voting agents can communicate classically.&lt;br /&gt;
* Voting agents can generate random numbers.&lt;br /&gt;
* There is a multipartite entanglement source connected to each agent by a quantum channel. The source need not be trusted.&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* In the first phase of the protocol, each agent is assigned a secret unique random index&lt;br /&gt;
* Next, we perform multiple rounds of voting, one for each agent. In each round, the following steps are carried out:&lt;br /&gt;
** The agent with the same index as the round number is designated the voter for that round&lt;br /&gt;
** The source distributes one qubit of a GHZ state to each agent. The voting agent randomly chooses to either &#039;&#039;&#039;verify&#039;&#039;&#039; the GHZ state or &#039;&#039;&#039;vote&#039;&#039;&#039; with a certain probability. This step, including state distribution, is repeated until the voter chooses to vote. Once voting is chosen, the voter anonymously transmits their vote to all agents.&lt;br /&gt;
* Finally, all the votes are tallied. All agents have the votes for each round and can thus verify the final tally.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;: Number of agents&lt;br /&gt;
* &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt;: The votes&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;: Distance from the perfect GHZ state&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;: Threshold for verification&lt;br /&gt;
* &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;: Probability of failure of verification&lt;br /&gt;
* &#039;&#039;&#039;B&#039;&#039;&#039;: Bulletin board - &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; x &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; binary matrix. Each row corresponds to one round of voting, and each column contains the output of a single voter across all rounds&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: Vote vector - The list of votes across &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; rounds. Each element is computed as the parity of a row from &#039;&#039;&#039;B&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T&#039;&#039;&#039;: Final tally&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1 : Quantum e-voting===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt; - Set of votes; &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; - Security parameter; &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; - Distance from the perfect GHZ state; &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; - Threshold for verification; &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; Probability of failure of verification&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The candidate with majority votes or &#039;&#039;Abort&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, N-qubit GHZ source, quantum channels&lt;br /&gt;
* Phase 1 [getting unique secret indices]&lt;br /&gt;
** Agents perform &#039;&#039;&#039;UniqueIndex&#039;&#039;&#039; until each agent has a secret unique random index  &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;&lt;br /&gt;
* Phase 2 [casting votes]&lt;br /&gt;
** For &amp;lt;math&amp;gt;l = 1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;&lt;br /&gt;
*** The voting agent is the agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;\omega_k = l&amp;lt;/math&amp;gt;&lt;br /&gt;
*** Repeat until &#039;&#039;&#039;Voting&#039;&#039;&#039; is announced&lt;br /&gt;
**** The source distributes to each of the N agents one qubit of the GHZ source&lt;br /&gt;
**** All agents &amp;lt;math&amp;gt; j \in [N] &amp;lt;/math&amp;gt; set rejections&amp;lt;math&amp;gt;_j = &amp;lt;/math&amp;gt; trials&amp;lt;math&amp;gt;_j = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
**** The voting agent tosses log&amp;lt;math&amp;gt;_2[\frac{16N\epsilon^2}{(\epsilon^2-4\delta)^2}&amp;lt;/math&amp;gt;ln&amp;lt;math&amp;gt;(\frac{1}{\eta})]&amp;lt;/math&amp;gt; &amp;lt;!--NEEDS FORMATTING CHANGES--&amp;gt;&lt;br /&gt;
**** The agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;, where output 1 indicates &#039;&#039;&#039;Verification&#039;&#039;&#039; and output 0 indicates &#039;&#039;&#039;Voting&#039;&#039;&#039;. Everyone except the voting agent inputs 0; if the coin toss is &#039;all heads&#039; the voting agent also inputs 0, otherwise the voting agent inputs 1&lt;br /&gt;
**** If &#039;&#039;&#039;Verification&#039;&#039;&#039; is chosen, the agents perform &#039;&#039;&#039;RandomAgent&#039;&#039;&#039; and the voting agent anonymously picks an agent &amp;lt;math&amp;gt;j \in [N]&amp;lt;/math&amp;gt; to be the verifier. Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; updates trials&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt; and if &#039;&#039;&#039;Verification&#039;&#039;&#039; outputs reject: rejections&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
*** If for any &amp;lt;math&amp;gt;j \in [N], \delta_j = \frac{rejections_j}{trials_j} &amp;gt; \delta &amp;lt;/math&amp;gt;, the protocol &#039;&#039;Aborts&#039;&#039;&lt;br /&gt;
*** Perform &#039;&#039;&#039;Voting&#039;&#039;&#039;. The outcome is one row of the Bulletin Board &#039;&#039;&#039;B&#039;&#039;&#039;. The parity of the row gives one entry in the vote vector &#039;&#039;&#039;E&#039;&#039;&#039;.&lt;br /&gt;
** Given the votes &#039;&#039;&#039;E&#039;&#039;&#039;, the tally &#039;&#039;&#039;T&#039;&#039;&#039; can be computed.&lt;br /&gt;
*Phase 3 [Verification of results]:&lt;br /&gt;
** All agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;, and input 1 if their vote is not the same as the entry in &#039;&#039;&#039;E&#039;&#039;&#039; for the round in which they voted, and 0 otherwise.&lt;br /&gt;
** If &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; outputs 1, &#039;&#039;Abort&#039;&#039; the protocol. Else output the candidate with the most votes according to the tally &#039;&#039;&#039;T&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2 : UniqueIndex===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; to be used in &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;,&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: Each agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a secret unique index &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
# Beginning of round R = 1&lt;br /&gt;
# Agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with inputs &amp;lt;math&amp;gt;x_k = 0&amp;lt;/math&amp;gt; if they already have an index and &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; if they do not.&lt;br /&gt;
# If &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;, repeat from step 2&lt;br /&gt;
# If an agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a bit &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\omega_k = 0&amp;lt;/math&amp;gt; they know they are the only one and has been assigned the secret index corresponding to the round &amp;lt;math&amp;gt;\omega_k = R&amp;lt;/math&amp;gt;, otherwise there is a collision.&lt;br /&gt;
# [notification]  Everybody performs a &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with input 0, unless they received the index in this round, in which case they input 1.&lt;br /&gt;
# If the output of &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; is 0, no index was assigned and we repeat from step 2.&lt;br /&gt;
# If the output of &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; is 1, the index was assigned and we repeat from step 2 with R+ = 1.&lt;br /&gt;
# Repeat from step 2 until all indices have been assigned.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3 : Verification===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: A quantum state distributed and shared by &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; parties, security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; for &#039;&#039;&#039;RandomAgent&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: If the state is a GHZ state &amp;lt;math&amp;gt; \rightarrow &amp;lt;/math&amp;gt; YES.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, quantum state source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Everyone executes &#039;&#039;&#039;RandomAgent&#039;&#039;&#039; to choose uniformly at random one of the voters to be the verifier.&lt;br /&gt;
# The verifier generates random angles &amp;lt;math&amp;gt;\theta_j \in [0, \pi)&amp;lt;/math&amp;gt; for all agents including themselves, such that the sum is a multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;. The angles are then sent out to all the agents.&lt;br /&gt;
# Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; measures in the basis &amp;lt;math&amp;gt;[|+_\theta\rangle,|-_\theta\rangle] = [\frac{1}{\sqrt{2}}(|0\rangle + e^{i\theta_j}|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle - e^{i\theta_j}|1\rangle)]&amp;lt;/math&amp;gt; and publicly announces the result &amp;lt;math&amp;gt;Y_j = \{0,1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# The state passes the verification test when the following condition is satisfied: if the sum of the randomly chosen angles is an even multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;, there must be an even number of 1 outcomes for &amp;lt;math&amp;gt;Y_j&amp;lt;/math&amp;gt; , and if the sum is an odd multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;, there must be an odd number of 1 outcomes for &amp;lt;math&amp;gt;Y_j : \bigoplus_j Y_j = \frac{1}{\pi}\sum_i\theta_i &amp;lt;/math&amp;gt; (mod 2)&lt;br /&gt;
&lt;br /&gt;
===Protocol 4 : Voting===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Voting agent preference &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: All agents get one row of the bulletin board.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, GHZ source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Each agent measures the state they received in the Hadamard basis and records the outcome.&lt;br /&gt;
# The outcomes of the measurement of each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt;. Then we know that &amp;lt;math&amp;gt;\sum_kd_k = 0&amp;lt;/math&amp;gt; mod &amp;lt;math&amp;gt; 2&amp;lt;/math&amp;gt;&lt;br /&gt;
# The voting agent performs an XOR between the outcome &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt; and their vote &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;d_k \leftarrow d_k \oplus v_k &amp;lt;/math&amp;gt;. However, this alone will still appear as a random string.&lt;br /&gt;
# Every agent publicly broadcasts &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt; which gives one line &amp;lt;math&amp;gt;b_k&amp;lt;/math&amp;gt; of the bulletin board &#039;&#039;&#039;B&#039;&#039;&#039; &amp;lt;math&amp;gt; = \{b_k\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Protocol 5 : LogicalOR===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; agents, &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, security parameter &amp;lt;math&amp;gt;S = (1 - 2^{-\Gamma})^\Sigma \in (0,1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: &amp;lt;math&amp;gt;y = \vee_i^N x_i &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers&lt;br /&gt;
&lt;br /&gt;
# Decide &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random orderings, such that each voter is the last once. For each ordering repeat \Sigma times the following.&lt;br /&gt;
# Each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; gives an input &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;x_k = 0 &amp;lt;/math&amp;gt;, set &amp;lt;math&amp;gt;p_k = 0&amp;lt;/math&amp;gt;, otherwise toss &amp;lt;math&amp;gt;\Gamma&amp;lt;/math&amp;gt; coins and set &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; if the result is ‘all heads’ and to &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise&lt;br /&gt;
# Then each voter generates uniformly at random an &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;r_k = r_k^1r_k^2...r_k^N&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;\bigoplus_{i=1}^N r_k^i = p_k&amp;lt;/math&amp;gt; &lt;br /&gt;
# Voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; sends &amp;lt;math&amp;gt;r_k^i&amp;lt;/math&amp;gt; to voter &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, keeping &amp;lt;math&amp;gt;r_k^k&amp;lt;/math&amp;gt;&lt;br /&gt;
# Each voter sums the received bits and broadcasts the parity &amp;lt;math&amp;gt;z_i = \bigoplus_{k=1}^N r_k^i &amp;lt;/math&amp;gt; according to the ordering.&lt;br /&gt;
# Compute the parity of the original bits &amp;lt;math&amp;gt;y = \bigoplus_i z_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# From this everyone can also compute the parity of all other inputs except their own &amp;lt;math&amp;gt;w_k = \bigoplus_{i = 1}^N (z_i \otimes r_k^i)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Repeat &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; times from step 4: each time repeat with &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; as new inputs&lt;br /&gt;
# If at least once in the &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; repetitions for the various orderings &amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;, this is the output of the protocol, otherwise it is &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Protocol 6 : RandomBit===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;, &#039;&#039;voting agent&#039;&#039;: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously announces a random bit according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
*Perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with security parameter S where the voting agent inputs a random bit according to D and the other agents input 0.&lt;br /&gt;
&lt;br /&gt;
===Protocol 7 : RandomAgent===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in &#039;&#039;&#039;RandomBit&#039;&#039;&#039;, voting agent: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously chooses a random agent according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
* Repeat &#039;&#039;&#039;RandomBit&#039;&#039;&#039; log2 N times.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;(\sigma_H,\sigma_D,\gamma)&amp;lt;/math&amp;gt;-&#039;&#039;Correctness&#039;&#039;: This notion of approximate correctness includes two properties:&lt;br /&gt;
** &amp;lt;math&amp;gt;\sigma_H&amp;lt;/math&amp;gt;-&#039;&#039;Completeness&#039;&#039;: If all agents are honest, the election is accepted with probability more than &amp;lt;math&amp;gt;\sigma_H&amp;lt;/math&amp;gt; - Pr[election accepted] &amp;lt;math&amp;gt; \geq \sigma_H&amp;lt;/math&amp;gt;&lt;br /&gt;
** &amp;lt;math&amp;gt;(\sigma_D,\gamma)&amp;lt;/math&amp;gt;-&#039;&#039;Soundness&#039;&#039;: the probability that the election result is accepted, given that the set of the votes &#039;&#039;&#039;E&#039;&#039;&#039; computed from the bulletin board &#039;&#039;&#039;B&#039;&#039;&#039; resulting from the election is more than &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; away from the real votes &#039;&#039;&#039;V&#039;&#039;&#039;, is smaller than &amp;lt;math&amp;gt;\sigma_D&amp;lt;/math&amp;gt; - &lt;br /&gt;
:: Pr[election accepted &amp;lt;math&amp;gt;| \frac{1}{N}||&amp;lt;/math&amp;gt;&#039;&#039;&#039;V&#039;&#039;&#039; - &#039;&#039;&#039;E&#039;&#039;&#039;&amp;lt;math&amp;gt;||_1 \geq \gamma] \leq \sigma_D &amp;lt;/math&amp;gt;&lt;br /&gt;
: This particular protocol is &amp;lt;math&amp;gt;([1-\epsilon(1-S)]^N, S^{N(1+\lambda)[\epsilon(1-\eta)+\eta]},(1+\lambda)[\epsilon(1-\eta)+\eta])&amp;lt;/math&amp;gt;-correct, for a small constant &amp;lt;math&amp;gt;\lambda &amp;gt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt;-&#039;&#039;Privacy&#039;&#039;: The privacy of the election scheme implies that for any voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, the probability that any subset of malicious parties &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; that deviates from the honest protocol can guess the vote &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt; of the voter is at most &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt; more than in the case they just have access to the bulletin board and to their own votes - &lt;br /&gt;
: &amp;lt;math&amp;gt;\forall k, &amp;lt;/math&amp;gt; Pr&amp;lt;math&amp;gt;[v_k|D] -&amp;lt;/math&amp;gt; Pr&amp;lt;math&amp;gt;[v_k|B,v_j \in &amp;lt;/math&amp;gt; &#039;&#039;&#039;V&#039;&#039;&#039;&amp;lt;math&amp;gt;_D] \leq \zeta&amp;lt;/math&amp;gt;&lt;br /&gt;
: This particular protocol is &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt;-private with &amp;lt;math&amp;gt;\zeta = (1-\eta)^N\epsilon + (1 - (1-\eta)^N)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Authentication&#039;&#039;: This e-voting protocol does not provide authentication, which should be taken care of by the physical implementation of the protocol.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Double voting&#039;&#039;: Each voter can vote at most once. Since the number of voters is known in advance for this protocol, double voting is easily taken care of.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Verifiability&#039;&#039;: Each voter can verify that their vote has been counted correctly. In this protocol, the tally is performed by the voters themselves. The bulletin board produced as an output of the protocol is public and can always be checked by everyone, while still appearing random.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Receipt freeness&#039;&#039;: In order to prevent vote-selling, voters should not be able to prove how they voted. As the unique indices stay secret, voters cannot produce a receipt of their vote.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Additional candidates&#039;&#039;: The protocol described here only allows an election consisting of 2 candidates. This can be extended to more candidates by repeating the protocol multiple times in sequence. In particular, if there are K candidates, we can express each of them using log&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt;K bits and repeat the election as many times so that each vote set corresponds to one bit. This however does affect the correctness and privacy.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
* Proofs of the protocol properties can be found in [https://arxiv.org/abs/2107.14719 Centrone et al. (2021)]&lt;br /&gt;
* Protocols 5-7 are classical anonymous protocols taken from [https://arxiv.org/abs/0706.2010 Broadbent and Tapp(2007)] and used in [https://arxiv.org/abs/1811.04729 Unnikrishnan et al.(2018)]&lt;br /&gt;
* Protocol 3 is the same as that of [https://arxiv.org/abs/1112.5064 Pappa et al.(2011)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4417</id>
		<title>Practical Quantum Electronic Voting</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4417"/>
		<updated>2021-12-16T17:07:40Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Add protocol properties and minor edits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2107.14719 example protocol] achieves the functionality of [[Quantum Electronic Voting]]. In this protocol, an untrusted multipartite entanglement source can be used to carry out an election without any election authorities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* In the first phase of the protocol, each agent is assigned a secret unique random index&lt;br /&gt;
* Next, we perform multiple rounds of voting, one for each agent. In each round, the following steps are carried out:&lt;br /&gt;
** The agent with the same index as the round number is designated the voter for that round&lt;br /&gt;
** The source distributes one qubit of a GHZ state to each agent. The voting agent randomly chooses to either &#039;&#039;&#039;verify&#039;&#039;&#039; the GHZ state or &#039;&#039;&#039;vote&#039;&#039;&#039; with a certain probability. This step, including state distribution, is repeated until the voter chooses to vote. Once voting is chosen, the voter anonymously transmits their vote to all agents.&lt;br /&gt;
* Finally, all the votes are tallied. All agents have the votes for each round and can thus verify the final tally.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;: Number of agents&lt;br /&gt;
* &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt;: The votes&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;: Distance from the perfect GHZ state&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;: Threshold for verification&lt;br /&gt;
* &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;: Probability of failure of verification&lt;br /&gt;
* &#039;&#039;&#039;B&#039;&#039;&#039;: Bulletin board - &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; x &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; binary matrix. Each row corresponds to one round of voting, and each column contains the output of a single voter across all rounds&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: Vote vector - The list of votes across &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; rounds. Each element is computed as the parity of a row from &#039;&#039;&#039;B&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T&#039;&#039;&#039;: Final tally&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1 : Quantum e-voting===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt; - Set of votes; &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; - Security parameter; &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; - Distance from the perfect GHZ state; &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; - Threshold for verification; &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; Probability of failure of verification&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The candidate with majority votes or &#039;&#039;Abort&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, N-qubit GHZ source, quantum channels&lt;br /&gt;
* Phase 1 [getting unique secret indices]&lt;br /&gt;
** Agents perform &#039;&#039;&#039;UniqueIndex&#039;&#039;&#039; until each agent has a secret unique random index  &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;&lt;br /&gt;
* Phase 2 [casting votes]&lt;br /&gt;
** For &amp;lt;math&amp;gt;l = 1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;&lt;br /&gt;
*** The voting agent is the agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;\omega_k = l&amp;lt;/math&amp;gt;&lt;br /&gt;
*** Repeat until &#039;&#039;&#039;Voting&#039;&#039;&#039; is announced&lt;br /&gt;
**** The source distributes to each of the N agents one qubit of the GHZ source&lt;br /&gt;
**** All agents &amp;lt;math&amp;gt; j \in [N] &amp;lt;/math&amp;gt; set rejections&amp;lt;math&amp;gt;_j = &amp;lt;/math&amp;gt; trials&amp;lt;math&amp;gt;_j = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
**** The voting agent tosses log&amp;lt;math&amp;gt;_2[\frac{16N\epsilon^2}{(\epsilon^2-4\delta)^2}&amp;lt;/math&amp;gt;ln&amp;lt;math&amp;gt;(\frac{1}{\eta})]&amp;lt;/math&amp;gt; &amp;lt;!--NEEDS FORMATTING CHANGES--&amp;gt;&lt;br /&gt;
**** The agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;, where output 1 indicates &#039;&#039;&#039;Verification&#039;&#039;&#039; and output 0 indicates &#039;&#039;&#039;Voting&#039;&#039;&#039;. Everyone except the voting agent inputs 0; if the coin toss is &#039;all heads&#039; the voting agent also inputs 0, otherwise the voting agent inputs 1&lt;br /&gt;
**** If &#039;&#039;&#039;Verification&#039;&#039;&#039; is chosen, the agents perform &#039;&#039;&#039;RandomAgent&#039;&#039;&#039; and the voting agent anonymously picks an agent &amp;lt;math&amp;gt;j \in [N]&amp;lt;/math&amp;gt; to be the verifier. Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; updates trials&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt; and if &#039;&#039;&#039;Verification&#039;&#039;&#039; outputs reject: rejections&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
*** If for any &amp;lt;math&amp;gt;j \in [N], \delta_j = \frac{rejections_j}{trials_j} &amp;gt; \delta &amp;lt;/math&amp;gt;, the protocol &#039;&#039;Aborts&#039;&#039;&lt;br /&gt;
*** Perform &#039;&#039;&#039;Voting&#039;&#039;&#039;. The outcome is one row of the Bulletin Board &#039;&#039;&#039;B&#039;&#039;&#039;. The parity of the row gives one entry in the vote vector &#039;&#039;&#039;E&#039;&#039;&#039;.&lt;br /&gt;
** Given the votes &#039;&#039;&#039;E&#039;&#039;&#039;, the tally &#039;&#039;&#039;T&#039;&#039;&#039; can be computed.&lt;br /&gt;
*Phase 3 [Verification of results]:&lt;br /&gt;
** All agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;, and input 1 if their vote is not the same as the entry in &#039;&#039;&#039;E&#039;&#039;&#039; for the round in which they voted, and 0 otherwise.&lt;br /&gt;
** If &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; outputs 1, &#039;&#039;Abort&#039;&#039; the protocol. Else output the candidate with the most votes according to the tally &#039;&#039;&#039;T&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 2 : UniqueIndex===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; to be used in &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;,&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: Each agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a secret unique index &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
# Beginning of round R = 1&lt;br /&gt;
# Agents perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with inputs &amp;lt;math&amp;gt;x_k = 0&amp;lt;/math&amp;gt; if they already have an index and &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; if they do not.&lt;br /&gt;
# If &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;, repeat from step 2&lt;br /&gt;
# If an agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a bit &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\omega_k = 0&amp;lt;/math&amp;gt; they know they are the only one and has been assigned the secret index corresponding to the round &amp;lt;math&amp;gt;\omega_k = R&amp;lt;/math&amp;gt;, otherwise there is a collision.&lt;br /&gt;
# [notification]  Everybody performs a &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with input 0, unless they received the index in this round, in which case they input 1.&lt;br /&gt;
# If the output of &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; is 0, no index was assigned and we repeat from step 2.&lt;br /&gt;
# If the output of &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; is 1, the index was assigned and we repeat from step 2 with R+ = 1.&lt;br /&gt;
# Repeat from step 2 until all indices have been assigned.&lt;br /&gt;
&lt;br /&gt;
===Protocol 3 : Verification===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: A quantum state distributed and shared by &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; parties, security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; for &#039;&#039;&#039;RandomAgent&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: If the state is a GHZ state &amp;lt;math&amp;gt; \rightarrow &amp;lt;/math&amp;gt; YES.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, quantum state source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Everyone executes &#039;&#039;&#039;RandomAgent&#039;&#039;&#039; to choose uniformly at random one of the voters to be the verifier.&lt;br /&gt;
# The verifier generates random angles &amp;lt;math&amp;gt;\theta_j \in [0, \pi)&amp;lt;/math&amp;gt; for all agents including themselves, such that the sum is a multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;. The angles are then sent out to all the agents.&lt;br /&gt;
# Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; measures in the basis &amp;lt;math&amp;gt;[|+_\theta\rangle,|-_\theta\rangle] = [\frac{1}{\sqrt{2}}(|0\rangle + e^{i\theta_j}|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle - e^{i\theta_j}|1\rangle)]&amp;lt;/math&amp;gt; and publicly announces the result &amp;lt;math&amp;gt;Y_j = \{0,1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# The state passes the verification test when the following condition is satisfied: if the sum of the randomly chosen angles is an even multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;, there must be an even number of 1 outcomes for &amp;lt;math&amp;gt;Y_j&amp;lt;/math&amp;gt; , and if the sum is an odd multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;, there must be an odd number of 1 outcomes for &amp;lt;math&amp;gt;Y_j : \bigoplus_j Y_j = \frac{1}{\pi}\sum_i\theta_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Protocol 4 : Voting===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Voting agent preference &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: All agents get one row of the bulletin board.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, GHZ source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Each agent measures the state they received in the Hadamard basis and records the outcome.&lt;br /&gt;
# The outcomes of the measurement of each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt;. Then we know that &amp;lt;math&amp;gt;\sum_kd_k = 0&amp;lt;/math&amp;gt; mod &amp;lt;math&amp;gt; 2&amp;lt;/math&amp;gt;&lt;br /&gt;
# The voting agent performs an XOR between the outcome &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt; and their vote &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;d_k \leftarrow d_k \oplus v_k &amp;lt;/math&amp;gt;. However, this alone will still appear as a random string.&lt;br /&gt;
# Every agent publicly broadcasts &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt; which gives one line &amp;lt;math&amp;gt;b_k&amp;lt;/math&amp;gt; of the bulletin board &#039;&#039;&#039;B&#039;&#039;&#039; &amp;lt;math&amp;gt; = \{b_k\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Protocol 5 : LogicalOR===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; agents, &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, security parameter &amp;lt;math&amp;gt;S = (1 - 2^{-\Gamma})^\Sigma \in (0,1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: &amp;lt;math&amp;gt;y = \vee_i^N x_i &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers&lt;br /&gt;
&lt;br /&gt;
# Decide &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random orderings, such that each voter is the last once. For each ordering repeat \Sigma times the following.&lt;br /&gt;
# Each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; gives an input &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;x_k = 0 &amp;lt;/math&amp;gt;, set &amp;lt;math&amp;gt;p_k = 0&amp;lt;/math&amp;gt;, otherwise toss &amp;lt;math&amp;gt;\Gamma&amp;lt;/math&amp;gt; coins and set &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; if the result is ‘all heads’ and to &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise&lt;br /&gt;
# Then each voter generates uniformly at random an &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;r_k = r_k^1r_k^2...r_k^N&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;\bigoplus_{i=1}^N r_k^i = p_k&amp;lt;/math&amp;gt; &lt;br /&gt;
# Voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; sends &amp;lt;math&amp;gt;r_k^i&amp;lt;/math&amp;gt; to voter &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, keeping &amp;lt;math&amp;gt;r_k^k&amp;lt;/math&amp;gt;&lt;br /&gt;
# Each voter sums the received bits and broadcasts the parity &amp;lt;math&amp;gt;z_i = \bigoplus_{k=1}^N r_k^i &amp;lt;/math&amp;gt; according to the ordering.&lt;br /&gt;
# Compute the parity of the original bits &amp;lt;math&amp;gt;y = \bigoplus_i z_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# From this everyone can also compute the parity of all other inputs except their own &amp;lt;math&amp;gt;w_k = \bigoplus_{i = 1}^N (z_i \otimes r_k^i)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Repeat &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; times from step 4: each time repeat with &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; as new inputs&lt;br /&gt;
# If at least once in the &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; repetitions for the various orderings &amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;, this is the output of the protocol, otherwise it is &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 6 : RandomBit===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in &#039;&#039;&#039;LogicalOR&#039;&#039;&#039;, &#039;&#039;voting agent&#039;&#039;: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously announces a random bit according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
*Perform &#039;&#039;&#039;LogicalOR&#039;&#039;&#039; with security parameter S where the voting agent inputs a random bit according to D and the other agents input 0.&lt;br /&gt;
&lt;br /&gt;
===Protocol 7 : RandomAgent===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in &#039;&#039;&#039;RandomBit&#039;&#039;&#039;, voting agent: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously chooses a random agent according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
* Repeat &#039;&#039;&#039;RandomBit&#039;&#039;&#039; log2 N times.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;(\sigma_H,\sigma_D,\gamma)&amp;lt;/math&amp;gt;-&#039;&#039;Correctness&#039;&#039;: This notion of approximate correctness includes two properties:&lt;br /&gt;
** &amp;lt;math&amp;gt;\sigma_H&amp;lt;/math&amp;gt;-&#039;&#039;Completeness&#039;&#039;: If all agents are honest, the election is accepted with probability more than &amp;lt;math&amp;gt;\sigma_H&amp;lt;/math&amp;gt; - Pr[election accepted] &amp;lt;math&amp;gt; \geq \sigma_H&amp;lt;/math&amp;gt;&lt;br /&gt;
** &amp;lt;math&amp;gt;(\sigma_D,\gamma)&amp;lt;/math&amp;gt;-&#039;&#039;Soundness&#039;&#039;: the probability that the election result is accepted, given that the set of the votes &#039;&#039;&#039;E&#039;&#039;&#039; computed from the bulletin board &#039;&#039;&#039;B&#039;&#039;&#039; resulting from the election is more than &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; away from the real votes &#039;&#039;&#039;V&#039;&#039;&#039;, is smaller than &amp;lt;math&amp;gt;\sigma_D&amp;lt;/math&amp;gt; - &lt;br /&gt;
:: Pr[election accepted &amp;lt;math&amp;gt;| \frac{1}{N}||&amp;lt;/math&amp;gt;&#039;&#039;&#039;V&#039;&#039;&#039; - &#039;&#039;&#039;E&#039;&#039;&#039;&amp;lt;math&amp;gt;||_1 \geq \gamma] \leq \sigma_D &amp;lt;/math&amp;gt;&lt;br /&gt;
: This particular protocol is &amp;lt;math&amp;gt;([1-\epsilon(1-S)]^N, S^{N(1+\lambda)[\epsilon(1-\eta)+\eta]},(1+\lambda)[\epsilon(1-\eta)+\eta])&amp;lt;/math&amp;gt;-correct, for a small constant &amp;lt;math&amp;gt;\lambda &amp;gt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt;-&#039;&#039;Privacy&#039;&#039;: The privacy of the election scheme implies that for any voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, the probability that any subset of malicious parties &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; that deviates from the honest protocol can guess the vote &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt; of the voter is at most &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt; more than in the case they just have access to the bulletin board and to their own votes - &lt;br /&gt;
: &amp;lt;math&amp;gt;\forall k, &amp;lt;/math&amp;gt; Pr&amp;lt;math&amp;gt;[v_k|D] -&amp;lt;/math&amp;gt; Pr&amp;lt;math&amp;gt;[v_k|B,v_j \in &amp;lt;/math&amp;gt; &#039;&#039;&#039;V&#039;&#039;&#039;&amp;lt;math&amp;gt;_D] \leq \zeta&amp;lt;/math&amp;gt;&lt;br /&gt;
: This particular protocol is &amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt;-private with &amp;lt;math&amp;gt;\zeta = (1-\eta)^N\epsilon + (1 - (1-\eta)^N)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Authentication&#039;&#039;: This e-voting protocol does not provide authentication, which should be taken care of by the physical implementation of the protocol.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Double voting&#039;&#039;: Each voter can vote at most once. Since the number of voters is known in advance for this protocol, double voting is easily taken care of.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Verifiability&#039;&#039;: Each voter can verify that their vote has been counted correctly. In this protocol, the tally is performed by the voters themselves. The bulletin board produced as an output of the protocol is public and can always be checked by everyone, while still appearing random.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Receipt freeness&#039;&#039;: In order to prevent vote-selling, voters should not be able to prove how they voted. As the unique indices stay secret, voters cannot produce a receipt of their vote.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Additional candidates&#039;&#039;: The protocol described here only allows an election consisting of 2 candidates. This can be extended to more candidates by repeating the protocol multiple times in sequence. In particular, if there are K candidates, we can express each of them using log&amp;lt;math&amp;gt;_2&amp;lt;/math&amp;gt;K bits and repeat the election as many times so that each vote set corresponds to one bit. This however does affect the correctness and privacy.&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4413</id>
		<title>Practical Quantum Electronic Voting</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4413"/>
		<updated>2021-12-15T21:14:45Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Initial protocol page for Practical Quantum Electonic Voting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2107.14719 example protocol] achieves the functionality of [[Quantum Electronic Voting]]. In this protocol, an untrusted multipartite entanglement source can be used to carry out an election without any election authorities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* In the first phase of the protocol, each agent is assigned a secret unique random index&lt;br /&gt;
* Next, we perform multiple rounds of voting, one for each agent. In each round, the following steps are carried out:&lt;br /&gt;
** The agent with the same index as the round number is designated the voter for that round&lt;br /&gt;
** The source distributes one qubit of a GHZ state to each agent. The voting agent randomly chooses to either &#039;&#039;&#039;verify&#039;&#039;&#039; the GHZ state or &#039;&#039;&#039;vote&#039;&#039;&#039; with a certain probability. This step, including state distribution, is repeated until the voter chooses to vote. Once voting is chosen, the voter anonymously transmits their vote to all agents.&lt;br /&gt;
* Finally, all the votes are tallied. All agents have the votes for each round and can thus verify the final tally.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;: Number of agents&lt;br /&gt;
* &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt;: The votes&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;: Distance from the perfect GHZ state&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;: Threshold for verification&lt;br /&gt;
* &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;: Probability of failure of verification&lt;br /&gt;
* &#039;&#039;&#039;B&#039;&#039;&#039;: Bulletin board - &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; x &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; binary matrix. Each row corresponds to one round of voting, and each column contains the output of a single voter across all rounds&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: Vote vector - The list of votes across &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; rounds. Each element is computed as the parity of a row from &#039;&#039;&#039;B&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T&#039;&#039;&#039;: Final tally&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1 : Quantum e-voting===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt; - Set of votes; &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; - Security parameter; &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; - Distance from the perfect GHZ state; &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; - Threshold for verification; &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; Probability of failure of verification&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The candidate with majority votes or &#039;&#039;Abort&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, N-qubit GHZ source, quantum channels&lt;br /&gt;
* Phase 1 [getting unique secret indices]&lt;br /&gt;
** Agents perform [[#Protocol 5 : UniqueIndex| UniqueIndex]] until each agent has a secret unique random index  &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;&lt;br /&gt;
* Phase 2 [casting votes]&lt;br /&gt;
** For &amp;lt;math&amp;gt;l = 1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;&lt;br /&gt;
*** The voting agent is the agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;\omega_k = l&amp;lt;/math&amp;gt;&lt;br /&gt;
*** Repeat until [[#Protocol 7 : Voting| Voting]] is announced&lt;br /&gt;
**** The source distributes to each of the N agents one qubit of the GHZ source&lt;br /&gt;
**** All agents &amp;lt;math&amp;gt; j \in [N] &amp;lt;/math&amp;gt; set rejections&amp;lt;math&amp;gt;_j = &amp;lt;/math&amp;gt; trials&amp;lt;math&amp;gt;_j = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
**** The voting agent tosses log&amp;lt;math&amp;gt;_2[\frac{16N\epsilon^2}{(\epsilon^2-4\delta)^2}&amp;lt;/math&amp;gt;ln&amp;lt;math&amp;gt;(\frac{1}{\eta})]&amp;lt;/math&amp;gt; &amp;lt;!--NEEDS FORMATTING CHANGES--&amp;gt;&lt;br /&gt;
**** The agents perform [[#Protocol 2 : LogicalOR| LogicalOR]], where output 1 indicates [[#Protocol 6 : Verification| Verification]] and output 0 indicates [[#Protocol 7 : Voting| Voting]]. Everyone except the voting agent inputs 0; if the coin toss is &#039;all heads&#039; the voting agent also inputs 0, otherwise the voting agent inputs 1&lt;br /&gt;
**** If [[#Protocol 6 : Verification| Verification]] is chosen, the agents perform [[#Protocol 4 : RandomAgent| RandomAgent]] and the voting agent anonymously picks an agent &amp;lt;math&amp;gt;j \in [N]&amp;lt;/math&amp;gt; to be the verifier. Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; updates trials&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt; and if [[#Protocol 6 : Verification| Verification]] outputs reject: rejections&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
*** If for any &amp;lt;math&amp;gt;j \in [N], \delta_j = \frac{rejections_j}{trials_j} &amp;gt; \delta &amp;lt;/math&amp;gt;, the protocol &#039;&#039;Aborts&#039;&#039;&lt;br /&gt;
*** Perform [[#Protocol 7 : Voting| Voting]]. The outcome is one row of the Bulletin Board &#039;&#039;&#039;B&#039;&#039;&#039;. The parity of the row gives one entry in the vote vector &#039;&#039;&#039;E&#039;&#039;&#039;.&lt;br /&gt;
** Given the votes &#039;&#039;&#039;E&#039;&#039;&#039;, the tally &#039;&#039;&#039;T&#039;&#039;&#039; can be computed.&lt;br /&gt;
*Phase 3 [Verification of results]:&lt;br /&gt;
** All agents perform [[#Protocol 2 : LogicalOR| LogicalOR]] with security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;, and input 1 if their vote is not the same as the entry in &#039;&#039;&#039;E&#039;&#039;&#039; for the round in which they voted, and 0 otherwise.&lt;br /&gt;
** If [[#Protocol 2 : LogicalOR| LogicalOR]] outputs 1, &#039;&#039;Abort&#039;&#039; the protocol. Else output the candidate with the most votes according to the tally &#039;&#039;&#039;T&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Protocol 2 : LogicalOR===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; agents, &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, security parameter &amp;lt;math&amp;gt;S = (1 - 2^{-\Gamma})^\Sigma \in (0,1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: &amp;lt;math&amp;gt;y = \vee_i^N x_i &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers&lt;br /&gt;
&lt;br /&gt;
# Decide &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random orderings, such that each voter is the last once. For each ordering repeat \Sigma times the following.&lt;br /&gt;
# Each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; gives an input &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;x_k = 0 &amp;lt;/math&amp;gt;, set &amp;lt;math&amp;gt;p_k = 0&amp;lt;/math&amp;gt;, otherwise toss &amp;lt;math&amp;gt;\Gamma&amp;lt;/math&amp;gt; coins and set &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; if the result is ‘all heads’ and to &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise&lt;br /&gt;
# Then each voter generates uniformly at random an &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;r_k = r_k^1r_k^2...r_k^N&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;\bigoplus_{i=1}^N r_k^i = p_k&amp;lt;/math&amp;gt; &lt;br /&gt;
# Voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; sends &amp;lt;math&amp;gt;r_k^i&amp;lt;/math&amp;gt; to voter &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, keeping &amp;lt;math&amp;gt;r_k^k&amp;lt;/math&amp;gt;&lt;br /&gt;
# Each voter sums the received bits and broadcasts the parity &amp;lt;math&amp;gt;z_i = \bigoplus_{k=1}^N r_k^i &amp;lt;/math&amp;gt; according to the ordering.&lt;br /&gt;
# Compute the parity of the original bits &amp;lt;math&amp;gt;y = \bigoplus_i z_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# From this everyone can also compute the parity of all other inputs except their own &amp;lt;math&amp;gt;w_k = \bigoplus_{i = 1}^N (z_i \otimes r_k^i)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Repeat &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; times from step 4: each time repeat with &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; as new inputs&lt;br /&gt;
# If at least once in the &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; repetitions for the various orderings &amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;, this is the output of the protocol, otherwise it is &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 3 : RandomBit===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in [[#Protocol 2 : LogicalOR| LogicalOR]], &#039;&#039;voting agent&#039;&#039;: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously announces a random bit according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
*Perform [[#Protocol 2 : LogicalOR| LogicalOR]] with security parameter S where the voting agent inputs a random bit according to D and the other agents input 0.&lt;br /&gt;
&lt;br /&gt;
===Protocol 4 : RandomAgent===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in [[#Protocol 3 : RandomBit| RandomBit]], voting agent: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously chooses a random agent according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
* Repeat [[#Protocol 3 : RandomBit| RandomBit]] log2 N times.&lt;br /&gt;
&lt;br /&gt;
===Protocol 5 : UniqueIndex===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; to be used in LogicalOR,&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: Each agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a secret unique index &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
# Beginning of round R = 1&lt;br /&gt;
# Agents perform [[#Protocol 2 : LogicalOR| LogicalOR]] with inputs &amp;lt;math&amp;gt;x_k = 0&amp;lt;/math&amp;gt; if they already have an index and &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; if they do not.&lt;br /&gt;
# If &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;, repeat from step 2&lt;br /&gt;
# If an agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a bit &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\omega_k = 0&amp;lt;/math&amp;gt; they know they are the only one and has been assigned the secret index corresponding to the round &amp;lt;math&amp;gt;\omega_k = R&amp;lt;/math&amp;gt;, otherwise there is a collision.&lt;br /&gt;
# \[notification\]  Everybody performs a [[#Protocol 2 : LogicalOR| LogicalOR]] with input 0, unless they received the index in this round, in which case they input 1.&lt;br /&gt;
# If the output of [[#Protocol 2 : LogicalOR| LogicalOR]] is 0, no index was assigned and we repeat from step 2.&lt;br /&gt;
# If the output of [[#Protocol 2 : LogicalOR| LogicalOR]] is 1, the index was assigned and we repeat from step 2 with R+ = 1.&lt;br /&gt;
# Repeat from step 2 until all indices have been assigned.&lt;br /&gt;
&lt;br /&gt;
===Protocol 6 : Verification===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: A quantum state distributed and shared by &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; parties, security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; for [[#Protocol 4 : RandomAgent| RandomAgent]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: If the state is a GHZ state &amp;lt;math&amp;gt; \rightarrow &amp;lt;/math&amp;gt; YES.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, quantum state source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Everyone executes [[#Protocol 4 : RandomAgent| RandomAgent]] to choose uniformly at random one of the voters to be the verifier.&lt;br /&gt;
# The verifier generates random angles &amp;lt;math&amp;gt;\theta_j \in [0, \pi)&amp;lt;/math&amp;gt; for all agents including themselves, such that the sum is a multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;. The angles are then sent out to all the agents.&lt;br /&gt;
# Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; measures in the basis &amp;lt;math&amp;gt;[|+_\theta\rangle,|-_\theta\rangle] = [\frac{1}{\sqrt{2}}(|0\rangle + e^{i\theta_j}|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle - e^{i\theta_j}|1\rangle)]&amp;lt;/math&amp;gt; and publicly announces the result &amp;lt;math&amp;gt;Y_j = \{0,1\}&amp;lt;/math&amp;gt;&lt;br /&gt;
# The state passes the verification test when the following condition is satisfied: if the sum of the randomly chosen angles is an even multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;, there must be an even number of 1 outcomes for &amp;lt;math&amp;lt;Y_j&amp;lt;/math&amp;gt; , and if the sum is an odd multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;, there must be an odd number of 1 outcomes for &amp;lt;math&amp;gt;Y_j : \bigoplus_j Y_j = \frac{1}{\pi}\sum_i\theta_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Protocol 7 : Voting===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Voting agent preference &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: All agents get one row of the bulletin board.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, GHZ source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Each agent measures the state they received in the Hadamard basis and records the outcome.&lt;br /&gt;
# The outcomes of the measurement of each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt;. Then we know that &amp;lt;math&amp;gt;\sum_kd_k = 0&amp;lt;/math&amp;gt; mod &amp;lt;math&amp;gt; 2&amp;lt;/math&amp;gt;&lt;br /&gt;
# The voting agent performs an XOR between the outcome &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt; and their vote &amp;lt;math&amp;gt;v_k&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;d_k \leftarrow d_k \oplus v_k &amp;lt;/math&amp;gt;. However, this alone will still appear as a random string.&lt;br /&gt;
# Every agent publicly broadcasts &amp;lt;math&amp;gt;d_k&amp;lt;/math&amp;gt; which gives one line &amp;lt;math&amp;gt;b_k&amp;lt;/math&amp;gt; of the bulletin board &#039;&#039;&#039;B&#039;&#039;&#039; &amp;lt;math&amp;gt; = \{b_k\}&amp;lt;/math&amp;gt;&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4412</id>
		<title>Practical Quantum Electronic Voting</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Practical_Quantum_Electronic_Voting&amp;diff=4412"/>
		<updated>2021-12-15T20:51:43Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Created page with &amp;quot;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;   &amp;lt;!-- Intro: brief description of the protocol --&amp;gt; This [https://arxiv.org/abs/2107.14719 example protocol] achi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
This [https://arxiv.org/abs/2107.14719 example protocol] achieves the functionality of [[Quantum Electronic Voting]]. In this protocol, an untrusted multipartite entanglement source can be used to carry out an election without any election authorities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
* In the first phase of the protocol, each agent is assigned a secret unique random index&lt;br /&gt;
* Next, we perform multiple rounds of voting, one for each agent. In each round, the following steps are carried out:&lt;br /&gt;
** The agent with the same index as the round number is designated the voter for that round&lt;br /&gt;
** The source distributes one qubit of a GHZ state to each agent. The voting agent randomly chooses to either &#039;&#039;&#039;verify&#039;&#039;&#039; the GHZ state or &#039;&#039;&#039;vote&#039;&#039;&#039; with a certain probability. This step, including state distribution, is repeated until the voter chooses to vote. Once voting is chosen, the voter anonymously transmits their vote to all agents.&lt;br /&gt;
* Finally, all the votes are tallied. All agents have the votes for each round and can thus verify the final tally.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;: Number of agents&lt;br /&gt;
* &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt;: The votes&lt;br /&gt;
* &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt;: Distance from the perfect GHZ state&lt;br /&gt;
* &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt;: Threshold for verification&lt;br /&gt;
* &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt;: Probability of failure of verification&lt;br /&gt;
* &#039;&#039;&#039;B&#039;&#039;&#039;: Bulletin board - &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; x &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; binary matrix. Each row corresponds to one round of voting, and each column contains the output of a single voter across all rounds&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;: Vote vector - The list of votes across &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; rounds. Each element is computed as the parity of a row from &#039;&#039;&#039;B&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T&#039;&#039;&#039;: Final tally&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{graph}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
===Protocol 1 : Quantum e-voting===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;V = \{v_k\}_{k \in [N]} &amp;lt;/math&amp;gt; - Set of votes; &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; - Security parameter; &amp;lt;math&amp;gt;\epsilon&amp;lt;/math&amp;gt; - Distance from the perfect GHZ state; &amp;lt;math&amp;gt;\delta&amp;lt;/math&amp;gt; - Threshold for verification; &amp;lt;math&amp;gt;\eta&amp;lt;/math&amp;gt; Probability of failure of verification&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The candidate with majority votes or &#039;&#039;Abort&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, N-qubit GHZ source, quantum channels&lt;br /&gt;
* Phase 1 [getting unique secret indices]&lt;br /&gt;
** Agents perform [[#Protocol 5 : UniqueIndex| UniqueIndex]] until each agent has a secret unique random index  &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;&lt;br /&gt;
* Phase 2 [casting votes]&lt;br /&gt;
** For &amp;lt;math&amp;gt;l = 1&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;&lt;br /&gt;
*** The voting agent is the agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;\omega_k = l&amp;lt;/math&amp;gt;&lt;br /&gt;
*** Repeat until [[#Protocol 7 : Voting| Voting]] is announced&lt;br /&gt;
**** The source distributes to each of the N agents one qubit of the GHZ source&lt;br /&gt;
**** All agents &amp;lt;math&amp;gt; j \in [N] &amp;lt;/math&amp;gt; set rejections&amp;lt;math&amp;gt;_j = &amp;lt;/math&amp;gt; trials&amp;lt;math&amp;gt;_j = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
**** The voting agent tosses log&amp;lt;math&amp;gt;_2[\frac{16N\epsilon^2}{(\epsilon^2-4\delta)^2}&amp;lt;/math&amp;gt;ln&amp;lt;math&amp;gt;(\frac{1}{\eta})]&amp;lt;/math&amp;gt; &amp;lt;!--NEEDS FORMATTING CHANGES--&amp;gt;&lt;br /&gt;
**** The agents perform [[#Protocol 2 : LogicalOR| LogicalOR]], where output 1 indicates [[#Protocol 6 : Verification| Verification]] and output 0 indicates [[#Protocol 7 : Voting| Voting]]. Everyone except the voting agent inputs 0; if the coin toss is &#039;all heads&#039; the voting agent also inputs 0, otherwise the voting agent inputs 1&lt;br /&gt;
**** If [[#Protocol 6 : Verification| Verification]] is chosen, the agents perform [[#Protocol 4 : RandomAgent| RandomAgent]] and the voting agent anonymously picks an agent &amp;lt;math&amp;gt;j \in [N]&amp;lt;/math&amp;gt; to be the verifier. Agent &amp;lt;math&amp;gt;j&amp;lt;/math&amp;gt; updates trials&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt; and if [[#Protocol 6 : Verification| Verification]] outputs reject: rejections&amp;lt;math&amp;gt;_j+ = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
*** If for any &amp;lt;math&amp;gt;j \in [N], \delta_j = \frac{rejections_j}{trials_j} &amp;gt; \delta &amp;lt;/math&amp;gt;, the protocol &#039;&#039;Aborts&#039;&#039;&lt;br /&gt;
*** Perform [[#Protocol 7 : Voting| Voting]]. The outcome is one row of the Bulletin Board &#039;&#039;&#039;B&#039;&#039;&#039;. The parity of the row gives one entry in the vote vector &#039;&#039;&#039;E&#039;&#039;&#039;.&lt;br /&gt;
** Given the votes &#039;&#039;&#039;E&#039;&#039;&#039;, the tally &#039;&#039;&#039;T&#039;&#039;&#039; can be computed.&lt;br /&gt;
*Phase 3 [Verification of results]:&lt;br /&gt;
** All agents perform [[#Protocol 2 : LogicalOR| LogicalOR]] with security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt;, and input 1 if their vote is not the same as the entry in &#039;&#039;&#039;E&#039;&#039;&#039; for the round in which they voted, and 0 otherwise.&lt;br /&gt;
** If [[#Protocol 2 : LogicalOR| LogicalOR]] outputs 1, &#039;&#039;Abort&#039;&#039; the protocol. Else output the candidate with the most votes according to the tally &#039;&#039;&#039;T&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Protocol 2 : LogicalOR===&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; agents, &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;, security parameter &amp;lt;math&amp;gt;S = (1 - 2^{-\Gamma})^\Sigma \in (0,1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: &amp;lt;math&amp;gt;y = \vee_i^N x_i &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers&lt;br /&gt;
&lt;br /&gt;
# Decide &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random orderings, such that each voter is the last once. For each ordering repeat \Sigma times the following.&lt;br /&gt;
# Each voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; gives an input &amp;lt;math&amp;gt;x_k&amp;lt;/math&amp;gt;&lt;br /&gt;
# If &amp;lt;math&amp;gt;x_k = 0 &amp;lt;/math&amp;gt;, set &amp;lt;math&amp;gt;p_k = 0&amp;lt;/math&amp;gt;, otherwise toss &amp;lt;math&amp;gt;\Gamma&amp;lt;/math&amp;gt; coins and set &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; if the result is ‘all heads’ and to &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise&lt;br /&gt;
# Then each voter generates uniformly at random an &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;r_k = r_k^1r_k^2...r_k^N&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;\bigoplus_{i=1}^N r_k^i = p_k&amp;lt;/math&amp;gt; &lt;br /&gt;
# Voter &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; sends &amp;lt;math&amp;gt;r_k^i&amp;lt;/math&amp;gt; to voter &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt;, keeping &amp;lt;math&amp;gt;r_k^k&amp;lt;/math&amp;gt;&lt;br /&gt;
# Each voter sums the received bits and broadcasts the parity &amp;lt;math&amp;gt;z_i = \bigoplus_{k=1}^N r_k^i &amp;lt;/math&amp;gt; according to the ordering.&lt;br /&gt;
# Compute the parity of the original bits &amp;lt;math&amp;gt;y = \bigoplus_i z_i&amp;lt;/math&amp;gt;&lt;br /&gt;
# From this everyone can also compute the parity of all other inputs except their own &amp;lt;math&amp;gt;w_k = \bigoplus_{i = 1}^N (z_i \otimes r_k^i)&amp;lt;/math&amp;gt;&lt;br /&gt;
# Repeat &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; times from step 4: each time repeat with &amp;lt;math&amp;gt;p_k&amp;lt;/math&amp;gt; as new inputs&lt;br /&gt;
# If at least once in the &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; repetitions for the various orderings &amp;lt;math&amp;gt;y = 1&amp;lt;/math&amp;gt;, this is the output of the protocol, otherwise it is &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Protocol 3 : RandomBit===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in [[#Protocol 2 : LogicalOR| LogicalOR]], &#039;&#039;voting agent&#039;&#039;: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously announces a random bit according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
*Perform [[#Protocol 2 : LogicalOR| LogicalOR]] with security parameter S where the voting agent inputs a random bit according to D and the other agents input 0.&lt;br /&gt;
&lt;br /&gt;
===Protocol 4 : RandomAgent===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter S to be used in [[#Protocol 3 : RandomBit| RandomBit]], voting agent: probability distribution D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: The voting agent anonymously chooses a random agent according to D.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
* Repeat [[#Protocol 3 : RandomBit| RandomBit]] log2 N times.&lt;br /&gt;
&lt;br /&gt;
===Protocol 5 : UniqueIndex===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: Security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; to be used in LogicalOR,&amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; random boolean variables &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: Each agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a secret unique index &amp;lt;math&amp;gt;\omega_k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication and random numbers.&lt;br /&gt;
&lt;br /&gt;
# Beginning of round R = 1&lt;br /&gt;
# Agents perform [[#Protocol 2 : LogicalOR| LogicalOR]] with inputs &amp;lt;math&amp;gt;x_k = 0&amp;lt;/math&amp;gt; if they already have an index and &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; if they do not.&lt;br /&gt;
# If &amp;lt;math&amp;gt;y = 0&amp;lt;/math&amp;gt;, repeat from step 2&lt;br /&gt;
# If an agent &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; has a bit &amp;lt;math&amp;gt;x_k = 1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\omega_k = 0&amp;lt;/math&amp;gt; they know they are the only one and has been assigned the secret index corresponding to the round &amp;lt;math&amp;gt;\omega_k = R&amp;lt;/math&amp;gt;, otherwise there is a collision.&lt;br /&gt;
# \[notification\]  Everybody performs a [[#Protocol 2 : LogicalOR| LogicalOR]] with input 0, unless they received the index in this round, in which case they input 1.&lt;br /&gt;
# If the output of [[#Protocol 2 : LogicalOR| LogicalOR]] is 0, no index was assigned and we repeat from step 2.&lt;br /&gt;
# If the output of [[#Protocol 2 : LogicalOR| LogicalOR]] is 1, the index was assigned and we repeat from step 2 with R+ = 1.&lt;br /&gt;
# Repeat from step 2 until all indices have been assigned.&lt;br /&gt;
&lt;br /&gt;
===Protocol 6 : Verification===&lt;br /&gt;
&#039;&#039;Input&#039;&#039;: A quantum state distributed and shared by &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; parties, security parameter &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; for [[#Protocol 4 : RandomAgent| RandomAgent]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Output&#039;&#039;: If the state is a GHZ state &amp;lt;math&amp;gt; \rightarrow &amp;lt;/math&amp;gt; YES.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Resources&#039;&#039;: Classical communication, random numbers, quantum state source, quantum channels.&lt;br /&gt;
&lt;br /&gt;
# Everyone executes [[#Protocol 4 : RandomAgent| RandomAgent]] to choose uniformly at random one of the voters to be the verifier.&lt;br /&gt;
# The verifier generates random angles &amp;lt;math&amp;gt;\theta_j \in [0, \pi)&amp;lt;/math&amp;gt; for all agents including themselves, such that the sum is a multiple of &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;. The angles are then sent out to all the agents.&lt;br /&gt;
===Protocol 7 : Voting===&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Quantum_Protocol_Zoo:About&amp;diff=4411</id>
		<title>Quantum Protocol Zoo:About</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Quantum_Protocol_Zoo:About&amp;diff=4411"/>
		<updated>2021-12-12T10:11:21Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*&#039;&#039;&#039;THE ZOO FOUNDERS&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
** Elham Kashefi&lt;br /&gt;
** Shraddha Singh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;THE ZOO REVIEWERS&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
** Céline Chevalier &lt;br /&gt;
** Marc Kaplan &lt;br /&gt;
** Elham Kashefi &lt;br /&gt;
** Niraj Kumar &lt;br /&gt;
** Atul Mantri &lt;br /&gt;
** Harold Ollivier&lt;br /&gt;
** Shraddha Singh &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;THE ZOO CONTRIBUTORS&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
** Mashid Delavar&lt;br /&gt;
** Bas Dirke&lt;br /&gt;
** Mina Doosti&lt;br /&gt;
** Victoria Lipinska&lt;br /&gt;
** Natansh Mathur&lt;br /&gt;
** Gláucia Murta&lt;br /&gt;
** Rhea Parekh&lt;br /&gt;
** Jérémy Ribeiro&lt;br /&gt;
** Shraddha Singh&lt;br /&gt;
** Gozde Ustun &lt;br /&gt;
** Chirag Wadhwa&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;THE ZOO SPONSORS&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{galery}}&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Copy_Protection_of_Compute_and_Compare_Programs&amp;diff=4410</id>
		<title>Copy Protection of Compute and Compare Programs</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Copy_Protection_of_Compute_and_Compare_Programs&amp;diff=4410"/>
		<updated>2021-12-12T10:10:10Z</updated>

		<summary type="html">&lt;p&gt;Chirag: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
The [https://arxiv.org/abs/2009.13865 example protocol] achieves the functionality of [[Copy Protection| Copy Protection]] allowing a Vendor to send a program to a Client such that the Client cannot duplicate it. This protocol, in particular, achieves copy-protection for &#039;compute-and-compare&#039; programs.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Two Party Protocols|Two Party Protocols]], [[:Category:Quantum Functionality|Quantum Functionality]], [[:Category:Universal Task|Universal Task]], Computational Security&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* Vendor and Client are connected by quantum and classical channels&lt;br /&gt;
* Vendor can create and transmit BB84 states&lt;br /&gt;
* Client has the capability to perform universal quantum computation&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
Any Copy Protection protocol consists of two algorithms: &#039;&#039;&#039;Protect&#039;&#039;&#039; and &#039;&#039;&#039;Eval&#039;&#039;&#039;. For the family of compute-and-compare programs, these algorithms are described as follows:&lt;br /&gt;
*&#039;&#039;&#039;Protect&#039;&#039;&#039;: The Vendor encodes the required qubits into BB84 states using the program description. The Vendor then calculates the output of some hash function on the program description as input. The encoded qubits and the hashed description are sent to the Client as output.&lt;br /&gt;
*&#039;&#039;&#039;Eval&#039;&#039;&#039;: The Client decrypts the received qubits using the input on which they wish to evaluate the program. Using these qubits as inputs, the Client computes the same hash function (on ancillary qubits) and coherently compares it with the hashed description received from the vendor. The Client finally measures and outputs the result of the comparison.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt; : The point function to be copy-protected in [[#Protocol 1 - Copy protection of point functions|Protocol 1]]. &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt; is completely specified by a string of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; bits, &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;P_y(x) = 1&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x = y&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise&lt;br /&gt;
* &amp;lt;math&amp;gt;CC[f,y]&amp;lt;/math&amp;gt; : The compute-and-compare program to be copy-protected in [[#Protocol 2 - Copy protection of compute-and-compare programs|Protocol 2]]. It is completely specified by an efficiently computable function &amp;lt;math&amp;gt;f: \{0,1\}^n \rightarrow \{0,1\}^m&amp;lt;/math&amp;gt; and a string of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; bits, &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;CC[f,y](x)&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;f(x) = y&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise.&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; : Size of input string &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;G : \{0,1\}^n \rightarrow \{0,1\}^{m(\lambda)} &amp;lt;/math&amp;gt; (Hash function)&lt;br /&gt;
* &amp;lt;math&amp;gt;H : \{0,1\}^{m(\lambda)} \rightarrow \{0,1\}^\lambda &amp;lt;/math&amp;gt; (Hash function)&lt;br /&gt;
* &amp;lt;math&amp;gt;|x^\theta\rangle = H^\theta |x\rangle = H^{\theta_1} \otimes ... \otimes H^{\theta_\lambda} |x\rangle&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt; is a &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;\theta_1,...,\theta_\lambda&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!--{{graph}}--&amp;gt;&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
First, we define a protocol for copy-protection of point functions. This protocol can then be extended to a protocol for compute-and-compare programs.&lt;br /&gt;
===Protocol 1 - Copy protection of point functions===&lt;br /&gt;
====PF-Protect(&amp;lt;math&amp;gt;\lambda,y&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; - description of point function &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt;&lt;br /&gt;
* Set &amp;lt;math&amp;gt;\theta = G(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Sample &amp;lt;math&amp;gt;v \leftarrow \{0,1\}^{m(\lambda)}&amp;lt;/math&amp;gt; uniformly at random&lt;br /&gt;
* Let &amp;lt;math&amp;gt;z = H(v)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Output (&amp;lt;math&amp;gt;|v^\theta\rangle,z&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====PF-Eval(&amp;lt;math&amp;gt;\lambda,(\rho,z),x&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(\rho,z)&amp;lt;/math&amp;gt; - Alleged copy-protected program; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; - Input on which the program is to be evaluated&lt;br /&gt;
* Set &amp;lt;math&amp;gt;\theta^\prime = G(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Apply the Hadamard operator &amp;lt;math&amp;gt;H^{\theta^\prime}&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;&lt;br /&gt;
* Append &amp;lt;math&amp;gt;n+1&amp;lt;/math&amp;gt; ancillary qubits to &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;, all in state &amp;lt;math&amp;gt;|0\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
* Compute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; onto the first &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ancillary qubits with &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; as input&lt;br /&gt;
* Coherently measure whether the first &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ancilla qubits are in state &amp;lt;math&amp;gt;|z\rangle&amp;lt;/math&amp;gt;, recording the result in the last ancilla qubit&lt;br /&gt;
* Uncompute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; and undo the Hadamards &amp;lt;math&amp;gt;H^{\theta^\prime}&amp;lt;/math&amp;gt;&lt;br /&gt;
* Measure the last ancilla qubit to obtain a bit &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; as output&lt;br /&gt;
&lt;br /&gt;
===Protocol 2 - Copy protection of compute-and-compare programs===&lt;br /&gt;
====CC-Protect(&amp;lt;math&amp;gt;\lambda,(f,y)&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(f,y)&amp;lt;/math&amp;gt; - description of compute-and-compare program &amp;lt;math&amp;gt;CC[f,y]&amp;lt;/math&amp;gt;&lt;br /&gt;
* Let &amp;lt;math&amp;gt;\rho = &amp;lt;/math&amp;gt; &#039;&#039;&#039;PF-Protect&#039;&#039;&#039;(&amp;lt;math&amp;gt;\lambda,y&amp;lt;/math&amp;gt;)&lt;br /&gt;
* Output (&amp;lt;math&amp;gt;f,\rho&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====CC-Eval(&amp;lt;math&amp;gt;\lambda,(f,\rho),x&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(f,\rho)&amp;lt;/math&amp;gt; - Alleged copy protected program; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; - Input on which the program is to be evaluated&lt;br /&gt;
* Compute &amp;lt;math&amp;gt;y^\prime = f(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Let &amp;lt;math&amp;gt;b \leftarrow &amp;lt;/math&amp;gt; &#039;&#039;&#039;PF-Eval&#039;&#039;&#039;(&amp;lt;math&amp;gt;\lambda,\rho,y^\prime&amp;lt;/math&amp;gt;). Output &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
*[[#Protocol 2 - Copy protection of compute-and-compare programs|Protocol 2]] has provable non-trivial security in the quantum random oracle model. Informally, a query bounded adversary fails at pirating with at least some constant probability.&lt;br /&gt;
*The Client should be able to perform universal quantum computation in order to compute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt;&lt;br /&gt;
*The protected programs obtained in both protocols allow polynomially-many evaluations (as we evaluate the copy-protected programs reversibly). &lt;br /&gt;
*[[#Protocol 1 - Copy protection of point functions|Protocol 1]] also satisfies the primitive of Virtual Black Box Obfuscation&lt;br /&gt;
*By adding a verification step, [[#Protocol 2 - Copy protection of compute-and-compare programs|Protocol 2]] can be extended to the weaker primitive of Secure Software Leasing. This protocol for Secure Software Leasing does however provide a standard level of security, i.e. the adversarial success probability is negligible in the security parameter.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
For the security proof and extension of the protocols to other functionalities, refer to the same paper by [http://arxiv.org/abs/2009.13865 Coladangelo et al. (2020)]&lt;br /&gt;
&amp;lt;div style=&#039;text-align: right;&#039;&amp;gt;&#039;&#039;*contributed by Chirag Wadhwa&#039;&#039;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4403</id>
		<title>Protocol Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Protocol_Library&amp;diff=4403"/>
		<updated>2021-12-09T16:57:22Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Added link to Copy Protection for Compute and Compare Programs&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;
|[[Copy Protection]]||[[Copy Protection of Compute and Compare Programs]]&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;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|[[Entanglement Routing]]||[[Distributing Graph States Over Arbitrary Quantum Networks]]&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
	<entry>
		<id>https://wiki.veriqloud.fr/index.php?title=Copy_Protection_of_Compute_and_Compare_Programs&amp;diff=4402</id>
		<title>Copy Protection of Compute and Compare Programs</title>
		<link rel="alternate" type="text/html" href="https://wiki.veriqloud.fr/index.php?title=Copy_Protection_of_Compute_and_Compare_Programs&amp;diff=4402"/>
		<updated>2021-12-09T16:07:11Z</updated>

		<summary type="html">&lt;p&gt;Chirag: Created page for copy protection of compare and compute programs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This is a comment. You can erase them or write below --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Intro: brief description of the protocol --&amp;gt;&lt;br /&gt;
The [https://arxiv.org/abs/2009.13865 example protocol] achieves the functionality of [[Copy Protection| Copy Protection]] allowing a Vendor to send a program to a Client such that the Client cannot duplicate it. This protocol, in particular, achieves copy-protection for &#039;compute-and-compare&#039; programs.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;!--Tags: related pages or category --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tags:&#039;&#039;&#039; [[:Category:Two Party Protocols|Two Party Protocols]], [[:Category:Quantum Functionality|Quantum Functionality]], [[:Category:Universal Task|Universal Task]], Computational Security&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&amp;lt;!-- It describes the setting in which the protocol will be successful. --&amp;gt;&lt;br /&gt;
* Vendor and Client are connected by quantum and classical channels&lt;br /&gt;
* Vendor can create and transmit BB84 states&lt;br /&gt;
* Client has the capability to perform universal quantum computation&lt;br /&gt;
&lt;br /&gt;
==Outline==&lt;br /&gt;
&amp;lt;!-- A non-mathematical detailed outline which provides a rough idea of the concerned protocol --&amp;gt;&lt;br /&gt;
Any Copy Protection protocol consists of two algorithms: &#039;&#039;&#039;Protect&#039;&#039;&#039; and &#039;&#039;&#039;Eval&#039;&#039;&#039;. For the family of compute-and-compare programs, these algorithms are described as follows:&lt;br /&gt;
*&#039;&#039;&#039;Protect&#039;&#039;&#039;: The Vendor encodes &amp;amp;lambda; qubits into BB84 states using the program description. The Vendor then calculates the output of some hash function on the program description as input. The encoded qubits and the hashed description are sent to the Client as output.&lt;br /&gt;
*&#039;&#039;&#039;Eval&#039;&#039;&#039;: The Client decrypts the received qubits using the input on which they wish to evaluate the program. Using these qubits as inputs, the Client computes the same hash function (on ancillary qubits) and coherently compares it with the hashed description received from the vendor. The Client finally measures and outputs the result of the comparison.&lt;br /&gt;
&lt;br /&gt;
==Notation==&lt;br /&gt;
&amp;lt;!--  Connects the non-mathematical outline with further sections. --&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt; : The point function to be copy-protected in [[#Protocol 1 - Copy protection of point functions|Protocol 1]]. &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt; is completely specified by a string of &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; bits, &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;P_y(x) = 1&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;x = y&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise&lt;br /&gt;
* &amp;lt;math&amp;gt;CC[f,y]&amp;lt;/math&amp;gt; : The compute-and-compare program to be copy-protected in [[#Protocol 2 - Copy protection of compute-and-compare programs|Protocol 2]]. It is completely specified by an efficiently computable function &amp;lt;math&amp;gt;f: \{0,1\}^n \rightarrow \{0,1\}^m&amp;lt;/math&amp;gt; and a string of &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; bits, &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;CC[f,y](x)&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; if &amp;lt;math&amp;gt;f(x) = y&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; otherwise.&lt;br /&gt;
* &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; : Size of input string &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;: Security parameter&lt;br /&gt;
* &amp;lt;math&amp;gt;G : \{0,1\}^n \rightarrow \{0,1\}^{m(\lambda)} &amp;lt;/math&amp;gt; (Hash function)&lt;br /&gt;
* &amp;lt;math&amp;gt;H : \{0,1\}^{m(\lambda)} \rightarrow \{0,1\}^\lambda &amp;lt;/math&amp;gt; (Hash function)&lt;br /&gt;
* &amp;lt;math&amp;gt;|x^\theta\rangle = H^\theta |x\rangle = H^{\theta_1} \otimes ... \otimes H^{\theta_\lambda} |x\rangle&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt; is a &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt;-bit string &amp;lt;math&amp;gt;\theta_1,...,\theta_\lambda&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Knowledge Graph== --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add this part if the protocol is already in the graph --&amp;gt;&lt;br /&gt;
&amp;lt;!--{{graph}}--&amp;gt;&lt;br /&gt;
==Protocol Description==&lt;br /&gt;
&amp;lt;!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --&amp;gt;&lt;br /&gt;
First, we define a protocol for copy-protection of point functions. This protocol can then be extended to a protocol for compute-and-compare programs.&lt;br /&gt;
===Protocol 1 - Copy protection of point functions===&lt;br /&gt;
====PF-Protect(&amp;lt;math&amp;gt;\lambda,y&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; - description of point function &amp;lt;math&amp;gt;P_y&amp;lt;/math&amp;gt;&lt;br /&gt;
* Set &amp;lt;math&amp;gt;\theta = G(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Sample &amp;lt;math&amp;gt;v \leftarrow \{0,1\}^{m(\lambda)}&amp;lt;/math&amp;gt; uniformly at random&lt;br /&gt;
* Let &amp;lt;math&amp;gt;z = H(v)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Output (&amp;lt;math&amp;gt;|v^\theta\rangle,z&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====PF-Eval(&amp;lt;math&amp;gt;\lambda,(\rho,z),x&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(\rho,z)&amp;lt;/math&amp;gt; - Alleged copy-protected program; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; - Input on which the program is to be evaluated&lt;br /&gt;
* Set &amp;lt;math&amp;gt;\theta^\prime = G(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Apply the Hadamard operator &amp;lt;math&amp;gt;H^{\theta^\prime}&amp;lt;/math&amp;gt; to &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;&lt;br /&gt;
* Append &amp;lt;math&amp;gt;n+1&amp;lt;/math&amp;gt; ancillary qubits to &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;, all in state &amp;lt;math&amp;gt;|0\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
* Compute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; onto the first &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ancillary qubits with &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt; as input&lt;br /&gt;
* Coherently measure whether the first &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; ancilla qubits are in state &amp;lt;math&amp;gt;|z\rangle&amp;lt;/math&amp;gt;, recording the result in the last ancilla qubit&lt;br /&gt;
* Uncompute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt; and undo the Hadamards &amp;lt;math&amp;gt;H^{\theta^\prime}&amp;lt;/math&amp;gt;&lt;br /&gt;
* Measure the last ancilla qubit to obtain a bit &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; as output&lt;br /&gt;
&lt;br /&gt;
===Protocol 2 - Copy protection of compute-and-compare programs===&lt;br /&gt;
====CC-Protect(&amp;lt;math&amp;gt;\lambda,(f,y)&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(f,y)&amp;lt;/math&amp;gt; - description of compute-and-compare program &amp;lt;math&amp;gt;CC[f,y]&amp;lt;/math&amp;gt;&lt;br /&gt;
* Let &amp;lt;math&amp;gt;\rho = &amp;lt;/math&amp;gt; &#039;&#039;&#039;PF-Protect&#039;&#039;&#039;(&amp;lt;math&amp;gt;\lambda,y&amp;lt;/math&amp;gt;)&lt;br /&gt;
* Output (&amp;lt;math&amp;gt;f,\rho&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
====CC-Eval(&amp;lt;math&amp;gt;\lambda,(f,\rho),x&amp;lt;/math&amp;gt;)====&lt;br /&gt;
&#039;&#039;Inputs&#039;&#039;: &amp;lt;math&amp;gt;\lambda&amp;lt;/math&amp;gt; - security parameter; &amp;lt;math&amp;gt;(f,\rho)&amp;lt;/math&amp;gt; - Alleged copy protected program; &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; - Input on which the program is to be evaluated&lt;br /&gt;
* Compute &amp;lt;math&amp;gt;y^\prime = f(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
* Let &amp;lt;math&amp;gt;b \leftarrow &amp;lt;/math&amp;gt; &#039;&#039;&#039;PF-Eval&#039;&#039;&#039;(&amp;lt;math&amp;gt;\lambda,\rho,y^\prime&amp;lt;/math&amp;gt;). Output &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;!-- important information on the protocol: parameters (threshold values), security claim, success probability... --&amp;gt;&lt;br /&gt;
*[[#Protocol 2 - Copy protection of compute-and-compare programs|Protocol 2]] has provable non-trivial security in the quantum random oracle model. Informally, a query bounded adversary fails at pirating with at least some constant probability.&lt;br /&gt;
*The Client should be able to perform universal quantum computation in order to compute the hash function &amp;lt;math&amp;gt;H&amp;lt;/math&amp;gt;&lt;br /&gt;
*The protected programs obtained in both protocols allow polynomially-many evaluations (as we evaluate the copy-protected programs reversibly). &lt;br /&gt;
*[[#Protocol 1 - Copy protection of point functions|Protocol 1]] also satisfies the primitive of Virtual Black Box Obfuscation&lt;br /&gt;
*By adding a verification step, [[#Protocol 2 - Copy protection of compute-and-compare programs|Protocol 2]] can be extended to the weaker primitive of Secure Software Leasing. This protocol for Secure Software Leasing does however provide a standard level of security, i.e. the adversarial success probability is negligible in the security parameter.&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&amp;lt;!-- theoretical and experimental papers including requirements, security proof (important), which protocol does it implement, benchmark values... --&amp;gt;&lt;br /&gt;
For the security proof and extension of the protocols to other functionalities, refer to the same paper by [http://arxiv.org/abs/2009.13865 Coladangelo et al. (2020)]&lt;/div&gt;</summary>
		<author><name>Chirag</name></author>
	</entry>
</feed>