一种随机数发生单元与装置的制作方法

文档序号:18256784发布日期:2019-07-24 10:18阅读:158来源:国知局
一种随机数发生单元与装置的制作方法

本发明涉及随机数发生器技术领域,具体而言,涉及一种随机数发生单元与装置。



背景技术:

在信息化高速发展的今天,信息安全得到越来越多国家和行业的重视。现代密码技术在网上购物、金融证券、政府、军事对抗等应用技术的发展中取得了快速的发展。而现代密码技术多以密钥为基础进行不同加解密算法的实现,密钥的产生则来源于随机数发生器。

随机数发生器分为两类:伪随机数发生器(PRNG:Pseudo Random Number Generator)和真随机数发生器(TRNG:True Random Number Generator)。伪随机数发生器通常基于某种给定的算法和初始化随机种子来实现,当随机种子不同时,产生的随机数不同。其缺点则是当采用的随机种子相同时,生成的随机数相同的。真随机数发生器则通常利用某些物理特性的不确定性来产生随机数,如利用电路的热噪声、环境噪声、放射性衰变、振荡法等技术。

目前,真随机数发生器采用的是基于数字逻辑的振荡型真随机数发生器中,包含高频振荡时钟,低频采样时钟及数字后处理单元。其中高频振荡时钟在实现上会产生一定的串扰,导致产生的随机数随机性不够强,随机数的质量不够好。

有鉴于此,如何解决上述问题,是本领域人员关注的重点。



技术实现要素:

有鉴于此,本发明的目的在于提供一种随机数发生单元,以解决现有技术中的随机数发生器的随机性不够强,随机数的质量不够好的问题。

本发明的另一目的在于提供一种随机数发生装置,以解决现有技术中的随机数发生器的随机性不够强,随机数的质量不够好的问题。

为了实现上述目的,本发明实施例采用的技术方案如下:

一发明,本发明实施例提供了一种随机数发生单元,所述随机数发生单元包括至少一组物理随机源模块、采样控制模块以及数字后处理模块,所述至少一组物理随机源模块、所述采样控制模块、所述数字后处理模块依次电连接,所述物理随机源模块包括模拟电路,并通过所述模拟电路生成随机信号,所述采样控制模块用于在系统时钟域对所述随机信号进行采样,所述数字后处理模块用于对采样后的随机信号按预设定的算法进行处理,以生成随机数。

进一步地,所述模拟电路包括至少一路高频时钟电路与至少一路低频采样时钟电路,以生成高频振荡随机信号或低频采样随机信号。

进一步地,所述模拟电路包括第一高频振荡随机源电路、第二高频振荡随机源电路以及低频采样时钟电路,所述第一高频振荡随机源电路与所述第二高频振荡随机源电路组成两路高频时钟电路,所述第一高频振荡随机源电路、所述第二高频振荡随机源电路以及所述低频采样时钟电路组成两路低频采样时钟电路。

进一步地,所述第一高频振荡随机源电路与所述第二高频振荡随机源电路的输出端均与所述低频采样时钟电路的输入端电连接,所述低频采样时钟电路用于对第一高频振荡随机源电路与所述第二高频振荡随机源电路进行采样,以生成随机信号。

进一步地,当所述模拟电路输出低频采样随机信号时,所述采样控制模块用于对每组所述物理随机源模块的低频采样时钟的上升沿进行采样,并在每路采样时钟的下降沿都到来后后,将所述低频采样时钟的信号同步到系统时钟域,并对所有低频采样随机信号进行异或处理。

进一步地,当所述模拟电路输出高频振荡随机信号时,所述采样控制模块用于采用系统时钟域对每路所述高频振荡随机信号进行采样,并将采样后的随机信号进行异或处理。

进一步地,所述随机数发生单元还包括寄存器单元,所述寄存器单元分别与所述采样控制模块、所述数字后处理模块以及每组所述物理随机源模块电连接,所述寄存器单元还用于与一CPU电连接。

进一步地,所述寄存器单元包括随机数寄存器、配置寄存器以及控制寄存器,所述随机数寄存器、所述配置寄存器以及所述控制寄存器均用于与所述CPU电连接,所述随机数寄存器与所述数字后处理模块电连接,所述配置寄存器、所述控制寄存器均分别与所述至少一组物理随机源模块、所述采样控制模块以及数字后处理模块电连接,所述配置寄存器用于在接收到所述CPU的配置指令后配置所述采样控制模块以及数字后处理模块的工作模式,所述控制寄存器用于在接收到所述CPU的控制指令后控制所述至少一组物理随机源模块、所述采样控制模块以及数字后处理模块工作,所述数字后处理模块生成的随机数发送至所述随机数寄存器,所述CPU从所述随机数寄存器中读取所述随机数。

进一步地,所述随机数发生单元还包括输出保护模块,所述寄存器单元还包括状态寄存器,所述输出保护模块分别与所述数字后处理模块与所述状态寄存器电连接,所述输出保护模块用于接收所述数字后处理模块发送的随机数,并判断所述随机数是否有误,并将判断结果传输至所述的状态寄存器,所述CPU用于依据所述状态寄存器中的判断结果确定是否从所述的随机数寄存器中读取所述随机数。

进一步地,所述输出保护模块还预设置有读取时间值,所述控制寄存器还用于限制所述CPU在所述读取时间值内读取所述随机数寄存器中的随机数的次数小于预设定的数值。

进一步地,所述模拟电路还包括噪声放大电路,所述噪声放大电路与所述的低频采样时钟电连接。12.如权利要求1所述的随机数发生单元,其特征在于,所述数字后处理模块包括线性移位反馈寄存器,所述线性移位反馈寄存器用于对所述采样后的随机信号按照第一本源多项式或第二本源多项式进行移位处理.

另一方面,本发明还提供了一种随机数发生装置,所述随机数发生装置包括随机数发生单元。

相对现有技术,本发明具有以下有益效果:

本发明提供的了一种随机数发生单元与装置,该随机数发生单元包括至少一组物理随机源模块、采样控制模块以及数字后处理模块,至少一组物理随机源模块、采样控制模块、数字后处理模块依次电连接,物理随机源模块包括模拟电路,并通过模拟电路生成随机信号,采样控制模块用于在系统时钟域对随机信号进行采样,数字后处理模块用于对采样后的随机信号按预设定的算法进行处理,以生成随机数。由于本发明通过模拟电路生成随机信号,因此在电路设计上避免了电路之间的串扰,从而达到随机数发生单元的随机性更强,且随机数的质量更好的效果。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的一种随机数发生单元的交互示意图。

图2示出了本发明实施例提供的物理随机源模块的电路图。

图3示出了本发明实施例提供的一种采样控制模块的电路图。

图4示出了本发明实施例提供的下降沿合成时序图。

图5示出了本发明实施例提供的另一种采样控制模块的电路图。

图6示出了本发明实施例提供的数字后处理模块的一种本源多项式处理图。

图7示出了本发明实施例提供的数字后处理模块的另一种本源多项式处理图。

图8示出了本发明实施例提供的另一种随机数发生单元的交互示意图。

图标:100-随机数发生单元;110-物理随机源模块;120-采样控制模块;121-第一高频振荡随机源电路;122-第二高频振荡随机源电路;123-低频采样时钟;130-数字后处理模块;140-寄存器单元;150-CPU;160-输出保护模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

第一实施例

请参阅图1,本发明实施例提供了一种随机数发生单元100,该随机数发生单元100包括至少一组物理随机源模块110、采样控制模块120、数字后处理模块130以及寄存器单元140,其中,至少一组物理随机源模块110、采样控制模块120、数字后处理模块130依次电连接,寄存器单元140分别与采样控制模块120、数字后处理模块130以及每组物理随机源模块110电连接。其中,物理随机源模块110用于生成随机信号,采样控制模块120用于在系统时钟域对随机信号进行采样,数字后处理模块130用于对采样后的随机信号按预设定的算法进行处理,以生成随机数,并将随机数传输至寄存器单元140,同时通过寄存器单元对随机数进行保存。

需要说明的是,在本实施例中,随机数发生单元100实质包括寄存器访问接口,该寄存器访问接口与寄存器单元140连接,同时,寄存器访问接口用于与一CPU连接,以实现CPU从寄存器单元140中调用该随机数的功能。

为了便于说明,本实施例以该随机数发生单元100包括4组物理随机源模块110为例进行说明,当然地,在其它的一些实施例中,也可以基于实际情况采用更多或者更少组物理随机源模块110进行随机信号的生成,例如采用3组或5组物理随机源模块110,本实施例对此并不做任何限定。

其中,在实施例中,每组物理随机源模块110均包括模拟电路,并通过模拟电路生成随机信号,通过模拟电路生成随机信号能够在电路设计上避免电路之间的串扰,因此能够达到随机数发生单元100的随机性更强,且随机数的质量更好的效果。

在本实施例中,模拟电路包括至少一路高频时钟电路与至少一路低频采样时钟电路,以通过高频时钟电路生成高频振荡随机信号或通过高频时钟电路与低频采样时钟电路生成低频采样随机信号,并将生成的随机信号传输至采样控制模块120进行采样,其中,每组物理随机源模块110均能够生成一个随机信号,因此随着物理随机源模块110的数量的增加,随机数发生单元100的随机性会逐渐提高。

具体地,请参阅图2,在本实施例中,每组物理随机源模块110的模拟电路均包括第一高频振荡随机源电路121、第二高频振荡随机源电路122以及低频采样时钟,第一高频振荡随机源电路121与第二高频振荡随机源电路122的输出端均与低频采样时钟电路的输入端电连接,低频采样时钟电路用于对第一高频振荡随机源电路与第二高频振荡随机源电路进行采样,以生成随机信号。

其中,第一高频振荡随机源电路121与第二高频振荡随机源电路122均包括多个延时单元与选择器,其中,多个延时单元依次串联,且每个延时单元的输出端均与选择器端口电连接。其中,选择器在接收PRS_SEL信号后能够选择导通不同的端口,从而接收经过不同数量的延时单元产生的振荡信号。例如,在选择器接收到的PRS_SEL信号为控制10号端口导通时,则该选择器接收的振荡信号为经过两个延时单元生成的振荡信号,而在选择器接收到的PRS_SEL信号为控制00号端口导通时,则该选择器接收的振荡信号为经过四个延时单元生成的振荡信号,且经过不同延时单元生成的振荡信号不同,因此能够提升生成的随机信号的随机性。

在选择器进行选择后,作为一种实现方式,第一高频振荡随机源电路121与第二高频振荡随机源电路122直接输出生成的振荡信号,即输出高频振荡随机信号(PRS_PRE_0,PRS_PRE_1),其中,高频振荡时钟在电路设计上避免了电路之间的串扰。作为另一种实现方式,模拟电路包括两个寄存器模块,第一高频振荡随机源电路121与第二高频振荡随机源电路122的选择器输出的振荡信号传输分别传输至寄存器模块,同时低频采样时钟电路为所述寄存器提供低频时钟信号,进而利用低频时钟信号实现对振荡信号的采样,并且输出低频采样随机信号(PRS_1,PRS_0)。

并且,模拟电路还包括噪声放大电路,噪声放大电路与的低频采样时钟电连接。通过设置噪声放大电路,能够增大低频采样时钟的相位不确定性,进而增大采样的随机性。另外,在该模块的电源端加入稳压和滤波电路,并尽量屏蔽电源和衬底的噪声以降低确定性干扰的影响。

进一步地,在本实施例中,寄存器单元140包括随机数寄存器、配置寄存器以及控制寄存器,其中,随机数寄存器、配置寄存器以及控制寄存器均用于与CPU电连接,随机数寄存器与数字后处理模块130电连接,配置寄存器、控制寄存器均分别与采样控制模块120以及数字后处理模块130电连接,配置寄存器用于在接收到CPU的配置指令后配置至少一组物理随机源模块110、采样控制模块120以及数字后处理模块130的工作模式,控制寄存器用于在接收到CPU的控制指令后控制至少一组物理随机源模块110、采样控制模块120以及数字后处理模块130工作,数字后处理模块130生成的随机数发送至随机数寄存器,CPU从随机数寄存器中读取随机数。

其中,对于物理随机源模块110而言,其工作模式包括输出高频振荡随机信号(PRS_PRE_0,PRS_PRE_1)或输出低频采样随机信号(PRS_1,PRS_0),即配置寄存器能够配置该物理随机源模块110中低频采样时钟是否对振荡信号进行采样。同时,控制寄存器能够控制每组物理随机源模块110是否进行工作,例如,控制寄存器通过向第一高频振荡随机源电路121与第二高频振荡随机源电路122发送PRS_EN的使能信号控制其是否进行工作。

进一步地,在本实施例中,配置寄存器还会根据配置的物理随机源模块110的工作模式,配置采样控制模块120的工作模式,即针对物理随机源模块110传输的低频采样随机信号(PRS_1,PRS_0),采样控制模块120为第一种工作模式,而针对物理随机源模块110传输的高频振荡随机信号(PRS_PRE_0,PRS_PRE_1),采样控制模块120为第二种工作模式,下面进行详细说明。

请参阅图3,当模拟电路输出低频采样随机信号时,采样控制模块120用于对每组物理随机源模块110的低频采样时钟的下降沿进行采样,并在采到每路低频采样时钟的下降沿后,即每路采样时钟的下降沿都到来后,将低频采样时钟的信号同步到系统时钟域,并对所有低频采样随机信号进行异或处理。

具体地,由于在后续的数字后处理模块130的处理中,需要在系统时钟域对信号进行处理,因此在采样控制模块120中,需利用采样控制模块120在时钟域完成对信号的采样。有鉴于此,当模拟电路输出低频采样随机信号时,采样控制模块120会先将低频采样时钟的信号同步到系统时钟域。

其中,采样控制模块120包括与物理随机源模块110相同数量的多个采样电路与异或门,本实施例采用4个采样电路,当然地,在其它的一些实施例中,采样电路也可以随着物理随机源模块110数量的改变而变化,本实施例对此并不做任何限定。

其中,每个采样电路均包括同步电路,同步电路用于检测低频时钟信号F_SAMPLE的下降沿,并且同步电路的输出端均连接一与门,当4个同步电路均检测到下降沿时,与门输出高电平信号,采样电路中的选择器在接收到高电平信号后,采样控制模块120将低频时钟信号同步到系统时钟域,并在系统时钟域完成对八路低频采样随机信号(每个物理随机源模块110生成两路低频采样随机信号)进行采样。随后,经过4个采样电路在系统时钟域采样后的随机信号同时输出至异或门,异或门随后经过4选一的异或处理后,随机信号传输至数字后处理模块130。

四次低频时钟信号下降沿合成时序图如图4所示,当系统时钟同时采到四路低频时钟信号的下降沿时,将该信号锁定一个周期,用来同时锁存四路采样信号,并将该采样后的信号同步到系统时钟域。由于四路采样时钟相互独立,四路采样时钟的下降沿不可预知,因此当四路采样时钟的下降沿都采到后,把采样后的数据作为8位异或逻辑门的输入信号,该种采样方法能够提高低频采样后的合成数据的随机质量,避免了某些采样后的比特前后两次随机数相同的情况。

请参阅图5,当模拟电路输出高频振荡随机信号时,采样控制模块120用于采用系统时钟域对每路高频振荡随机信号进行采样,并将采样后的随机信号进行异或处理。

由于在物理随机源模块110输出高频振荡随机信号时,无需经过低频时钟信号的采样,因此无需进行下降沿的检测。在接收到高频振荡随机信号后,直接采用系统时钟(500MHz)对高频震荡随机信号进行采样,并将采样后的数据

在本实施例中,数字后处理模块130是用来对异或后的采样信号进行一定的算法处理,其中,数字后处理模块130包括线性移位反馈寄存器,线性移位反馈寄存器用于对采样后的随机信号按照第一本源多项式或第二本源多项式进行移位处理。

具体地,本发明数字后处理模块130采用数字后处理算法进行处理,其中,数字后处理模块130内置m序列的方式,支持两种本源多项式作为线性移位寄存器的多项式:分别为第一本源多项式f1(x)=x193+x173+x159+x113+x65+x22+1和第二本源多项式f2(x)=x400+x248+1。其线性移位寄存器后处理结构示意图分别如图6和图7所示。并且,配置寄存器能够配置数字后处理模块130采用第一本源多项式或者第二本源多项式对采样后的随机信号进行处理。

经过数据后处理模块处理后的随机输出传输至随机数寄存器,CPU可读取随机数寄存器中的随机数。

本实施例提供的随机发生装置的具体工作流程为,当CPU需要获取随机数时,首先向配置寄存器发送配置信号,由配置寄存器配置物理随机源模块110、采样控制模块120以及数字后处理模块130的工作模式,同时CPU会向控制寄存器发送控制指令,并通过控制寄存器控制物理随机源模块110、采样控制模块120以及数字后处理模块130开始工作,通过物理随机源模块110、采样控制模块120以及数字后处理模块130生成的随机数存储至随机数寄存器,CPU从随机数寄存器中读取随机数。

第二实施例

请参阅图8,本发明实施例提供了另一种随机数发生单元100,其中,该随机数发生单元100的与第一实施例提供的随机数发生单元100大致相同,因此本实施例不再对其相同的部分进行赘述。

具体地,为了提高本实施例提供的随机数发生单元100的安全性,随机数发生单元100还包括输出保护模块160,同时寄存器单元140还包括状态寄存器,输出保护模块160分别与数字后处理模块130与状态寄存器电连接,输出保护模块160用于接收的数字后处理模块130发送的随机数,并判断随机数是否有误,并将判断结果传输至的状态寄存器,CPU用于依据状态寄存器中的判断结果确定是否从的随机数寄存器中读取随机数。

具体地,输出保护及错误检测模块用来对产生的随机数进行质量检测及保护。经过数字后处理模块130得到的128比特随机数需要经过随机数错误检测,即检测产生的随机数是否存在连续的32比特为全0或全1的情况,若出现全0或全1,则将rng_gen_err比特位拉高,其中,rng_gen_err输出高电平时表示数据随机数出现错误,此时状态寄存器为随机数错误状态,CPU即被告知当前产生的真随机数有误,不能读取此时随机数寄存器中的随机数,需要将其丢弃处理。

进一步地,输出保护模块160还预设置有读取时间值,状态寄存器还用于限制的CPU在读取时间值内读取随机数寄存器中的随机数的次数小于预设定的数值。

为了保证随机数的安全,对保存随机数的寄存器进行了硬件保护:得到的随机数CPU只能在规定时间内读取一次,即本实施例提供地预设的数值为2,当然地,在其它的一些实施例中,也可与设定的数值设置为其它数,本实施例对此并不做任何限定。

当随机数寄存器接收到随机数后,由随机数发生器的硬件模块置1时,表明新的128bit的随机数已产生,这128bit随机数保存在四个随机数寄存器TRNG_OUTPUT_0~TRNG_OUTPUT_3中,这四个寄存器都只能被CPU读取一次,在一次读取之后,这4个寄存器将会被硬件置为保护状态,CPU不可以再次读取。当再次产生新的随机数,ready信号再一次置1时,寄存器TRNG_OUTPUT_0~TRNG_OUTPUT_3的读保护状态将被硬件清除。如果CPU在上一次读取随机数后没有主动将ready清零,当新的随机数产生时,硬件首先将会对ready信号清零,然后再对ready信号进行置1,以告知CPU有新的随机数产生。另外,保护电路中设置了允许CPU读取随机数寄存器的timeout值,当计时达到timeout值时,该随机数不允许被CPU读取。例如,timeout值可以设置为1ms等数值。

第三实施例

本发明实施例还提供了一种随机数发生装置,该随机数发生装置包括CPU与如第一实施例或第二实施例所述的随机数发生单元,其中,随机数发生单元包括寄存器访问接口,该寄存器访问接口与寄存器单元连接,同时,寄存器访问接口与CPU连接,以实现CPU从寄存器单元中调用该随机数的功能。综上所述,本发明提供的了一种随机数发生单元与装置,该随机数发生单元包括至少一组物理随机源模块、采样控制模块以及数字后处理模块,至少一组物理随机源模块、采样控制模块、数字后处理模块依次电连接,物理随机源模块包括模拟电路,并通过模拟电路生成随机信号,采样控制模块用于在系统时钟域对随机信号进行采样,数字后处理模块用于对采样后的随机信号按预设定的算法进行处理,以生成随机数。由于本发明通过模拟电路生成随机信号,因此在电路设计上避免了电路之间的串扰,从而达到随机数发生单元的随机性更强,且随机数的质量更好的效果。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1