Publicly verifiable secret sharing explained

In cryptography, a secret sharing scheme is publicly verifiable (PVSS) if it is a verifiable secret sharing scheme and if any party (not just the participants of the protocol) can verify the validity of the shares distributed by the dealer.

The method introduced here according to the paper by Chunming Tang, Dingyi Pei, Zhuo Liu, and Yong He is non-interactive and maintains this property throughout the protocol.

Initiali

The PVSS scheme dictates an initialization process in which:

  1. All system parameters are generated.
  2. Each participant must have a registered public key.

Excluding the initialization process, the PVSS consists of two phases:

Distribution

1. Distribution of secret

s

shares is performed by the dealer

D

, which does the following:

s1,s2...sn

for each participant

P1,P2...Pn

respectively.

Ei(si)

for each

Pi

.

proofD

to show that each

Ei

encrypts

si

(note:

proofD

guarantees that the reconstruction protocol will result in the same

s

.

2. Verification of the shares:

Ei

, can verify the shares.

Reconstruction

1. Decryption of the shares:

Pi

decrypts their share of the secret

si

using

Ei(si)

.(note: fault-tolerance can be allowed here: it's not required that all participants succeed in decrypting

Ei(si)

as long as a qualified set of participants are successful to decrypt

si

).

si

plus a string
proof
Pi
this shows the released share is correct.

2. Pooling the shares:

proof
Pi
to exclude the participants which are dishonest or failed to decrypt

Ei(si)

.

s

can be done from the shares of any qualified set of participants.

Chaum-Pedersen Protocol

A proposed protocol proving:

log
g1

h1=

log
g2

h2

:
  1. The prover chooses a random

r\in

\boldsymbol{\Zeta}
q*

  1. The verifier sends a random challenge

c\inR\boldsymbol{\Zeta}q

  1. The prover responds with

s=r-cx(modq)

  1. The verifier checks

\alpha1=

s
g
1
c
h
1
and

\alpha2=

s
g
2
c
h
2

Denote this protocol as:

dleq(g1,h1,g2,h2)


A generalization of

dleq(g1,h1,g2,h2)

is denoted as:

dleq(X,Y,g1,h1,g2,h2)

where as:

X=

x1
g
1
x2
g
2
and

Y=

x1
h
1
x2
h
2
:
  1. The prover chooses a random

r1,r2\in

*
Z
q
and sends

t1=

r1
g
1
r2
g
2
and

t2=

r1
h
1
r2
h
2
  1. The verifier sends a random challenge

c\inR\boldsymbol{\Zeta}q

.
  1. The prover responds with

s1=r1-cx1(modq)

,

s2=r2-cx2(modq)

.
  1. The verifier checks

t1=Xc

s1
g
1
s2
g
2
and

t2=Yc

s1
h
1
s2
h
2

The Chaum-Pedersen protocol is an interactive method and needs some modification to be used in a non-interactive way:Replacing the randomly chosen

c

by a 'secure hash' function with

m

as input value.

References