System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及随机数发生器,特别是指一种伪随机数生成方法及装置。
技术介绍
1、随机数在各行各业中都扮演着重要的角色,应用场景丰富,具有广泛地实际意义。如在科学和工程领域,随机数被广泛用于模拟和建模自然现象和随机事件;在金融领域,将随机数应用于金融模型和风险评估,来模拟市场波动、计算期权定价和进行风险分析;在计算机图形学中,随机数还被用于创建自然现象(如火焰、水波纹等)的逼真效果等;其中最主要也是最重要的应用场景在于密码学和安全性领域,随机数是数据保护的关键要素。它们用于生成安全的密码、加密密钥和初始化向量,确保敏感信息的机密性。缺乏随机性的密钥可能容易被破解,因此安全的随机数生成对于网络安全至关重要。
2、而种子作为初始值输入随机数生成器,初始化随机数生成算法,是生成高质量随机数的关键参数;一种常见的方法是使用当前系统时间作为随机数生成器的种子。由于时间通常是不断变化的,这种方法可以提供相对较好的随机性。不过,在某些情况下,如果多个程序同时启动,可能会使用相同的时间作为种子,导致生成相同的随机数序列。这使得恶意攻击者很容易通过该漏洞来预测出某些时间点生成的随机数,进而威胁到由该随机数产生的密钥等私密信息,导致不安全。还有一类方法是通过对初步生成的种子数据经过单个哈希算法处理或内部信息截取组合进行异或处理等操作生成种子。如专利(cn202211123608.4)一种随机数种子生成方法、装置、电子设备及存储介质,公开了一种随机数种子生成方法:获取所述用户输入数据作为第一数组,结合所述第二数组和第三数组中的至少一项确定第
技术实现思路
1、为了解决现有技术存在的生成种子容易引起随机性降低及安全性不够的技术问题,本专利技术实施例提供了一种伪随机数生成方法及装置。所述技术方案如下:
2、一方面,提供了一种伪随机数生成方法,该方法由伪随机数生成设备实现,该方法包括:
3、s1、构建熵池,利用熵池从系统环境中收集熵源数据,并对熵源数据进行逐层混合映射,得到混合后的熵源数据,进而生成第一初始种子。
4、s2、利用终端存储模块收集终端设备内部的多种随机数据,对多种随机数据进行截取移位混合操作,生成第二初始种子。
5、s3、根据第一初始种子以及第二初始种子,生成第三数据,使用第二哈希算法对第三数据进行第二步哈希处理,进而得到最终的伪随机数种子。
6、s4、将最终的伪随机数种子输入到伪随机数发生器,实现伪随机数的生成。
7、可选地,s1中的熵池包括:混合熵源数据存储模块、第一层混沌算法映射模块、第二层混沌算法映射模块以及处理后数据存储模块。
8、其中,混合熵源数据存储模块,用于存储从系统环境中收集的熵源数据,并对熵源数据进行混合,得到混合多元数据。
9、第一层混沌算法映射模块,用于使用第一混沌算法对混合多元数据进行第一层映射,得到第一层映射后的数据。
10、第二层混沌算法映射模块,用于使用第二混沌算法对第一层映射后的数据进行第二层映射,得到混合后的熵源数据。
11、处理后数据存储模块,用于存储混合后的熵源数据。
12、可选地,第一混沌算法为恩龙henon混沌算法。
13、第二混沌算法为劳伦兹lorenz混沌算法。
14、可选地,s1中的利用熵池从系统环境中收集熵源数据,并对熵源数据进行逐层混合映射,得到混合后的熵源数据,进而生成第一初始种子,包括:
15、s11、利用熵池从系统环境中收集熵源数据,并对熵源数据进行逐层混合映射,得到混合后的熵源数据。
16、s12、对混合后的熵源数据进行熵估计测试,得到测试后的熵源数据,判断测试后的熵源数据是否符合随机性要求,若符合,则执行步骤s13;若不符合,则转去执行步骤s11。
17、s13、使用第一哈希算法对符合随机性要求的熵源数据进行第一步哈希处理,生成第一初始种子。
18、可选地,s2中的利用终端存储模块收集终端设备内部的多种随机数据,对多种随机数据进行截取移位混合操作,生成第二初始种子,包括:
19、s21、利用终端存储模块收集终端设备内部预设字节长度的随机数据,并按照预设字节长度随机截取终端设备的特有标识信息。
20、s22、对随机数据以及特有标识信息进行截取移位混合操作,生成第二初始种子。
21、可选地,s3中的根据第一初始种子以及第二初始种子,生成第三数据,使用第二哈希算法对第三数据进行第二步哈希处理,进而得到最终的伪随机数种子,包括:
22、s31、分别对第一初始种子以及第二初始种子进行随机拆分处理,对随机拆分处理得到的等长信息段进行移位加操作,生成第三数据。
23、s32、使用第二哈希算法对第三数据进行第二步哈希处理,得到新的数据列,根据新的数据列按照预设的输出位数输出随机数种子。
24、s33、对随机数种子进行有效性验证,若通过有效性验证,则得到最终的伪随机数种子;若未通过有效性验证,则转去执行步骤s31。
25、另一方面,提供了一种伪随机数生成装置,该装置应用于伪随机数生成方法,该装置包括:
26、第一生成模块,用于构建熵池,利用熵池从系统环境中收集熵源数据,并对熵源数据进行逐层混合映射,得到混合后的熵源数据,进而生成第一初始种子。
27、第二生成模块,用于利用终端存储模块收集终端设备内部的多种随机数据,对多种随机数据进行截取移位混合操作,生成第二初始种子。
28、种子生成模块,用于根据第一初始种子以及第二初始种子,生成第三数据,使用第二哈希算法对第三数据进行第二步哈希处理,进而得到最终的伪随机数种子。
29、输出模块,用于将最终的伪随机数种子输入到伪随机数发生器,实现伪随机数的生成。
30、可选地,熵池包括:混合熵源数据存储模块、第一层混沌算法映射模块、第二层混沌算法映射模块以及处理后数据存储模块。
31、其中,混合熵源数据存储模块,用于存储从系统环境中收集的熵源数据,并对熵源数据进行混合,得到混合多元数据。
32、第一层混沌算法映射模块,用于使用第一混沌算法对混合多元数据进行第一层映射,得到第一层映射后的数据。<本文档来自技高网...
【技术保护点】
1.一种伪随机数生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述S1中的熵池包括:混合熵源数据存储模块、第一层混沌算法映射模块、第二层混沌算法映射模块以及处理后数据存储模块;
3.根据权利要求2所述的方法,其特征在于,所述第一混沌算法为恩龙Henon混沌算法;
4.根据权利要求1所述的方法,其特征在于,所述S1中的利用所述熵池从系统环境中收集熵源数据,并对所述熵源数据进行逐层混合映射,得到混合后的熵源数据,进而生成第一初始种子,包括:
5.根据权利要求1所述的方法,其特征在于,所述S2中的利用终端存储模块收集终端设备内部的多种随机数据,对所述多种随机数据进行截取移位混合操作,生成第二初始种子,包括:
6.根据权利要求1所述的方法,其特征在于,所述S3中的根据所述第一初始种子以及第二初始种子,生成第三数据,使用第二哈希算法对所述第三数据进行第二步哈希处理,进而得到最终的伪随机数种子,包括:
7.一种伪随机数生成装置,所述伪随机数生成装置用于实现如权利要求1-6所述的任一项伪随
8.根据权利要求7所述的装置,其特征在于,所述熵池包括:混合熵源数据存储模块、第一层混沌算法映射模块、第二层混沌算法映射模块以及处理后数据存储模块;
9.一种伪随机数生成设备,其特征在于,所述伪随机数生成设备包括:
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1至6任一项所述的方法。
...【技术特征摘要】
1.一种伪随机数生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述s1中的熵池包括:混合熵源数据存储模块、第一层混沌算法映射模块、第二层混沌算法映射模块以及处理后数据存储模块;
3.根据权利要求2所述的方法,其特征在于,所述第一混沌算法为恩龙henon混沌算法;
4.根据权利要求1所述的方法,其特征在于,所述s1中的利用所述熵池从系统环境中收集熵源数据,并对所述熵源数据进行逐层混合映射,得到混合后的熵源数据,进而生成第一初始种子,包括:
5.根据权利要求1所述的方法,其特征在于,所述s2中的利用终端存储模块收集终端设备内部的多种随机数据,对所述多种随机数据进行截取移位混合操作,生成第二初始种子,包括:
6.根据权利要求...
【专利技术属性】
技术研发人员:何道敬,黄维文,陈磊,周晓光,王轸,
申请(专利权)人:深圳市证通金信科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。