logo好方法网

一种软随机数发生方法及发生器


技术摘要:
本发明公开了一种软随机数发生方法及发生器,所述方法包括:获取被索引编号的若干个随机源,其中各随机源的末端加入有与其对应的拼接函数;循环利用所有随机源和与各随机源对应的拼接函数拼接出初始随机数,其中,所述拼接函数仅基于与其对应的随机源的索引编号,对初  全部
背景技术:
真正意义上的随机数,也就是真随机数,是使用物理现象产生的。比如掷钱币、骰 子、转轮、使用电子元件的噪音、核裂变等等,这样的随机数发生器叫做物理性随机数发生 器,它们的缺点是技术要求比较高。 在电子设备中真随机数使用较多的是电子元件中的噪音等较为高级、复杂的物理 过程来生成,其结果是不可预测的,更是不可预见的。 而软件中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。可 以认为这个可预见的结果其出现的概率是100%。所以用软件随机函数所产生的“随机数” 并不随机,而是伪随机数。伪随机数其实是有规律的。只不过这个规律周期比较长,但还是 可以预测的。主要原因就是伪随机数是软件使用算法模拟出来的,这个过程并不涉及到物 理过程,所以自然不可能具有真随机数的特性。 现有技术中真随机数的产生方法都是依赖于硬件电路来实现的,这样无疑增加设 备的设计复杂度和设备的成本。
技术实现要素:
针对上述问题,本发明提出一种软随机数发生方法及发生器,能够实现同软件产 生真随机数,彻底解决了现有单纯使用软件只能生成伪随机数的问题。 为了实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现: 第一方面,本发明提供了一种软随机数发生方法,包括: 获取被索引编号的若干个随机源,其中各随机源的末端加入有与其对应的拼接函 数; 循环利用所有随机源和与各随机源对应的拼接函数拼接出初始随机数,其中,所 述拼接函数仅基于与其对应的随机源的索引编号,对初始随机数中对应的占位值进行运算 操作; 将所述初始随机数输入至随机函数,经所述随机函数处理后得到第二随机数,完 成软随机数发生。 可选地,一个随机源对应一个索引编号;或者多个随机源对应一个索引编号。 可选地,当一个随机源对应一个索引编号时,各随机源均设有约定位宽,各随机源 的约定位宽相同或者不同, 初始随机数中与各随机源对应的占位值域为[0,2n-1],n表示随机源的位宽; 当多个随机源对应一个索引编号时,各随机源均设有约定位宽,对应于同一个索 引编号的随机源的约定位宽相同,且对应于初始随机数中的同一个占位值;对应于不同索 引编号的随机源的约定位宽相同或者不同; 4 CN 111596892 A 说 明 书 2/6 页 初始随机数中与各随机源对应的占位值域为[0,2n-1],n表示随机源的位宽。 可选地,所述拼接函数仅基于与其对应的随机源的索引编号,对初始随机数中对 应的占位值进行运算操作,具体包括: 当索引编号为IDX的随机源被调用时,拼接函数使用算法映射到初始随机数中第 IDX个占位值上进行运算操作,得到始随机数中索引编号为IDX的随机源对应的位宽的值。 可选地,所述经所述随机函数处理后得到第二随机数步骤之后还包括: 重复执行将所述第二随机数赋值给初始随机数,然后再将所述初始随机数输入至 所述随机函数,经所述随机函数处理后得到第二随机数。 可选地,所述随机函数为时钟函数或线性求余函数。 可选地,所述运算操作包括算术运算、关系运算或逻辑运算。 第二方面,本发明提供了一种软随机数发生器,包括: 获取单元,用于获取被索引编号的若干个随机源,其中,各随机源的末端加入有与 其对应的拼接函数; 初始随机数产生单元,用于循环利用所有随机源和与各随机源对应的拼接函数拼 接出初始随机数,其中,所述拼接函数仅基于与其对应的随机源的索引编号,对初始随机数 中对应的占位值进行运算操作; 生成单元,将所述初始随机数输入至随机函数,经所述随机函数处理后得到第二 随机数,完成软随机数的发生。 可选地,一个随机源对应一个索引编号;或者多个随机源对应一个索引编号。 可选地,当一个随机源对应一个索引编号时,各随机源均设有约定位宽,各随机源 的约定位宽相同或者不同; 初始随机数中与各随机源对应的占位值域为[0,2n-1],n表示随机源的位宽; 当多个随机源对应一个索引编号时,各随机源均设有约定位宽;对应于同一个索 引编号的随机源的约定位宽相同,且对应于初始随机数中的同一个占位值;对应于不同索 引编号的随机源的约定位宽相同或者不同; 初始随机数中与各随机源对应的占位值域为[0,2n-1],n表示随机源的位宽。 可选地,所述拼接函数仅基于与其对应的随机源的索引编号,对初始随机数中对 应的占位值进行运算操作,具体包括: 当索引编号为IDX的随机源被调用到时,拼接函数使用算法映射到初始随机数中 第IDX个占位值上进行运算操作,得到初始随机数中索引编号为IDX的随机源对应的位宽的 值。 可选地,所述软随机数发生器还包括: 循环单元,用于重复执行将所述第二随机数赋值给初始随机数,然后再将所述初 始随机数输入至所述随机函数,经所述随机函数处理后得到第二随机数。 可选地,所述随机函数为时钟函数或线性求余函数。 可选地,所述运算操作包括算术运算、关系运算或逻辑运算。 与现有技术相比,本发明的有益效果: 本发明仅在系统中简单的添加拼接函数就能快速集成,而且占用内存少,执行方 法快速,实现简单,另外可并发执行,可移植性强,节省产品的硬件成本,同时降低了硬件设 5 CN 111596892 A 说 明 书 3/6 页 计的复杂度,本发明能够适配嵌入式与非嵌入式的软件系统。 附图说明 为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对 本发明作进一步详细的说明,其中: 图1为本发明一种实施例的软随机数发生方法的原理示意图; 图2为本发明一种实施例的拼接函数的工作过程示意图; 图3为本发明一种实施例的初始随机数产生过程示意图; 图4为本发明一种实施例中最终随机数产生过程示意图。
下载此资料需消耗2积分,
分享到:
收藏