一种真随机数生成方法及真随机数发生器技术

技术编号:24089402 阅读:36 留言:0更新日期:2020-05-09 07:24
本发明专利技术属于数字及电子信息技术领域,具体涉及一种真随机数生成方法及真随机数发生器通过基于两个独立不同源的高频和低频时钟,利用时钟的抖动和两个独立时钟之间的相位漂移具有随机的特性,从不同模块抽头出来的高频时钟进行异或,然后用低频时钟进行采样同步,利用线性移位寄存器对采样后数据进行随机后处理,即可得到真随机数。本发明专利技术只需要普通数字逻辑单元即可产生可靠随机序列的真随机数,具有广泛的应用前景。

A method of generating true random number and its generator

【技术实现步骤摘要】
一种真随机数生成方法及真随机数发生器
本专利技术属于数字及电子信息
,具体涉及一种真随机数生成方法及真随机数发生器。
技术介绍
随机数在加密设备和加密芯片中占有重要的位置。在以ECC、RSA等为代表的非对称密钥加密体制中需要有安全可靠的随机数来生成密钥,而在网络安全协议中,密钥分配时的临时交换号往往采用随机数来进行握手。在这些敏感场合中,随机数发生器得到了广泛的应用。然而传统的伪随机数发生器存在着运算结果可预测、可重复等缺点,已不能适应信息安全技术发展的需要。随机数产生器可以用硬件方法实现,也可以用软件方法实现。软件方法实现的随机数产生器用算法产生的随机序列决定于采用的算法和初始种子,通常被称为伪随机数产生器。硬件方法实现真随机数主要依赖于物理原件的随机特征,例如电阻或者二极管的噪声等。真随机数产生器不像伪随机数产生器那样需要设定初始种子,因而真随机数具有更好的随机特性和更优的应用。目前常见的片上真随机数产生器的产生方式有三种:基于电路噪声的真随机数产生器、基于混沌机制的真随机数产生器和基于振荡器采样的真随机数产生器。基于电路噪声采样和混沌机制的真随机数发生器需要放大器和比较器,其电路面积和资源消耗较大。因此急需开发一种简单而可靠的真随机数发生器。
技术实现思路
针对以上问题,本专利技术旨在提供一种只需要普通数字逻辑单元即可产生可靠随机序列的真随机数生成方法及真随机数发生器。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种真随机数生成方法,包括如下步骤:S1选择不同源的高频时钟和低频时钟,作为随机源;S2分别多次对高频时钟进行抽头;S3对分别抽头出来的高频时钟进行异或处理;S4用低频时钟对异或处理后的高频时钟进行采样,即得真随机数。进一步的,所述步骤S4之后还包括S5:S5对所述随机数进行位宽和速度匹配处理。进一步的,所述步骤S5之后还包括步骤S6:S6采用循环码编码进行消偏处理。更进一步的,所述高频时钟包括但不限于通过片内振荡器、外部时钟、外部时钟倍频、外部晶体加内部振荡电路倍频、外部晶体加内部振荡电路振荡器倍频的方式得到。更进一步的,所述低频时钟包括但不限于通过片内振荡器、外部时钟、外部晶体加内部振荡电路的方式得到。一种真随机数发生器,包括高频时钟选择单元,用于获取不同源的高频时钟;高频时钟抽头单元,用于分别多次对高频时钟的抽头模块进行抽头;异或单元,用于对分别抽头出来的高频时钟进行异或处理;低频时钟选择单元,用于获取不同源的低频时钟;采样单元,用于利用低频时钟对异或处理后的高频时钟进行采样,得到真随机数。作为一种改进,还包括异步FIFO单元,所述异步FIFO,用于对所述随机数进行位宽和速度匹配处理。作为更进一步的改进,还包括后处理单元,所述后处理单元包括但不限于线性移位寄存器;所述线性移位寄存器通过循环码编码进行消偏处理。作为更进一步的改进,所述采样单元优选为采样同步单元,所述采样同步单元包括三级D触发器,其中第一级D触发器为随机数生成模块,低频时钟通过D触发器采样一个快时钟;第二、第三级D触发器为同步单元,用于消除随机序列的亚稳态。具体的,所述抽头模块包括但不限于算术逻辑单元、存储控制器、SPI接口、DES加密、中断处理器、定时器。本专利技术一种真随机数生成方法及真随机数发生器,通过基于两个独立不同源的高频和低频时钟,利用时钟的抖动和两个独立时钟之间的相位漂移具有随机的特性,从不同模块抽头出来的高频时钟进行异或,然后用低频时钟进行采样同步,利用线性移位寄存器对采样后数据进行随机后处理,即可得到真随机数。本专利技术只需要普通数字逻辑单元即可产生可靠随机序列的真随机数,具有广泛的应用前景。附图说明图1是时钟抖动示意图;图2是本专利技术一种真随机数生成方法的逻辑步骤示意图;图3是本专利技术一种真随机数数发生器的整体结构示意图;图4是本专利技术一种真随机数数发生器的后处理单元示意图。具体实施方式以下结合图1至图4具体说明本专利技术提供的一种真随机数生成方法及真随机数发生器。由于数字电路中的时钟信号总会存在抖动现象,如图1所示,它是指在某一个给定点上时钟周期发生的暂时变化,即时钟周期在每个不同的周期上可以缩短或加长。图1中用实线描绘的是严格的周期性信号的波形,每个沿的起始点在时间轴上间隔相等;虚线代表的就是实际的近似周期性信号,其周期有微小的变化。时钟抖动可以用许多方法来衡量和表征,它是一个平均值为零的随机变量。除了时钟抖动以外,两个独立时钟之间的相位漂移也具有随机的特性。因而抖动信号和相位漂移适合于在数字电路中作为真随机数发生器的噪声源。实施例1如图2所示,因此,本专利技术提供一种真随机数生成方法,包括如下步骤:S1选择不同源的高频时钟和低频时钟,作为随机源;高频时钟和低频时钟可以有多种产生方式,如:作为一种优选实施例,可以使用两个芯片内置RC振荡器为时钟源头,其中一个为高频时钟,如MCU中常用的32M,28M等;另外一个为低功耗状态下使用的时钟,一般为32K,12K等。作为一种优选实施例,如外部晶振输出为时钟的源头,外部晶振直接输入高频时钟,如16M,27M,32M等,也可以是低频的32.768K,12K等。作为一种优选实施例,可以使用外部晶体和芯片内部电路一起组成振荡电路,构成高频时钟,如16M,32M等,低频时钟如12K,32.768K等。作为一种优选实施例,上述内部或者外部输入的16M,32M时钟,可经过PLL进行倍频,产生更高频率的时钟。上述时钟可以组合完成,但是要求所选的高频时钟和低频时钟不能同源。例如,32MRC振荡器和32KRC振荡器,根据f=Iref/(2π*ΔV*C),在芯片内部电容充放电的电压窗口由电阻串确定,因此不同的电阻和电容确定了不同的振荡频率。两个不同频率的RC振荡器物理上独立存在,为不同源时钟。但某一输入时钟进行PLL倍频而成的高频时钟和同一时钟分频造成的低频频时钟是同源时钟。例如输入一个32M时钟,进行10倍频为320M,同时进行64分频为500K,则高频时钟320M和低频时钟500K为同源时钟。S2分别多次对高频时钟进行抽头;选中的高频时钟通过时钟树进入芯片的功能单元,从不同的抽头模块抽头出时钟。上述时钟抽头模块包括且不限于算术逻辑单元(ALU,arithmeticandlogicunit)、存储控制器、SPI接口、DES加密、中断处理器、定时器(timer)等。上述抽头的时钟信号插入缓冲器(buffer)后进入异或单元进行异或操作。时钟经过时钟树和时钟线到达不同的功能模块时,由于时钟路径长度和运行负载的差异,会存在不同的延时,此延时被称为时钟偏移。上述时钟偏移也随着系统运行在变化。将多组高频信号相异或时,可以从输本文档来自技高网...

【技术保护点】
1.一种真随机数生成方法,其特征在于包括如下步骤:/nS1选择不同源的高频时钟和低频时钟,作为随机源;/nS2分别多次对高频时钟进行抽头;/nS3对分别抽头出来的高频时钟进行异或处理;/nS4用低频时钟对异或处理后的高频时钟进行采样,即得真随机数。/n

【技术特征摘要】
1.一种真随机数生成方法,其特征在于包括如下步骤:
S1选择不同源的高频时钟和低频时钟,作为随机源;
S2分别多次对高频时钟进行抽头;
S3对分别抽头出来的高频时钟进行异或处理;
S4用低频时钟对异或处理后的高频时钟进行采样,即得真随机数。


2.如权利要求1所述的真随机数生成方法,其特征在于,所述步骤S4之后还包括S5:
S5对所述随机数进行位宽和速度匹配处理。


3.如权利要求2所述的真随机数生成方法,其特征在于,所述步骤S5之后还包括步骤S6:
S6采用循环码编码进行消偏处理。


4.如权利要求1所述的真随机数生成方法,其特征在于,所述高频时钟包括但不限于通过片内振荡器、外部时钟、外部时钟倍频、外部晶体加内部振荡电路倍频、外部晶体加内部振荡电路振荡器倍频的方式得到。


5.如权利要求1所述的真随机数生成方法,其特征在于,所述低频时钟包括但不限于通过片内振荡器、外部时钟、外部晶体加内部振荡电路的方式得到。


6.一种真随机数发生器,其特征在于,包括
高频时钟选择单元,用于获取不同源的高...

【专利技术属性】
技术研发人员:陈毅成卢绍强张明宇
申请(专利权)人:武汉瑞纳捷电子技术有限公司
类型:发明
国别省市:湖北;42

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

1