当前位置: 首页 > 专利查询>兰州大学专利>正文

基于FPGA的高速伪随机数生成方法及高速伪随机数生成器技术

技术编号:34566479 阅读:18 留言:0更新日期:2022-08-17 12:56
本发明专利技术公开了一种基于FPGA的高速伪随机数生成方法及高速伪随机数生成器,在FPGA中采用适当的混沌模型算法,从而产生高速的伪随机数,FPGA电路中整体运算采用128bit定点数设计,达到足够的计算精度,有效抑制混沌退化,提高输出带宽,增强吞吐量,提升密匙空间;运算过程中,对混沌模型算法进行分块处理,将模型中占用大量时间的运算分成小部分进行并行完成。采用本发明专利技术产生的伪随机数速率可达到10Gbps,能满足高带宽需求的视频传输;产生的伪随机数序列能通过严格而高标准的随机性测试,产生序列的复杂性也得到了保障;此外,本发明专利技术伪随机数发生器的成本大大降低,同时提高了FPGA的资源利用效率,降低了功耗。降低了功耗。降低了功耗。

【技术实现步骤摘要】
基于FPGA的高速伪随机数生成方法及高速伪随机数生成器


[0001]本专利技术属于通信信息安全
,尤其涉及一种基于FPGA的高速伪随机数生成方法及高速伪随机数生成器。

技术介绍

[0002]在当今的信息化时代背景下,随机数在许多领域都得到了广泛的应用。例如:在密码学中,随机数可用于密码的传输、存储、计算等;在雷达监测中,随机数可用于雷达波形的产生,利用随机数产生的噪声波形,具有抗干扰、低截获等优点;随机数用于机械振动中,可利用蒙特卡洛方法对机械振动的随机性做出预测。因此,研究能够产生随机性高、复杂度高的随机数具有重要的应用价值。
[0003]产生随机数的方法主要有算法产生伪随机数、物理熵源产生真随机数和混沌电路产生随机数等方法,其中,算法产生伪随机数和物理熵源产生真随机数的方法具有可行性,但存在着平台局限、易受环境干扰、成本较高等致命缺点,因此,本专利技术采用混沌电路产生随机数的方法。混沌电路既可以产生伪随机数也可以产生真随机数,但由于真随机数产生速率较低且难度较大、成本较高,因此本专利技术选择具有更高性能的伪随机进行产生,其产生速度较快,且具有可重复性和可再生性。
[0004]目前混沌电路伪随机数产生主要有以下研究方向和成果:首先,传统的混沌模型,采用异或电路进行实现,虽然这种模型规模较小且资源占用率低,但是其产生的随机数随机性不高,需要后处理,速率只有7.38Mbit/s;其次,采用增强型低维混沌系统加sin运算的模型,虽然可以进行小型化和芯片化,但是复杂的算法导致其产生的速率不高;最后,美国安捷伦公司所生产的伪随机数产生器,虽然已规模化生产,但高昂的成本令人望而却步。
[0005]综上所述,现有的混沌电路伪随机数产生器存在如下缺陷:
[0006]1.成本较高,目前存在的成熟的伪随机数产生器价格均高达几十万;
[0007]2.随机数产生速率较低目前最高速率仅达6.78Gbps,在高带宽需求的视频传输以及企业或军队用途中远远不够;
[0008]3.产生序列复杂度不够,无法通过NIST SP800

22、TestU01等随机性标准测试。

技术实现思路

[0009]针对上述
技术介绍
中指出的不足,本专利技术提供了一种基于FPGA的高速伪随机数生成方法及高速伪随机数生成器,旨在解决上述
技术介绍
中现有技术存在的问题。
[0010]为实现上述目的,本专利技术采用的技术方案是:
[0011]一种基于FPGA的高速伪随机数生成方法,包括以下步骤:
[0012]首先,建立如下混沌模型算法:
[0013][0014]其中α,β,γ1,γ2均为二维逻辑斯蒂映射的参数,a为一维帐篷模型的控制参数;
[0015]其次,在FPGA中对所述混沌模型算法进行实现,在FPGA电路中的整体运算采用128bit定点数设计,运算过程中,对混沌模型算法进行分块处理,将模型中占用大量时间的运算分成小部分进行并行完成。
[0016]上述方法在模型层面就使产生的伪随机数具有足够高的随机性,使得不用利用XOR运算也能通过严格而高标准的随机性测试,同时也使产生序列的复杂性得到了保障。该方法的运算量较小,计算方法较为高效,使FPGA的资源占用率达到较低的水平,展示出较高的利用率,从而降低其功耗。
[0017]优选地,所述混沌模型算法进行分块处理方式如下,其中省略了mod运算:
[0018][0019]其中,上标1、2、3、4分别代表P1、P2、P3、P4,即FPAG运算模块中的第一部分、第二部分、第三部分和第四部分的运算,参数选择为(α,β,γ1,γ2,a)=(4,4,2,2,0.5),使整个系统的运算结果mod中不可能产生负数结果,进而mod函数的运算就可以表示为截取掉运算过程中的整数位,保留小数位;
[0020]对于P2和P4运算中,采用如下公式将128bit的乘法拆分为三个64bit进行运算,以大幅减少运行频率损失:
[0021]X2={A,B}
×
{A,B}={(A2),(2AB),(B2)}。
[0022]优选地,所述分块处理方式下,运算过程如下:
[0023]S0:输入128bit的x
n
,y
n
初始值;
[0024]S1:对于P1:进行1

x
n
的操作;
[0025]对于P2,P4:进行A2,B2,2AB的计算操作;
[0026]对于P3,首先利用y
n
的MSB来判断y
n
是否大于0.5,即a的值,从而决定是采用y
n
(当0≤y
n
<0.5时)还是(1

y
n
)(当0.5≤y
n
<1时),同时由于1

a以及a都等于0.5,除以1

a或者a等于乘2,即左移一位的操作,因此,将以上判断后的结果再进行F操作则形成模型算法中虚线右侧的计算结果,不进行F操作则形成模型算法中虚线左侧的结果;
[0027]S2:对于P1:进行1

x
n
与x
n
相乘的操作;
[0028]对于P2,P4:进行相加的操作,算出x
n2
,y
n2

[0029]对于P3:进行虚线左右两部分相乘的操作;
[0030]S3:将输出的256bit结果进行截取128MSB的操作,对截取的位置根据所乘响应的参数进行相应的改变,然后对P1,P2的剩余部分进行相加,对P3,P4的剩余部分进行相加,结果即为x
n+1
,y
n+1
,同时将两个通道的x
n+1
,y
n+1
进行输出,形成单次256bit位宽的输出。
[0031]本专利技术进一步提供了一种基于FPGA的高速伪随机数生成器,其应用了将一维帐篷混沌映射(Tent map)嵌入到二维逻辑斯蒂混沌映射(Logistic map)中进行组合产生的嵌入式交叉耦合拓扑结构,因此,伪随机数生成器主要包括:
[0032]一维帐篷映射模块:用于对y进行映射,表示如下:
[0033][0034]其中,k为迭代次数,α为控制参数,即为嵌入式交叉耦合映射中的参数a。
[0035]二维逻辑斯蒂映射模块:用于对x和y分别进行映射,表示如下:
[0036][0037]其中,λ1、λ2均为控制参数;
[0038]输入耦合模块:用于将两个维度的输出进行耦合后,分别送入两个输入通道;
[0039]输出耦合模块:用于生成伪随机数并输出。
[0040]相比于现有技术的缺点和不足,本专利技术具有以下有益效果:
[0041](1)本专利技术提供了一种基于FPGA的全新伪随机数产生方法,提出的混沌模型算法运算量较小且高效,使FPGA的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的高速伪随机数生成方法,其特征在于,包括以下步骤:首先,建立如下混沌模型算法:其中α,β,γ1,γ2均为二维逻辑斯蒂映射的参数,a为一维帐篷模型的控制参数;其次,在FPGA中对所述混沌模型算法进行实现,在FPGA电路中的整体运算采用128bit定点数设计,运算过程中,对混沌模型算法进行分块处理,将模型中占用大量时间的运算分成小部分进行并行完成。2.如权利要求1所述的基于FPGA的高速伪随机数生成方法,其特征在于,所述混沌模型算法进行分块处理方式如下,其中省略了mod运算:其中,上标1、2、3、4分别代表P1、P2、P3、P4,为FPAG运算模块中的4部分运算;参数选择为(α,β,γ1,γ2,a)=(4,4,2,2,0.5);对于P2和P4运算中,采用如下公式将128bit的乘法拆分为三个64bit进行运算:X2={A,B}
×
{A,B}={(A2),(2AB),(B2)}。3.如权利要求2所述的基于FPGA的高速伪随机数生成方法,其特征在于,所述分块处理方式下,运算过程如下:S0:输入128bit的x
n
,y
n
初始值;S1:对于P1:进行1

x
n
的操作;对于P2,P4:进行A2,B2,2AB的计算操作;对于P3,首先利用y
n
的MSB来判断y
n
是否大于0.5,即a的值,从而决定是采用y
n
(当0≤y
n
<0.5时)还是(1...

【专利技术属性】
技术研发人员:任丰原吴玉其刘胤哲李守亮杨臻
申请(专利权)人:兰州大学
类型:发明
国别省市:

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

1