一种基于FPGA的混合随机数发生器的制作方法

文档序号:41239844发布日期:2025-03-14 12:08阅读:37来源:国知局

本发明属于通信信息安全,具体涉及一种基于fpga的混合随机数发生器。


背景技术:

1、随着通信信息安全技术的发展,随机数在密码安全、物理测试、以及雷达抗干扰等领域得到了广泛的应用。因此,各个领域对于随机数发生器的性能要求越来越高,研究随机性强的随机数发生器越来越重要。

2、目前主流的随机数发生器主要分为真随机数发生器和伪随机数发生器。真随机数发生器是对真实的物理熵源进行采样并将其数字化产生的随机数序列,是无法预测的真正意义上的随机数;但是真随机数发生器需要消耗大量的资源来产生高质量的熵源和高精确度的采样电路。伪随机数发生器一般是由确定性的算法产生的效率高、速度快的随机数,但一般的伪随机算法都有种子值被预测的问题,安全性存在风险。

3、真随机数发生器的熵源可以分为亚稳态电路、自定时振荡环和环形振荡器等。其中亚稳态电路容易受到环境因素的影响,稳定性较差;自定时振荡环具有较高的熵源质量,但结构相对复杂;环形振荡器结构相对简单,但要达到高随机性的熵源,需要大量环形振荡器组合。传统的基于环形振荡器的真随机数发生器需要大量振荡器进行随机性叠加,但由于混合随机数发生器对于真随机数发生器的随机性要求降低。

4、目前主流的伪随机数的实现算法有线性同余算法、线性移位寄存器(lfsr)、梅森算法和混沌算法等。线性同余算法和lfsr结构简单,但随机性和复杂度都较差;梅森算法等随机算法伪随机数发生器效率高、速度快,但可重塑性差、消耗资源高。相比之下,混沌算法的实现更加灵活,并且具有很高的非线性特性,随机性可以得到保证。但是混沌算法在迭代过程中存在初始值被预测和混沌特性退化的问题,并且对于随机性需求较高的发生器,需要使用复杂性较高的混沌模型。


技术实现思路

1、(一)要解决的技术问题

2、本发明要解决的技术问题是:设计一种混合随机数发生器来产生高质量的真随机数,解决使用简易的真随机数发生器和低阶的混沌结构产生高复杂性的随机数问题。

3、(二)技术方案

4、为了解决上述技术问题,本发明提供了一种基于fpga的混合随机数发生器,包括:真随机数发生器模块、混沌状态更新模块和混沌随机数发生器模块;其中,所述真随机数发生器模块用于通过对物理熵源采样,产生真随机数;所述混沌状态更新模块用于对真随机数进行处理,获得指定位宽的随机数并定时输出;混沌随机数发生器模块用于采用适当的混沌模型算法,通过浮点数运算完成混沌模型计算,并且以混沌状态更新模块输出的随机数更新混沌模型中的参数和初始值,通过迭代产生高随机性的随机数。

5、优选地,真随机数发生器模块具体是使用采样电路对环形振荡器电路进行采样,并通过多路异或输出真随机数。

6、优选地,真随机数发生器模块包含如下子模块:

7、a)环形振荡器模块,用于在fpga上产生4个环形振荡器电路;

8、b)采样电路,用于对每个环形振荡器电路进行采样,获得4个指定位宽的二进制序列;其中采样电路的采样时间宽度大于环形振荡器周期的二分之一;

9、c)边沿检测器模块,用于使用lsb译码器对获得的多个二进制序列进行译码,由二进制序列中第一个边沿的位置确定译码器输出,其中,使用奇数为0、偶数为1的方法进行译码;

10、d)多路异或模块,用于将多个lsb译码器的输出相互异或,获得多个环形振荡器电路随机性累加的真随机数的二进制序列。

11、优选地,混沌状态更新模块具体是采用缓存器模块通过fifo接收真随机数发生器模块产生的真随机数,将其转换为指定范围内的单精度浮点数,并定时控制改变混沌算法运算的参数和状态。

12、优选地,混沌状态更新模块包含如下子模块:

13、a)缓存器模块,用于使用fifo缓存接收到的真随机数;

14、b)串并转换模块,用于将缓存器模块中单bit输出的真随机数转换为并行数据,作为接下来混沌模型的参数和初始值的更新数值;串并转换模块输出75bit的并行真随机数,以使混沌模型的参数和初始值在预先选择的范围内;

15、c)更新数值转换模块,用于接收串并转换模块输出的75bit的并行真随机数,并通过添加单精度浮点数的剩余位数构建混沌模型的初始值和参数值;

16、d)定时器模块,用于使用两个定时器定时控制更新数值转换模块输出的单精度浮点数作为混沌模型更新数值,其中一个定时器用作更新混沌模型的参数,另一个定时器用作更新混沌模型的初始值。

17、优选地,混沌随机数发生器模块具体是采用euler算法在fpga上构建如下的lorenz混沌模型:

18、

19、其中a,b,c为lorenz混沌模型的参数,t为计算迭代的时长。

20、优选地,混沌随机数发生器模块包含如下子模块:

21、a)状态修改模块,用于判断混沌状态更新模块是否需要更新混沌模型的参数和初始值;如果需要更新参数,则使用浮点数运算器计算[1-at],[1-t],[1-ct],at和bt,并作为新的混沌模型的参数;如果需要更新初始值,则接收混沌状态更新模块输出的随机数,并更换混沌模型的初始值;

22、b)混沌模型模块,用于通过使用fpga实现的浮点数运算器计算混沌模型中的x(n+1),y(n+1)和z(n+1),完成混沌模型的计算,其中,混沌模型的迭代需要等待若干次迭代后再输出随机数;

23、c)定时输出模块,用于控制混沌模型在更新混沌状态后的前30次迭代不输出结果,在后30次迭代中输出迭代后的x,y,z的低10位异或的结果;

24、d)缓存器模块,用于使用fifo缓存定时输出模块输出的随机数。

25、优选地,混沌模型的参数和初始值设定为:a的取值范围为(8,15),b的取值范围为(32,64),c的取值范围为(2,3),初始值的取值范围为(2,31);混沌模型的计算中a只需改变后23位,b只需改变后24位,c只需改变后22位,初始值只需改变后25位,其余位为固定值。

26、优选地,该混合随机数发生器在通信信息安全技术领域中应用。

27、优选地,该混合随机数发生器在雷达抗干扰技术领域中应用。

28、(三)有益效果

29、本发明设计了一种基于fpga的混合随机数发生器来产生高质量的真随机数,包括真随机数发生器模块、混沌状态更新模块和混沌随机数发生器模块。该混合随机数发生器使用fpga通过真随机数控制更新混沌模型,产生高复杂性的随机数;以简易的熵源和低阶的混沌算法保持混沌状态,解决了使用简易的真随机数发生器和低阶的混沌结构产生高复杂性的随机数问题,提高了fpga的资源利用效率。



技术特征:

1.一种基于fpga的混合随机数发生器,其特征在于,包括:真随机数发生器模块、混沌状态更新模块和混沌随机数发生器模块;其中,所述真随机数发生器模块用于通过对物理熵源采样,产生真随机数;所述混沌状态更新模块用于对真随机数进行处理,获得指定位宽的随机数并定时输出;混沌随机数发生器模块用于采用适当的混沌模型算法,通过浮点数运算完成混沌模型计算,并且以混沌状态更新模块输出的随机数更新混沌模型中的参数和初始值,通过迭代产生高随机性的随机数。

2.如权利要求1所述的混合随机数发生器,其特征在于,真随机数发生器模块具体是使用采样电路对环形振荡器电路进行采样,并通过多路异或输出真随机数。

3.如权利要求2所述的混合随机数发生器,其特征在于,真随机数发生器模块包含如下子模块:

4.如权利要求3所述的混合随机数发生器,其特征在于,混沌状态更新模块具体是采用缓存器模块通过fifo接收真随机数发生器模块产生的真随机数,将其转换为指定范围内的单精度浮点数,并定时控制改变混沌算法运算的参数和状态。

5.如权利要求4所述的混合随机数发生器,其特征在于,混沌状态更新模块包含如下子模块:

6.如权利要求5所述的混合随机数发生器,其特征在于,混沌随机数发生器模块具体是采用euler算法在fpga上构建如下的lorenz混沌模型:

7.如权利要求6所述的混合随机数发生器,其特征在于,混沌随机数发生器模块包含如下子模块:

8.如权利要求6所述的混合随机数发生器,其特征在于,混沌模型的参数和初始值设定为:a的取值范围为(8,15),b的取值范围为(32,64),c的取值范围为(2,3),初始值的取值范围为(2,31);混沌模型的计算中a只需改变后23位,b只需改变后24位,c只需改变后22位,初始值只需改变后25位,其余位为固定值。

9.如权利要求1至8中任一项所述的混合随机数发生器,其特征在于,该混合随机数发生器在通信信息安全技术领域中应用。

10.如权利要求1至8中任一项所述的混合随机数发生器,其特征在于,该混合随机数发生器在雷达抗干扰技术领域中应用。


技术总结
本发明涉及一种基于FPGA的混合随机数发生器,属于通信信息安全技术领域。本发明的混合随机数发生器用来产生高质量的真随机数,包括真随机数发生器模块、混沌状态更新模块和混沌随机数发生器模块。该混合随机数发生器使用FPGA通过真随机数控制更新混沌模型,产生高复杂性的随机数;以简易的熵源和低阶的混沌算法保持混沌状态,解决了使用简易的真随机数发生器和低阶的混沌结构产生高复杂性的随机数问题,提高了FPGA的资源利用效率。

技术研发人员:李威,吴环宝,范保硕,曾祥烨
受保护的技术使用者:天津津航技术物理研究所
技术研发日:
技术公布日:2025/3/13
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!