基于Pedersen承诺的可验证秘密共享方案: Pedersen VSS

传统(t,n)门限秘密共享方案并未考虑参与者和秘密分发者可能出现的恶意行为:

  • 当重构秘密时,不诚实的参与者发送错误的秘密份额

  • 当份额分发时,秘密分发者分发错误的秘密份额

为解决上述欺骗问题,有学者于1985年提出可验证秘密共享(VSS: Verifiable Secret Sharing),该方案通过参与方间的交互来验证密秘密份额的合法性,随后又有学者提出非交互式VSS方案 ,但早期的非交互式VSS方案严重依赖于可信第三方,于是又诞生了一批不依赖于第三方的非交互式VSS方案,Pedersen VSS即是其中一种比较有名的不依赖于第三方的非交互式VSS方案 论文地址

设g,h是群Gq的两个生成元,但 l o g g h log_gh loggh 未知,记Pedersen 承诺 E ( s , t ) = g s h t E(s,t) = g^sh^t E(s,t)=gsht ,具体Pedersen VSSS算法流程如下:

初始化阶段

秘密分发者选择两个t-1 阶多项式,其中秘密为s,t为随机数

F ( x ) = s + F 1 x + . . . + F t − 1 x t − 1 F(x) = s + F_1x + ... + F_{t-1}x^{t-1} F(x)=s+F1x+...+Ft1xt1

G ( x ) = t + G 1 x + . . . + G t − 1 x t − 1 G(x) = t + G_1x + ... + G_{t-1}x^{t-1} G(x)=t+G1x+...+Gt1xt1

公开承诺 E 0 ( s , t ) , E i ( F i , G i ) , i = 1 , . . . , t − 1 E_0(s,t),E_i(F_i,G_i),i=1,...,t-1 E0(s,t),Ei(Fi,Gi),i=1,...,t1

份额分发阶段

i = 1 , . . . , n i=1,...,n i=1,...,n,计算 s i = F ( i ) , t i = G ( i ) s_i= F(i),t_i= G(i) si=F(i),ti=G(i),并将 ( s i , t i ) (s_i,t_i) (si,ti) 发送给对应的参与者Pi

份额验证阶段

每个参与者Pi使用下面公式验证从秘密分发者收到的秘密份额

E ( s i , t i ) = ∏ j = 0 t − 1 E j i j E(s_i,t_i) = \prod_{j=0}^{t-1}{E_j^{i^j}} E(si,ti)=j=0t1Ejij
注:该验证公式利用了pederson承诺加法同态性质

秘密重构阶段

在秘密重构时,参与者Pj首先利用上面验证公式验证其他参与者发送过来的 ( s i , t i ) (s_i,t_i) (si,ti), 然后使用拉格朗日插值法进行秘密重构

猜你喜欢

转载自blog.csdn.net/qq_34793644/article/details/124672105