CN112631549A - 一种对fts随机算法中伪随机数生成器的跨平台改造方法 - Google Patents
一种对fts随机算法中伪随机数生成器的跨平台改造方法 Download PDFInfo
- Publication number
- CN112631549A CN112631549A CN201910951248.9A CN201910951248A CN112631549A CN 112631549 A CN112631549 A CN 112631549A CN 201910951248 A CN201910951248 A CN 201910951248A CN 112631549 A CN112631549 A CN 112631549A
- Authority
- CN
- China
- Prior art keywords
- random
- random number
- pseudo
- number generator
- tree
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种对FTS随机算法中伪随机数生成器的跨平台改造方法,包括将User0‑UserY对应的权重组成一颗Merkle树;从上述merkle树的根节点开始,以随机种子作为随机源,使用伪随机数生成器生成一个小于当前树节点权重的随机数;将随机种子X作为初始化种子,选出叶子节点;改造;验证;本发明基于安全的随机种子,采用哈希算法、大数求模运算构造跨平台的伪随机数生成器,实现了算法移植的通用性,使算法运行过程中不再依赖任何开发语言和操作系统的基础库,使用通用的数学逻辑构造跨平台的伪随机数生成器,让不同的开发语言和操作系统都能通用实现,并保证跨平台后相同的种子得到一致性结果,既能减少出错的概率,又可以保证协议实现的通用性。
Description
技术领域
本发明涉及随机选择领域,具体为一种对FTS随机算法中伪随机数生成器的跨平台改造方法。
背景技术
伪随机数是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。伪随机数可以用计算机大量生成,在模拟研究中为了提高模拟效率,一般采用伪随机数代替真正的随机数。模拟中使用的一般是循环周期极长并能通过随机数检验的伪随机数,以保证计算结果的随机性。
Merkle树:默克尔树(又叫哈希树)是一种典型的二叉树结构,由一个根节点、一组中间节点和一组叶节点组成。其主要特点为:最下面的叶节点包含存储数据或其哈希值,非叶子节点(包括中间节点和根节点)都是它的两个孩子节点内容的哈希值。
随机选择在各行各业应用广泛,算法的选择要保证结果分布均匀、具有不可预测性,通过merkle树设计的基于权重的随机选择算法,在满足随机性时,可以验证选择过程,而且当被选数量呈指数级增加时验证过程呈对数增加的,这些特性比较适合区块链,并在区块链中得到了广泛的应用。现有的技术在伪随机数生成器的选择上采用了开发语言库自带的基于安全的随机种子在某个区间内选出随机数,不同的开发语言(java/c++/go)都有类似的伪随机数生成器实现,由于很难保证原理一致,同一安全种子在跨平台中很难保证程序运行结果一致。
发明内容
本发明的目的在于提供一种对FTS随机算法中伪随机数生成器的跨平台改造方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种对FTS随机算法中伪随机数生成器的跨平台改造方法,包括如下具体步骤:
S1:将User0-UserY对应的权重组成一颗Merkle树,其形式是非叶子节点的权重为左右子树的权重之和,叶子节点的权重即为某个User的权益值;
S2:从上述merkle树的根节点开始,以随机种子作为随机源,使用伪随机数生成器生成一个小于当前树节点权重的随机数,如果该随机数小于左子树的权重则选择左子树继续遍历,否则选择右子树继续遍历,直到选择某一个叶子节点;
S3:将随机种子X作为伪随机数生成器的初始化种子,用代码Random rng=newRandom(X),执行int r=rng.nextInt(n)+1获取[0,n)的随机数,这样循环执行,直到选出叶子节点;
S4:对伪随机数生成器进行改造,基于随机种子计算哈希,使用哈希值对权重n大数求模即得到结果;
S5:对选择过程进行验证,从叶子节点通过哈希计算三次完成根节点验证。
优选的,步骤S3中的代码为java代码。
与现有技术相比,本发明的有益效果是:
本发明基于安全的随机种子,采用哈希算法、大数求模运算构造跨平台的伪随机数生成器,实现了算法移植的通用性,使算法运行过程中不再依赖任何开发语言和操作系统的基础库,使用通用的数学逻辑构造跨平台的伪随机数生成器,让不同的开发语言和操作系统都能通用实现,并保证跨平台后相同的种子得到一致性结果,既能减少出错的概率,又可以保证协议实现的通用性。
附图说明
图1为本发明中User0-User7对应的权重组成的Merkle树的叶子节点。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:一种对FTS随机算法中伪随机数生成器的跨平台改造方法,包括如下具体步骤:
S1:将User0-UserY对应的权重组成一颗Merkle树,其形式是非叶子节点的权重为左右子树的权重之和,叶子节点的权重即为某个User的权益值;
S2:从上述merkle树的根节点开始,以随机种子作为随机源,使用伪随机数生成器生成一个小于当前树节点权重的随机数,如果该随机数小于左子树的权重则选择左子树继续遍历,否则选择右子树继续遍历,直到选择某一个叶子节点;
S3:将随机种子X作为伪随机数生成器的初始化种子,用代码Random rng=newRandom(X),执行int r=rng.nextInt(n)+1获取[0,n)的随机数,这样循环执行,直到选出叶子节点;
S4:对伪随机数生成器进行改造,基于随机种子计算哈希,使用哈希值对权重n大数求模即得到结果;
S5:对选择过程进行验证,从叶子节点通过哈希计算三次完成根节点验证。
进一步的,步骤S3中的代码以java代码为例。
实施例2:以User0–User7对应的权重组成一颗Merkle树,随机种子为100为例:
S1:将User0–User7对应的权重组成一颗Merkle树,其形式是非叶子节点的权重为左右子树的权重之和,叶子节点的权重即为某个User的权益值;
S2:从上述merkle树的根节点开始,以随机种子作为随机源,使用伪随机数生成器生成一个小于当前树节点权重的随机数,如果该随机数小于左子树的权重则选择左子树继续遍历,否则选择右子树继续遍历,直到选择某一个叶子节点;
S3:将随机种子100作为伪随机数生成器的初始化种子,以java代码为例,用代码Random rng=new Random(100),执行int r=rng.nextInt(n)+1获取[0,n)的随机数,这样循环执行,直到选出叶子节点,具体为:
(1):从根节点开始左子树权重50,右子树45,在[0,95)范围内执行随机选择算法生成65,根据结果选出右子树h5;
(2):从h5开始左子树权重37,右子树8,在[0,45)范围内执行随机数选择算法生成20,根据结果选出左子树h2:
(3):从h2开始左子树权重27,右子树10,在[0,37)范围内执行随机数选择算法生成15,根据结果选出左子树User4;
S4:对伪随机数生成器进行改造,基于随机种子计算哈希,使用哈希值对权重n大数求模即得到结果;由于哈希计算的分布均匀和不可预测性,是比较符合伪随机数生成器的条件,最后通过大数求模在范围内选择。基于安全种子计算哈希值通过大数求模来生成随机数,易于实现,这样设计很好的完成了跨平台移植;
S5:对选择过程进行验证,将(User4,User5)、(h2,h3)、(h4,h5)从叶子节点通过哈希计算三次完成根节点验证。
本发明基于安全的随机种子,采用哈希算法、大数求模运算构造跨平台的伪随机数生成器,实现了算法移植的通用性,使算法运行过程中不再依赖任何开发语言和操作系统的基础库,使用通用的数学逻辑构造跨平台的伪随机数生成器,让不同的开发语言和操作系统都能通用实现,并保证跨平台后相同的种子得到一致性结果,既能减少出错的概率,又可以保证协议实现的通用性。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (2)
1.一种对FTS随机算法中伪随机数生成器的跨平台改造方法,其特征在于,包括如下具体步骤:
S1:将User0-UserY对应的权重组成一颗Merkle树,其形式是非叶子节点的权重为左右子树的权重之和,叶子节点的权重即为某个User的权益值;
S2:从上述merkle树的根节点开始,以随机种子作为随机源,使用伪随机数生成器生成一个小于当前树节点权重的随机数,如果该随机数小于左子树的权重则选择左子树继续遍历,否则选择右子树继续遍历,直到选择某一个叶子节点;
S3:将随机种子X作为伪随机数生成器的初始化种子,用代码Random rng=new Random(X),执行int r=rng.nextInt(n)+1获取[0,n)的随机数,这样循环执行,直到选出叶子节点;
S4:对伪随机数生成器进行改造,基于随机种子计算哈希,使用哈希值对权重n大数求模即得到结果;
S5:对选择过程进行验证,从叶子节点通过哈希计算三次完成根节点验证。
2.根据权利要求1所述的一种对FTS随机算法中伪随机数生成器的跨平台改造方法,其特征在于:步骤S3中的代码为java代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910951248.9A CN112631549A (zh) | 2019-10-08 | 2019-10-08 | 一种对fts随机算法中伪随机数生成器的跨平台改造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910951248.9A CN112631549A (zh) | 2019-10-08 | 2019-10-08 | 一种对fts随机算法中伪随机数生成器的跨平台改造方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112631549A true CN112631549A (zh) | 2021-04-09 |
Family
ID=75283269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910951248.9A Pending CN112631549A (zh) | 2019-10-08 | 2019-10-08 | 一种对fts随机算法中伪随机数生成器的跨平台改造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631549A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113240089A (zh) * | 2021-05-20 | 2021-08-10 | 北京百度网讯科技有限公司 | 基于图检索引擎的图神经网络模型训练方法和装置 |
CN114338006A (zh) * | 2021-12-24 | 2022-04-12 | 浙江大学 | 基于半可信硬件的互相关伪随机数的远程获取方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060251250A1 (en) * | 2005-05-03 | 2006-11-09 | Stmicroelectronics S.R.I | Method of generating successions of pseudo-random bits or numbers |
CN106897368A (zh) * | 2017-01-16 | 2017-06-27 | 西安电子科技大学 | Merkle哈希求和树及其可验证数据库更新操作方法 |
US20180183601A1 (en) * | 2016-12-23 | 2018-06-28 | Amazon Technologies, Inc. | Generation of merkle trees as proof-of-work |
CN108399063A (zh) * | 2017-02-07 | 2018-08-14 | 瑞萨电子株式会社 | 随机数生成装置和随机数生成方法 |
CN109583892A (zh) * | 2018-11-21 | 2019-04-05 | 安徽高山科技有限公司 | 一种区块链中的随机数选取方法 |
CN110024422A (zh) * | 2016-12-30 | 2019-07-16 | 英特尔公司 | 物联网的命名和区块链记录 |
CN110069241A (zh) * | 2019-03-27 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 伪随机数的获取方法、装置、客户端设备和服务器 |
-
2019
- 2019-10-08 CN CN201910951248.9A patent/CN112631549A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060251250A1 (en) * | 2005-05-03 | 2006-11-09 | Stmicroelectronics S.R.I | Method of generating successions of pseudo-random bits or numbers |
US20180183601A1 (en) * | 2016-12-23 | 2018-06-28 | Amazon Technologies, Inc. | Generation of merkle trees as proof-of-work |
CN110024422A (zh) * | 2016-12-30 | 2019-07-16 | 英特尔公司 | 物联网的命名和区块链记录 |
CN106897368A (zh) * | 2017-01-16 | 2017-06-27 | 西安电子科技大学 | Merkle哈希求和树及其可验证数据库更新操作方法 |
CN108399063A (zh) * | 2017-02-07 | 2018-08-14 | 瑞萨电子株式会社 | 随机数生成装置和随机数生成方法 |
CN109583892A (zh) * | 2018-11-21 | 2019-04-05 | 安徽高山科技有限公司 | 一种区块链中的随机数选取方法 |
CN110069241A (zh) * | 2019-03-27 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 伪随机数的获取方法、装置、客户端设备和服务器 |
Non-Patent Citations (1)
Title |
---|
夏学文等: "双层交叉细胞自动机的伪随机数发生方法", 《小型微型计算机系统》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113240089A (zh) * | 2021-05-20 | 2021-08-10 | 北京百度网讯科技有限公司 | 基于图检索引擎的图神经网络模型训练方法和装置 |
CN114338006A (zh) * | 2021-12-24 | 2022-04-12 | 浙江大学 | 基于半可信硬件的互相关伪随机数的远程获取方法及装置 |
CN114338006B (zh) * | 2021-12-24 | 2023-01-24 | 浙江大学 | 基于半可信硬件的互相关伪随机数的远程获取方法及装置 |
WO2023115602A1 (zh) * | 2021-12-24 | 2023-06-29 | 浙江大学 | 基于半可信硬件的互相关伪随机数的远程获取方法及装置 |
US11947930B1 (en) | 2021-12-24 | 2024-04-02 | Zhejiang University | Method and device for remote acquisition of correlated pseudo-random numbers based on semi-trusted hardware |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sukhbold et al. | A high-resolution study of presupernova core structure | |
Wang et al. | Fundamental limits of approximate gradient coding | |
Badal et al. | A package of Linux scripts for the parallelization of Monte Carlo simulations | |
Green et al. | Faster betweenness centrality based on data structure experimentation | |
CN112631549A (zh) | 一种对fts随机算法中伪随机数生成器的跨平台改造方法 | |
AU2020202883B1 (en) | Systems and computer-implemented methods for generating pseudo random numbers | |
CN106788467B (zh) | 一种基于CUDA的Raptor Code编码方法、译码方法及系统 | |
Poursalehi et al. | A novel optimization method, Effective Discrete Firefly Algorithm, for fuel reload design of nuclear reactors | |
WO2008002177A1 (en) | Generating optimal instruction sequences for bitwise logical expressions | |
CN110471644A (zh) | 量子随机数的后处理方法、装置及量子随机数发生器 | |
Soloveychik et al. | Pseudo-Wigner matrices | |
Ahmad et al. | A nonconventional approach to generating efficient binary gray code sequences | |
Cicirello | $\rho\mu $: A Java library of randomization enhancements and other math utilities | |
Ritchie et al. | DOTMIX-Pro: faster and more efficient variants of DOTMIX for dynamic-multithreading platforms | |
Moghadam et al. | Designing a random number generator with novel parallel LFSR substructure for key stream ciphers | |
CN107450963A (zh) | 一种面向虚拟机放置的化学反应优化算法 | |
CN109951282B (zh) | 一种基于分段cubic混沌映射的伪随机序列产生方法 | |
Singh et al. | An empirical study of non-cryptographically secure pseudorandom number generators | |
CN116301721B (zh) | 一种随机数生成方法、装置、电子设备及介质 | |
Cuneo et al. | An Alternative to Stride-Based RNG for Monte Carlo Transport | |
Działa | Collatz-Weyl Generators: High Quality and High Throughput Parameterized Pseudorandom Number Generators | |
Liu et al. | The design and implementation of a pseudo random number generation algorithm | |
US11392350B2 (en) | Parallel generation of pseudorandom number sequences using multiple generators with brined initial states | |
Rodriguez-Cristerna et al. | A genetic algorithm for the problem of minimal brauer chains for large exponents | |
CN116095012A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210409 |