CN112015368B - 一种真随机数发生器及电子设备 - Google Patents
一种真随机数发生器及电子设备 Download PDFInfo
- Publication number
- CN112015368B CN112015368B CN202010892500.6A CN202010892500A CN112015368B CN 112015368 B CN112015368 B CN 112015368B CN 202010892500 A CN202010892500 A CN 202010892500A CN 112015368 B CN112015368 B CN 112015368B
- Authority
- CN
- China
- Prior art keywords
- port
- signal
- random number
- output
- acquisition device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computational Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Pulse Circuits (AREA)
Abstract
本申请提供一种真随机数发生器及电子设备,包括:信号采集器件,包括数据采集端口,时钟端口以及输出端口,且在数据采集端口处的信号的上升沿与时钟端口处的信号的上升沿在预设位置处对齐时,信号采集器件处于亚稳态状态;振荡器,振荡器分别与数据采集端口、时钟端口以及输出端口连接,振荡器用于产生振荡信号并将振荡信号分别输入至数据采集端口和时钟端口,并根据输出端口输出的信号调整产生的振荡信号的周期;其中,振荡器至数据采集端口和时钟端口的电路延迟不同。本申请的真随机数发生器可以使得信号采集器件动态地稳定在亚稳态状态下,提供可靠的随机数,实现基于亚稳态的随机数的产生。
Description
技术领域
本申请涉及信息安全领域技术领域,具体而言,涉及一种真随机数发生器及电子设备。
背景技术
随着日益增加的信息安全需求,信息的加密与破解技术得到极大的发展。为了保证信息的保密性、完整性、可用性、可控性和不可否认性,目前广泛地使用了信息加密技术。而几乎所有的信息加密技术都需要使用密匙,因此,如何得到一个安全可靠、难以破解的密匙就成为了信息加密技术的一个重点。众所周知,凡是可以被破解的密码都是会有一定规律可寻的,只要找到这个规律就可以反向去破解,而真随机数是一种靠着纯物理现象生成的随机数,它有着无规律性以及难以复现的优点,可以很好的满足了人们对密匙安全性的要求。也正因此,现在的很多密匙都是以真随机数为基础而产生的。
目前,常见的真随机数发生器实现方法主要有随机噪声源直接放大法、基于振荡器的随机数发生器和基于亚稳态的随机数发生器。
随机噪声源直接放大法是将随机噪声(如电阻热噪声)放大得到随机数的方法,但是这种方法很难把电源沉底耦合的噪声的影响去掉。而基于振荡器的随机数发生器,器件使用过多,抖动积累时间较长,产生的随机序列的随机性不够高,对于一些要求不是很严格的场合适用,是目前应用最多的真随机数发生器结构。而基于亚稳态的随机数发生器,是利用数字电路中的亚稳态去产生真随机数,当电路进入亚稳态,并从亚稳态再次回到稳态时,由于半导体内外部噪声的影响,最终电路会收敛于高低电平中的任意一个,这种不确定性收敛就是真随机数产生的来源。基于亚稳态的随机数发生器所产生的随机数随机性高,但是由于在实际中电源的噪声、温度的漂移还有CMOS工艺的偏差对延时电路影响很大,亚稳态的产生和使用并不容易。
发明内容
本申请实施例的目的在于提供一种真随机数发生器及电子设备,用以实现基于亚稳态的随机数的产生。
本申请实施例提供了一种真随机数发生器,包括:
信号采集器件,包括数据采集端口,时钟端口以及输出端口,且在所述数据采集端口处的信号与所述时钟端口处的信号满足亚稳态的出现条件时,所述信号采集器件处于亚稳态状态;振荡器,所述振荡器分别与所述数据采集端口、所述时钟端口以及所述输出端口连接,所述振荡器用于产生振荡信号并将所述振荡信号分别输入至所述数据采集端口和所述时钟端口,并根据所述输出端口输出的信号调整产生的所述振荡信号的周期;其中,所述振荡器至所述数据采集端口和所述时钟端口的电路延迟不同。
在上述实现方式中,振荡器可以根据信号采集器件的输出端口输出的值自动调整振荡信号的周期,而由于振荡器至数据采集端口和时钟端口的电路延迟不同,因此数据采集端口和时钟端口在同一时刻收到的振荡信号不是振荡器同一时刻发出的振荡信号,因此可以通过调整振荡信号的周期,使得数据采集端口处的信号与所述时钟端口处的信号满足亚稳态的出现条件,比如使得数据采集端口和时钟端口在同一时刻收到的振荡信号的上升沿在预设位置处对齐,从而使得信号采集器件动态地稳定在亚稳态状态下,提供可靠的随机数,实现基于亚稳态的随机数的产生。
进一步地,所述振荡器包括奇数个依次首尾相连的振荡单元;每个所述振荡单元均包括:第一延迟链路和第二延迟链路,用于按照预设的延迟周期对接收到的信号的上升沿位置进行延迟;其中,所述第一延迟链路的延迟周期小于所述第二延迟链路的延迟周期;选择单元,分别与所述第一延迟链路和第二延迟链路连接,以根据所述输出端口输出的信号,选择输出所述第一延迟链路处理的信号,或选择输出所述第二延迟链路处理的信号。
在上述实现方式中,由于一个振荡单元可以择一选通一个延迟链路,且一个振荡单元中的第一延迟链路和第二延迟链路的延迟周期是不同的,因此可以实现对于振荡器振荡频率的调整(即可以实现对于振荡器产生的振荡信号的周期的调整),从而确保本申请的方案的可靠性。
进一步地,所述选择单元包括:多路选择器,分别与所述第一延迟链路和第二延迟链路连接;控制器,与所述多路选择器连接,并与所述输出端口连接,以根据所述输出端口输出的信号,控制所述多路选择器选择输出所述第一延迟链路延迟的信号,或选择输出所述第二延迟链路延迟的信号。
在上述实现方式中,通过控制器和多路选器,实现了受控选通电路。从而可以有效根据信号采集器件的输出端口输出的值,实现对于第一延迟链路或第二延迟链路的选通,确保了本申请方案的可靠性。
进一步地,所述控制器为D触发器或锁存器。
进一步地,各振荡单元的所述控制器的时钟端口分别与所述信号采集器件的时钟端口连接;所述真随机数发生器还包括:开关,设置于所述控制器的时钟端口和所述信号采集器件的时钟端口之间。
进一步地,每个所述振荡单元的所述控制器的时钟端口分别与所述信号采集器件的数据采集端口连接;所述真随机数发生器还包括:开关,设置于所述控制器的时钟端口和所述信号采集器件的数据采集端口之间。
在上述两种实现方式中,由于控制器为D触发器或锁存器,D触发器或锁存器的工作需要时钟端口的有效信号进行触发。因此通过在控制器的时钟端口处设置开关,即可以实现对于控制器的启动与关停控制,从而可以实现对于振荡器的频率自动调整功能的启动与关停控制。这样,当随机数能稳定的产生时(即信号采集器件动态地稳定在亚稳态状态下时),即可选择断开该开关,从而降低本申请中真随机数发生器的能耗。而在本申请中真随机数发生器遭遇诸如断电,电压严重漂移等情况时,可以打开该开关,从而重新启用振荡器的频率自动调整功能,重新调整产生的所述振荡信号的周期,使得信号采集器件的数据采集端口处的信号的上升沿在与时钟端口处的信号的上升沿在预设位置处对齐,从而使得信号采集器件动态地稳定在亚稳态状态下,提供可靠的随机数,重新实现基于亚稳态的随机数的产生。
进一步地,所述多路选择器为两路选择器。
进一步地,所述奇数个依次首尾相连的振荡单元中,最后一个振荡单元的输出与第一个振荡单元的输入之间通过第三延迟链路连接。
进一步地,所述振荡器的输出端直接与所述信号采集器件的时钟端口连接,并与所述信号采集器件的数据采集端口通过第四延迟链路连接。
进一步地,所述振荡器的输出端直接与所述信号采集器件的数据采集端口连接,并与所述信号采集器件的时钟端口通过第四延迟链路连接。
本申请实施例还提供了一种电子设备,包括前述任一种的真随机数发生器。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种真随机数发生器的基本结构示意图;
图2为本申请实施例提供的一种较具体的真随机数发生器的基本结构示意图;
图3为本申请实施例提供的一种振荡单元的结构示意图;
图4为本申请实施例提供的一种更具体的振荡单元的结构示意图;
图5-1为本申请实施例提供的一种控制器接入示意图;
图5-2为本申请实施例提供的另一种控制器接入示意图;
图6为本申请实施例提供的另一种较具体的真随机数发生器的基本结构示意图;
图7为本申请实施例提供的本申请的真随机数发生器的波形示意图;
图8为本申请实施例提供的一种具体的真随机数发生器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一:
为实现基于亚稳态的随机数的产生,本申请实施例中提供了一种真随机数发生器。
参见图1所示,本申请实施例所提供的真随机数发生器包括信号采集器件和振荡器两部分。
需要注意的是,本申请实施例中所采用的信号采集器件包括有数据采集端口(D端口),时钟端口(CLK端口)以及输出端口(Q端口)。其中,在信号采集器件出于正常工作状态下(即非亚稳态状态下)时,输出端口会根据输入端口的输入电平值,输出相应的输出值,而时钟端口用于触发“输出端口根据输入端口的输入电平值,输出相应的输出值”的这一功能。即,在时钟端口输入有效信号时,输出端口才会根据输入端口的输入电平值,输出相应的输出值,而若在时钟端口未输入有效信号时,无论输入端口接收到何种电平值,输出端口的状态将始终保持不变,也即信号采集器件内的控制电路将被封锁。
还需要注意的是,本申请实施例中所采用的信号采集器件还需满足具有亚稳态状态的要求,即信号采集器件可以在满足特定条件时,进入亚稳态状态。通常,当信号采集器件中的数据采集端口处的信号的上升沿与时钟端口处的信号的上升沿在某个位置处对齐时,会导致setup-time(建立时间)或hold-time(保持时间)不满足数据传输的要求,从而导致出现亚稳态状态。
应理解,亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态引时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这期间,触发器会输出一些随机的电平,而这些随机的电平即是本申请实施例中所需的随机数。
为满足上述要求,本申请实施例中信号采集器件可以采用诸如D触发器、锁存器等异步元器件来实现。
示例性的,对于采用D触发器、锁存器等器件实现信号采集器件时,通常在数据采集端口处的信号的上升沿的50%处与时钟端口处的信号的上升沿的50%处对齐时,D触发器、锁存器等器件会处于亚稳态状态。当然,考虑到外围电路以及电压偏移等因素的影响,亚稳态的出现条件也可能早于或晚于数据采集端口的信号的50%处和数据采集端口的信号的50%处对齐。比如可能在数据采集端口处的信号的上升沿的20%处与时钟端口处的信号的上升沿的80%处对齐时,信号采集器件处于亚稳态状态,或者是在数据采集端口处的信号的上升沿的80%处与时钟端口处的信号的上升沿的20%处对齐时,信号采集器件处于亚稳态状态。甚至,可以是数据采集端口处的信号早于时钟端口处的信号先到达,或者数据采集端口处的信号晚于时钟端口处的信号到达时,信号采集器件处于亚稳态状态。信号采集器件的亚稳态状态的出现条件,具体视信号采集器件自身的情况决定。
事实上,亚稳态为信号采集器件的固有属性,其出现条件会受信号采集器件自身的结构以及外部电路的影响。因此,本申请实施例中使得信号采集器件进入亚稳态状态的亚稳态的出现条件并非是人为进行设置的,而是由信号采集器件自身的结构以及外部电路的所共同确定出的一个客观存在的条件。
还应当理解的是,在实际应用过程中,采集端口处的信号的上升沿与时钟端口处的信号的上升沿对齐以进入亚稳态状态的预设位置并非是一个固定的位置,而是一个范围。比如,通常D触发器在数据采集端口处的信号的上升沿的50%处与时钟端口处的信号的上升沿的50%处对齐时,会处于亚稳态状态,但是这里的所描述的上升沿的50%处并非是严格意义上的上升沿的50%处,而是允许其存在一定的偏差,比如可能在数据采集端口处的信号的上升沿的49%处或51%处与时钟端口处的信号的上升沿的50%处对齐时,D触发器仍旧会处于亚稳态状态。而该范围的确定是由信号采集器件自身的性能所决定的。
在本申请实施例中,振荡器可以分别与信号采集器件的数据采集端口和时钟端口连接,从而向信号采集器件的数据采集端口和时钟端口输出相应的振荡信号。
需要注意的是,本申请实施例需要使信号采集器件处于亚稳态,而为了使得信号采集器件能够处于亚稳态状态中,就需要使得在同一时刻输入至数据采集端口和时钟端口的振荡信号的上升沿能够在预设位置处对齐。
为了使得在同一时刻输入至数据采集端口和时钟端口的振荡信号的上升沿能够在预设位置处对齐,本申请实施例中一方面可以配置振荡器至信号采集器件的数据采集端口和时钟端口的电路延迟不同,从而使得信号采集器件的数据采集端口和时钟端口接收到的振荡信号异步。
在本申请实施例中,为了使得振荡器至信号采集器件的数据采集端口和时钟端口的电路延迟不同,可以在振荡器与信号采集器件的数据采集端口或时钟端口之间,设置延迟链路。
应理解,信号的传输会受到电路长度以及电路中的电性元器件(如电容、电阻等的影响),因此在本申请实施例中,可以基于此,通过设置振荡器与信号采集器件的数据采集端口之间的电路长度、电阻或电容的大小来实现对于振荡器与信号采集器件的数据采集端口之间的延迟链路的设置。同理,也可以通过设置振荡器与信号采集器件的时钟端口之间的电路长度、电阻或电容的大小来实现对于振荡器与信号采集器件的时钟端口之间的延迟链路的设置。
示例性的,在本申请实施例中,振荡器的输出端可以直接与信号采集器件的时钟端口连接,并与信号采集器件的数据采集端口通过延迟链路连接,从而实现振荡器至数据采集端口和时钟端口的电路延迟不同。
此外,振荡器的输出端可以直接与信号采集器件的数据采集端口连接,并与信号采集器件的时钟端口通过延迟链路连接,从而实现振荡器至数据采集端口和时钟端口的电路延迟不同。
此外,振荡器的输出端可以与信号采集器件的数据采集端口通过一延迟链路连接,并与信号采集器件的时钟端口通过另一延迟链路连接,从而实现振荡器至数据采集端口和时钟端口的电路延迟不同。
而另一方面,在本申请实施例中,可以采用频率可调的振荡器,并将振荡器与信号采集器件的输出端口连接,从而根据信号采集器件的输出端口所输出的信号调整产生的振荡信号的周期,从而调整输出至信号采集器件的数据采集端口和时钟端口的振荡信号的上升沿位置,使得信号采集器件的数据采集端口和时钟端口的上升沿能够动态的在预设位置处对齐。
为了使得振荡器的频率可以根据信号采集器件的输出端口所输出的信号自动调整,在本申请实施例中,可以参见图2所示:
振荡器可以包括奇数个依次首尾相连的振荡单元,从而通过奇数个振荡单元形成自激振荡器,从而产生振荡信号。
在本申请实施例中,振荡单元具有两条不同的延迟链路(记为第一延迟链路和第二延迟链路),并具有一个选择单元,从而可以通过选择单元实现对于第一延迟链路和第二延迟链路的选择。而在本申请实施例中,第一延迟链路和第二延迟链路可以配置不同的延迟周期,从而使得通过第一延迟链路和通过第二延迟链路的振荡信号的周期得以不同,使得通过第一延迟链路和第二延迟链路的振荡信号的上升沿位置得以在不同程度上进行延迟。
需要理解的是,虽然图2中没有显示,但是振荡单元中应具有诸如反相器、与非门等可与其余振荡单元中的反相器、与非门等元件构成振荡电路的基本元件。
应理解,本申请实施例中,振荡单元中的诸如反相器、与非门等用于实现振荡电路的基本元件,可以分别设置于每一条延迟链路中。但是,也可以作为共有器件同时与第一延迟链路和第二延迟链路连接,如图3所示。
在本申请实施例中,参见图4所示,选择单元可以包括多路选择器和控制器。其中,多路选择器可以为两路选择器,分别与振荡单元中的第一延迟链路和第二延迟链路连接,可以择一选通其中一个延迟链路作为输出。当多路选择器采用三路或三路以上的选择器时,则可以仅使用其中的两路接入接口分别接入第一延迟链路和第二延迟链路。
而控制器则与多路选择器连接,并与信号采集器件的输出端口连接,从而根据信号采集器件的输出端口的信号控制多路选择器的选通。
应理解,在本申请实施例中,控制器可以采用诸如D触发器、锁存器、与门电路等实现。
需要说明的是,本申请实施例中,各振荡单元内的控制器可以分别与信号采集器件的输出端口连接,从而实现根据信号采集器件的输出端口的信号控制多路选择器的选通,比如参见图5-1所示。
但是,对于采用诸如D触发器、锁存器等元器件作为控制器时,由于在D触发器和锁存器在处于正常工作状态时,D触发器、锁存器的输出端口的输出值等于其数据采集端口的输入值,因此也可以仅将一个振荡单元的控制器的数据采集端口与信号采集器件的输出端口相连接,而将其余振荡单元的控制器数据采集端口与该振荡单元的控制器的输出端口相连接(可以是如图5-2的方式中,通过各振荡单元的控制器逐级连接,但也可以是多个振荡单元的控制器直接连接到该振荡单元的控制器的输出端口)。
在本申请实施例中,奇数个振荡单元首尾相连形成环,从而形成自激振荡器。
需要说明的是,频率可调的振荡器实现结构很多,除了上述示例出的实现结构外,还可以通过其他实现结构实现。比如,可以参见图6所示的结构,振荡器可以不采用自激振荡器,而是采用一个周期信号源,通过两个具有不同延迟的延迟链路接入到一个多路选择器上,并通过与信号采集器件的输出端口相连接的控制器(如D触发器)控制多路选择器对于两个延迟链路的选通(即控制以哪一个延迟链路输出至信号采集器件的数据采集端口或时钟端口),这样的振荡器同样可以实现频率调整。除此之外,还可以采用各种已有的频率可调的振荡器来实现本申请实施例的方案,在此不做限定。
以信号采集器件在数据采集端口处的信号的上升沿与时钟端口处的信号的上升沿在50%位置处对齐时,信号采集器件处于亚稳态状态的情况为例,假设振荡器的输出端直接与信号采集器件的时钟端口连接,假设电源电压为VDD,参见图7所示的波形图:
在第一个时钟周期时,导致时钟端口处的信号的上升沿50%处和数据采集端口处的信号的上升沿50%处并不对齐,箭头表示时钟端口采集数据的时间,很明显,此时箭头所指方向的数据采集端口处的信号电压小于50%VDD,故此时信号采集器件的输出端口输出值为0。
在第二个时钟周期时,由于振荡器收到信号采集器件的输出端口输出为0的反馈,控制器会控制多路选择器选通第二延迟链路(假设第二延迟链路的延迟周期大于第一延迟链路的延迟周期),此时时钟端口处的信号的上升沿往后推,此时时钟端口处的信号的上升沿50%处采集到的数据还是0,但此时时钟端口处的信号的上升沿50%处已经非常接近信号采集器件的数据采集端口的上升沿50%处。
在第三个时钟周期,振荡器收到信号采集器件的输出端口输出为0的反馈,控制器会控制多路选择器选通第二延迟链路,继续将时钟端口处的信号的上升沿往后推,此时时钟端口处的信号的上升沿50%处对齐到信号采集器件的数据采集端口的上升沿50%处,此时信号采集器件的输出端口的输出将是一个随机的数。
同理的,图7中倒数第三个周期,信号采集器件的时钟端口处的信号的上升沿50%处采集到的数据为1。
在倒数第二个周期,由于前一个周期信号采集器件的时钟端口处的信号的上升沿50%处采集到1,振荡器收到信号采集器件的输出端口输出为1的反馈,控制器会控制多路选择器选通第一延迟链路,此时时钟端口处的信号的上升沿往前推,此时时钟端口处的信号的上升沿50%处采集到的数据还是1,但此时时钟端口处的信号的上升沿50%处,较上一周期更接近信号采集器件的数据采集端口的上升沿50%处。
在倒数第一个周期,振荡器会收到信号采集器件的输出端口输出为1的反馈,控制器会继续控制多路选择器选通第一延迟链路,此时时钟端口处的信号的上升继续沿往前推,时钟端口处的信号的上升沿50%处对齐到信号采集器件的数据采集端口的上升沿50%处,此时信号采集器件的输出端口的输出将是一个随机的数。
因此,通过本申请实施例中提供的真随机数发生器,可以动态地调整振荡器输出的振荡信号的周期,使得信号采集器件的数据采集端口和时钟端口在同一时刻收到的振荡信号的上升沿在预设位置处对齐,从而使得信号采集器件动态地稳定在亚稳态状态下,提供可靠的随机数,实现基于亚稳态的随机数的产生。
在本申请实施例的一种可行实施方式中,前述振荡单元中的控制器的时钟端口可以与信号采集器件的数据采集端口或时钟端口连接,从而为振荡单元中的控制器提供相应的时钟触发信号。
同时,可以在振荡单元中的控制器的时钟端口处设置开关,从而可以实现对于振荡器的频率调整功能的启停控制。
比如,当随机数能稳定的产生时(即信号采集器件动态地稳定在亚稳态状态下时),即可选择断开该开关,从而降低本申请中真随机数发生器的能耗。而在本申请中真随机数发生器遭遇诸如断电,电压严重漂移等情况时,可以打开该开关,从而重新启用振荡器的频率自动调整功能,重新调整产生的所述振荡信号的周期,使得信号采集器件的数据采集端口处的信号的上升沿在与时钟端口处的信号的上升沿在预设位置处对齐,从而使得信号采集器件动态地稳定在亚稳态状态下,提供可靠的随机数,重新实现基于亚稳态的随机数的产生。
在本申请实施例中,还提供了一种电子设备,该电子设备可以包括本申请实施例中所提供的真随机数发生器。
示例性的,本申请实施例中的电子设备可以为信息安全系统中的电子设备,比如加密服务器、具有数据加密功能的终端设备(包括但不限于手机、笔记本电脑、台式机、平板电脑等)等。
本申请实施例中提供的真随机数发生器和电子设备,振荡器可以根据信号采集器件的输出端口输出的值自动调整振荡信号的周期,而由于振荡器至数据采集端口和时钟端口的电路延迟不同,因此数据采集端口和时钟端口在同一时刻收到的振荡信号不是振荡器同一时刻发出的振荡信号,因此可以通过调整振荡信号的周期,使得数据采集端口和时钟端口在同一时刻收到的振荡信号的上升沿在预设位置处对齐,从而使得信号采集器件动态地稳定在亚稳态状态下,提供可靠的随机数,实现基于亚稳态的随机数的产生。
实施例二:
本实施例在实施例一的基础上,以一种具体的真随机数发生器结构,对本申请的方案作进一步示例说明。
参见图8所示的真随机数发生器,
101和102均是延迟链路。
103是较104而言,频率偏快(延迟周期较小)一点的延迟链路(fast dly)。
104是较103而言,频率偏慢(延迟周期较大)一点的延迟链路(slow dly)。
105是两路选择器(MUX2),当D触发器109输出的S=1时,MUX2将1端口的数据送至输出,当D触发器109输出的S=0时,MUX2将0端口的数据送至输出。
106是一个D触发器(DFF)。其CLK端口(时钟端口)和D端口(数据采集端口)会接收到一个同一时间上升沿的信号。
107是DFF106的输出端口,是在DFF106处于亚稳态时,产生随机数的端口。
108代表多个(fast dly103、slow dly104和两路选择器105)的组合,以满足电路设计的需求。
109是D触发器,用于收集107端口输出的数。当109的Q端是1时,控制MUX2的1端口打开,当109的Q端是0时,控制MUX2的0端口打开。
在图8所示的电路中,从CB点到CLK点再到CB点构成了一个频率可微调的振荡器,从CB点经101后输送一个信号到106处。通过106不断的采集D端口上的值,并反馈到109这一系列的触发器中,从而控制108所表示的这一系列的组合单元中,选通的延迟链路,实现对于输出振荡器中延迟链路的动态调整,调整振荡信号的周期,实现对于106的D端口和CLK端口的信号上升沿位置的动态调整,使106处于亚稳态状态下。
参见图7所示,图7用波形的方式展示了如何通过本申请实施例的方案,使得106的Q端口输出随机数的原理。假设电源电压为VDD;假设CLK上升沿50%为DFF106采集D端口数据的瞬间,当采集时刻D端口电压小于50%VDD时,DFF106的Q端口输出值为0;当采集时刻D端口电压大于50%VDD时,DFF106的Q端口输出值为1;当DFF106的CLK端口信号的上升沿50%处和D端口信号的上升沿50%处对齐时,DFF106处于亚稳态状态,这正是期望的会使CLK端口随机采样的状态,也是本申请实施例希望维持的状态。
参见图7所示,在第一个时钟周期时,由于电路制程及各方面环境原因,导致CLK端口处的信号的上升沿50%处和D端口处的信号的上升沿50%处并不对齐,箭头表示CLK端口采集数据的时间,很明显,此时箭头所指方向的D端口处的信号电压小于50%VDD,故此时DFF106的Q端口输出值为0。
在第二个时钟周期时,由于109收到DFF106的Q端口输出为0的反馈,MUX2的0端口打开,将CLK端口处的信号的上升沿往后推,此时CLK端口处的信号的上升沿50%处采集到的数据还是0,但此时CLK端口处的信号的上升沿50%处已经非常接近D端口的上升沿50%处。
在第三个时钟周期,由于109继续收到DFF106的Q端口输出为0的反馈,MUX2的0端口继续打开,继续将CLK端口处的信号的上升沿往后推,此时CLK端口处的信号的上升沿50%处对齐到D端口的上升沿50%处,此时DFF106的Q端口的输出将是一个随机的数。
同理,倒数第三个周期,DFF106的CLK端口处的信号的上升沿50%处采集到的数据为1。
在倒数第二个周期,由于前一个周期CLK端口处的信号的上升沿50%处采集到1,109收到DFF106的Q端口输出为1的反馈,MUX2的1端口打开,此时DFF106的CLK端口处的信号的上升沿往前推,此时CLK端口处的信号的上升沿50%处采集到的数据还是1,但此时CLK端口处的信号的上升沿50%处,较上一周期更接近D端口的上升沿50%处。
在倒数第一个周期,由于前两个周期CLK端口采集到1,使得CLK端口处的信号的上升沿继续往前推,此时CLK端口上升沿50%处和D端口上升沿50%处对其,DFF106的Q端口输出为一个随机数。
通过本申请实施例所提供的方案,可以动态地调整D触发器106保持在亚稳态状态下,当受到环境等各种各样的因素影响,导致随机数产生的数据随机性不足时,可通过自动调整其中的延迟链路,保证产生的数据拥有足够的随机性。
在本申请所提供的实施例中,应该理解到,所揭露结构或单元,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种功能的划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个组件中,或一些特征可以忽略。另一点,所显示或讨论的相互之间的耦合或直接耦合或连接可以是通过一些接口或单元的间接耦合或连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种真随机数发生器,其特征在于,包括:
信号采集器件,包括数据采集端口,时钟端口以及输出端口,且在所述数据采集端口处的信号与所述时钟端口处的信号满足亚稳态的出现条件时,所述信号采集器件处于亚稳态状态;
振荡器,所述振荡器分别与所述数据采集端口、所述时钟端口以及所述输出端口连接,所述振荡器用于产生振荡信号并将所述振荡信号分别输入至所述数据采集端口和所述时钟端口,并根据所述输出端口输出的信号调整产生的所述振荡信号的周期,以使所述信号采集器件动态地稳定在亚稳态状态下;
其中,所述振荡器至所述数据采集端口和所述时钟端口的电路延迟不同。
2.如权利要求1所述的真随机数发生器,其特征在于,所述振荡器包括奇数个依次首尾相连的振荡单元;每个所述振荡单元均包括:
第一延迟链路和第二延迟链路,用于按照预设的延迟周期对接收到的信号的上升沿位置进行延迟;其中,所述第一延迟链路的延迟周期小于所述第二延迟链路的延迟周期;
选择单元,分别与所述第一延迟链路和第二延迟链路连接,以根据所述输出端口输出的信号,选择输出所述第一延迟链路处理的信号,或选择输出所述第二延迟链路处理的信号。
3.如权利要求2所述的真随机数发生器,其特征在于,所述选择单元包括:
多路选择器,分别与所述第一延迟链路和第二延迟链路连接;
控制器,与所述多路选择器连接,并与所述输出端口连接,以根据所述输出端口输出的信号,控制所述多路选择器选择输出所述第一延迟链路延迟的信号,或选择输出所述第二延迟链路延迟的信号。
4.如权利要求3所述的真随机数发生器,其特征在于,所述控制器为D触发器或锁存器。
5.如权利要求4所述的真随机数发生器,其特征在于,每个所述振荡单元的所述控制器的时钟端口分别与所述信号采集器件的时钟端口连接;
所述真随机数发生器还包括:
开关,设置于所述控制器的时钟端口和所述信号采集器件的时钟端口之间。
6.如权利要求4所述的真随机数发生器,其特征在于,每个所述振荡单元的所述控制器的时钟端口分别与所述信号采集器件的数据采集端口连接;
所述真随机数发生器还包括:
开关,设置于所述控制器的时钟端口和所述信号采集器件的数据采集端口之间。
7.如权利要求3所述的真随机数发生器,其特征在于,所述多路选择器为两路选择器。
8.如权利要求2所述的真随机数发生器,其特征在于,所述奇数个依次首尾相连的振荡单元中,最后一个振荡单元的输出与第一个振荡单元的输入之间通过第三延迟链路连接。
9.如权利要求1-8任一项所述的真随机数发生器,其特征在于,所述振荡器的输出端直接与所述信号采集器件的时钟端口连接,并与所述信号采集器件的数据采集端口通过第四延迟链路连接。
10.如权利要求1-8任一项所述的真随机数发生器,其特征在于,所述振荡器的输出端直接与所述信号采集器件的数据采集端口连接,并与所述信号采集器件的时钟端口通过第四延迟链路连接。
11.一种电子设备,其特征在于,包括如权利要求1-10任一项所述的真随机数发生器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010892500.6A CN112015368B (zh) | 2020-08-28 | 2020-08-28 | 一种真随机数发生器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010892500.6A CN112015368B (zh) | 2020-08-28 | 2020-08-28 | 一种真随机数发生器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015368A CN112015368A (zh) | 2020-12-01 |
CN112015368B true CN112015368B (zh) | 2021-08-27 |
Family
ID=73502930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010892500.6A Active CN112015368B (zh) | 2020-08-28 | 2020-08-28 | 一种真随机数发生器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015368B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185132A (zh) * | 2023-03-07 | 2023-05-30 | 矩阵时光数字科技有限公司 | 一种fpga内部自激振荡产生时钟信号的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182203A (zh) * | 2014-08-27 | 2014-12-03 | 曙光信息产业(北京)有限公司 | 真随机数的产生方法和装置 |
CN106775583A (zh) * | 2016-11-18 | 2017-05-31 | 杭州电子科技大学 | 一种高速真随机数的产生方法 |
CN107038015A (zh) * | 2016-11-18 | 2017-08-11 | 杭州电子科技大学 | 一种高速真随机数发生器 |
CN107193533A (zh) * | 2017-07-31 | 2017-09-22 | 南京航空航天大学 | 一种新型低成本高速真随机数发生器 |
CN107918535A (zh) * | 2017-11-17 | 2018-04-17 | 宁波大学 | 一种在fpga上实现的亚稳态真随机数发生器 |
US20180196641A1 (en) * | 2017-01-11 | 2018-07-12 | Canon Kabushiki Kaisha | Random number generating apparatus |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102479067B (zh) * | 2010-11-25 | 2016-03-16 | 上海宇芯科技有限公司 | 一种真随机数生成方法及装置 |
CN111124363B (zh) * | 2019-12-28 | 2022-06-07 | 武汉瑞纳捷半导体有限公司 | 一种真随机数生成方法及真随机数发生器 |
-
2020
- 2020-08-28 CN CN202010892500.6A patent/CN112015368B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182203A (zh) * | 2014-08-27 | 2014-12-03 | 曙光信息产业(北京)有限公司 | 真随机数的产生方法和装置 |
CN106775583A (zh) * | 2016-11-18 | 2017-05-31 | 杭州电子科技大学 | 一种高速真随机数的产生方法 |
CN107038015A (zh) * | 2016-11-18 | 2017-08-11 | 杭州电子科技大学 | 一种高速真随机数发生器 |
US20180196641A1 (en) * | 2017-01-11 | 2018-07-12 | Canon Kabushiki Kaisha | Random number generating apparatus |
CN107193533A (zh) * | 2017-07-31 | 2017-09-22 | 南京航空航天大学 | 一种新型低成本高速真随机数发生器 |
CN107918535A (zh) * | 2017-11-17 | 2018-04-17 | 宁波大学 | 一种在fpga上实现的亚稳态真随机数发生器 |
Also Published As
Publication number | Publication date |
---|---|
CN112015368A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5764710A (en) | Meta-stable-resistant front-end to a synchronizer with asynchronous clear and asynchronous second-stage clock selector | |
KR100457868B1 (ko) | 엘러스틱 인터페이스 장치 및 그 방법 | |
Sjogren et al. | Interfacing synchronous and asynchronous modules within a high-speed pipeline | |
Epstein et al. | Design and implementation of a true random number generator based on digital circuit artifacts | |
TWI520055B (zh) | 用於產生隨機數之裝置與方法 | |
US9047152B2 (en) | Delay device, method, and random number generator using the same | |
US5644604A (en) | Digital phase selector system and method | |
US6563349B2 (en) | Multiplexor generating a glitch free output when selecting from multiple clock signals | |
Wu et al. | A new digital true random number generator based on delay chain feedback loop | |
US20050004960A1 (en) | Electronic circuit for random number generation | |
KR20160017479A (ko) | 클럭 스위치 장치 및 이를 포함하는 시스템-온-칩 | |
EP3502870B1 (en) | Stabilizing the startup behavior of ring oscillators | |
CN102254110A (zh) | 寄存器翻转时刻随机化控制电路 | |
CN112015368B (zh) | 一种真随机数发生器及电子设备 | |
US7084679B2 (en) | Method and apparatus for ensuring synchronization of clocks in a multiple clock system | |
Chattopadhyay et al. | GALDS: a complete framework for designing multiclock ASICs and SoCs | |
Peng et al. | A Compact TRNG Design for FPGA Based on the Metastability of RO-driven Shift Registers | |
US7003683B2 (en) | Glitchless clock selection circuit | |
Al-Haidary et al. | Physically unclonable functions (PUFs): A systematic literature review | |
US8930739B2 (en) | Memory controller | |
US7071738B1 (en) | Glitchless clock selection circuit using phase detection switching | |
CN113504809B (zh) | 一种多路时钟的动态切换方法、装置及系统 | |
US6982573B2 (en) | Switchable clock source | |
CN111352608B (zh) | 一种低开销型fpga基真随机数产生系统 | |
Ni et al. | A demultiplexer-based dual-path switching true random number generator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Huayuan Industrial Zone, Binhai New Area, Tianjin 300450 Applicant after: Haiguang Information Technology Co., Ltd Address before: Industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Huayuan Industrial Zone, Binhai New Area, Tianjin 300450 Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |