实现下列算法,用C
初始化:
1:选择大的素数q
2:输入N(N小于q)
3:选择不同的GF(q)的N个非零数字Xi (i大于等于1小于等于N)分配给N个参与者Pi(i大于等于1小于 等于N)。(Xi公开)
子秘密分配:
1:设共享秘密为K
2:选择GF(q)中的t-1个元素a1,a2,a3,...at-1。 (N=2t-1)
3:构造t-1次多项式 f(x)=K+a1x+a2x(平方) +…at-1x(t-1次方)
4:计算y(i)=f(xi),(1≤i≤N),将y(i)分配给参与者Pi作为他的子秘密。
秘密恢复:
1:设t个参与者为P1,P2 …Pt,出示其子秘密得到t个点对(X1,Y1),(X2,Y2),…(Xt,Yt )
2:利用下列公式重构f(x)和K。

点击此处查看原文 |