发明内容
针对相关技术中存在的随机数的随机性低、产生速率低的问题,本发明提出一种真随机数的产生方法和装置,能够简单、快速的产生真随机数,在提高了产生的随机数的随机性的同时还提高了真随机数的产生效率。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种真随机数的产生方法。
该产生方法包括:
对发送至触发器的伪随机序列预先进行延迟处理,从而破坏触发器的建立时间和/或保持时间,使触发器处于亚稳态;
由处于亚稳态的触发器对伪随机序列进行采集,从而获得真随机数;
触发器将真随机数输出。
优选的,在输入触发器的伪随机序列处于翻转边沿的情况下,触发器对伪随机序列进行采集,从而获得真随机数。
其中,延迟处理的类型可包括以下至少之一:
输出延迟;
组合逻辑延迟。
此外,发送至触发器的伪随机序列为预定位宽的序列,并且,真随机数的位宽与伪随机序列的位宽相同。
优选的,在时钟信号的驱动下使触发器产生真随机数。
根据本发明的另一方面,提供了一种真随机数的产生装置。
该产生装置包括:
延迟模块,用于对发送至触发器的伪随机序列预先进行延迟处理,从而破坏触发器的建立时间和/或保持时间,使触发器处于亚稳态;
采集模块,用于对伪随机序列进行采集,从而获得真随机数;
输出模块,用于将真随机数输出。
优选的,采集模块进一步用于在输入触发器的伪随机序列处于翻转边沿的情况下,对伪随机序列进行采集,从而获得真随机数。
其中,延迟处理的类型可包括以下至少之一:
输出延迟;
组合逻辑延迟。
此外,发送至触发器的伪随机序列为预定位宽的序列,并且,真随机数的位宽与伪随机序列的位宽相同。
优选的,采集模块进一步用于在时钟信号的驱动下对伪随机序列进行采集,从而获得真随机数。
本发明通过对输入至触发器的伪随机序列进行延迟处理,从而破坏触发器的建立时间和/或保持时间,使触发器处于亚稳态,而在触发器处于亚稳态的情况下对数据进行采集,快速的实现了真随机数的生成,从而在提高产生的随机数的随机性的同时,还提高了真随机数的产生效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种真随机数的产生方法。
如图1所示,根据本发明实施例的真随机数的产生方法包括:
步骤S101,对发送至触发器的伪随机序列预先进行延迟处理,从而破坏触发器的建立时间和/或保持时间,使触发器处于亚稳态;
步骤S103,由处于亚稳态的触发器对伪随机序列进行采集,从而获得真随机数;
步骤S105,触发器将真随机数输出。
通过本发明的上述方案,能够通过对输入至触发器的伪随机序列进行延迟处理,从而破坏触发器的建立时间和/或保持时间,使触发器处于亚稳态,而在触发器处于亚稳态的情况下对数据进行采集,快速的实现了真随机数的生成,从而在提高产生的随机数的随机性的同时,还提高了真随机数的产生效率。
为了更好的理解本发明的上述技术方案,下面结合一具体实施例对本发明的上述技术方案进行详细阐述。
如图2所示,在本实施例所阐述的真随机数生成方法中涉及到了以下几个功能单元:电源单元(未示出)、时钟单元、激励生成单元、延迟单元、真随机数生成单元,其中,电源单元用于为其他的功能单元供电。
下面通过各个功能单元的具体工作流程对本发明的真随机数的产生方法进行详细阐述。
如图2所示,在电源单元的供电下,由时钟单元产生周期为T的时钟信号驱动激励生成单元和真随机数生成单元工作,其中,在本例中,激励生成单元为移位寄存器,但是,应当注意的是,对于激励生成单元来说,其也可以是其他的在时钟信号的驱动下产生有规律的数列(即伪随机数)的装置,本发明并不限定激励生成单元必须为移位寄存器。
在具体操作中,在时钟信号的驱动下激励生成单元产生预定位宽的伪随机序列(这里为激励),其中,激励的位宽与真随机数生成单元所生成的真随机数的位宽是相同的,因此,在实际应用中,可以根据真随机数的实际位宽需求,使激励生成单元产生预定位宽的激励,从而增强本发明所产生的真随机数在位宽上的灵活性,进而扩大本发明所限定的真随机数的应用范围,并能够根据应用场景的不同改变真随机数的位宽。
其中,参照图3所示的同步时序电路,由于激励生成单元(这里为移位寄存器)存在输出延迟Tco,因此,在经过Tco时间后,激励生成单元生成的激励被延迟单元接收,然后,延迟单元对接收到的激励进行组合逻辑延迟处理,其中,延迟值为Tdelay,并将经过延迟处理后的激励发给真随机生成单元(这里为采集触发器),由采集触发器对激励进行采集。
其中,这里的采集触发器的建立时间为Tsetup,而根据同步电路的原理,如果要使得触发器正确的采集到输入的数据,需要满足如下条件:Tco+Tdelay+Tsetup<T,也即Tdelay<T-Tco–Tsetup,而在现有技术中,当Tdelay能够满足采集触发器的建立时间,则参照图4所示的时序图,采集触发器在时钟的上升沿时,即图4所示的采集点,D2已经稳定处于高电平状态,因此,在输入至采集触发器的激励未破坏采集触发器的建立时间的情况下,采集触发器可以正确的采集并输出高电平到Q2,也就是说,此时输出的随机数并非为真正的随机数,而是伪随机数。
但是,在本发明所限定的技术方案中,目的在于通过对输入采集触发器的数据进行延迟处理,从而破坏采集触发器的建立时间,使采集触发器处于亚稳态,因此,在实际操作中,在对激励进行组合逻辑的延迟处理时,要通过调节Tdelay,使Tdelay<T-Tco–Tsetup的表达式不成立,即Tdelay略大于(T-Tco-Tsetup),那么经过(Tco+Tdelay)时间长度的延迟处理后的伪随机序列(这里为激励)将破坏采集触发器的建立时间,使得触发器进入亚稳态,参照如图5所示的时序图,当Tdelay不能满足采集触发器的建立时间时,且使得采集触发器在输入激励的数据翻转边沿进行采集,即如图5所示的采集点,采集触发器在时钟的上升沿时,D2也处于上升沿,而此时处于亚稳态的采集触发器对数据进行采集将使得采集触发器输出的Q2处于不确定状态,即采集输出的数据将随机出现0和1,二者概率上是相等的,因此也就实现了真随机数的产生,而在本例中,触发器所产生的真随机数的位宽与输入至触发器的伪随机序列的位宽是相同的。
但是,应当注意的是,在本例中只是通过对产生真随机数的触发器的建立时间进行破坏,来使输出真随机数的触发器处于亚稳态,但是在实际应用中,不仅仅可以通过破坏建立时间,还可以通过破坏保持时间来使输出真随机数的触发器处于亚稳态,具体的操作方法同破坏建立时间的操作方法,在此不再赘述,同样的,还可以对输出真随机数的触发器的开始时间和保持时间均破坏的方式来使该触发器处于亚稳态,从而产生真随机数,因此,具体的实施方案可以根据实际需要进行不同的设置,本发明对此并不作限定。
此外,对于驱动伪随机数生成单元和真随机数生成单元的时钟单元来说,其可以是同一个时钟单元,也可以是不同的时钟单元,并且,在驱动时钟为两个不同的时钟单元的情况下,对两个时钟单元的频率和相位关系没有具体要求,其对本发明的技术方案的实施并不会产生影响。
通过以上描述可以看出,本发明通过对输入至触发器的伪随机序列进行延迟处理,从而破坏触发器的建立时间和/或保持时间,从而使触发器处于亚稳态,而在触发器处于亚稳态的情况下对数据进行采集,实现了真随机数的快速生成;而且,本发明的触发器所产生的真随机数是在输入触发器的数据为伪随机序列的基础上进行的数据采集,而这也使得本发明的触发器所产生的真随机数的随机性更高,从而满足各种使用随机数的领域的使用需求。
根据本发明的实施例,还提供了一种真随机数的产生装置。
如图6所示,根据本发明实施例的真随机数的产生装置包括:
延迟模块61,用于对发送至触发器的伪随机序列预先进行延迟处理,从而破坏触发器的建立时间和/或保持时间,使触发器处于亚稳态;
采集模块62,用于对伪随机序列进行采集,从而获得真随机数;
输出模块63,用于将真随机数输出。
优选的,在一个实施例中,采集模块62进一步用于在输入触发器的伪随机序列处于翻转边沿的情况下,对伪随机序列进行采集,从而获得真随机数。
其中,在一个实施例中,延迟处理的类型可包括以下至少之一:
输出延迟;
组合逻辑延迟。
此外,在另一个实施例中,发送至触发器的伪随机序列为预定位宽的序列,并且,真随机数的位宽与伪随机序列的位宽相同。
优选的,在一个实施例中,采集模块62进一步用于在时钟信号的驱动下对伪随机序列进行采集,从而获得真随机数。
综上所述,借助于本发明的上述技术方案,通过对输入至触发器的伪随机序列进行延迟处理,从而破坏触发器的建立时间和/或保持时间,使触发器处于亚稳态,而在触发器处于亚稳态的情况下对数据进行采集,快速的实现了真随机数的生成,从而在提高产生的随机数的随机性的同时,还提高了真随机数的产生效率;并且,本发明的触发器所产生的真随机数是在输入触发器的数据为伪随机序列的基础上进行的数据采集,而这也使得本发明的触发器所产生的真随机数的随机性更高,从而满足各种使用随机数的领域的使用需求;此外,由于本发明所产生的真随机数的的位宽与输入至触发器的伪随机序列的位宽是相同的,因此,本发明可以根据真随机数的实际位宽需求,对触发器输入预定位宽的伪随机序列,从而增强本发明所产生的真随机数在位宽上的灵活性,进而扩大本发明所限定的真随机数的应用范围,从而能够根据应用场景的不同灵活的调整真随机数的位宽。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。