Device-Independent Quantum Key Distribution: Difference between revisions

Line 55: Line 55:


==Pseudo Code==
==Pseudo Code==
*'''Input:'''<math>n, \gamma, \epsilon_{\rm PA},\epsilon_{\rm PE},\epsilon_{\rm EC},\epsilon'_{\rm EC},Q_Z</math>
*'''Input:'''<math>n, \delta</math></br>
*'''Output:'''<math>K_A, K_B</math>
*'''Output:'''<math>K_A, K_B</math></br>
<u>'''Stage 1'''</u> Distribution and measurement
<u>'''Stage 1'''</u> Distribution and measurement</br>
#For i=1,2,...,n
#'''For''' every block <math> j \in [m]</math>
## Sender chooses random bits <math>X_i\epsilon\{0,1\}</math> and <math>A_i\epsilon_R\{0,1\}</math> such that <math>P(X_i=1)=\gamma</math>
##Set <math>i=0</math> and <math>C_j=\bot</math>.
## Sender prepares <math>H^{X_i}|A_i\rangle</math> and sends it to Bob
##'''While''' <math>i \leq s_{max}</math>
##  Receiver announces receiving a state
###Set <math>i=i+1</math>
##  Receiver chooses bit <math>Y_i\in_R\{0,1\}</math> such that <math>P(Y_i=1)=\gamma</math>
### Alice and Bob choose a random bit <math>T_i \in \{0,1\}</math> such that <math>P(T_i=1)=\gamma</math>.
##  Receiver measures <math>H^{X_i}|A_i\rangle</math> in basis <math>\{H^{Y_i}|0\rangle, H^{Y_i}|1\rangle\}</math> with outcome <math>B_i</math>
### '''If''' <math>T_i=0</math> '''then''' Alice and Bob choose inputs <math>(X_i, Y_i)=(0,2)</math>.
 
### '''Else''' they choose <math>X_i ,Y_i \in \{0,1\}</math> (the observables for the CHSH test).
*At this stage Sender holds strings <math>X_1^n, A_1^n</math> and Receiver <math>Y_1^n, B_1^n</math>, all of length <math>n</math>
### Alice and Bob use their devices with the respective inputs and record their outputs, <math>A_i</math> and <math>B_i</math> respectively.
### '''If''' <math>T_i=1</math> they  set <math>i=s_{max}+1</math>.
*At this stage Alice holds strings <math>X_1^n, A_1^n</math> and Bob <math>Y_1^n, B_1^n</math>, all of length <math>n</math>.
 
<u>'''Stage 2'''</u> Sifting   
<u>'''Stage 2'''</u> Sifting   
#Alice and Bob publicly announce <math>X_1^n, Y_1^n</math>
#For i=1,2,....,n
## If <math>X_i=Y_i</math>
### <math>A_1^{n'} = A_1^{n'}.</math>append</math>(A_i)</math>
### <math>B_1^{n'} = B_1^{n'}.</math>append<math>(B_i)</math>
### <math>X_1^{n'} = X_1^{n'}.</math>append<math>(X_i)</math>
### <math>Y_1^{n'} = Y_1^{n'}.</math>append<math>(Y_i)</math>
*Now Sender holds strings <math>X_1^{n'}, A_1^{n'}</math> and Receiver <math>Y_1^{n'}, B_1^{n'}</math>, all of length <math>n'\leq n</math>
<u>'''Stage 3'''</u> Parameter estimation
<u>'''Stage 3'''</u> Parameter estimation
#For <math>i=1,...,n</math>
## size<math>Q</math> = 0
## If{<math>X_i = Y_i = 1</math>
### Sender and Receiver publicly announce <math>A_i, B_i</math>
### Sender and Receiver compute <math>Q_i = 1 - \delta_{A_iB_i}</math>, where <math>\delta_{A_iB_i}</math> is the Kronecker delta
## size<math>Q</math> += 1\;
*Both Sender and Receiver, each, compute <math>Q_X = \frac{1}{\text{size}Q} \sum_{i=1}^{n'}Q_i</math></br>
<u>'''Stage 4'''</u> Error correction
<u>'''Stage 4'''</u> Error correction
*''<math>C(\cdot,\cdot)</math> is an error correction subroutine determined by the previously estimated value of <math>Q_Z</math> and with error parameters  <math>\epsilon'_{\rm EC}</math> and <math>\epsilon_{\rm EC}</math>
#Both Sender and Receiver run <math>C(A_1^{n'},B_1^{n'})</math>''.
#Receiver obtains <math>\tilde{B}_1^{n'}</math>
<u>'''Stage 5'''</u> Privacy amplification
<u>'''Stage 5'''</u> Privacy amplification
*''<math>PA(\cdot,\cdot)</math> is a privacy amplification subroutine determined by the size <math>\ell</math>, computed from equation for key length <math>\ell</math> (see [[Quantum Key Distribution#Properties|Properties]]), and  with secrecy parameter <math>\epsilon_{\rm PA}</math>''
#Sender and Receiver run $PA(A_1^{n'},\tilde{B}_1^{n'})$ and obtain secret keys $K_A, K_B$\;


==Further Information==
==Further Information==
Write, autoreview, editor, reviewer
3,129

edits