Write
262
edits
Line 55: | Line 55: | ||
(see [[Quantum Key Distribution]] for the precise security definition). | (see [[Quantum Key Distribution]] for the precise security definition). | ||
== | ==Pseudocode== | ||
*'''Input:'''<math>n, \gamma, \epsilon_{\rm PA},\epsilon_{\rm PE},\epsilon_{\rm EC},\epsilon'_{\rm EC},Q_Z</math> | *'''Input:'''<math>n, \gamma, \epsilon_{\rm PA},\epsilon_{\rm PE},\epsilon_{\rm EC},\epsilon'_{\rm EC},Q_Z</math> | ||
*'''Output:'''<math>K_A, K_B</math> | *'''Output:'''<math>K_A, K_B</math> | ||
'''1.''' Distribution and measurement | |||
#For i=1 | #For <math>i=1,...,n</math> | ||
## Alice chooses random bits <math>X_i\ | ## Alice chooses random bits <math>X_i\in\{0,1\}</math> and <math>A_i\in_R\{0,1\}</math> such that <math>P(X_i=1)=\gamma</math> | ||
## Alice prepares <math>H^{X_i}|A_i\rangle</math> and sends it to Bob | ## Alice prepares <math>H^{X_i}|A_i\rangle</math> and sends it to Bob | ||
## Bob announces receiving a state | ## Bob announces receiving a state | ||
Line 67: | Line 67: | ||
*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> | *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> | ||
'''2.''' Sifting | |||
#Alice and Bob publicly announce <math>X_1^n, Y_1^n</math> | #Alice and Bob publicly announce <math>X_1^n, Y_1^n</math> | ||
#For i=1, | #For <math>i=1,...,n</math> | ||
## If <math>X_i=Y_i</math> | ## If <math>X_i=Y_i</math> | ||
### <math>A_1^{n'} = A_1^{n'}.</math>append< | ### <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>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>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> | ### <math>Y_1^{n'} = Y_1^{n'}.</math>append<math>(Y_i)</math> | ||
*Now 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'\leq n</math> | *Now 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'\leq n</math> | ||
'''3.''' Parameter estimation | |||
#For <math>i=1,...,n</math> | #For <math>i=1,...,n'</math> | ||
## size<math>Q</math> = 0 | ## size<math>Q</math> = 0 | ||
## If | ## If <math>X_i = Y_i = 1</math> | ||
### Alice and Bob publicly announce <math>A_i, B_i</math> | ### Alice and Bob publicly announce <math>A_i, B_i</math> | ||
### Alice and Bob compute <math>Q_i = 1 - \delta_{A_iB_i}</math>, where <math>\delta_{A_iB_i}</math> is the Kronecker delta | ### Alice and Bob 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 | ## size<math>Q</math> += 1; | ||
*Both Alice and Bob, each, compute <math>Q_X = \frac{1}{\text{size}Q} \sum_{i=1}^{n'}Q_i</math></br> | *Both Alice and Bob, each, compute <math>Q_X = \frac{1}{\text{size}Q} \sum_{i=1}^{n'}Q_i</math></br> | ||
'''4.''' 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> | *''<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 Alice and Bob run <math>C(A_1^{n'},B_1^{n'})</math>''. | #Both Alice and Bob run <math>C(A_1^{n'},B_1^{n'})</math>''. | ||
#Bob obtains <math>\tilde{B}_1^{n'}</math> | #Bob obtains <math>\tilde{B}_1^{n'}</math> | ||
'''5.''' 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>'' | *''<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>'' | ||
#Alice and Bob run <math>PA(A_1^{n'},\tilde{B}_1^{n'})</math> and obtain secret keys <math>K_A, K_B</math> | #Alice and Bob run <math>PA(A_1^{n'},\tilde{B}_1^{n'})</math> and obtain secret keys <math>K_A, K_B</math>; | ||
==Further Information== | ==Further Information== |