首页 / 专利库 / 电子零件及设备 / 实时时钟 / 一种基于FPGA硬件实现的伪随机数的生成方法

一种基于FPGA硬件实现的伪随机数的生成方法

阅读:349发布:2020-05-08

专利汇可以提供一种基于FPGA硬件实现的伪随机数的生成方法专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于FPGA 硬件 实现的伪随机数的生成方法,所述方法包括以下步骤:首先通过LSFR方式产生一串伪随机序列,并截取连续的L位构成(0,1)之间均匀分布的随机数TR_GEN。运用转换逻辑矩阵A的方式,经过S次变换Uj,n+1=As*Uj,n就可以得到S位新的数据,只需要一个时钟周期即可实时产生新的s位数据;其次采用组合结构的设计思想,融合多个TR_GEN,设计新的随机序列CTR_GEN可表示新生成的随机数,与原有的TR_GEN具有相同的特征属性;而且CTR_GEN结构下产生的随机数具有更长的周期,是实现P(z)=P1(z)*P2(z)*...*PJ(z)所对应随机数生成器的一种便捷方式;本 算法 生成的随机数具有产生周期长、数据 精度 高、位宽和周期可重构的特点,在FPGA中最高运行 频率 可达300Mhz,极大程度的提高了随机数产生的速率,降低了延迟,且算法清晰、逻辑合理,具备一定的理论意义和工程实用价值。,下面是一种基于FPGA硬件实现的伪随机数的生成方法专利的具体信息内容。

1.一种一种基于FPGA硬件实现的伪随机数的生成方法,其特征在于,所述方法包括:
S1:通过线性反馈移位寄存器(LFSR)产生一串伪随机序列,特征多项式P(z)=zk-a1zk-1-...ak的系数ai,利用公式 生成随机序列;
S2:当特征多项式进化成本原多项式时,结合P(z)=Xk-Xq-1中约束关系:0<2q<k,0<s≤k-q<k≤L,随机序列具有最大周期2k-1;从产生的随机序列中截断连续的L位,并将截断的序列构成(0,1)之间均匀分布的随机数,该结构可通过公式 表示。
S3:为表述上述的随机序列生成过程公式,采用转换逻辑矩阵A表述,并经过S次变换(S为整数),可以得到TR_GEN经过一个时刻产生S位新的数据;
S4:实际需求的随机数仅依赖单一结构的TR_GEN无法满足,采用组合机构的思想,融合多个TR_GEN结构提高随机数的周期和数据精度,生成CTR_GEN结构;
S5:每个TR_GEN的特征多项式Pj(z)都是三项式,所以其设计实现过程非常的简单,CTR_GEN就是实现P(z)=P1(z)*P2(z)*...*PJ(z)所对应随机数生成器的一种便捷方式。
2.根据权利要求1所述的一种基于FPGA硬件实现的伪随机数的生成方法,其特征在于,所述步骤S1具体包括:
通过线性反馈移位寄存器的方式可以产生一串伪随机序列,该随机序列的产生过程依据公式 其中ai是特征多项式P(z)=zk-a1zk-1-...ak的系数。
3.根据权利要求1所述的基于FPGA硬件实现的伪随机数的生成方法,其特征在于,所述步骤S2具体包括:
S21:实际应用中,P(z)通常取三项式:P(z)=Xk-Xq-1。同时k、q、s和L需要满足如下约束关系:0<2q<k;0<s≤k-q<k≤L。参数L代表产生随机数的位宽长度,参数s表示跃变步长,L和s均为不为0的正整数。
S22:TR_GEN的硬件结构, 为第j个TR_GEN的输出,Uj,n+1的L位数
据中,X[L]~X[L+s-1]是新产生的s位数据,其他(L-s)位数据(X[s]~X[L-1])是由Uj,n通过移位操作得到。
4.根据权利要求4所述的基于FPGA硬件实现的伪随机数的生成方法,其特征在于所述步骤S3具体包括:
S31:随机序列生成公式描述的反馈关系,采用矩阵形式表示为:X(t+1)=A*X(t)。X(t+
1)表示下一时刻的数据有当前时刻数据和转换逻辑矩阵共同完成,每经过一次转换X(t+1)就产生一位新数据。
S32:由上述过程可得到,若经过S次变换有Uj,n+1=As*Uj,n,TR_GEN经过一个时刻可得到s位的新数据,表达式为:X(t+s)=A*X(t+s-1)=A*A*X(t+s-2)=...=AS*X(t)
5.根据权利要求1所述的基于FPGA硬件实现的伪随机数的生成方法,其特征在于所述步骤S4具体包括:
首先,当多项式Pj(z)满足互不相关的条件时,将多个TR_GEN产生的每一位结果进行“异或”,可以得到一个新的随机序列域;
其次,新的随机序列域可表示成为P(z)=P1(z)*P2(z)*...*PJ(z),且只有乘积关系;
最后,新产生的随机数的特征多项式与原有的TR_GEN具有相同的特征属性,其周期也为各个多项式周期的相乘,即为T=(2k1-1)*(2k2-1)*...*(2kJ-1)。
当TR_GEN的数量为J时,其关系为:
CTR_GEN产生的随机数具有更长的周
期,而且其特征多项式P(z)中具有更多的非零系数。
6.根据权利要求1所述的基于FPGA硬件实现的伪随机数的生成方法,其特征在于所述步骤S5具体包括:
S51:当多项式Pj(z)满足互不相关的条件时,将多个TR_GEN产生的每一
位结果进行“异或”,可以得到一个新的随机序列域,当TR_GEN的数量为J时,其关系为:
S52:CTR_GEN就是实现P(z)=P1(z)*P2(z)*...*PJ(z)所对应随机数生成器的一种便捷方式,采用CTR_GEN结构可以实现周期更长,相关性更低的随机数。
J个TR_GEN构成了CTR_GEN结构,每个TR_GEN结构产生的每比特数据经过异或得到最新的随机序列,J个TR_GEN结构并行运算,其处理速率基本等同于单个TR_GEN的运算速率,有效提高随机数的产生速率。

说明书全文

一种基于FPGA硬件实现的伪随机数的生成方法

技术领域

[0001] 本发明涉及通信信息安全技术领域,具体涉及一种伪随机数的生成方法及基于FPGA的硬件实现

背景技术

[0002] 随机序列在计算机、通信、密码学领域有着广泛的应用,尤其是信息安全领域,在密钥管理、密码协议、数字证书、数字签名和身份认证等应用中,随机数的性质直接影响系统的安全。由于真正的随机序列多数借助于噪声产生,难于实现,因此伪随机序列成为随机数产生的主流,用于射频识别器(RFID)中无源标签的伪随机数发生器时,或者只是简单的提出伪随机数发生器的设计方法,未能给出随机数序列完整的测试结果;或者所提出的伪随机数发生器的产生速率较慢, 无法满足某些场合对伪随机数序列的需求,传统的硬件随机数产生技术通常采用LFSR(线性反馈移位寄存器)的方式,产生的随机数结果存在着数据周期短、数据精度低的问题。基于此,有学者提出了设计的震荡采样法和直接放大法组合方式实现随机数具有极大的输出延迟,产生效率不高,或者设计的并行移位寄存器方法产生的随机数虽然提高了随机数产生效率,但却降低了随机数的不随机性。
[0003] 一种RFID伪随机数发生器,该伪随机数发生器应用两个级数互不相同的 LFSR来构成钟控序列发生器。首先级数为n1的第一个线性移位寄存器并行输出16位比特流,然后其输出的最低位与时钟信号相与后作为级数为n2的第二个线性移位寄存器的钟控信号,最后将第一个线性移位寄存器中并行输出的16 位比特流与第二个线性移位寄存器输出的低16位比特流进行异或操作,之后得到需要输出的伪随机数。
[0004] 显然,上述提及的伪随机数发生器适用于体积小、功耗低、速度快的RFID 系统,但是并没有证明产生的随机数是否满足NIST标准,不确定其随机性是否满足条件。为了提高随机数的产生效率并且提高随机数的不随机性,本文提出并设计了一种基于FPGA的伪随机数生成算法,并在FPGA上实现,经实际测试表明,本文提出的随机数生成算法最高运行频率可达300MHZ,周期具有可重构性,提高了随机数的产生速率。在实际应用场景中,尤其以蒙特卡洛为模型的随机数产生中,随机数的周期和输出精度是可配置的。CTR_GEN模型中的随机数的周期的配置可以通过设置TR_GEN的参数来完成,其周期的计算公式可表示 T=(2k1-1)*(2k2-1)*...*(2kJ-1),随着J的增加,周期T也会增长。CTR_GEN模型中的随机数的精度可以采用位宽宽度来实现,通过对参数的搭配选取,得到满足需要的输出位宽和输出精度。

发明内容

[0005] 针对现有技术中的缺陷,本发明提供一种基于FPGA硬件实现的伪随机数的生成方法,此设计方法提出的CTR_GEN结构有3个特点:
[0006] 1、算法结构简单,易于硬件实现。在本设计中没有复杂的逻辑运算,尤其对于转换逻辑这而言,逻辑结构采用并行的实现方式,s的增加对的运算速率不会明显的影响。
[0007] 2、硬件实现结果工作速度快。本设计CTR_GEN结构所能达到的最大时钟频率为300Mhz,其运行速度快的主要原因是此结构逻辑简单,没有复杂的算术运算,并且易于在FPGA中并行实现,从性能上和资源上都能为最大频率的满足提供有支撑
[0008] 3、周期和精度具有可重构性。本设计的CTR_GEN结构通过对各个参数的重配置可以灵活的完成对随机数产生周期和精度的定制和修改,广泛的实用于各种不同的应用场景。
[0009] 本发明一种基于FPGA硬件实现的伪随机数的生成方法包括:
[0010] S1:通过线性反馈移位寄存器(LFSR)产生一串伪随机序列,特征多项式 P(z)=k k-1z-a1z -...ak的系数ai,利用公式xn=a1xn-1⊕a2xn-2⊕...⊕akxn-k,生成随机序列;
[0011] S2:当特征多项式进化成本原多项式时,结合P(z)=Xk-Xq-1中约束关系: 0<2q
[0012] 构可通过公式 表示。
[0013] S3:为表述上述的随机序列生成过程公式,采用转换逻辑矩阵A表述,并经过S次变换(S为整数),可以得到TR_GEN经过一个时刻产生S位新的数据;
[0014] S4:实际需求的随机数仅依赖单一结构的TR_GEN无法满足,采用组合机构的思想,融合多个TR_GEN结构提高随机数的周期和数据精度,生成CTR_GEN结构;
[0015] S5:每个TR_GEN的特征多项式Pj(z)都是三项式,所以其设计实现过程非常的简单,CTR_GEN就是实现P(z)=P1(z)*P2(z)*...*PJ(z)所对应随机数生成器的一种便捷方式。
[0016] 一、所述步骤S1具体包括:
[0017] 通过线性反馈移位寄存器的方式可以产生一串伪随机序列,该随机序列的产生过程依据公式xn=a1xn-1⊕a2xn-2⊕ ...⊕akxn-k,其中ai是特征多项式 P(z)=zk-a1zk-1-...ak的系数。
[0018] 二、所述步骤S2具体包括:
[0019] S21:实际应用中,P(z)通常取三项式:P(z)=Xk-Xq-1。同时k、q、s和L 需要满足如下约束关系:0<2q
[0020] S22:TR_GEN的硬件结构, 为第j个TR_GEN的输出,Uj,n+1 的L位数据中,X[L]~X[L+s-1]是新产生的s位数据,其他(L-s)位数据 (X[s]~X[L-1])是由Uj,n通过移位操作得到。
[0021] 依据2中提到的逻辑关系和约束限定,提出TR_GEN的硬件结构参考图2;
[0022] 图中Uj,n+1的L位数据中,X[L]~X[L+s-1]是新产生的s位数据,其他(L-s) 位数据(X[s]~X[L-1])是由Uj,n通过移位操作得到。
[0023] 三、所述步骤S3具体包括:
[0024] S31:随机序列生成公式描述的反馈关系,采用矩阵形式表示为:X(t+1)=A*X(t)。X(t+1)表示下一时刻的数据有当前时刻数据和转换逻辑矩阵共同完成,每经过一次转换X(t+1)就产生一位新数据。
[0025] S32:由上述过程可得到,若经过S次变换有Uj,n+1=As*Uj,n,TR_GEN经过一个时刻可得到s位的新数据,表达式为: X(t+s)=A*X(t+s-1)=A*A*X(t+s-2)=...=AS*X(t)[0026] 根据特征分析转换逻辑矩阵As是s个A乘积的结果,结构参考图3:
[0027] 四、所述步骤S4具体包括:
[0028] 首先,当多项式Pj(z)满足互不相关的条件时,将多个TR_GEN产生的每一位结果进行“异或”,可以得到一个新的随机序列域;
[0029] 其次,新的随机序列域可表示成为P(z)=P1(z)*P2(z)*...*PJ(z),且只有乘积关系;
[0030] 最后,新产生的随机数的特征多项式与原有的TR_GEN具有相同的特征属性,其周期也为各个多项式周期的相乘,即为T=(2k1-1)*(2k2-1)*...*(2kJ-1)。
[0031] 当TR_GEN的数量为J时,其关系为:  CTR_GEN产生的随机数具有更长的周期,而且其特征多项式P(z)中具有更多的非零系数。
[0032] 五、所述步骤S5具体包括:
[0033] S51:当多项式Pj(z)满足互不相关的条件时,将多个TR_GEN产生的每一位结果进行“异或”,可以得到一个新的随机序列域,当TR_GEN的数量为J时,其关系为:
[0034] S52:CTR_GEN就是实现P(z)=P1(z)*P2(z)*...*PJ(z)所对应随机数生成器的一种便捷方式,采用CTR_GEN结构可以实现周期更长,相关性更低的随机数。
[0035] J个TR_GEN构成了CTR_GEN结构,每个TR_GEN结构产生的每比特数据经过异或得到最新的随机序列,J个TR_GEN结构并行运算,硬件架构如图4所示;J个 TR_GEN结构并行运算,其处理速率基本等同于单个TR_GEN的运算速率,有效提高随机数的产生速率。附图说明
[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些硬件实施图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037] 图1是本发明提供的一种伪随机数生成方法及FPGA实现的流程示意图;
[0038] 图2是TR_GEN的硬件结构示意图;
[0039] 图3是状态转换矩阵As硬件结构示意图;
[0040] 图4是CTR_GEN硬件架构示意图;
[0041] 图5是随机数进行NIST SP800检测结果;
[0042] 图6是CTR_GEN的资源使用情况及性能分析

具体实施方式

[0043] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
[0044] 如图1所示,为本发明实施例提供的一种基于FPGA硬件实现的伪随机数的生成方法,该方法包括如下步骤:
[0045] S1:通过线性反馈移位寄存器(LFSR)产生一串伪随机序列,特征多项式 P(z)=zk-a1zk-1-...ak的系数ai,利用公式xn=a1xn-1⊕a2xn-2⊕...⊕akxn-k,生成随机序列;
[0046] S2:当特征多项式进化成本原多项式时,结合P(z)=Xk-Xq-1中约束关系: 0<2q
[0047] S3:为表述上述的随机序列生成过程公式,采用转换逻辑矩阵A表述,并经过S次变换(S为整数),可以得到TR_GEN经过一个时刻产生S位新的数据;
[0048] S4:实际需求的随机数仅依赖单一结构的TR_GEN无法满足,采用组合机构的思想,融合多个TR_GEN结构提高随机数的周期和数据精度,生成CTR_GEN结构;
[0049] S5:每个TR_GEN的特征多项式Pj(z)都是三项式,所以其设计实现过程非常的简单,CTR_GEN就是实现P(z)=P1(z)*P2(z)*...*PJ(z)所对应随机数生成器的一种便捷方式。
[0050] 以下将具体介绍本发明的硬件结构和基于FPGA中的设计实现,包括:图2为 TR_GEN硬件架构示意图;图3为状态转换矩阵As硬件结构示意图;图4是CTR_GEN 硬件架构示意图。
[0051] 图2所示TR_GEN结构中,硬件结构由两部分组成:L位的寄存器和转换逻辑As。通过线性反馈移位寄存器的方式可以产生一串伪随机序列,ai是特征多项式P(z)=zk-a1zk-1-...ak的系数。当特征多项式进化成本原多项式时,该随机序列具有周期的最大性,其最大周期为2k-1。从产生的随机序列中截断连续的L 位,即可构成(0,1)之间均匀分布的随机数,此结构定义为TR_GENKE表示为:
[0052] 首先,每一位寄存器记录着当前时刻的存储数据Uj,n,L位的存储数据每一个时刻经过转换逻辑转换之后得到下一时刻的生成数据Uj,n+1;
[0053] 其次,公式 可知,Uj,n+1的L位数据中,X[L]~X[L+s-1]是新产生的s位数据,;
[0054] 最后,其他(L-s)位数据(X[s]~X[L-1])是由Uj,n通过移位操作得到的。
[0055] 图3所示转换逻辑矩阵As硬件结构
[0056] 由当前时刻数据和转换逻辑矩阵共同完成下一时刻的数据。转换逻辑矩阵为:其中,c1,...,ck是特征多项式Pj(z)的系数, ck+1=ck+2=...
=cL=0。每经过一次转换逻辑的变换,X(t+1)就可以产生一位新数据,若经过s次变换,就可以得到s位新产生的数据,TR_GEN经过一个时刻产生s位的新数据可以表示为:X(t+s)=A*X(t+s-1)=A*A*X(t+s-2)=...=AS*X(t),在 TR_GEN结构中恒等于Uj,n+1=As*Uj,n。
[0057] 根据公式Uj,n+1=As*Uj,n可知,得到Uj,n+1的本质是进行每一个比特位的计算,每一次求解的过程都对应一次异或操作,映射到底层逻辑数字电路结构就是一个异或。根据特征分析转换逻辑矩阵As是s个A乘积的结果,可以表示为:
[0058] 特别地,当c1=c2=...=cs-1=0时,在矩阵As的前s行中,每一行所包含的“1”的数量都是一致的,并且此数量与系数向量中“1”的个数相等。矩阵的后L-s行中,每一行“1”的数量只有一个,与此同时,由于P(z)通常取三k q
项式:P(z)=X-X-1,因此系数向量c1*L中只有两个“1”。
[0059] 在硬件运行速度方面,转换逻辑矩阵的硬件实现结构中不含有大量的扇出,故时序良好,并且多个异或门都处于并行状态,非阻塞的运算形式,也极大的提高了系统的处理速率。在硬件资源消耗方面,因为运算当中只需要进行异或操作,没有复杂的除法、矩阵求逆等高复杂度的运算,在FPGA中可以充分的实现LUT和RAM的复用[11],最大限度的充分利用资源。
[0060] 图4所示CTR_GEN硬件架构包含J个TR_GEN结构。
[0061] 根据每个TR_GEN对应的参数qj、sj和特征多项式Pj(z)的级数,得到第j个TR_GEN的输出为 其他(L-s)位数据(X[s]~X[L-1])是由Uj,n 通过移位操作得到的。当多项式Pj(z)满足互不相关的条件时,将多个TR_GEN产生的每一位结果进行“异或”,可以得到一个新的随机序列域,当TR_GEN的数量为J时,其关系为:
[0062] J个TR_GEN构成了CTR_GEN结构,每个TR_GEN结构产生的每比特数据经过异或得到最新的随机序列,J个TR_GEN结构并行运算,其处理速率基本等同于单个TR_GEN的运算速率。CTR_GEN的硬件设计结构采用并行处理与流线结合的设计思想,提高随机数的产生速率。
[0063] 图5所示将采样得到的10000点随机数进行NIST SP800检测,将检测结果汇总的表格如下所示,可知NIST SP800下的16种测试项的所有测试结果均大于显著性水平0.01,并且如块内频率测试、反向累计和测试、二元矩阵秩测试、非重叠模板匹配测试和重叠模板匹配测试这5项指标均大于0.5,足以说明该算法生成的随机数是随机的,也是安全的。
[0064] 图6中CTR_GEN的资源使用情况及性能分析,本算法的硬件实验平台采用 Xilinx xc7vx330t系列FPGA芯片,在Vivado2017上完成算法的仿真、综合和实现。从仿真结果可以看出,CTR_GEN结构所能达到的最大时钟频率为300Mhz, 16bit的数据位宽计算出其吞吐量为4.8Gbps,资源利用率可达5.44Mbps per slice。本文提出的CTR_GEN结构,与ALFG和MT19937结构相比,不管是资源、最大频率、吞吐量还是资源利用率都有明显的提高,性能上取得了进一步的提高。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈