Prepare and Measure Quantum Digital Signature: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 91: Line 91:
##Verifier counts the number of mismatches (<math>V^m_l=B^m_l</math>) and returns <math>S_v</math>
##Verifier counts the number of mismatches (<math>V^m_l=B^m_l</math>) and returns <math>S_v</math>
# If <math>S_v < s_vL/2</math>, Verifier accepts m else he aborts
# If <math>S_v < s_vL/2</math>, Verifier accepts m else he aborts
==Pseudo Code 2==
'''function''' key_distribution(n,L)
  '''For''' k = 0 '''to''' <math>2^n</math>
  '''function''' key_generation (L)
    '''For l=1 '''to''' L
    <math>\beta_k^l=</math>choose<math>_R(\{0,1,+,-\})</math> //random classical bits
    '''end for''' l
    <math>|\psi_k\rangle=\bigotimes^L_{l=1}|\beta^k_l\rangle</math> //quantum public key
    <math>s_k=\{\beta_k^0,....\beta_k^L\}</math> //secret key
    '''return''' (<math>|\psi_k\rangle,s_k</math>)
  '''end function''' key_generation
  <math>|\psi_{Bk}\rangle=|\psi_k\rangle</math>
  <math>|\psi_{Vk}\rangle=|\psi_k\rangle</math>
  Seller<math>\xrightarrow[]{(k,|\psi_{Bk}\rangle)}</math>Buyer
  Seller<math>\xrightarrow[]{(k,|\psi_{Vk}\rangle)}</math>Verifier
  '''end for''' k
'''end function''' key_distribution</br>
'''function''' state_elimination(<math>|\psi_k\rangle</math>,L)
  '''For''' l = 1 '''to''' L
  <math>b_k^l=</math>Choose<math>_R(\{X,Z\})</math> //randomly chosen measurement basis
  '''if''' <math>b_k^l=</math>Z '''then'''
    M= Measure<math>_{\{0,1\}}(\beta_k^l)</math>
    '''if''' M=1 '''then''' esign<math>_k^l= 1</math>
    '''if''' M=-1 '''then''' esign<math>_k^l= 0</math>
    '''end if'''
  '''if''' b_k^l=X '''then'''
    M= Measure<math>_{\pm}(\beta_k^l) </math>
    '''if''' M=1 '''then''' esign<math>_k^l= +</math>
    '''if''' M=-1 '''then''' esign<math>_k^l= -</math>
    '''end if'''
  '''end if'''
  '''end for''' l
  '''return''' esign<math>_k</math>
'''end function''' state_elimination</br>
'''for''' k=0 to <math>2^n</math>
  esign<math>_{Bk}</math>= Buyer.'''state_elimination'''(<math>|\psi_{Bk}\rangle</math>,L)
'''end for'''
'''for''' k=0 to <math>2^n</math>
  esign<math>_{Vk}</math>= Verifier.'''state_elimination'''(<math>|\psi_{Vk}\rangle</math>,L)
'''end for'''</br>
'''function''' symmetrization(k,Sender,esign_{Sk},Receiver,esign_{Rk})
  Sender.choose I<math>\subset_R\{1,2,...,L\}, |I|=[L/2]</math>
  <math>\forall i\epsilon I</math>, Sender<math>\xrightarrow[]{(k,i,b^k_i,B^k_i)}</math>Receiver
  '''For''' h=1,<math>L/2</math>
  Sender.receive(j,esign<math>_{Rk}^j</math>)
  Sender.replace(esign<math>_{Sk}^j</math>,esign<math>_{Rk}^j</math>)
  '''end for''' h
'''end function''' SYM
'''for''' k=0 '''to''' <math>2^n</math>
'''Call''' SYM(k,Buyer,esign<math>_{Bk}</math>,Verifier,esign<math>_{Vk}</math>)||SYM(0,Verifier,esign<math>_{Vk}</math>,Buyer,esign<math>_{Bk}</math>)
'''end function''' symmetrisation
// '||' implies that the functions are processed in parallel</br>
'''function''' signing(m,<math>s_m</math>)
  Seller<math>\xrightarrow[]{(m,s_m)}</math>Buyer
  '''for''' i=1 '''to''' L
  '''if''' s_m(i)=esign_{Bm} '''then'''
    x=x+1
  '''end if'''
  '''end for'''
  '''if''' x><math>s_a</math> '''then'''
    z=0 //Buyer aborts
  '''else'''
  z=1  //Buyer accepts
  '''end if'''
  '''return''' z
'''end function''' signing</br>
'''function''' transfer(m,<math>s_m</math>)
  '''if''' z=1 '''then'''
  Buyer<math>\xrightarrow[]{(m,s_m)}</math>Verifier
  '''for''' i=1 '''to''' L
  '''if''' s_m(i)=esign_{Vm} '''then'''
    x=x+1
  '''end if'''
  '''if''' x><math>s_v</math> '''then'''
    z=0 //Verifier aborts
  '''else'''
    z=1 // Verifier accepts
  '''end if'''
  '''end for'''
'''end if'''
'''return''' z
'''end function''' transfer</br>
Protocol is successful if z=1
==Further Information==
==Further Information==
The protocol under discussion (1) was the first version of Quantum Digital Signatures with only prepare and measure QKD components. The assumption authenticated quantum channel would render it useless as authenticated quantum channel is a more complex protocol. Thus in (6), a variant of this protocol overcomes this assumption by using a Key generation protocol (not QKD) for authentication where, instead of Seller, Buyer and Verifier sends quantum public keys to the Seller to measure in randomly chosen basis and generate her private keys. Following description for various papers on QDS protocols and their variants have been written keeping in mind the hardware requirements, assumptions, security and method used. One of the papers discusses generalisation of protocols to more than 3 parties and another one discusses security for iterating in case of sending multiple bits.
The protocol under discussion (1) was the first version of Quantum Digital Signatures with only prepare and measure QKD components. The assumption authenticated quantum channel would render it useless as authenticated quantum channel is a more complex protocol. Thus in (6), a variant of this protocol overcomes this assumption by using a Key generation protocol (not QKD) for authentication where, instead of Seller, Buyer and Verifier sends quantum public keys to the Seller to measure in randomly chosen basis and generate her private keys. Following description for various papers on QDS protocols and their variants have been written keeping in mind the hardware requirements, assumptions, security and method used. One of the papers discusses generalisation of protocols to more than 3 parties and another one discusses security for iterating in case of sending multiple bits.
Write, autoreview, editor, reviewer
3,125

edits

Navigation menu