随机数的生成方法和装置制造方法及图纸

技术编号:18657744 阅读:30 留言:0更新日期:2018-08-11 14:19
本发明专利技术实施例提供一种随机数的生成方法和装置,其中,方法包括:从多个数据源获取多个源随机数,所述多个源随机数中至少存在一个源随机数为随机产生;对所述多个源随机数经不可逆算法进行计算,生成一个随机数。本发明专利技术实施例的方案能够保证得到的随机数的随机性。

Method and device for generating random numbers

The embodiment of the present invention provides a method and an apparatus for generating random numbers, wherein the method includes: obtaining a plurality of source random numbers from a plurality of data sources, in which at least one source random number is randomly generated; and calculating the plurality of source random numbers by an irreversible algorithm to generate a random number. The scheme of the embodiment of the invention can ensure the randomness of the random number obtained.

【技术实现步骤摘要】
随机数的生成方法和装置
本申请涉及计算机
,尤其涉及一种随机数的生成方法和装置。
技术介绍
传统的网络环境中,随机数都由各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性。随机数本身是一种数据资源,在很多领域都有应用,例如,对于多个主体之间的抽签或者随机分配等机制中的应用。例如,机动车购买的摇号,比赛的分组的抽签、彩票等领域,这些都会使用到随机数。随机数最重要的特性在于要保证其产生的随机性,不能受到任何人的操控。如果某个节点提供的并不是随机数,而是在获得了一定信息的条件下,生成的有目的性的随机数,那么这个随机数就有可能影响到最终所应用事项的结果。比如,节点可以通过有限次的实验来生成对其有利结果的随机数,这样也是不公平的。
技术实现思路
本专利技术提供了一种随机数的生成方法和装置,能够保证得到的随机数的随机性。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供了一种随机数的生成方法,包括:从多个数据源获取多个源随机数,所述多个源随机数中至少存在一个源随机数为随机产生;对所述多个源随机数经不可逆算法进行计算,生成一个随机数。第二方面,提供了一种随机数的生成装置,包括:源随机数获取模块,用于从多个数据源获取多个源随机数,所述多个源随机数中至少存在一个源随机数为随机产生;随机数计算模块,用于对所述多个源随机数经不可逆算法进行计算,生成一个随机数。本专利技术提供的随机数的生成方法和装置,通过从多个数据源获取多个源随机数,并对这些源随机数经不可逆算法进行计算,生成随机数,从而提高生成随机数产生结果的随机性。上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术实施例的随机数的生成逻辑示意图;图2为本专利技术实施例示出的随机数的生成方法流程图一;图3为本专利技术实施例示出的随机数的生成方法流程图二;图4为本专利技术实施例示出的随机数的生成方法流程图三;图5为本专利技术实施例示出的随机数的生成装置的结构示意图一;图6为本专利技术实施例示出的随机数的生成装置的结构示意图二;图7为本专利技术实施例示出的随机数的生成装置的结构示意图三。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本方案改善了现有技术中,随机数的生成为由数据提供方各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间由于缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性的缺陷。其核心思想是基于各个数据提供方提交的源随机数,对这些源随机数经不可逆算法进行计算从而生成最终的随机数。如图1所示,为本专利技术实施例的随机数的生成逻辑示意图。该生成逻辑为从不同的多个数据源获取多个源随机数,每个源随机数本身也可以是随机产生的。然后基于这些随机数经不可逆算法最终得到一个随机数。理论上,只要一个源随机数为随机产生,那么就可以保证最终得到随机数的随机性。下面通过多个实施例来进一步说明本申请的技术方案。实施例一基于上述生成随机数的方案思想,如图2所示,其为本专利技术实施例示出的随机数的生成方法流程图一,该方法的执行主为设置在网络中的服务器。如图2所示,该随机数的生成方法包括如下步骤:S210,从多个数据源获取多个源随机数,该多个源随机数中至少存在一个源随机数为随机产生。其中,上述多个数据源可以为设置在网络中的多个计算节点,或者账户节点,也可称之为“数据提供方”。每个数据提供方可以按预制需求随机产生数值,每个数值称为该数据提供方提供的一个源随机数。当需要生成随机数时,可以从上述的网络中各数据提供方处获取用于生成随机数的多个源随机数,这些源随机数中至少存在一个源随机数为数据提供方随机产生。S220,对多个源随机数经不可逆算法进行计算,生成一个随机数。在获取到指定数目的源随机数后,可对这些源随机数整体经不可逆算法进行计算,最终生成一个随机数。其中,在获取指定数目的源随机数的过程中,服务器可以按接收到的源随机数的时间顺序挑选指定数目的源随机数,也可以在众多源随机数中随机选择指定数目的源随机数,以提高最终生成的随机数的随机性。本实施例采用不可逆算法对多个源随机数进行计算生成随机数,其目的是防止个别数据提供方为了获得想要的随机数,而提供对自己有利的源随机数。由于采用不可逆算法得到随机数,源随机数提供者不可能根据最终想要的随机数而反推对自己有利的源随机数,故而保证了随机数的随机性。其中,上述不可逆算法可以为哈希算法,对上述指定数目的源随机数整体经哈希算法进行计算,得到一个哈希值,并将该哈希值作为所需的随机数。本专利技术实施例提供的随机数的生成方法,通过从多个数据源获取多个源随机数,并对这些源随机数经不可逆算法进行计算,生成随机数,从而提高生成随机数产生结果的随机性。实施例二如图3所示,其为本专利技术实施例示出的随机数的生成方法流程图二,该方法可视为图2所示方法的具体实现方式,主要针对从多个数据源获取源随机数的过程进行了细化。如图3所示,该随机数的生成方法包括如下步骤:S310,接收多个数据提供方提交的数据承诺,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值。由于网络延迟等原因,各数据提供方提供源随机数的时间是不同步的,有早有晚。为了防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,因此本方案采用一种“数据承诺+提交数据”的方式(简称“数据承诺”)来限定数据提供方提交源随机数,以保证各数据提供方提供的源随机数是事先提供的,而不是在获知了其他数据提供方所提供的源随机数后再提供的。所谓“数据承诺”方式提交源随机数即指,在各数据提供方提交源随机数之前,先提交针对欲提交的源随机数的数据承诺,该数据承诺的内容包括欲提交的源随机数所对应的承诺值,该承诺值为数据提供方对欲提交的源随机数经上述不可逆算法计算后获得,以用于后续服务器对接收到的该数据提供方提交的源随机数进行承诺验证。S320,接收多个数据提供方提交的数据承诺中欲提交的源随机数,并对各源随机数经不可逆算法进行承诺验证。各数据提供方在提交完数据承诺后,接着会将该数据承诺中承诺值对应的源随机数提供给服务器。服务器在接收到各数据提供方提交的源随机数后,对该随机数经上述数据提供方所采用的相同的不可逆算法进行计算得到一个承诺值,并将该承诺值与之前该数据提供方提交的数据承诺中的承诺值进行比较,以完成承诺验证。S330,如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值相同,则接受该数据提供方本文档来自技高网...

【技术保护点】
1.一种随机数的生成方法,其特征在于,包括:从多个数据源获取多个源随机数,所述多个源随机数中至少存在一个源随机数为随机产生;对所述多个源随机数经不可逆算法进行计算,生成一个随机数。

【技术特征摘要】
1.一种随机数的生成方法,其特征在于,包括:从多个数据源获取多个源随机数,所述多个源随机数中至少存在一个源随机数为随机产生;对所述多个源随机数经不可逆算法进行计算,生成一个随机数。2.根据权利要求1所述的方法,其特征在于,所述从多个数据源获取多个源随机数包括:接收多个数据提供方提交的数据承诺,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并对各所述源随机数经所述不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受该数据提供方提交的源随机数。3.根据权利要求1所述的方法,其特征在于,所述对所述多个源随机数经不可逆算法进行计算,生成一个随机数包括:将所述多个源随机数拼接形成第一字符串,对所述第一字符串经所述不可逆算法进行计算,并将得到的计算值作为所述随机数。4.根据权利要求1所述的方法,其特征在于,所述对所述多个源随机数经不可逆算法进行计算,生成一个随机数包括:将所述多个源随机数拼接形成第一字符串,对所述第一字符串经所述不可逆算法进行计算,并将得到的计算值记为随机数种子;将所述随机数种子与附加信息进行拼接形成第二字符串,对所述第二字符串经所述不可逆算法进行计算,并将得到的计算值作为所述随机数。5.根据权利要求1-4任一种所述的方法,其特征在于,所述不可逆算法包括哈希算法,所述经不可逆算法得到的计算值为哈希值。6.一种随机数...

【专利技术属性】
技术研发人员:宋承根谭智勇赵微
申请(专利权)人:北京欧链科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1