Editing
Device-Independent Oblivious Transfer
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Protocol Description== <!-- Mathematical step-wise protocol algorithm helpful to write a subroutine. --> ===Protocol 1: Rand 1-2 OT<math>^l</math>=== '''Requirements:''' Entanglement distribution, classical communication '''Input:''' Receiver - a bit <math>c</math> '''Output:''' Sender outputs randomly generated <math>s_0,s_1 \in \{0,1\}^l</math>, Receiver outputs <math>s_c</math> # A device prepares <math>n</math> uniformly random Bell pairs <math>|\phi^{(v_i^{\alpha},v_i^{\beta})}\rangle, i = 1,...,n</math>, where the first qubit of each pair goes to <math>S</math> along with the string <math>v^{\alpha}</math>, and the second qubit of each pair goes to <math>R</math> along with the string <math>v^{\beta}</math>. # R measures all qubits in the basis <math>y = [</math>'''Computational,Hadamard'''<math>]_c</math> where <math>c</math> is <math>R</math>'s choice bit. Let <math>b \in \{0,1\}^n</math> be the outcome. <math>R</math> then computes <math>b \oplus w^{\beta}</math>, where the <math>i</math>-th entry of <math>w^{\beta}</math> is defined by #: <math>w_i^{\beta} := \begin{cases} 0, \mbox{if } y = \mbox{ Hadamard}\\ v_i^{\beta}, \mbox{if } y = \mbox{ Computational}\end{cases}</math> # <math>S</math> picks uniformly random <math>x \in \{</math> '''Computational, Hadamard'''<math>\}^n</math>, and measures the <math>i</math>-th qubit in basis <math>x_i</math>. Let <math>a \in \{0,1\}^n</math> be the outcome. <math>S</math> then computes <math>a \oplus w^{\alpha}</math>, where the <math>i</math>-th entry of <math>w^{\alpha}</math> is defined by #: <math>w_i^{\alpha} := \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{ Hadamard}\\ 0, \mbox{if } x_i = \mbox{ Computational}\end{cases}</math> # <math>S</math> picks two uniformly random hash functions <math>f_0,f_1 \in F</math>, announces <math>x</math> and <math>f_0,f_1</math> to <math>R</math> and outputs <math>s_0 := f_0(a \oplus w^{\alpha} |_{I_0})</math> and <math>s_1 := f_1(a \oplus w^{\alpha} |_{I_1})</math> where <math>I_r := \{i \in I: x_i = [</math>'''Computational,Hadamard'''<math>]_r\}</math> # <math>R</math> outputs <math>s_c = f_c(b \oplus w^{\beta} |_{I_c})</math> ===Protocol 2: Self-testing with a single verifier=== '''Requirements:''' ENTCF function family, classical communication # Alice chooses the state bases <math>\theta^A,\theta^B \in </math> {'''Computational,Hadamard'''} uniformly at random and generates key-trapdoor pairs <math>(k^A,t^A),(k^B,t^B)</math>, where the generation procedure for <math>k^A</math> and <math>t^A</math> depends on <math>\theta^A</math> and a security parameter <math>\eta</math>, and likewise for <math>k^B</math> and <math>t^B</math>. Alice supplies Bob with <math>k^B</math>. Alice and Bob then respectively send <math>k^A, k^B</math> to the device. # Alice and Bob receive strings <math>c^A</math> and <math>c^B</math>, respectively, from the device. # Alice chooses a ''challenge type'' <math>CT \in \{a,b\}</math>, uniformly at random and sends it to Bob. Alice and Bob then send <math>CT</math> to each component of their device. # If <math>CT = a</math>: ## Alice and Bob receive strings <math>z^A</math> and <math>z^B</math>, respectively, from the device. # If <math>CT = b</math>: ## Alice and Bob receive strings <math>d^A</math> and <math>d^B</math>, respectively, from the device. ## Alice chooses uniformly random ''measurement bases (questions)'' <math>x,y \in</math> {'''Computational,Hadamard'''} and sends <math>y</math> to Bob. Alice and Bob then, respectively, send <math>x</math> and <math>y</math> to the device. ## Alice and Bob receive answer bits <math>a</math> and <math>b</math>, respectively, from the device. Alice and Bob also receive bits <math>h^A</math> and <math>h^B</math>, respectively, from the device. ===Protocol 3: DI Rand 1-2 OT<math>^l</math>=== '''Requirements:''' Entanglement distribution, ENTCF function family, classical communication '''Input:''' Receiver - a bit <math>c</math> '''Output:''' Sender outputs randomly generated <math>s_0,s_1 \in \{0,1\}^l</math>, Receiver outputs <math>s_c</math> ::'''Data generation:''' # The sender and receiver execute <math>n</math> rounds of '''Protocol 2''' (Self-testing) with the sender as Alice and receiver as Bob, and with the following modification: #: If <math>CT_i = b</math>, then with probability <math>p</math>, the receiver does not use the measurement basis question supplied by the sender and instead inputs <math>y_i=[</math>'''Computational, Hadamard'''<math>]_c</math> where <math>c</math> is the receiver's choice bit. Let <math>I</math> be the set of indices marking the rounds where this has been done. #: For each round <math> i \in \{1,...,n\} </math>, the receiver stores: #:* <math>c_i^B</math> #:* <math>z_i^B</math> if <math>CT_i = a</math> #:* or <math>(d_i^B,y_i,b_i,h_i^B)</math> if <math>CT_i = b</math> #: The sender stores <math>\theta_i^A,\theta_i^B,(k_i^A,t_i^A),(k_i^B,t_i^B),c_i^A,CT_i;</math> and <math>z_i^A</math> if <math>CT_i = a</math> or <math>(d_i^A,x_i,a_i,h_i^A)</math> and <math>y_i</math> if <math>CT_i = b</math> # For every <math>i \in \{1,...,n\},</math> the sender stores the variable <math>RT_i</math> (round type), defined as follows: #* if <math>CT_i = b</math> and <math>\theta_i^A = \theta_i^B = </math>'''Hadamard''', then <math>RT_i =</math> '''Bell''' #* else, set <math>RT_i = </math> '''Product''' # For every <math>i \in \{1,...,n\},</math> the sender chooses <math>T_i</math>, indicating a test round or generation round, as follows: #* if <math>RT_i = </math> '''Bell''', choose <math>T_i \in</math> {'''Test, Generate'''} uniformly at random #* else, set <math>T_i = </math> '''Test''' #: The sender sends (<math>T_1,...,T_n</math>) to the receiver #: #: '''Testing:''' # The receiver sends the set of indices <math>I</math> to the sender. The receiver publishes their output for all <math>T_i = </math> '''Test''' rounds where <math>i \notin I</math>. Using this published data, the sender determines the bits which an honest device would have returned. # The sender computes the fraction of test rounds (for which the receiver has published data for) that failed. If this exceeds some <math>\epsilon</math>, the protocol aborts #: #: '''Preparing data:''' # Let <math>\tilde{I} := \{i : i \in I</math> and <math>T_i = </math> '''Generate'''} and <math>n^{\prime} = |\tilde{I}|</math>. The sender checks if there exists a <math> k > 0 </math> such that <math>\gamma n^{\prime} \leq n^{\prime}/4 - 2l -kn^{\prime}</math>. If such a <math>k</math> exists, the sender publishes <math>\tilde{I}</math> and, for each <math>i \in \tilde{I}</math>, the trapdoor <math>t_i^B</math> corresponding to the key <math>k_i^B</math> (given by the sender in the execution of '''Protocol 2,Step 1'''); otherwise the protocol aborts. <!-- INCLUDE V_i^ALPHA CALCULATION --> # For each <math>i \in \tilde{I},</math> the sender calculates <math>v_i^{\alpha} = d^A_i.(x_{i,0}^A \oplus x_{i,1}^A)</math> and defines <math>w^{\alpha}</math> by #:<math>w_i^{\alpha} = \begin{cases} v_i^{\alpha}, \mbox{if } x_i = \mbox{Hadamard}\\ 0, \mbox{if } x_i = \mbox{Computational}\end{cases}</math> #: and the receiver calculates <math>v_i^{\beta} = = d^B_i.(x_{i,0}^B \oplus x_{i,1}^B)</math> and defines <math>w^{\beta}</math> by #:<math>w_i^{\beta} = \begin{cases} 0, \mbox{if } y_i = \mbox{Hadamard}\\ v_i^{\beta}, \mbox{if } y_i = \mbox{Computational}\end{cases}</math> #: '''Obtaining output:''' # The sender randomly picks two hash functions <math>f_0,f_1 \in F</math>, announces <math>f_0,f_1</math> and <math>x_i</math> for each <math>i \in \tilde{I}</math>, and outputs <math>s_0 = f_0(a \oplus w^{\alpha}|_{\tilde{I}_0})</math> and <math>s_1 = f_1(a \oplus w^{\alpha}|_{\tilde{I}_1})</math>, where <math>\tilde{I}_r := \{i \in \tilde{I}: x_i = [</math>'''Computational,Hadamard'''<math>]_r\}</math> # Receiver outputs <math>s_c = f_c(a \oplus w^{\beta}|_{\tilde{I}_c})</math>
Summary:
Please note that all contributions to Quantum Protocol Zoo may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Quantum Protocol Zoo:Copyrights
for details).
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
News
Protocol Library
Certification Library
Nodal Subroutines
Codes Repository
Knowledge Graphs
Submissions
Categories
Supplementary Information
Recent Changes
Contact us
Help
Tools
What links here
Related changes
Special pages
Page information