Write, autoreview, editor, reviewer
3,129
edits
Line 44: | Line 44: | ||
==Pseudocode== | ==Pseudocode== | ||
==Pseudocode== | |||
<u>'''Stage 1'''</u> Distribution | |||
*'''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> | |||
**'''Key Distribution:''' | |||
#For k = 0,1 | |||
##For i=0,M | |||
##Seller | |||
**'''State Elimination:''' | |||
#For k = 0,1 | |||
##For l = 1,2,...,L | |||
### Buyer chooses <math>b^k_l \epsilon_R {0,1}</math> | |||
###If <math>b^k_l=0</math>, Buyer measures his qubit in X basis <math>\{|+\rangle,|-\rangle\}</math> | |||
###If <math>b^k_l=0</math>, Buyer measures his qubit in Z basis <math>\{|0\rangle,|1\rangle\}</math> | |||
###'''return''' <math>m_{b^k_l}</math> | |||
###<math>B^k_l=1-m_{b^k_l}</math> | |||
**Verifier repeats steps 2(a)-2(b) with randomly chosen basis <math>v^k_l</math> to get his eliminated signature elements <math>V^k_l</math> | |||
**'''Symmetrisation''' | |||
##For k = 0,1 | |||
### Buyer chooses I<math>\subset_R\{1,2,...,L\}, |I|=[L/2]</math> | |||
### <math>\forall i\epsilon I</math>, Buyer sends Verifier <math>(k,i,b^k_i,B^k_i)</math> | |||
### Verifier chooses J<math>\subset_R\{1,2,...,L\}, |J|=[L/2]</math> | |||
### <math>\forall j\epsilon J</math>, Verifier sends Buyer <math>(k,j,v^k_j,V^k_j)</math> | |||
### <math>\forall j\epsilon J</math> Buyer replaces <math>B^k_l=V^k_l</math> | |||
### <math>\forall i\epsilon I</math> Verifier replaces <math>V^k_l=B^k_l</math> | |||
<u>'''Stage 2'''</u> Messaging | |||
*'''Input''' Seller: Message m, Private Key for m: <math>\{\beta^m_1,...,\beta^m_L\}</math> | |||
*'''Output''' Buyer: accept or abort, Verifier: accept or abort | |||
**'''Signing:''' ’mismatch’ is when Buyer finds an eliminated signature element in Seller’s private key | |||
# Seller sends Buyer (m,<math>\{\beta^m_1,...,\beta^m_L\}</math>) | |||
# 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> | |||
# If <math>S_b < s_aL/2</math>, Buyer accepts m else he aborts | |||
**'''Transfer''' | |||
# Buyer sends Verifier (m,<math>\{\beta^m_1,...,\beta^m_L\}</math>) | |||
# For l = 1,2,....,L | |||
##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 | |||
==Further Information== | ==Further Information== |