CN109361509A - 一种随机数生成方法、装置和存储介质 - Google Patents
一种随机数生成方法、装置和存储介质 Download PDFInfo
- Publication number
- CN109361509A CN109361509A CN201811253005.XA CN201811253005A CN109361509A CN 109361509 A CN109361509 A CN 109361509A CN 201811253005 A CN201811253005 A CN 201811253005A CN 109361509 A CN109361509 A CN 109361509A
- Authority
- CN
- China
- Prior art keywords
- random number
- random
- target
- evidence
- node
- 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.)
- Pending
Links
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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种随机数生成方法、装置和存储介质,涉及计算机领域,能够保证生成的随机数具有随机性。所述随机数生成方法包括:获取至少两个随机数,其中,所述至少两个随机数分别来自不同的网络节点;基于所述至少两个随机数和第一确定性函数,生成第一目标随机数;广播所述第一目标随机数。本申请用于随机数生成。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种随机数生成方法、装置和存储介质。
背景技术
随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,在将实验动物分配到不同的试验组的过程中等等。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无关系。
产生随机数有多种不同的方法。相关技术生成的随机数容易被某个恶意的幕后对手控制,因而无法保证随机性。这样,对随机数的使用者非常不利,例如随机数使用者的利益会因为被控制的随机数而受到损害。
发明内容
本申请实施例提供一种随机数生成方法、装置和存储介质,能够保证生成的随机数具有随机性。
第一方面,提供一种随机数生成方法,应用于目标节点,所述随机数生成方法可包括:
获取至少两个随机数,其中,所述至少两个随机数分别来自不同的网络节点;
基于所述至少两个随机数和第一确定性函数,生成第一目标随机数;
广播所述第一目标随机数。
可选地,在本申请的一个实施例中,在所述基于所述至少两个随机数和确定性函数,生成第一目标随机数之前,所述随机数生成方法还包括:
获取与所述至少两个随机数对应的至少两个证据;
获取与所述不同的网络节点对应的多个公钥;
利用获取的所述多个公钥和验证函数对所述至少两个随机数和所述至少两个证据进行验证;
所述基于所述至少两个随机数和确定性函数,生成目标随机数包括:
在对所述至少两个随机数和所述至少两个证据验证通过时,将所述至少两个随机数作为所述确定性函数的输入,生成目标随机数。
进一步地,可选地,所述至少两个随机数与所述至少两个证据一一对应,且一一对应的随机数和证据来自于同一个网络节点;
所述获取至少两个随机数包括:接收来自所述不同的网络节点的至少两个随机数;
所述获取与所述至少两个随机数对应的至少两个证据包括:接收来自所述不同的网络节点的至少两个证据。
可选地,在本申请的一个实施例中,在所述获取至少两个随机数之前,所述方法还包括:
获取输入随机数和针对所述目标节点的第一私钥;
基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据;
广播所述第二目标随机数和所述目标证据。
进一步地,可选地,所述基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据包括:将所述输入随机数和所述第一私钥作为所述第二确定性函数的输入,生成所述第二目标随机数和所述目标证据;
其中,所述输入随机数为随机数种子,或者来自所述不同的网络节点中的任一个网络节点的随机数。
第二方面,提供一种随机数生成装置可包括:
获取模块,用于获取至少两个随机数,其中,所述至少两个随机数分别来自不同的网络节点;
生成模块,用于基于所述获取模块获取的所述至少两个随机数和第一确定性函数,生成第一目标随机数;
广播模块,用于广播所述第一目标随机数。
可选地,在本申请的一个实施例中,在所述生成模块生成第一目标随机数之前,所述获取模块还用于:
获取与所述至少两个随机数对应的至少两个证据;
获取与所述不同的网络节点对应的多个公钥;
所述随机数生成装置还包括验证模块,用于利用所述获取模块获取的所述多个公钥和验证函数对所述至少两个随机数和所述至少两个证据进行验证;
在生成目标随机数时,所述生成模块具体用于:
在所述验证模块对所述至少两个随机数和所述至少两个证据验证通过时,将所述至少两个随机数作为所述确定性函数的输入,生成目标随机数。
可选地,所述至少两个随机数与所述至少两个证据一一对应,且一一对应的随机数和证据来自于同一个网络节点;
在获取至少两个随机数时,所述获取模块具体用于:接收来自所述不同的网络节点的至少两个随机数;
在获取与所述至少两个随机数对应的至少两个证据时,所述获取模块具体用于:接收来自所述不同的网络节点的至少两个证据。
可选地,在本申请的一个实施例中,所述获取模块还用于:获取输入随机数和针对所述目标节点的第一私钥;
所述生成模块还用于:基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据;
所述广播模块还用于:广播所述第二目标随机数和所述目标证据。
可选地,所述基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据包括:将所述输入随机数和所述第一私钥作为所述第二确定性函数的输入,生成所述第二目标随机数和所述目标证据;
其中,所述输入随机数为随机数种子,或者来自所述不同的网络节点中的任一个网络节点的随机数。
第三方面,提供一种目标节点,包括处理器和存储器,所述存储器上存储有计算机指令,当所述指令被运行时,执行第一方面所述任一种随机数生成方法中的步骤。其中,所述目标节点可以为终端,例如电脑和手机等。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,当所述指令被运行时,执行第一方面所述任一种随机数生成方法中的步骤。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
在第一目标随机数的生成过程中,引入了来自不同网络节点的至少两个随机数,由于所述至少两个随机数来自于不同的网络节点,因而可以避免第一目标随机数的生成受单一网络节点的控制,因而可以保证生成的第一目标随机数具有足够的随机性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例提供的一种随机数生成方法的流程图;
图2是是本申请实施例提供的另一种随机数生成方法的流程图;
图3是本申请实施例提供的一种随机数生成装置的结构框图;
图4是本申请实施例提供的一种目标节点的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在描述本发明实施例之前,先对本申请中的一些术语进行阐释。
非对称密钥对:一对密钥,分为公钥和私钥,公钥可以公开给所有人,私钥由密钥对的所有人持有。
可验证随机函数:用户A持有一对密钥:sk_A(私钥)和pk_A(公钥),通过函数f和输入r和sk_A,可生成结果和证明(proof)。任意拿到结果、证明和公钥pk_A的用户B都可以通过函数验证结果是否正确。
以下结合附图,详细说明本申请各实施例提供的技术方案。
本发明实施例提供的随机数生成方法可应用于包括多个节点的网络中,此网络可以为分布式网络,例如区块链网络,也可以为局域网。网络中的所有节点可以组成一个节点集。节点集中的各个节点可以相互通信,以传输各种信息,例如传输随机数、证据(proof)和动作(act)等。节点集中的每一个节点可以为一个博弈参与方。
本发明实施例中提到的目标节点可以为各种终端,例如电脑、手机、服务器等。目标节点可以为节点集中的一个节点。
在本发明实施例中,可以对节点集中的各个节点按照某种规则进行排序。在排序完成后,各个节点后续即可以按照排列好的顺序依次执行生成随机数的过程。当然,也可以在进行依次排序后,只取排在首位的节点执行生成随机数的过程,后续再对节点集中的节点进行排序。每次排序后可只取排在首位的这个节点执行生成随机数的过程,节点确定后可再进行排序,如此往复。这里,节点集中的第一个节点可表示对节点集按照某种规则进行排序后排在首位的节点。
在本发明实施例中,目标节点可以为节点集中的任一个节点。
图1是本申请实施例提供的一种随机数生成方法的流程图。参照图1,本申请实施例提供的随机数生成方法应用于目标节点,且可包括:
步骤110,获取至少两个随机数,其中,所述至少两个随机数分别来自不同的网络节点。
在本发明实施例中,所述不同的网络节点可以表示为pt1、pti...ptn,其中n≥2,1≤i≤n;获取的所述至少两个随机数可以表示为rj1、rji...rjn,其中n≥2,1≤i≤n。
在本发明实施例中,步骤110中获取至少两个随机数可以包括:接收来自所述不同的网络节点的至少两个随机数。以获取两个随机数为例,目标节点可以接收来自pt1的随机数rj1,以及接收来自pt2的随机数rj2。其中,pt1和pt2可以分别表示第一网络节点和第二网络节点。
pt1发出的随机数rj1和pt2发出的随机数rj2均可以以广播的形式发出,这样,目标节点即可获取pt1发出的随机数rj1和pt2发出的随机数rj2。
步骤120,基于所述至少两个随机数和第一确定性函数,生成第一目标随机数。
具体地,步骤120可以具体为:将所述至少两个随机数作为第一确定性函数的输入,生成第一目标随机数。
在本发明实施例中,若第一目标随机数用R1表示,则以上步骤可以表示如下:R1=f1(rj1,rji,...,rjn),其中n≥2,1≤i≤n,f1表示第一确定性函数。
步骤130,广播所述第一目标随机数。
目标节点在广播第一目标随机数之后,节点集中的其他节点会获取到此第一目标随机数,并可利用此第一目标随机数生成新的随机数。
本发明实施例提供的随机数生成方法,在第一目标随机数的生成过程中,引入了来自不同网络节点的至少两个随机数,由于所述至少两个随机数来自于不同的网络节点,因而可以避免第一目标随机数的生成受单一网络节点的控制,因而可以保证生成的第一目标随机数具有足够的随机性。
可选地,在本申请的一个实施例中,在步骤120中所述目标节点基于所述至少两个随机数和第一确定性函数,生成第一目标随机数之前,本发明实施例提供的随机数生成方法还可包括:获取与所述至少两个随机数对应的至少两个证据;获取与所述不同的网络节点对应的多个公钥;利用获取的所述多个公钥和验证函数对所述至少两个随机数和所述至少两个证据进行验证。
相应地,步骤120中所述目标节点基于所述至少两个随机数和第一确定性函数,生成目标随机数可包括:在对所述至少两个随机数和所述至少两个证据验证通过时,将所述至少两个随机数作为所述第一确定性函数的输入,生成目标随机数。
在本发明实施例中,步骤110中获取的至少两个随机数可以与这里获取的至少两个证据一一对应。如果获取的所述至少两个随机数可以表示为rj1、rji...rjn,获取的所述至少两个证据可以表示为proof1、proofi...proofn,其中n≥2,1≤i≤n;则rj1可以与proof1对应,rji可以与proofi对应,rjn可以与proofn对应。
同时,一一对应的随机数和证据可来自于同一个网络节点。也就是说,rj1与proof1可以来自于网络节点pt1,rji与proofi可以来自于网络节点pti,rjn与proofn可以来自于网络节点ptn。
在本发明实施例中,获取得到的用于验证的至少两个证据可以为不同的网络节点发送的证据,例如网络中的至少两个不同的网络节点广播的证据。目标节点在接收到所述至少两个证据后,即可获取与证据对应的公钥,亦即,与发出证据的所述不同的网络节点对应的多个公钥。在本发明实施例中,与证据对应的公钥可以为操作发出证据的所述不同的网络节点的用户所持有的公钥。由于各个用户持有的公钥在网络中都是公开的,因而目标节点可获取到不同的网络节点对应的多个公钥。
本发明实施例提供的随机数生成方法,可以利用获取的多个公钥和验证函数对所述至少两个随机数和所述至少两个证据分别进行验证,并在验证通过时,目标节点可将所述至少两个随机数作为所述验证函数的输入,生成所述第一目标随机数。当存在一个随机数和证据未通过验证时,可将此未验证通过的随机数丢弃,而不作为所述验证函数的输入。
如此,可以保证在每一个环节生成新的随机数之前都对之前所用到的随机数进行了验证,保证了随机数的可验证特性,从而任何一个节点(包括节点的用户)都不能随意操纵随机数,保证了生成的随机数安全和公平性,进一步可保证项目(例如博弈的)公平性。
同时,需了解的是,第一确定性函数可以和验证函数可以相关联,例如若第一确定性函数为签名函数,则第三确定性函数可以为验证签名的函数。同时,第一确定性函数和验证函数均可以为可验证随机函数,且它们内部可涵盖摘要函数,如此可以保证生成的随机数具有充分的随机性。
在本发明实施例中,第一确定性函数、验证函数可以为便于执行的函数,由于目标节点运行这些函数的速度较快,因而可以保证随机数的生成过程的效率很高,不需要复杂的配合操作。
可选地,在本发明的另一个实施例中,在步骤110所述获取至少两个随机数之前,本发明实施例提供的随机数生成方法还可包括:获取输入随机数和针对所述目标节点的第一私钥;基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据;广播所述第二目标随机数和所述目标证据。
其中,针对所述目标节点的第一私钥可表示操作第一目标节点的用户输入的私钥。第二确定性函数可以为用于确定第二目标随机数的函数,其例如可以为可验证随机函数或者不可更改的确定性签名函数。
在本发明实施例中,基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据可以具体为:将所述输入随机数和所述第一私钥作为所述第二确定性函数的输入,生成所述第二目标随机数和所述目标证据;其中,所述输入随机数可以为随机数种子,或者可以为来自所述不同的网络节点中的任一个网络节点的随机数。
当所述输入随机数为随机数种子时,目标节点可以将此随机数种子和第一私钥作为第二确定性函数的输入,生成第二目标随机数和目标证据,并将第二目标随机数和目标证据广播出去。
当所述输入随机数为接收到的来自任一网络节点的随机数时,目标节点也可以将此随机数和第一私钥作为第二确定性函数的输入,生成第二目标随机数和目标证据,并广播出去。
本发明实施例目标节点在第二目标随机数的生成过程中,引入了针对目标节点的第一私钥,由于目标节点并不会告知外部其他节点此第一私钥,而且此第一私钥本身对于外部节点而言是随机的,因而目标节点生成的第二目标随机数也是随机的,可以保证生成的第二目标随机数具有足够的随机性。
同时,目标节点通过广播第二目标随机数和目标证据,可以让其他网络节点获取此第二目标随机数和目标证据,并在后续其他任一节点可对此第二随机数和目标证据进行验证,从而保证了随机数的可验证特性。
图2是本发明实施例提供的随机数生成方法的流程图。参照图2,以诸如下棋之类的博弈为例,节点集中的每一个节点可以作为一个博弈参与方。每个博弈参与方可持有一对非对称密钥对(sk_pi,pk_pi),其中,i为整数,其中节点pi属于节点集中的一员,sk_pi是节点pi的私钥,pk_pi是节点pi的公钥。pk_pi将对对所有人或节点公开,而sk_pi将会作为秘密保存。
在本发明实施例中,节点集中的节点可包括pt1、pti...ptn,其中n≥2,1≤i≤n。本发明实施例提供的随机数生成方法可包括:
步骤210,获取输入随机数,例如随机数种子r0。
步骤220,对于节点集中的任意一个节点pti,节点pti利用其私钥sk_pti、获取得到的输入随机数以及确定性函数f2(即上文中提到的第二确定性函数)生成新的随机数ri以及证明proofi。
以上过程可等效为:{ri,proofi}=f2(r0,sk_pti)。
其中,proofi可采用可验证随机函数(verifiable random function)中的证明函数生成,或者采用不可更改的确定性签名函数生成。
其中,pti可以为目标节点。
步骤230,节点pti广播(ri,proofi),即广播随机数ri以及证明proofi。
步骤240,节点pti接收到另一个节点ptj发送的(rj,proofj),结合验证函数和节点ptj的公钥pk_ptj对rj和proofj进行验证。其中,j不等于i,且1≤j≤n。
其中,对于未通过验证的随机数rj时,丢弃。对于通过验证的随机数rj,则予以保留,并将保留的随机数形成集合(rj1,rj2...rjn),其中,rjn为保留的最后一个随机数,且n大于等于2。
在获取到多个验证通过的随机数时,执行步骤250。
步骤250,节点pti在对rj和proofj验证通过时,利用确定性函数f1(即上文中提到的第一确定性函数)以及rj1,rj2...rjn生成随机数Ri。
以上过程可等效为:Ri=f1(rj1,rj2,...,rjn)。
步骤260,节点pti可广播生成的随机数Ri。
节点pti广播的随机数Ri可作为下一个节点的输入随机数。后续接收到随机数Ri的下一个节点即可作为新的目标节点,可重复步骤220至步骤260。
本发明实施例提供的随机数生成方法,生成的随机数都有足够的随机性和可验证特征,使得随机数不易受到随机操控,保证了随机数的安全和公平性,也保证了博弈的公平。同时,随机数生成过程效率较高,不需要多人配合操作。
图3是本发明实施例提供的一种随机数生成装置的结构框图。参照图3,本发明实施例提供的随机数生成装置300可包括获取模块310、生成模块320和广播模块330。其中:
获取模块310,用于获取至少两个随机数,其中,所述至少两个随机数分别来自不同的网络节点;
生成模块320,用于基于所述获取模块310获取的所述至少两个随机数和第一确定性函数,生成第一目标随机数;
广播模块330,用于广播所述生成模块320生成的所述第一目标随机数。
本发明实施例提供的随机数生成装置在第一目标随机数的生成过程中,引入了来自不同网络节点的至少两个随机数,由于所述至少两个随机数来自于不同的网络节点,因而可以避免第一目标随机数的生成受单一网络节点的控制,因而可以保证生成的第一目标随机数具有足够的随机性。
可选地,在本发明的一个实施例中,在所述生成模块320生成第一目标随机数之前,所述获取模块310还用于:获取与所述至少两个随机数对应的至少两个证据;获取与所述不同的网络节点对应的多个公钥。
相应地,所述随机数生成装置300还包括验证模块,用于利用所述获取模块获取的所述多个公钥和验证函数对所述至少两个随机数和所述至少两个证据进行验证;
在生成目标随机数时,所述生成模块320可具体用于:在所述验证模块对所述至少两个随机数和所述至少两个证据验证通过时,将所述至少两个随机数作为所述确定性函数的输入,生成目标随机数。
可选地,在本发明的一个实施例中,所述至少两个随机数与所述至少两个证据一一对应,且一一对应的随机数和证据来自于同一个网络节点。
可选地,在本发明的一个实施例中,在获取至少两个随机数时,所述获取模块310可具体用于:接收来自所述不同的网络节点的至少两个随机数。在获取与所述至少两个随机数对应的至少两个证据时,所述获取模块310可具体用于:接收来自所述不同的网络节点的至少两个证据。
可选地,在本发明的一个实施例中,所述获取模块310还可用于:获取输入随机数和针对所述目标节点的第一私钥。相应地,所述生成模块320还可用于:基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据。所述广播模块330还可用于:广播所述第二目标随机数和所述目标证据。
可选地,在本发明的一个实施例中,在生成第二目标随机数和目标证据时,所述生成模块320可具体用于:将所述输入随机数和所述第一私钥作为所述第二确定性函数的输入,生成所述第二目标随机数和所述目标证据。其中,所述输入随机数为随机数种子,或者来自所述不同的网络节点中的任一个网络节点的随机数。
本发明实施例提供的随机数生成装置可保证生成的随机数具有充分的随机性,同时,随机数具有可验证性,任何一个人不能随意操纵随机数,保证了安全和公平性。
图4是本发明实施例提供的目标节点的结构框图。参照图4,本发明实施例提供的目标节点400可以为区块链中的节点。所述区块链节点例如可以为电脑或服务器,且可包括存储器410和处理器420。其中,所述存储器410,适于存储多条指令;所述处理器420,适于执行存储器410上存储的各种指令。当所述存储器410上存储的指令被处理器420运行时可实现上文所描述的任一种随机数生成方法中的步骤。具体地,当所述存储器410上存储的指令被处理器420运行时可执行以下操作:获取至少两个随机数,其中,所述至少两个随机数分别来自不同的网络节点;基于所述至少两个随机数和第一确定性函数,生成第一目标随机数;广播所述第一目标随机数。
本发明实施例提供的目标节点在第一目标随机数的生成过程中,引入了来自不同网络节点的至少两个随机数,由于所述至少两个随机数来自于不同的网络节点,因而可以避免第一目标随机数的生成受单一网络节点的控制,因而可以保证生成的第一目标随机数具有足够的随机性。
此外,本发明实施例还可以提供一种区块链系统,包括多个区块链节点,其中,所述多个区块链节点中存在一个节点为上文中提及的用于执行随机数生成的方法的目标节点。
此外,本发明实施例还提供提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,当所述指令被运行时,执行上文中所述任一种随机数生成方法中的步骤。
本发明实施例提供的计算机可读存储介质,在第一目标随机数的生成过程中,引入了来自不同网络节点的至少两个随机数,由于所述至少两个随机数来自于不同的网络节点,因而可以避免第一目标随机数的生成受单一网络节点的控制,因而可以保证生成的第一目标随机数具有足够的随机性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种随机数生成方法,应用于目标节点,其特征在于,包括:
获取至少两个随机数,其中,所述至少两个随机数分别来自不同的网络节点;
基于所述至少两个随机数和第一确定性函数,生成第一目标随机数;
广播所述第一目标随机数。
2.根据权利要求1所述的随机数生成方法,其特征在于,在所述基于所述至少两个随机数和确定性函数,生成第一目标随机数之前,所述随机数生成方法还包括:
获取与所述至少两个随机数对应的至少两个证据;
获取与所述不同的网络节点对应的多个公钥;
利用获取的所述多个公钥和验证函数对所述至少两个随机数和所述至少两个证据进行验证;
所述基于所述至少两个随机数和第一确定性函数,生成第一目标随机数包括:
在对所述至少两个随机数和所述至少两个证据验证通过时,将所述至少两个随机数作为所述第一确定性函数的输入,生成第一目标随机数。
3.根据权利要求2所述的随机数生成方法,其特征在于,所述至少两个随机数与所述至少两个证据一一对应,且一一对应的随机数和证据来自于同一个网络节点;
所述获取至少两个随机数包括:接收来自所述不同的网络节点的至少两个随机数;
所述获取与所述至少两个随机数对应的至少两个证据包括:接收来自所述不同的网络节点的至少两个证据。
4.根据权利要求1所述的随机数生成方法,其特征在于,在所述获取至少两个随机数之前,所述随机数生成方法还包括:
获取输入随机数和针对所述目标节点的第一私钥;
基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据;
广播所述第二目标随机数和所述目标证据。
5.根据权利要求4所述的随机数生成方法,其特征在于,所述基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据包括:将所述输入随机数和所述第一私钥作为所述第二确定性函数的输入,生成所述第二目标随机数和所述目标证据;
其中,所述输入随机数为随机数种子,或者来自所述不同的网络节点中的任一个网络节点的随机数。
6.一种随机数生成装置,其特征在于,包括:
获取模块,用于获取至少两个随机数,其中,所述至少两个随机数分别来自不同的网络节点;
生成模块,用于基于所述获取模块获取的所述至少两个随机数和第一确定性函数,生成第一目标随机数;
广播模块,用于广播所述生成模块生成的所述第一目标随机数。
7.根据权利要求6所述的随机数生成装置,其特征在于,在所述生成模块生成第一目标随机数之前,所述获取模块还用于:
获取与所述至少两个随机数对应的至少两个证据;
获取与所述不同的网络节点对应的多个公钥;
所述随机数生成装置还包括验证模块,用于利用所述获取模块获取的所述多个公钥和验证函数对所述至少两个随机数和所述至少两个证据进行验证;
在生成目标随机数时,所述生成模块具体用于:
在所述验证模块对所述至少两个随机数和所述至少两个证据验证通过时,将所述至少两个随机数作为所述第一确定性函数的输入,生成目标随机数。
8.根据权利要求7所述的随机数生成装置,其特征在于,所述至少两个随机数与所述至少两个证据一一对应,且一一对应的随机数和证据来自于同一个网络节点;
在获取至少两个随机数时,所述获取模块具体用于:接收来自所述不同的网络节点的至少两个随机数;
在获取与所述至少两个随机数对应的至少两个证据时,所述获取模块具体用于:接收来自所述不同的网络节点的至少两个证据。
9.根据权利要求6所述的随机数生成装置,其特征在于,所述获取模块还用于:获取输入随机数和针对所述目标节点的第一私钥;
所述生成模块还用于:基于所述输入随机数、所述第一私钥和第二确定性函数,生成第二目标随机数和目标证据;
所述广播模块还用于:广播所述第二目标随机数和所述目标证据。
10.根据权利要求9所述的随机数生成装置,其特征在于,在生成第二目标随机数和目标证据时,所述生成模块具体用于:将所述输入随机数和所述第一私钥作为所述第二确定性函数的输入,生成所述第二目标随机数和所述目标证据;
其中,所述输入随机数为随机数种子,或者来自所述不同的网络节点中的任一个网络节点的随机数。
11.一种目标节点,包括处理器和存储器,所述存储器上存储有计算机指令,当所述指令被运行时,执行根据权利要求1-5任一所述的随机数生成方法中的步骤。
12.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,当所述指令被运行时,执行根据权利要求1-5任一所述的随机数生成方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811253005.XA CN109361509A (zh) | 2018-10-25 | 2018-10-25 | 一种随机数生成方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811253005.XA CN109361509A (zh) | 2018-10-25 | 2018-10-25 | 一种随机数生成方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109361509A true CN109361509A (zh) | 2019-02-19 |
Family
ID=65346712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811253005.XA Pending CN109361509A (zh) | 2018-10-25 | 2018-10-25 | 一种随机数生成方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109361509A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062058A (zh) * | 2019-12-26 | 2020-04-24 | 江西宜月鑫网络科技有限公司 | 基于区块链的密钥对处理方法、装置、终端及可读存储介质 |
CN111431709A (zh) * | 2020-03-24 | 2020-07-17 | 福建福链科技有限公司 | 一种联盟链中随机数生成方法及生成端 |
CN113761586A (zh) * | 2020-06-28 | 2021-12-07 | 北京同邦卓益科技有限公司 | 基于区块链的物品随机抽检的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518270A (zh) * | 2003-01-24 | 2004-08-04 | ���˹���Ѷ��� | 保护电子芯片免受欺骗的公钥加密方法 |
US20050157871A1 (en) * | 2004-01-16 | 2005-07-21 | Yuichi Komano | Encryption/signature method, apparatus, and program |
WO2007095691A1 (en) * | 2006-02-24 | 2007-08-30 | Commonwealth Scientific And Industrial Research Organisation | Anonymous authentication |
CN104618111A (zh) * | 2015-01-16 | 2015-05-13 | 北京科技大学 | 一种基于随机动态的云应用数据完整性检测方法 |
CN105825383A (zh) * | 2016-03-18 | 2016-08-03 | 桂林电子科技大学 | 双方参与的随机数生成和验证方法 |
CN108111308A (zh) * | 2017-12-25 | 2018-06-01 | 北京康拓科技有限公司 | 一种基于动态随机加密的工业互联网通讯加密方法 |
-
2018
- 2018-10-25 CN CN201811253005.XA patent/CN109361509A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518270A (zh) * | 2003-01-24 | 2004-08-04 | ���˹���Ѷ��� | 保护电子芯片免受欺骗的公钥加密方法 |
US20050157871A1 (en) * | 2004-01-16 | 2005-07-21 | Yuichi Komano | Encryption/signature method, apparatus, and program |
WO2007095691A1 (en) * | 2006-02-24 | 2007-08-30 | Commonwealth Scientific And Industrial Research Organisation | Anonymous authentication |
CN104618111A (zh) * | 2015-01-16 | 2015-05-13 | 北京科技大学 | 一种基于随机动态的云应用数据完整性检测方法 |
CN105825383A (zh) * | 2016-03-18 | 2016-08-03 | 桂林电子科技大学 | 双方参与的随机数生成和验证方法 |
CN108111308A (zh) * | 2017-12-25 | 2018-06-01 | 北京康拓科技有限公司 | 一种基于动态随机加密的工业互联网通讯加密方法 |
Non-Patent Citations (1)
Title |
---|
匿名: "什么是可验证随机函数VRF", 《百度百科》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062058A (zh) * | 2019-12-26 | 2020-04-24 | 江西宜月鑫网络科技有限公司 | 基于区块链的密钥对处理方法、装置、终端及可读存储介质 |
CN111431709A (zh) * | 2020-03-24 | 2020-07-17 | 福建福链科技有限公司 | 一种联盟链中随机数生成方法及生成端 |
CN111431709B (zh) * | 2020-03-24 | 2023-03-31 | 福建福链科技有限公司 | 一种联盟链中随机数生成方法及生成端 |
CN113761586A (zh) * | 2020-06-28 | 2021-12-07 | 北京同邦卓益科技有限公司 | 基于区块链的物品随机抽检的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109872152B (zh) | 基于股份授权证明机制的区块链共识方法及相关设备 | |
CN110245956B (zh) | 一种基于异步多链的区块链交易确认方法及系统 | |
CN109615383A (zh) | 基于区块链的数据存证、获取方法和装置 | |
CN105450620B (zh) | 一种信息处理方法及装置 | |
CN109361509A (zh) | 一种随机数生成方法、装置和存储介质 | |
CN107172586A (zh) | 基于区块链的移动终端网络定位方法 | |
CN104767714B (zh) | 一种用户标识与用户资源信息的关联方法、终端及系统 | |
CN109886687A (zh) | 一种基于区块链实现安全多方计算的结果验证方法及系统 | |
CN111008863A (zh) | 一种基于区块链的抽奖方法及系统 | |
CN108667717A (zh) | 基于即时通信消息记录的区块链处理方法、介质、装置和计算设备 | |
WO2020216078A1 (zh) | 一种基于区块链的竞争排名方法及装置 | |
CN111539535A (zh) | 基于隐私保护的联合特征分箱方法及装置 | |
CN113469371B (zh) | 联邦学习方法和装置 | |
CN106650496A (zh) | 一种数据处理方法及装置 | |
CN113609533B (zh) | 一种面向智能电网数据的完整性审计方法 | |
CN112948274A (zh) | 测试用例评分模型训练方法和测试用例选择方法 | |
CN112784823A (zh) | 人脸图像识别方法、装置、计算设备和介质 | |
CN115329388A (zh) | 一种面向联邦生成对抗网络的隐私增强方法 | |
CN109598289B (zh) | 跨平台的数据处理方法、装置、设备及可读存储介质 | |
CN112134883A (zh) | 基于可信计算进行节点间信任关系快速认证的方法、装置及相关产品 | |
CN114531302A (zh) | 数据加密方法、装置及存储介质 | |
CN117171779B (zh) | 基于交集保护的数据处理装置 | |
CN109302442A (zh) | 一种数据存储证明方法及相关设备 | |
Armknecht et al. | Impossibility results for RFID privacy notions | |
CN109471610A (zh) | 一种随机数生成方法、装置和存储介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210121 Address after: 100080 1120-64, 11 / F, 18 Zhongguancun Street, Haidian District, Beijing Applicant after: Beijing Lianhua Future Technology Co.,Ltd. Address before: 310012 station 7, room 118, No.7 Cuibai Road, Xihu District, Hangzhou City, Zhejiang Province Applicant before: HANGZHOU YINZHI TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190219 |
|
RJ01 | Rejection of invention patent application after publication |