Write, autoreview, editor, reviewer
3,129
edits
m (Shraddha moved page Prepare and Measure Quantum Digital Signature to Prepare and Send Quantum Digital Signature) |
|||
Line 48: | Line 48: | ||
==Pseudo Code== | ==Pseudo Code== | ||
<u>'''Stage 1'''</u> Distribution | |||
*'''Input''' L | |||
*'''Output''' Seller: <math>\{\beta^0_1,...,\beta^0_L\},\{\beta^1_1,...,\beta^1_L\}</math>; Buyer: <math>B^0,B^1</math>; Verifier: <math>V^0,V^1</math> | |||
**'''Key Distribution:''' | |||
#For k = 0,1 | |||
## Seller prepares quantum public key <math>|\psi^k\rangle=\bigotimes^L_{l=1}|\beta^k_l\rangle</math>, where <math>\beta^k_l\in_R \{0,1,+,-\}</math> | |||
## She sends Buyer (k,<math>|\psi^k\rangle</math>) | |||
## She sends Verifier (k,<math>|\psi^k\rangle</math>) | |||
**'''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 | |||
==Pseudo Code 2== | |||
<u>'''Stage 1'''</u> Distribution | <u>'''Stage 1'''</u> Distribution |