本章方案由4个子协议组成,分别为系统初始化协议、秘密分发协议、秘密份额的验证协议和秘密重构协议。
(1)系统初始化协议。设
G
1
为素数阶的加法群(这里为椭圆曲线群),阶为
q
;
P
和
Q
为
G
1
的两个生成元,且任何人都不知道
(
n
满足
Q
=
np
);设
G
2
为
q
阶乘法群,且存在双线性映射
e
:
G
1
×
G
1
→
G
2
能被有效计算;
G
1
和
G
2
上的离散对数(
G
1
上是椭圆曲线离散对数)都是难解的;秘密
S
∈
G
1
。
(2)秘密分发协议。分发协议的5个步骤如下。
① 秘密分发者
D
公布秘密
S
的承诺
。
② 秘密分发者 D 选取 G 1 [ x ]上次数最多为 t -1的秘密多项式 F ( x )= S + xF 1 +…+ x t-1 F t-1 满足 S = F (0)(这里 x t-1 F t-1 表示在椭圆曲线群 G 1 上 x t-1 个 F t-1 相加),并计算 S i = F ( i ), i =1,…, n 。
③ 秘密分发者
D
随机选取
g
1
,…,
g
t-1
∈
R
,并广播
C
i
=
C
(
F
i
,
g
i
)=
e
(
F
i
+
g
i
Q
,
P
),
i
=1,…,
t
-1。
④ 设 g ( x )= r + g 1 x +…+ g t-1 x t-1 , D 计算 r i = g ( i ), i =1,…, n 。
⑤ 秘密分发者 D 秘密发送( S i , r i )给 P i , i =1,…, n 。
(3)秘密份额的验证协议。 P i 接收到( S i , r i )后,验证秘密份额的正确性,即
(4)秘密重构协议。当至少 t 个参与者 B ( B ⊂ P 且| B |≥ t )提供各自的秘密份额( S i , r i )后,即可利用Lagrange插值多项式计算出秘密( S , r ),即
其中,
为插值系数,
。可利用公开信息
C
0
验证(
S
,
r
)的正确性,即
C
0
=
e
(
S
+
rQ
,
P
)。