异步网络的动态委员会秘密分享更新方法及装置

文档序号:31708695发布日期:2022-10-01 13:36阅读:423来源:国知局
异步网络的动态委员会秘密分享更新方法及装置

1.本技术涉及信息安全技术领域,特别涉及一种异步网络的动态委员会秘密分享更新方法及装置。


背景技术:

2.秘密分享(secret sharing)技术能够将一个秘密值在n个节点之间进行冗余备份,每个节点持有一个份额,并要求集齐t+1个份额才可以重构秘密,泄露少于该数量的份额不会影响秘密值的保密性。随着区块链和去中心化应用的蓬勃发展,秘密分享技术有着十分广泛的应用前景与潜力,可用于密钥和其他机密数据的备份与管理。此外,秘密分享技术还是许多高级密码学原语的关键组成部分,如门限加密、分布式随机数生成、拜占庭容错协议和多方安全计算等。
3.主动秘密共享(proactive secret sharing)技术是对shamir等人提出的秘密共享技术的扩展,其可在保持秘密值不变的条件下,主动更新秘密份额,以确保秘密值的长期机密性,因为敌手必须在有限的时间内获得足够的份额来恢复秘密。然而,现有的主动秘密分享技术有诸多局限性,不适合现实应用。
4.首先,部分研究只支持静态委员会,即秘密值由一组固定的委员会成员管理,且无法调整委员会的人员和大小。考虑到计算机技术的不断发展,此类静态方案可能存在安全性风险。此外,由于无法调整委员会成员,此类方案无法满足现实中常见的人员调整需求。
5.其次,还有一部分方案基于同步网络模型,即假设消息可在已知时间内到达。该假设在现实网络环境条件下难以长时间持续成立,而当网络假设在某次更新过程中失效,可能会导致秘密值的保密性的问题,甚至可能导致秘密值的丢失。
6.因此,针对实际应用的需求,需要对现有的主动秘密分享技术进行扩展,使其支持动态委员会和异步网络,并解决复杂度过高、可扩展性差等问题。


技术实现要素:

7.本技术提供一种异步网络的动态委员会秘密分享更新方法、装置、电子设备及存储介质,以解决相关技术无法对现有的同步网络主动秘密分享技术进行扩展,难以使其支持动态委员会和异步网络的问题,以及现有异步网络方案存在的复杂度过高、可扩展性差等问题。
8.本技术第一方面实施例提供一种异步网络的动态委员会秘密分享更新方法,包括以下步骤:可验证秘密分享阶段:在委员会内部进行秘密值分享,多个初始委员会成员根据所述秘密值计算所述秘密值的完整份额;份额更新阶段:更新所述多个初始委员会成员得到多个新的委员会成员,将所述多个初始委员会成员的完整份额上的一个值发送至所述多个新的委员会成员,计算接收到的多个完整份额的值,得到所述多个新的委员会节点的完整份额;秘密重构阶段:根据所述多个新的委员会成员的完整份额恢复所述秘密值。
9.在本技术的一个实施例中,所述可验证秘密分享阶段进一步包括:利用所述秘密
值生成二元多项式,对所述二元多项式进行承诺,将所述承诺和所述二元多项式的一个稀释份额发送至多个初始委员会成员;计算所述多个初始委员会成员接收到的稀释份额多项式上各点的值,并转发给所述多个初始委员会成员,对接收到的稀释份额多项式上各点的值进行计算,得到所述秘密值的完整份额。
10.在本技术的一个实施例中,所述份额更新阶段进一步包括:向所述多个新的委员会成员发送完整份额多项式上的一个点,所述多个新的委员会成员通过拉格朗日插值计算稀释份额;所述多个新的委员会成员生成随机二元多项式,每个新的委员会成员分别获得所述随机二元多项式对应的一元多项式,并将所述一元多项式与计算出的稀释份额相加;每个新的委员会成员计算各自更新后的稀释份额多项式上的点,并发送给其他新的委员会成员,通过拉格朗日插值计算完整份额。
11.在本技术的一个实施例中,所述秘密重构阶段进一步包括:检测是否接收到秘密重构指令;在接收到所述秘密重构指令时,通过拉格朗日插值恢复出完整份额的二元多项式,得到所述秘密值。
12.本技术第二方面实施例提供一种异步网络的动态委员会秘密分享更新装置,包括:分享模块,用于在委员会内部进行秘密值分享,多个初始委员会成员根据所述秘密值计算所述秘密值的完整份额;更新模块,用于更新所述多个初始委员会成员得到多个新的委员会成员,将所述多个初始委员会成员的完整份额上的一个值发送至所述多个新的委员会成员,计算接收到的多个完整份额的值,得到所述多个新的委员会节点的完整份额;重构模块,用于根据所述多个新的委员会成员的完整份额恢复所述秘密值。
13.在本技术的一个实施例中,所述分享模块包括:承诺单元,用于利用所述秘密值生成二元多项式,对所述二元多项式进行承诺,将所述承诺和所述二元多项式的一个稀释份额发送至多个初始委员会成员;第一计算单元,用于计算所述多个初始委员会成员接收到的稀释份额多项式上各点的值,并转发给所述多个初始委员会成员,对接收到的稀释份额多项式上各点的值进行计算,得到所述秘密值的完整份额。
14.在本技术的一个实施例中,所述更新模块包括:第二计算单元,用于向所述多个新的委员会成员发送完整份额多项式上的一个点,所述多个新的委员会成员通过拉格朗日插值计算稀释份额;生成单元,用于所述多个新的委员会成员生成随机二元多项式,每个新的委员会成员分别获得所述随机二元多项式对应的一元多项式,并将所述一元多项式与计算出的稀释份额相加;第三计算单元,用于每个新的委员会成员计算各自更新后的稀释份额多项式上的点,并发送给其他新的委员会成员,通过拉格朗日插值计算完整份额。
15.在本技术的一个实施例中,所述重构模块包括:检测单元,用于检测是否接收到秘密重构指令;恢复单元,用于在接收到所述秘密重构指令时,通过拉格朗日插值恢复出完整份额的二元多项式,得到所述秘密值。
16.本技术第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以执行如上述实施例所述的异步网络的动态委员会秘密分享更新方法。
17.本技术第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以执行如上述实施例所述的异步网络的动态委员会秘密分享更新方法。
18.由此,本技术的实施例具有以下有益效果:
19.通过在委员会内部进行秘密值分享,多个初始委员会成员根据秘密值计算秘密值的完整份额;其次,更新多个初始委员会成员得到多个新的委员会成员,将多个初始委员会成员的完整份额上的一个值发送至多个新的委员会成员,计算接收到的多个完整份额的值,得到多个新的委员会节点的完整份额;继而,根据多个新的委员会成员的完整份额恢复秘密值,从而提升了秘密分享的安全性和灵活性,降低了异步条件下份额更新的通信开销。由此,将同步网络假设减弱到异步,支持高效的委员会变更,加强了抵御动态敌手的能力,扩大了秘密分享的应用场景,解决了相关技术无法对现有的同步网络主动秘密分享技术进行扩展,难以使其支持动态委员会和异步网络的问题,以及已有异步网络方案存在的复杂度过高、可扩展性差等问题。
20.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
21.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
22.图1为根据本技术实施例提供的一种异步网络的动态委员会秘密分享更新方法的流程图;
23.图2为根据本技术的一个实施例提供的一种份额更新阶段技术细节示意图;
24.图3为根据本技术的一个实施例提供的一种份额更新步骤的技术细节示意图;
25.图4为根据本技术的一个实施例提供的一种异步网络的动态委员会秘密分享更新方法的执行逻辑架构图;
26.图5为根据本技术的一个实施例提供的一种异步网络的动态委员会秘密分享更新方法的生命周期示意图;
27.图6为根据本技术实施例的异步网络的动态委员会秘密分享更新装置的示例图;
28.图7为申请实施例提供的电子设备的结构示意图。
29.附图标记说明:分享模块-100、更新模块-200、重构模块-300、存储器-701、处理器-702、通信接口-703。
具体实施方式
30.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
31.下面参考附图描述本技术实施例的异步网络的动态委员会秘密分享更新方法、装置、电子设备及存储介质。针对上述背景技术中提到的问题,本技术提供了一种异步网络的动态委员会秘密分享更新方法,在该方法中,包括:可验证秘密分享阶段,用于在委员会内部进行秘密分享,每个成员获得一个完整份额,该阶段包含领导节点分享消息、委员会回应转发和委员会计算完整份额三个步骤;份额更新阶段,用于周期性地对委员会持有的份额进行更新,并支持委员会成员和大小的更改,该阶段包含选取新委员会、建立通信信道、份
额稀释、份额更新和完整份额转换五个步骤;秘密重构阶段,用于根据完整份额恢复出原始的秘密值,该阶段包含发送完整份额和恢复秘密值两个步骤。其中,份额更新阶段可以重复若干次,直到领导节点提出重构秘密的指令,从而实现了异步网络条件下动态委员会的秘密分享份额的更新,提升了秘密分享的安全性和灵活性,加强了秘密值在长期存储条件下抵御动态敌手的能力,降低了异步条件下份额更新的通信开销,具有支持异步网络环境、支持委员会调整、安全性更强、应用场景更广、通信开销更小等特点。由此,解决了相关技术无法对现有的同步网络主动秘密分享技术进行扩展,难以使其支持动态委员会和异步网络的问题,以及已有异步网络方案存在的复杂度过高、可扩展性差等问题。
32.为了表述简便,本技术的实施例中假设每个委员会的成员数目都为n=3t+1,t为被敌手控制的委员会数量。
33.本技术的实施例中涉及到的参数含义如表1所示。
34.表1本技术所涉及的参数类型及释义
[0035][0036][0037]
本技术的实施例中涉及到的函数含义如表2所示。
[0038]
表2本技术所涉及的函数类型及含义
[0039][0040]
为了简化表述,在不影响理解的前提下,本技术具体实施例中省略了公共参数cpk、tvki和tpk的描述。
[0041]
需要说明的是,在所有阶段开始前,需要一个可信第三方对kzg承诺和门限签名ts进行初始化,并将相关公共参数发送给所有参与方。此外,各参与方将从该可信第三方收到一个门限签名私钥。
[0042]
具体而言,图1为本技术实施例所提供的一种异步网络的动态委员会秘密分享更新方法的流程图。
[0043]
如图1所示,该异步网络的动态委员会秘密分享更新方法包括以下步骤:
[0044]
在步骤s101中,可验证秘密分享阶段:在委员会内部进行秘密值分享,多个初始委员会成员根据秘密值计算秘密值的完整份额。
[0045]
在本技术的实施例中,为使得每个委员会成员获得一个完整份额,首先可以通过领导节点在委员会内部进行秘密分享。具体过程下述进行详细介绍。
[0046]
在本技术的一个实施例中,可验证秘密分享阶段进一步包括:利用秘密值生成二
元多项式,对二元多项式进行承诺,将承诺和二元多项式的一个稀释份额发送至多个初始委员会成员;计算多个初始委员会成员接收到的稀释份额多项式上各点的值,并转发给多个初始委员会成员,对接收到的稀释份额多项式上各点的值进行计算,得到秘密值的完整份额。
[0047]
需要说明的是,本技术的实施例采用两种秘密份额:完整份额和稀释份额。其中,完整份额是一个2t阶多项式,正常状态下各委员会成员所持有的份额,t+1个完整份额可用于恢复对应的秘密值,而任意t个完整份额无法反映任何与秘密值相关的信息;稀释份额是一个t阶多项式,用于在委员会交接阶段保护秘密值的机密性,2t+1个稀释份额可恢复对应的秘密值,而任意2t个稀释份额同样无法反映任何与秘密值相关的信息。
[0048]
上述可验证秘密分享阶段主要包括领导节点分享消息、委员会回应转发以及委员会计算完整份额三个步骤。
[0049]
步骤1、领导节点分享消息:领导节点根据秘密值生成一个二元多项式,将对该多项式的承诺进行可靠广播,并向每个委员会成员发送该多项式的一个稀释份额,即一个t阶多项式。
[0050]
需要说明的是,本技术的实施例利用一个二元多项式b(x,y)进行秘密分享,其中x项最高次为t,y项最高次为2t。秘密值存储于b(0,0)的位置。
[0051]
具体地,领导节点分享消息具体过程如下所述:
[0052]
1-1:领导节点根据秘密值s生成一个随机一元多项式f(y),使得f(0)=s,且f(y)的最高项次数为2t。
[0053]
1-2:领导节点根据所生成的f(y)生成2t+1个t阶多项式rj(y),其中rj(0)=f(j),j∈[2t+1]。
[0054]
1-3:对于所有j∈[2t+1],领导节点计算对rj(y)的kzg承诺,即计算
[0055]
zj(x)=rj(x)-f(j)
[0056][0057][0058][0059]
1-4:领导节点将上述承诺整合为将作为输入进行可靠广播。
[0060]
1-5:对于每个委员会成员pi,领导节点计算
[0061][0062]
其中j∈[2t+1]。领导节点随后向pi发送
[0063]
步骤2、委员会回应转发:每个委员会成员接收来自领导节点的消息《send,π

,{v

j,i
,w

j,i
}
j∈[2t+1]
》,对消息进行正确性验证后,计算稀释份额多项式上各点的值并转发给其他委员会成员。
[0064]
具体地,委员会回应转发的具体过程如下所述:
[0065]
2-1:每个委员会成员pi,i∈[n],当该成员收到来自领导节点的消息后,先将π解
析为再验证
[0066][0067][0068][0069][0070]
其中,为拉格朗日系数。
[0071]
2-2:若2-1中的等式均成立,则设置π=π

,并通过拉格朗日插值法计算
[0072][0073][0074]
其中和为拉格朗日系数,l∈[n]。若验证等式中有任意一项不成立,否则忽略该领导节点的消息。
[0075]
2-3:若2-1中的等式均成立,则向每个委员会成员发送消息《echo,π

》。
[0076]
2-4:当委员会成员pi收到来自其他成员节点的n-t个包含相同π

的消息《echo,π

》,或收到来自其他成员节点t+1个《ready,π

,*》消息后,验证
[0077]
π=π


[0078]
其中*表示任意消息内容。若上述等式成立,则向委员会中的每个成员p
l
发送消息《ready,π

,share,b*(i,l),w
b*(i,l)
》,其中b
*
(i,l)为p
l
对应的稀释份额。否则,令
[0079]
π=π


[0080]
并丢弃步骤2-2中生成的且向每个委员会成员发送消息《ready,π

,noshare》。
[0081]
步骤3、委员会计算完整份额:每个委员会成员对来自其他成员的稀释份额上的值进行正确性验证,当其收到t+1个有效值后,通过拉格朗日插值计算得到完整份额。此时,每个(旧)委员会成员将分别持有一个完整份额,即一个2t阶多项式。
[0082]
具体地,委员会计算完整份额的具体过程如下所述:
[0083]
3-1:委员会成员pi初始化集合和当其收到来自其他成员的n-t个消息《ready,π

,*》后,对于每条此类消息,若*部分的内容为share,v
i,j
,w
i,j
,则验证
[0084][0085]
若验证通过,则将点(j,v
i,j
)存入集合
[0086]
3-2:当集合中的元素数量大于等于t+1时,通过拉格朗日插值计算出t阶多项式b(x,i),并向委员会中的每个成员p
l
发送消息《distribute,b(l,i),w
b(l,i)
》。
[0087]
3-3:当pi收到来自其他成员pj的消息《distribute,v
j,i
,w
j,i
》,先验证
[0088][0089]
若验证通过,则将点(j,v
j,i
)存入集合
[0090]
3-4:当集合中的点大于等于2t+1时,通过拉格朗日插值法计算2t阶多项式b(i,y)。此时,可以保证每个委员会成员pi都能获得一个正确的完整份额。
[0091]
在步骤s102中,份额更新阶段:更新多个初始委员会成员得到多个新的委员会成员,将多个初始委员会成员的完整份额上的一个值发送至多个新的委员会成员,计算接收到的多个完整份额的值,得到多个新的委员会节点的完整份额。
[0092]
通过在上述可验证秘密分享阶段获取秘密值的完整份额后,为了得到多个新的委员会节点的完整份额,进一步地,本技术的实施例还可以周期性地对委员会持有的份额进行更新。
[0093]
在本技术的一个实施例中,份额更新阶段进一步包括:向多个新的委员会成员发送完整份额多项式上的一个点,多个新的委员会成员通过拉格朗日插值计算稀释份额;多个新的委员会成员生成随机二元多项式,每个新的委员会成员分别获得随机二元多项式对应的一元多项式,并将一元多项式与计算出的稀释份额相加;每个新的委员会成员计算各自更新后的稀释份额多项式上的点,并发送给其他新的委员会成员,通过拉格朗日插值计算完整份额。
[0094]
上述份额更新阶段主要包括选取新委员会、建立通信信道、份额稀释、份额更新和完整份额转换等步骤,如图2所示。
[0095]
步骤1、选取新委员会:根据预先设定的规则,确定新委员会成员,用于接收新的密钥份额。本技术的实施例对新委员会的选取规则和成员更换不作限制,根据预先设定的规则,持有秘密份额的委员会ce经人员加入、退出等过程变为c
e+1
,其可以与ce完全相同,也可以与ce不相交,即新委员会可以与旧委员会完全相同或部分重合,也可以完全不同。
[0096]
步骤2、建立通信信道:新旧委员会成员之间建立点对点网络,用于后续消息传递。
[0097]
步骤3、份额稀释:每个旧委员会成员向新成员发送完整份额多项式上的一个点;每个新委员会成员验证来自旧委员会成员的消息并进行正确性验证,当其收集到t+1个点时,通过拉格朗日插值计算出自己的稀释份额;旧委员会成员在发送消息之后,删除所有相关信息并退出协议。
[0098]
具体地,份额稀释的具体过程如下所述:
[0099]
3-1:每个旧委员会成员持有从上述选取新委员会过程中或上一次份额更新阶段得到的至少2t+1个承诺-见证对其中i表示这2t+1个下标所在的集合。通过插值计算得到c
b(x,j)
和w
b(i,j)
,其中j∈[n]。
[0100]
3-2:向每个新成员发送消息《sharereduce,c
b(x,j)
,b(i,j),w
b(i,j)
》。在发送消息之后,删除所有相关信息并退出协议。
[0101]
3-3:新成员初始化集合当其收到来自旧成员的2t+1个具有相同承诺值c的消息《sharereduce,c,vj,wj》后,对于每条此类消息,验证
[0102]
kzg.verifyeval(c,j,vj,wj)=1。
[0103]
若验证通过,则将点(j,vj)存入集合
[0104]
3-4:当中有t+1个点时,通过拉格朗日插值计算出自己的稀释份额b(x,i)。
[0105]
步骤4、份额更新:新委员会通过可靠广播、多项式承诺、门限签名和异步多值可验证拜占庭协议等技术生成随机二元多项式,每个成员分别获得一个该多项式对应的一元多项式,并将该多项式与步骤3中得到的稀释份额相加,完成稀释份额的更新,如图3所示。其中,所生成的随机二元多项式常数项为0,且x项最高次为t,y项最高次为2t。
[0106]
具体地,份额更新的具体过程如下所述:
[0107]
4-1:委员会成员初始化一个证明集合两个标识符集合flg_c[1,...,n]={0,...,0}和flg-rec[1,...,n]={0,...,0},以及三个辅助集合rec[1,...,n]={0,...,0},以及三个辅助集合和
[0108]
4-2:p
ie+1
生成一个满足fi(0)=0的2t阶随机多项式fi(y),并为每个新委员会成员p
je+1
生成一个t次多项式r
i,j
(x),使得r
i,j
(0)=fi(j)。
[0109]
4-3:对于所有j∈[2t+1],p
ie+1
计算对r
i,j
(y)的kzg承诺,即计算
[0110]zi,j
(x)=r
i,j
(x)-fi(j)
[0111][0112][0113][0114]
4-4:p
ie+1
将上述承诺整合为将《com,πi》作为可靠广播实例rbc
1,i
输入进行。
[0115]
4-5:每个新委员会成员p
ie+1
接收到来自rbc
1,j
的消息《com,πj》后,先将πj解析为对于每个k∈[2t+1],验证
[0116][0117][0118][0119]
其中,为拉格朗日系数。
[0120]
4-6:若步骤4-5中的等式均成立,对于每个新委员会成员p
le+1
,p
ie+1
通过拉格朗日插值法计算
[0121][0122]
其中为拉格朗日系数。计算完成后,p
ie+1
设置验证标识符flg_c[j]为1。若验证等式中有任意一项不成立,否则忽略该领导节点的消息。
[0123]
4-7:为便于表述,将r
i,j
(k)记为[fi(j)]k。对于每个新委员会成员p
ke+1
,p
ie+1
计算
[0124][0125]
其中j∈[2t+1]。p
ie+1
随后向p
ke+1
发送
[0126]
4-8:当p
ie+1
收到来自p
je+1
的消息《reshare,{v
j,k,i
,w
j,k,i
}
k∈[2t+1]
》后,等待步骤4-7中的验证标识符flg_c[j]变为1,再验证
[0127][0128]
若对于所有k∈[2t+1]都验证通过,则计算
[0129][0130][0131][0132]
其中,为拉格朗日系数,l∈[n]。
[0133]
4-9:p
ie+1
向其他成员p
le+1
发送消息其中,l∈[n]。
[0134]
4-10:当p
ie+1
收到来自其他成员p
je+1
的消息后,等待步骤4-8中的验证标识符flg_c[k]变为1后,验证
[0135][0136][0137]
若验证通过,则将点(j,v
k,i,j
)存入集合将存入集合
[0138]
4-11:当集合中的元素数量大于等于t+1时,p
ie+1
通过拉格朗日插值计算出t阶多项式r
k,i
(x),并设置恢复标识符flg_rec[k]为1。
[0139]
4-12:当集合中的元素数量大于等于2t+1时,p
ie+1
计算
[0140][0141]
其中,
[0142]
4-13:p
ie+1
将步骤4-12中得到的(k,σk)存入vi[k]。
[0143]
4-14:当集合vi中有t+1个签名后,p
ie+1
将《mvba.in,vi》作为输入调用mvba,其中,mvba要求输出包含t+1个有效的签名。
[0144]
4-15:当收到来自mvba的输出消息后,p
ie+1
将候选集合表示为
[0145]
4-16:对于所有中的元素(j,σj),p
ie+1
等待步骤4-11中的恢复标识符flg_rec[j]变为1,再计算
[0146][0147]b′
(x,i)=b(x,i)+q(x,i)
[0148][0149]
其中,l∈[n]。
[0150]
步骤5、完整份额转换:每个新委员会成员计算各自更新后的稀释份额多项式上的点,并将其发送给其他成员;同时,每个新委员会成员等待2t+1个验证通过的点,通过拉格朗日插值获得自己的完整份额,即一个t阶多项式。
[0151]
上述完整份额转换的详细过程如下所述:
[0152]
5-1:每个新委员会成员p
ie+1
初始化集合和
[0153]
5-2:p
ie+1
计算对步骤4-16中得到的b

(x,i)的承诺
[0154]
cb′
(x,i)
=kzg.commit(b

(x,i))。
[0155]
5-3:p
ie+1
将消息《newcom,cb′
(x,i)
》作为输入调用rbc
2,i

[0156]
5-4:对于每个新委员会中的成员p
je+1
,p
ie+1
计算
[0157]
《b

(j,i),wb′
(x,i)
》=kzg.commit(b

(x,i))
[0158]
并将消息《sharedist,b

(j,i),wb′
(x,i)
》发送给p
je+1

[0159]
5-5:当p
ie+1
收到来自rbc
2,j
的输出《newcom,cb′
(x,j)
》时,验证
[0160]
cb′
(x,j)
=c
b(x,j)cq(x,j)’[0161]
其中,c
q(x,j)
来自步骤4-16。若验证通过,则将(j,cb′
(x,j)
)存入集合。
[0162]
5-6:当p
ie+1
收到来自p
je+1
的消息《sharedist,vj,wj》时,等待集合中出现(j,c
b,(x,j)
),验证
[0163]
kzg.verifyeval(cb′
(x,j)
,i,vj,wj)=1。
[0164]
若验证通过,则将《j,cb′
(x,j)
,vj,wj》存入集合
[0165]
5-7:当集合中的元素数量大于等于2t+1时,p
ie+1
通过拉格朗日插值法计算2t阶多项式b

(i,y),并向新委员会内所有成员发送消息success。
[0166]
5-8:当收到2t+1个success消息后,份额更新结束,进入正常状态。
[0167]
可以理解的是,本技术的实施例通过领导节点、旧委员会成员以及新委员会成员三种实体之间相关参数的处理和传递,最终获得更新后的完整份额。具体地,领导节点在上述秘密分享阶段将秘密值分享给旧委员会成员;旧委员会成员在一段时间内维护各自持有的完整份额,并在上述份额更新阶段向新委员会成员发送必要的消息;新委员会成员在份额更新阶段接收来自旧委员会成员的消息,并共同生成一个公共的随机二元多项式,用于更新原有的稀释份额,最终在新委员会内通过份额转换获得更新后的完整份额。
[0168]
此外,需要说明的是,本技术实施例在上述份额更新阶段仍可保证系统的可用性,即在系统的任意时刻,相关的委员会都可以利用其掌握的秘密份额进行相关操作,例如门限签名、门限解密、安全多方计算等。
[0169]
由此,本技术的实施例通过支持高效的委员会的动态变更,从而可在计算机能力不断增长的背景下通过调整委员会大小和门限值保证秘密值的机密性,提升了秘密分享的
灵活性,有利于秘密分享份额的长期维护。此外,委员会成员的调整使本技术的实施例不仅能够灵活适用于更多的现实场景,还可将通信复杂度从现有的o(κn4)降为o(κn3),其中κ为安全参数,n为参与秘密分享的节点数量。
[0170]
在步骤s103中,秘密重构阶段:根据多个新的委员会成员的完整份额恢复秘密值。
[0171]
经过上述份额更新阶段获取多个新的委员会节点的完整份额后,本技术的实施例还可以通过秘密重构阶段,根据上述多个新的委员会节点的完整份额,恢复出原始的秘密值,本技术的实施例所提出的异步网络的动态委员会秘密分享更新方法的具体执行逻辑以及生命周期分别如图4、图5所示。
[0172]
可选地,在本技术的一个实施例中,秘密重构阶段进一步包括:检测是否接收到秘密重构指令;在接收到秘密重构指令时,通过拉格朗日插值恢复出完整份额的二元多项式,得到秘密值。
[0173]
具体地,上述秘密重构阶段主要分为发送完整份额和恢复秘密值两个步骤。
[0174]
步骤1、发送完整份额:若委员会收到来自领导节点的秘密重构请求,则向该领导节点发送完整份额。
[0175]
具体地,领导节点向最新的委员会发送消息reconstruct,最新的委员会成员pi收到来自领导节点的reconstruct消息后,向领导节点发送《recon,b(i,y),{c
b(j,y)
}
j∈[n]
》。
[0176]
步骤2、恢复秘密值:领导节点收集t+1个有效的完整份额,并通过拉格朗日插值恢复出原有的二元多项式,该多项式的常数项即为秘密值。
[0177]
在领导节点收到t+1个具有相同承诺组{c
b(j,y)
}
j∈[n]
的消息《recon,b(i,y),{c
b(j,y)
}
j∈[n]
》后,验证c
b(i,y)
为b(i,y)的承诺。若对所有t+1个j验证通过,则通过拉格朗日插值恢复出二元多项式b(x,y),并得到秘密值s=b(0,0)。
[0178]
根据本技术实施例提出的异步网络的动态委员会秘密分享更新方法,通过在委员会内部进行秘密值分享,多个初始委员会成员根据秘密值计算秘密值的完整份额;其次,更新多个初始委员会成员得到多个新的委员会成员,将多个初始委员会成员的完整份额上的一个值发送至多个新的委员会成员,计算接收到的多个完整份额的值,得到多个新的委员会节点的完整份额;继而,根据多个新的委员会成员的完整份额恢复秘密值。此外,本技术的实施例利用可靠广播、多项式承诺、多值可验证拜占庭协议、门限签名等技术,实现了支持异步网络,放宽了对网络环境的假设,进而加强了抵御敌手攻击的能力,保证了系统在恶劣网络条件下的安全性。
[0179]
其次参照附图描述根据本技术实施例提出的异步网络的动态委员会秘密分享更新装置。
[0180]
图6是本技术实施例的异步网络的动态委员会秘密分享更新装置的方框示意图。
[0181]
如图6所示,该异步网络的动态委员会秘密分享更新装置10包括:分享模块100、更新模块200以及重构模块300。
[0182]
其中,分享模块100,用于在委员会内部进行秘密值分享,多个初始委员会成员根据秘密值计算秘密值的完整份额;更新模块200,用于更新多个初始委员会成员得到多个新的委员会成员,将多个初始委员会成员的完整份额上的一个值发送至多个新的委员会成员,计算接收到的多个完整份额的值,得到多个新的委员会节点的完整份额;重构模块300,用于根据多个新的委员会成员的完整份额恢复秘密值。
[0183]
在本技术的一个实施例中,分享模块100包括:承诺单元,用于利用秘密值生成二元多项式,对二元多项式进行承诺,将承诺和二元多项式的一个稀释份额发送至多个初始委员会成员;第一计算单元,用于计算多个初始委员会成员接收到的稀释份额多项式上各点的值,并转发给多个初始委员会成员,对接收到的稀释份额多项式上各点的值进行计算,得到秘密值的完整份额。
[0184]
在本技术的一个实施例中,更新模块200包括:第二计算单元,用于向多个新的委员会成员发送完整份额多项式上的一个点,多个新的委员会成员通过拉格朗日插值计算稀释份额;生成单元,用于多个新的委员会成员生成随机二元多项式,每个新的委员会成员分别获得随机二元多项式对应的一元多项式,并将一元多项式与计算出的稀释份额相加;第三计算单元,用于每个新的委员会成员计算各自更新后的稀释份额多项式上的点,并发送给其他新的委员会成员,通过拉格朗日插值计算完整份额。
[0185]
在本技术的一个实施例中,重构模块300包括:检测单元,用于检测是否接收到秘密重构指令;恢复单元,用于在接收到秘密重构指令时,通过拉格朗日插值恢复出完整份额的二元多项式,得到秘密值。
[0186]
需要说明的是,前述对异步网络的动态委员会秘密分享更新方法实施例的解释说明也适用于该实施例的异步网络的动态委员会秘密分享更新装置,此处不再赘述。
[0187]
根据本技术实施例提出的异步网络的动态委员会秘密分享更新装置,本技术的实施例分为三个阶段。第一个阶段为可验证秘密分享阶段,用于领导节点在委员会内部进行秘密分享,使得每个委员会成员获得一个完整份额;第二个阶段为份额更新阶段,用于周期性地对委员会持有的份额进行更新,同时,该阶段还支持委员会成员和大小的更改;第三个阶段为秘密重构阶段,用于根据完整份额恢复出原始的秘密值。第二个阶段可以重复若干次,直到领导节点提出重构秘密的指令,从而本技术的实施例在异步网络模型下的秘密分享技术,将同步网络假设减弱到异步,使秘密份额更新时受到网络干扰更小,加强了抵御动态敌手的能力,提高了秘密分享与份额更新的安全性。
[0188]
图7为本技术实施例提供的电子设备的结构示意图。该电子设备可以包括:
[0189]
存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序。
[0190]
处理器702执行程序时实现上述实施例中提供的异步网络的动态委员会秘密分享更新方法。
[0191]
进一步地,电子设备还包括:
[0192]
通信接口703,用于存储器701和处理器702之间的通信。
[0193]
存储器701,用于存放可在处理器702上运行的计算机程序。
[0194]
存储器701可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0195]
如果存储器701、处理器702和通信接口703独立实现,则通信接口703、存储器701和处理器702可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便
于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0196]
可选的,在具体实现上,如果存储器701、处理器702及通信接口703,集成在一块芯片上实现,则存储器701、处理器702及通信接口703可以通过内部接口完成相互间的通信。
[0197]
处理器702可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
[0198]
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的异步网络的动态委员会秘密分享更新方法。
[0199]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0200]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0201]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0202]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0203]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1