CN113612604B - 面向异步网络的安全分布式随机数生成方法及装置 - Google Patents
面向异步网络的安全分布式随机数生成方法及装置 Download PDFInfo
- Publication number
- CN113612604B CN113612604B CN202110870293.9A CN202110870293A CN113612604B CN 113612604 B CN113612604 B CN 113612604B CN 202110870293 A CN202110870293 A CN 202110870293A CN 113612604 B CN113612604 B CN 113612604B
- Authority
- CN
- China
- Prior art keywords
- secret
- nodes
- random number
- algorithm
- root
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种面向异步网络的安全分布式随机数生成方法及装置,属于信息安全领域,该方法包括:基于节点选取算法选取秘密分发者;基于秘密共享算法,使得秘密分发者为所有节点分发秘密份额;基于秘密恢复算法,使得所有节点对秘密份额的来源达成共识,并恢复原秘密值;基于随机数计算算法,使得所有节点计算最终随机数;基于随机数验证算法,使得所有节点验证随机数是否正确;基于状态更新算法,在随机数验证正确后,使得所有节点进入到下一次随机数生成过程中。该方法可用于保证分布式随机数的安全性,解决同步网络模型的局限性。
Description
技术领域
本发明涉及信息安全技术领域,特别涉及一种面向异步网络的安全分布式随机数生成方法及装置。
背景技术
随机数在当今许多领域内都发挥着重要作用,比如电子彩票、车牌摇号、随机抽样、实验仿真等。除此之外,随机数在区块链和密码学领域也扮演着极其重要的角色。在区块链共识机制及分片技术中,随机数可用于领导者选取、委员会成员分配或委员会重配置过程。然而现有应用中随机数的生成大多依赖于可信第三方机构,其中主要包括由美国国家标准与技术研究院或Random.org等网站提供的随机数。由于随机数在产生和使用过程中的不透明性,因随机数安全性而产生的各种问题层出不穷。因此,为了提高随机数生成过程的透明性,分布式随机数生成方法受到了越来越多的关注。
分布式随机数生成方法就是在无可信第三方的环境下,由一组参与者自己生成公开可验证的随机数,从而防止中心机构作弊,避免单点故障,提高安全性。然而在复杂的实际应用场景下,参与者之间往往是互不信任的,其中也会存在着若干个恶意的参与者,他们企图干预随机数的输出结果以对自己有利。为了避免上述问题发生,近年来学者们提出了多种分布式随机数生成方法。
现有方法从所依赖的密码学技术角度可以分为基于秘密共享的方法、基于可验证随机函数的方法、基于门限签名的方法和基于可验证延迟函数的方法。从是否交互角度可以分为交互的分布式随机数生成方法和非交互的分布式随机数生成方法,其中后者需要在初始化阶段使用复杂的分布式密钥生成技术,因此本发明聚焦交互的分布式随机数生成方法。该类方法目前仍面临着两个关键性问题:(1)大多数系统基于同步网络模型,网络假设较强,与现实网络环境不符;(2)部分系统通信复杂度过高,达到O(n3)甚至O(n4)(n表示总节点数),而通信复杂度较低的一些系统通常牺牲了随机数的抗偏置性和不可预测性。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种面向异步网络的安全分布式随机数生成方法,该方法可用于保证分布式随机数的安全性,解决同步网络模型的局限性。
本发明的另一个目的在于提出一种面向异步网络的安全分布式随机数生成装置。
为达到上述目的,本发明一方面实施例提出了一种面向异步网络的安全分布式随机数生成方法,包括:
基于节点选取算法选取秘密分发者;
基于秘密共享算法,使得所述秘密分发者为所有节点分发秘密份额;
基于秘密恢复算法,使得所述所有节点对所述秘密份额的来源达成共识,并恢复原秘密值;
基于随机数计算算法,使得所述所有节点计算最终随机数;
基于随机数验证算法,使得所述所有节点验证随机数是否正确;以及
基于状态更新算法,在所述随机数验证正确后,使得所述所有节点进入到下一次随机数生成过程中。
另外,根据本发明上述实施例的面向异步网络的安全分布式随机数生成方法还可以具有以下附加的技术特征:
可选地,在本发明的一个实施例中,所述基于节点选取算法选取秘密分发者,包括:选取用于确定参与节点的顺序的初始种子;基于参与节点的顺序轮流选取用于执行所述秘密共享算法的秘密分发者集合。
可选地,在本发明的一个实施例中,所述基于秘密共享算法,使得所述秘密分发者为所有节点分发秘密份额,包括:从所述秘密分发者集合中的至少一个秘密分发者随机选取秘密值,并计算多项式承诺、根承诺和点值,向所述所有节点发送承诺,以在所述所有节点验证承诺消息的正确后,计算对应的点值,且向其他节点发送响应消息;在所述所有节点验证响应消息正确后,发送根承诺,其中,若收到f+1条响应消息和2f+1个相同的根承诺,则恢复秘密份额;若只收到f+1个根承诺,且之前未发送过根承诺,则发送根承诺,并等待f+1条响应消息到达,且在到达之后恢复相应的秘密份额,其中,f表示恶意节点数。
可选地,在本发明的一个实施例中,所述基于秘密恢复算法,使得所述所有节点对所述秘密份额的来源达成共识,并恢复原秘密值,包括:初始化标签集合计数器和标签候选集,在收到f+1个秘密份额后,发送第一个标签集合,后续再收到新的秘密份额时则发送新的标签集合;收到2f+1条相同的最终标签集合后,发送已达成共识的标签集合中对应的秘密份额,且收到p+1个秘密份额后,根据拉格朗日差值恢复原秘密值,其中,p表示秘密恢复门限值。
可选地,在本发明的一个实施例中,所述基于随机数计算算法,使得所述所有节点计算最终随机数,包括:在所有节点恢复出已达成共识的标签集合中对应的秘密值后,将所有秘密值异或得到所述最终随机数。
可选地,在本发明的一个实施例中,所述基于随机数验证算法,使得所述所有节点验证随机数是否正确,包括:通过与参与节点交互得到辅助验证列表,其中,所述辅助验证列表包括每个点值计算结果及其对应的承诺;验证所述每个点值计算是否正确,若验证通过,则恢复原秘密值,根据所有秘密值计算随机数,并验证所述随机数计算是否正确。
为达到上述目的,本发明另一方面实施例提出了一种面向异步网络的安全分布式随机数生成装置,包括:
选取模块,用于基于节点选取算法选取秘密分发者;
分发模块,用于基于秘密共享算法,使得所述秘密分发者为所有节点分发秘密份额;
恢复模块,用于基于秘密恢复算法,使得所述所有节点对所述秘密份额的来源达成共识,并恢复原秘密值;
计算模块,用于基于随机数计算算法,使得所述所有节点计算最终随机数;
验证模块,用于基于随机数验证算法,使得所述所有节点验证随机数是否正确;以及
更新模块,用于基于状态更新算法,在所述随机数验证正确后,使得所述所有节点进入到下一次随机数生成过程中。
另外,根据本发明上述实施例的面向异步网络的安全分布式随机数生成装置还可以具有以下附加的技术特征:
可选地,在本发明的一个实施例中,所述选取模块进一步用于,选取用于确定参与节点的顺序的初始种子;基于参与节点的顺序轮流选取用于执行所述秘密共享算法的秘密分发者集合。
可选地,在本发明的一个实施例中,所述分发模块,进一步用于,从所述秘密分发者集合中的至少一个秘密分发者随机选取秘密值,并计算多项式承诺、根承诺和点值,向所述所有节点发送承诺,以在所述所有节点验证承诺消息的正确后,计算对应的点值,且向其他节点发送响应消息;在所述所有节点验证响应消息正确后,发送根承诺,其中,若收到f+1条响应消息和2f+1个相同的根承诺,则恢复秘密份额;若只收到f+1个根承诺,且之前未发送过根承诺,则发送根承诺,并等待f+1条响应消息到达,且在到达之后恢复相应的秘密份额,其中,f表示恶意节点数。
可选地,在本发明的一个实施例中,所述恢复模块,进一步用于初始化标签集合计数器和标签候选集,在收到f+1个秘密份额后,发送第一个标签集合,后续再收到新的秘密份额时则发送新的标签集合;收到2f+1条相同的最终标签集合后,发送已达成共识的标签集合中对应的秘密份额,且收到p+1个秘密份额后,根据拉格朗日差值恢复原秘密值,其中,p表示秘密恢复门限值。
本发明实施例的面向异步网络的安全分布式随机数生成方法及装置,具有以下有益效果:
1)解决了网络模型带来的局限性,基于异步网络模型,可以容忍诚实节点消息被任意延迟。
2)保证随机数的不可预测性、抗偏置性和可用性,恶意节点无法提前计算下一次随机数输出,恶意节点无法影响随机数的分布且无法影响诚实节点得到随机数输出。
3)基于秘密共享方案,无需使用分布式密钥生成技术,无需在初始化过程中生成公私钥对。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的面向异步网络的安全分布式随机数生成方法流程框图;
图2为根据本发明一个实施例的面向异步网络的安全分布式随机数生成方法流程示意图;
图3为根据本发明一个实施例的秘密共享算法示意图;
图4为根据本发明一个实施例的秘密恢复算法示意图;
图5为根据本发明一个实施例的面向异步网络的安全分布式随机数生成装置结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的面向异步网络的安全分布式随机数生成方法及装置。
首先将参照附图描述根据本发明实施例提出的面向异步网络的安全分布式随机数生成方法。
图1为根据本发明一个实施例的面向异步网络的安全分布式随机数生成方法流程框图。图2为根据本发明一个实施例的面向异步网络的安全分布式随机数生成方法流程示意图。
如图1所和图2所示,该面向异步网络的安全分布式随机数生成方法包括以下步骤:
在步骤S101中,基于节点选取算法选取秘密分发者。
可选地,在本发明的一个实施例中,基于节点选取算法选取秘密分发者,包括:选取用于确定参与节点的顺序的初始种子;基于参与节点的顺序轮流选取用于执行秘密共享算法的秘密分发者集合。
具体地,节点选取算法用于选取后续流程中的秘密分发者,包括初始种子选取和秘密分发者选取,具体为:
初始种子选取:选取初始种子用于确定参与节点的顺序。
秘密分发者选取:按参与节点的顺序轮流选取2f+1的秘密分发者集合(f表示恶意节点数),用于后续执行秘密共享算法。
在步骤S102中,基于秘密共享算法,使得秘密分发者为所有节点分发秘密份额。
可选地,在本发明的一个实施例中,基于秘密共享算法,使得秘密分发者为所有节点分发秘密份额,包括:从秘密分发者集合中的至少一个秘密分发者随机选取秘密值,并计算多项式承诺、根承诺和点值,向所有节点发送承诺,以在所有节点验证承诺消息的正确后,计算对应的点值,且向其他节点发送响应消息;在所有节点验证响应消息正确后,发送根承诺,其中,若收到f+1条响应消息和2f+1个相同的根承诺,则恢复秘密份额;若只收到f+1个根承诺,且之前未发送过根承诺,则发送根承诺,并等待f+1条响应消息到达,且在到达之后恢复相应的秘密份额,其中,f表示恶意节点数。
具体地,如图3所示,秘密共享算法的主要作用是秘密分发者为所有节点分发秘密份额。包括承诺发送、消息响应和秘密份额恢复,具体为:
承诺发送:2f+1个秘密分发者随机选取秘密值,计算多项式承诺、根承诺和点值,向所有节点发送承诺。
消息响应:所有节点验证承诺消息的正确性,若验证通过,计算对应的点值,向其他节点发送响应消息。
秘密份额恢复;所有节点验证响应消息的正确性,验证通过后发送根承诺。若收到f+1条响应消息和2f+1个相同的根承诺,恢复秘密份额。若只收到f+1个根承诺,且之前未发送过根承诺,则发送根承诺,并等待f+1条响应消息到达,之后恢复相应的秘密份额。只要有一个诚实节点完成秘密共享算法,那么所有诚实节点最终都能完成。
在步骤S103中,基于秘密恢复算法,使得所有节点对秘密份额的来源达成共识,并恢复原秘密值。
可选地,在本发明的一个实施例中,基于秘密恢复算法,使得所有节点对秘密份额的来源达成共识,并恢复原秘密值,包括:初始化标签集合计数器和标签候选集,在收到f+1个秘密份额后,发送第一个标签集合,后续再收到新的秘密份额时则发送新的标签集合;收到2f+1条相同的最终标签集合后,发送已达成共识的标签集合中对应的秘密份额,且收到p+1个秘密份额后,根据拉格朗日差值恢复原秘密值,其中,p表示秘密恢复门限值。
具体地,如图4所示,秘密恢复算法的主要作用是所有节点对秘密份额来源达成共识,并恢复原秘密值,包括投票共识和原秘密值恢复,具体为:
投票共识:所有节点初始化标签集合计数器和标签候选集,在收到f+1个秘密份额后,发送第一个标签集合。后续若收到新的秘密份额,则发送新的标签集合。
原秘密值恢复:收到2f+1条相同的最终标签集合后,发送已达成共识的标签集合中对应的秘密份额,收到p+1个秘密份额后(p表示秘密恢复门限值),根据拉格朗日差值恢复原秘密值。
在步骤S104中,基于随机数计算算法,使得所有节点计算最终随机数。
可选地,在本发明的一个实施例中,基于随机数计算算法,使得所有节点计算最终随机数,包括:在所有节点恢复出已达成共识的标签集合中对应的秘密值后,将所有秘密值异或得到最终随机数。
具体地,随机数计算算法的主要作用是所有节点计算得到最终随机数输出。等待所有节点恢复出已达成共识的标签集合中对应的秘密值,将所有秘密值异或得到最终随机数输出。
在步骤S105中,基于随机数验证算法,使得所有节点验证随机数是否正确。
可选地,在本发明的一个实施例中,基于随机数验证算法,使得所有节点验证随机数是否正确,包括:通过与参与节点交互得到辅助验证列表,其中,辅助验证列表包括每个点值计算结果及其对应的承诺;验证每个点值计算是否正确,若验证通过,则恢复原秘密值,根据所有秘密值计算随机数,并验证随机数计算是否正确。
具体地,随机数验证算法的主要作用是所有节点验证随机数输出的正确性。包括获取验证辅助信息和随机数验证,具体为:
获取验证辅助信息:外部验证者通过与参与节点交互得到辅助验证列表,辅助验证列表包括每个点值计算结果及其对应的承诺。
随机数验证:验证每个点值计算是否正确,若验证通过,则恢复原秘密值,根据所有秘密值计算随机数输出,验证随机数计算是否正确。
在步骤S106中,基于状态更新算法,在随机数验证正确后,使得所有节点进入到下一次随机数生成过程中。
具体地,状态更新算法的主要作用是,在随机数验证通过后,所有节点进入到下一次随机数生成过程中,所有节点完成本次随机数生成后,并开启下一次随机数生成过程。
下面结合一个具体实施例对本发明的面向异步网络的安全分布式随机数生成方法进行详细说明。
假设网络中的总节点数量n满足n=3f+1,其中f为系统能够容忍的最大恶意节点数。需要说明的是,下述具体实施方式中使用Kate、Zaverucha和Goldberg在ASIACRYPT2010会议上提出的承诺方案(简称KZG承诺),该承诺主要包括五个算法ΠKZG=(Setup,Com,Eval,Verify,Hom)。表1为变量名及含义。
表1
节点选取算法
步骤1:初始种子选取
初始化状态st和轮数rn均为0,并选取一个初始随机数R0。该初始随机数R0有多种选取方法,例如可以通过现有区块链获取某一区块的哈希值作为R0。
步骤2:秘密分发者选取
(1)使用R0生成协议参与节点的随机序列,即R0作为种子来随机排列参与节点P的集合。
(2)在每一次生成随机数开始时,选取2f+1个节点作为本次随机数的秘密分发者,选取方式采用轮流选取。令Pi是参与节点列表中的第i个节点(下标从1开始),那么每一次生成随机数Rr(r≥1)时的秘密分发者为P1+(r-1)(2f+1)mod n,...,Pr(2f+1)mod n。
秘密共享算法
步骤1:承诺发送
(1)2f+1个秘密分发者Pi随机选取秘密si,并将此次秘密共享过程记为标签ID.di。
(2)秘密分发者Pi计算承诺和点值,随机选取阶为p的多项式Ri,使得Ri(0)=si。对于m∈[1,n],秘密分发者Pi随机选取阶为f的多项式Si,m,使得Si,m(i)=Ri(i),计算多项式承诺其中pp为公共参数,对于每个多项式Si,m计算多项式承诺
(3)对于j∈[1,n],秘密分发者Pi计算点值Si,m(j)=Eval(pp,Si,m,j),对于j∈[1,n],计算多项式承诺并计算点值Ti,j(j)=Eval(pp,Ti,j,j),最后对多项式承诺计算根承诺Ci。
(4)秘密分发者向每个节点Pj(1≤j≤n)发送消息(ID.di,send,setj),其中send表示该消息是秘密分发者发送的,setj包括多项式Ri的承诺n个多项式Si,m的承诺根承诺Ci、每个多项式Si,m上的点值计算yi,j=(Si,1(j),...,Si,n(j))和每个多项式Ti,j上的点值计算yi=(Ti,1(1),...Ti,j(j),...,Ti,n(n))。
步骤2:消息响应
(1)当节点Pj(1≤j≤n)第一次收到秘密分发者发送的(ID.di,send,setj)消息后,令yi,j=(Si,1(j),...,Si,n(j))以及yi=(Ti,1(1),...,Ti,n(n)),对每个点值计算和承诺验证和是否成立,其中m∈[1,n]。验证多项式承诺和所有是否在根承诺Ci中。验证Ti,j(j)=0是否成立。
(2)节点Pj(1≤j≤n)验证通过后,向其他节点Pt(1≤t≤n)发送响应消息(ID.di,echo,infoj,t),其中echo表示该消息是响应消息,infoj,t包括根承诺Ci、多项式Si,t的承诺和多项式Si,t上的点值计算Si,t(j)。
步骤3:秘密份额恢复
(2)节点Pt(1≤t≤n)验证通过后向其他节点Pk(1≤k≤n)发送准备消息(ID.di,ready,Ci),其中ready表示该消息是准备消息。
(3)当节点Pk(1≤t≤n)之前没发送过准备消息,且已收到f+1个准备消息,则向其他节点发送准备消息(ID.di,ready,Ci)。
(4)当节点Pt(1≤t≤n)收到2f+1个关于同一个根承诺Ci的准备消息,等待f+1个对该根承诺Ci的响应消息到达。
(5)节点Pt(1≤t≤n)对至少f+1个有效的Si,t(j)执行拉格朗日差值计算得到秘密分享多项式Si,t,计算点值Ri,t=Si,t(i)=Eval(pp,Si,t,i),得到秘密份额。
秘密恢复算法
步骤1:投票共识
(1)每个节点Pk(1≤k≤n)本地维护着标签集合计数器Ck[·]和标签候选集V,Ck[·]初始化为0,V初始化为空。
(4)节点Pj(1≤j≤n)每收到其他节点Pk发送的集合(i表示第i次发送的标签集合),首先判断是否包含Pk之前所发送的集合和候选集V的并集,若包含,则令并将计数器Cj[Vi]自增1,否则直接丢弃该消息。
(5)对于节点Pj(1≤j≤n),若某一时刻计数器Cj[Vi]=2f+1,则将Vi中元素加入到候选集V中,并等待相应的份额到达。
(6)令节点最后一次广播的集合为Vfinal,当收到2f+1条相同的Vfinal后,所有节点在本地将候选集V更新,并(1)等待相应的份额到达;(2)若份额全部到达,则进行步骤2原秘密值恢复。
步骤2:原秘密值恢复
(1)节点Pj(1≤j≤n)向其他节点发送消息(ID.di,reconstruct_share,sharesj),其中reconstruct_share表示该消息是秘密恢复消息,sharesj包括多项式Si,j上的点值计算Si,j(j)和多项式Si,j的承诺
(3)所有节点收到p+1个有效的秘密份额后,即可通过拉格朗日差值恢复原秘密值si。
随机数计算算法
步骤1:获取验证辅助信息
步骤2:随机数验证
状态更新算法
在随机数验证通过后,所有节点状态进入终止态,等待新的随机数生成开始后,再次进入激活态,更新状态st=st+1,以及轮数rn=rn+1。
根据本发明实施例提出的面向异步网络的安全分布式随机数生成方法,包括初始化算法、节点选取算法、秘密共享算法、秘密恢复算法、随机数计算算法、随机数验证算法和状态更新算法。解决了网络模型带来的局限性,基于异步网络模型,可以容忍诚实节点消息被任意延迟。保证随机数的不可预测性、抗偏置性和可用性,恶意节点无法提前计算下一次随机数输出,恶意节点无法影响随机数的分布且无法影响诚实节点得到随机数输出。基于秘密共享方案,无需使用分布式密钥生成技术,无需在初始化过程中生成公私钥对。
其次参照附图描述根据本发明实施例提出的面向异步网络的安全分布式随机数生成装置。
图5为根据本发明一个实施例的面向异步网络的安全分布式随机数生成装置结构示意图。
如图5所示,该面向异步网络的安全分布式随机数生成装置包括:选取模块100、分发模块200、恢复模块300、计算模块400、验证模块500和更新模块600。
其中,选取模块100,用于基于节点选取算法选取秘密分发者。分发模块200,用于基于秘密共享算法,使得秘密分发者为所有节点分发秘密份额。恢复模块300,用于基于秘密恢复算法,使得所有节点对秘密份额的来源达成共识,并恢复原秘密值。计算模块400,用于基于随机数计算算法,使得所有节点计算最终随机数。验证模块500,用于基于随机数验证算法,使得所有节点验证随机数是否正确。更新模块600,用于基于状态更新算法,在随机数验证正确后,使得所有节点进入到下一次随机数生成过程中。
可选地,在本发明的一个实施例中,选取模块进一步用于,选取用于确定参与节点的顺序的初始种子;基于参与节点的顺序轮流选取用于执行秘密共享算法的秘密分发者集合。
可选地,在本发明的一个实施例中,分发模块,进一步用于,从秘密分发者集合中的至少一个秘密分发者随机选取秘密值,并计算多项式承诺、根承诺和点值,向所有节点发送承诺,以在所有节点验证承诺消息的正确后,计算对应的点值,且向其他节点发送响应消息;在所有节点验证响应消息正确后,发送根承诺,其中,若收到f+1条响应消息和2f+1个相同的根承诺,则恢复秘密份额;若只收到f+1个根承诺,且之前未发送过根承诺,则发送根承诺,并等待f+1条响应消息到达,且在到达之后恢复相应的秘密份额,其中,f表示恶意节点数。
可选地,在本发明的一个实施例中,恢复模块,进一步用于初始化标签集合计数器和标签候选集,在收到f+1个秘密份额后,发送第一个标签集合,后续再收到新的秘密份额时则发送新的标签集合;收到2f+1条相同的最终标签集合后,发送已达成共识的标签集合中对应的秘密份额,且收到p+1个秘密份额后,根据拉格朗日差值恢复原秘密值,其中,p表示秘密恢复门限值。
需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
根据本发明实施例提出的面向异步网络的安全分布式随机数生成装置,包括初始化算法、节点选取算法、秘密共享算法、秘密恢复算法、随机数计算算法、随机数验证算法和状态更新算法。解决了网络模型带来的局限性,基于异步网络模型,可以容忍诚实节点消息被任意延迟。保证随机数的不可预测性、抗偏置性和可用性,恶意节点无法提前计算下一次随机数输出,恶意节点无法影响随机数的分布且无法影响诚实节点得到随机数输出。基于秘密共享方案,无需使用分布式密钥生成技术,无需在初始化过程中生成公私钥对。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (2)
1.一种面向异步网络的安全分布式随机数生成方法,其特征在于,包括以下步骤:
基于节点选取算法选取秘密分发者;具体包括:选取用于确定参与节点的顺序的初始种子;基于参与节点的顺序轮流选取用于执行秘密共享算法的秘密分发者集合;
基于秘密共享算法,使得所述秘密分发者为所有节点分发秘密份额;具体包括:从所述秘密分发者集合中的至少一个秘密分发者随机选取秘密值,并计算多项式承诺、根承诺和点值,向所述所有节点发送承诺,以在所述所有节点验证承诺消息的正确后,计算对应的点值,且向其他节点发送响应消息;在所述所有节点验证响应消息正确后,发送根承诺,其中,若收到f+1条响应消息和2f+1个相同的根承诺,则恢复秘密份额;若只收到f+1个根承诺,且之前未发送过根承诺,则发送根承诺,并等待f+1条响应消息到达,且在到达之后恢复相应的秘密份额,其中,f表示恶意节点数;
基于秘密恢复算法,使得所述所有节点对所述秘密份额的来源达成共识,并恢复原秘密值;具体包括:初始化标签集合计数器和标签候选集,在收到f+1个秘密份额后,发送第一个标签集合,后续再收到新的秘密份额时则发送新的标签集合;收到2f+1条相同的最终标签集合后,发送已达成共识的标签集合中对应的秘密份额,且收到p+1个秘密份额后,根据拉格朗日差值恢复原秘密值,其中,p表示秘密恢复门限值;
基于随机数计算算法,使得所述所有节点计算最终随机数;具体包括:在所有节点恢复出已达成共识的标签集合中对应的秘密值后,将所有秘密值异或得到所述最终随机数;
基于随机数验证算法,使得所述所有节点验证随机数是否正确;具体包括:通过与参与节点交互得到辅助验证列表,其中,所述辅助验证列表包括每个点值计算结果及其对应的承诺;验证所述每个点值计算是否正确,若验证通过,则恢复原秘密值,根据所有秘密值计算随机数,并验证所述随机数计算是否正确;以及
基于状态更新算法,在所述随机数验证正确后,使得所述所有节点进入到下一次随机数生成过程中。
2.一种面向异步网络的安全分布式随机数生成装置,其特征在于,包括:
选取模块,用于基于节点选取算法选取秘密分发者;进一步用于选取用于确定参与节点的顺序的初始种子;基于参与节点的顺序轮流选取用于执行秘密共享算法的秘密分发者集合;
分发模块,用于基于秘密共享算法,使得所述秘密分发者为所有节点分发秘密份额;进一步用于从所述秘密分发者集合中的至少一个秘密分发者随机选取秘密值,并计算多项式承诺、根承诺和点值,向所述所有节点发送承诺,以在所述所有节点验证承诺消息的正确后,计算对应的点值,且向其他节点发送响应消息;在所述所有节点验证响应消息正确后,发送根承诺,其中,若收到f+1条响应消息和2f+1个相同的根承诺,则恢复秘密份额;若只收到f+1个根承诺,且之前未发送过根承诺,则发送根承诺,并等待f+1条响应消息到达,且在到达之后恢复相应的秘密份额,其中,f表示恶意节点数;
恢复模块,用于基于秘密恢复算法,使得所述所有节点对所述秘密份额的来源达成共识,并恢复原秘密值;进一步用于初始化标签集合计数器和标签候选集,在收到f+1个秘密份额后,发送第一个标签集合,后续再收到新的秘密份额时则发送新的标签集合;收到2f+1条相同的最终标签集合后,发送已达成共识的标签集合中对应的秘密份额,且收到p+1个秘密份额后,根据拉格朗日差值恢复原秘密值,其中,p表示秘密恢复门限值;
计算模块,用于所述基于随机数计算算法,使得所述所有节点计算最终随机数;进一步用于在所有节点恢复出已达成共识的标签集合中对应的秘密值后,将所有秘密值异或得到所述最终随机数;
验证模块,用于基于随机数验证算法,使得所述所有节点验证随机数是否正确;进一步用于通过与参与节点交互得到辅助验证列表,其中,所述辅助验证列表包括每个点值计算结果及其对应的承诺;验证所述每个点值计算是否正确,若验证通过,则恢复原秘密值,根据所有秘密值计算随机数,并验证所述随机数计算是否正确;以及
更新模块,用于基于状态更新算法,在所述随机数验证正确后,使得所述所有节点进入到下一次随机数生成过程中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110870293.9A CN113612604B (zh) | 2021-07-30 | 2021-07-30 | 面向异步网络的安全分布式随机数生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110870293.9A CN113612604B (zh) | 2021-07-30 | 2021-07-30 | 面向异步网络的安全分布式随机数生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612604A CN113612604A (zh) | 2021-11-05 |
CN113612604B true CN113612604B (zh) | 2022-05-17 |
Family
ID=78338671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110870293.9A Active CN113612604B (zh) | 2021-07-30 | 2021-07-30 | 面向异步网络的安全分布式随机数生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113612604B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398651B (zh) * | 2021-12-29 | 2023-07-28 | 张海滨 | 秘密数据共享方法及分布式系统 |
CN114422125B (zh) * | 2021-12-30 | 2023-08-18 | 张海滨 | 秘密数据共享、密钥生成方法及分布式系统 |
CN114884652A (zh) * | 2022-03-29 | 2022-08-09 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链上产生随机数种子的方法、系统和共识节点 |
CN114726517A (zh) * | 2022-03-29 | 2022-07-08 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链上产生随机数种子的方法、系统和共识节点 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762725B (zh) * | 2018-05-31 | 2021-01-01 | 飞天诚信科技股份有限公司 | 一种分布式随机数生成和检测的方法及系统 |
CN109981263B (zh) * | 2019-02-28 | 2021-10-26 | 复旦大学 | 一种基于cp-abe的分布式可验证随机数生成方法 |
-
2021
- 2021-07-30 CN CN202110870293.9A patent/CN113612604B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113612604A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113612604B (zh) | 面向异步网络的安全分布式随机数生成方法及装置 | |
Choudhuri et al. | Fairness in an unfair world: Fair multiparty computation from public bulletin boards | |
Zhou et al. | Efficient certificateless multi-copy integrity auditing scheme supporting data dynamics | |
CN110198213B (zh) | 一种基于秘密共享随机数共识算法的系统 | |
Das et al. | Spurt: Scalable distributed randomness beacon with transparent setup | |
Ahn et al. | Synchronized aggregate signatures: new definitions, constructions and applications | |
CN111314067B (zh) | 区块存储方法、装置、计算机设备及存储介质 | |
Kate et al. | Distributed key generation in the wild | |
Rahman et al. | Privacy-friendly secure bidding for smart grid demand-response | |
US20200252211A1 (en) | Method for generating secure randomness on blockchain | |
US20200014703A1 (en) | High throughput secure multi-party computation with identifiable abort | |
CN112651830B (zh) | 应用于电力资源共享网络的区块链共识方法 | |
Wan et al. | HIBEChain: A hierarchical identity-based blockchain system for large-scale IoT | |
CN115051985B (zh) | 一种基于动态节点的拜占庭容错共识协议的数据共识方法 | |
Santiago et al. | Concordia: a streamlined consensus protocol for blockchain networks | |
Huang et al. | P 2 OFE: Privacy-preserving optimistic fair exchange of digital signatures | |
CN115270145A (zh) | 一种基于联盟链和联邦学习的用户窃电行为检测方法及系统 | |
Zhao et al. | Fuzzy identity-based dynamic auditing of big data on cloud storage | |
CN114463009B (zh) | 一种用于提高大规模能源节点交易安全性的方法 | |
Alwen et al. | Collusion-free multiparty computation in the mediated model | |
CN115174570A (zh) | 一种基于动态委员会的跨链共识方法及系统 | |
CN114710504A (zh) | 区块链系统中共识节点的轮换方法、节点和区块链系统 | |
CN116546499B (zh) | 一种基于轻量级拜占庭容错的移动终端身份认证方法 | |
CN113362065A (zh) | 一种基于分散式私钥的在线签名交易实现方法 | |
Christ et al. | Cornucopia: Distributed randomness beacons at scale |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |