Gottesman and Chuang Quantum Digital Signature: Difference between revisions

Line 49: Line 49:
*'''Input''' L
*'''Input''' L
*'''Output''' Seller: <math>\{k_0^i, k_1^i\}</math>, <math>1\le i\ge M</math>, <math>\{f_{k_0^i}, f_{k_1^i}\}</math>
*'''Output''' Seller: <math>\{k_0^i, k_1^i\}</math>, <math>1\le i\ge M</math>, <math>\{f_{k_0^i}, f_{k_1^i}\}</math>
**'''Key Generation'''
#For m = 0,1
#For m = 0,1
##For i=0,M
##For i=0,M
###Seller generates k_m^i
###Seller generates <math>k_m^i</math>
###Seller performs <math>k_m^i\rightarrow f_{k_m^i}</math>
###Seller performs <math>k_m^i\rightarrow f_{k_m^i}</math>
Method 1: Trusted Party


**'''Symmetrisation'''
**'''Key Distribution: No Trusted Third Party Assumption'''
##For k = 0,1
#For m = 0,1
### Buyer chooses I<math>\subset_R\{1,2,...,L\}, |I|=[L/2]</math>
##For i=0,M
### <math>\forall i\epsilon I</math>, Buyer sends Verifier <math>(k,i,b^k_i,B^k_i)</math>
###For j=1,2
### Verifier chooses J<math>\subset_R\{1,2,...,L\}, |J|=[L/2]</math>
####Seller sends f_{k_m^i}^j to buyer and verifier
### <math>\forall j\epsilon J</math>, Verifier sends Buyer <math>(k,j,v^k_j,V^k_j)</math>
####Buyer performs SWAP1(f_{k_m^i}^1, f_{k_m^i}^2)
### <math>\forall j\epsilon J</math> Buyer replaces <math>B^k_l=V^k_l</math>
####If SWAP1= False, Buyer aborts
### <math>\forall i\epsilon I</math> Verifier replaces <math>V^k_l=B^k_l</math>
####If SWAP1= True, Buyer sends f_{k_m^i}^{b}=f_{k_m^i}^2=f_{k_m^i}^1 to verifier
####Verifier performs similar steps and sends f_{k_m^i}^{v}=f_{k_m^i}^2=f_{k_m^i}^1 to buyer
####Both perform SWAP(f_{k_m^i}^{b},f_{k_m^i}^{v})  
####If SWAP2= False, protocol aborted
####If SWAP2= True, distribution successful


<u>'''Stage 2'''</u> Messaging
<u>'''Stage 2'''</u> Messaging
   
   
*'''Input''' Seller: Message m, Private Key for m: <math>\{\beta^m_1,...,\beta^m_L\}</math>
*'''Input''' Seller: Message b, Private Key for k_b
*'''Output''' Buyer: accept or abort, Verifier: accept or abort
*'''Output''' Buyer: '''1-ACC''' (Message is valid and transferable), '''0-ACC''' (Message is valid but not transferable), '''REJ''' (Message is invlaid)
**'''Signing:''' ’mismatch’ is when Buyer finds an eliminated signature element in Seller’s private key
**'''Signing:'''  
# Seller sends Buyer (m,<math>\{\beta^m_1,...,\beta^m_L\}</math>)
# For i=1,M
# Seller sends Buyer (b,k_b^i)
# For l = 1,2,..,L
# For l = 1,2,..,L
##Buyer counts the number of mismatches (<math>B^m_l=V^m_l</math>) and returns <math>S_b</math>
## Buyer performs k_b^i\rightarrow f_{new}
# If <math>S_b < s_aL/2</math>, Buyer accepts m else he aborts
## Buyer performs SWAP(f_{new},f_{k_b^i})
**'''Transfer'''
## If SWAP= False s_B=s_B+1
# Buyer sends Verifier (m,<math>\{\beta^m_1,...,\beta^m_L\}</math>)  
#If s_B<c_1M, result '''1-ACC'''
# For l = 1,2,....,L
#If c_1M<s_B<c_2M, result '''0-ACC'''
##Verifier counts the number of mismatches (<math>V^m_l=B^m_l</math>) and returns <math>S_v</math>
#If s_B>c_2M, result '''REJ'''
# If <math>S_v < s_vL/2</math>, Verifier accepts m else he aborts


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

edits