一种真随机数发生器及芯片转让专利

申请号 : CN202110769799.0

文献号 : CN113377337B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张洪柳丁雷

申请人 : 山东方寸微电子科技有限公司青岛方寸微电子科技有限公司

摘要 :

本发明属于信息安全芯片领域,提供了一种真随机数发生器及芯片。其中,该真随机数发生器包括多个反相器链通道、寄存器和异或元件;每个反相器链通道用于产生一个真随机数熵源;所述寄存器串联在每个反相器链通道上,用于同步各个真随机数熵源;所述异或元件用于将同步后的真随机数熵源混合后输出真随机数;在所述反相器链通道中,任意两个反相器之间串联一个开关电容组件,开关电容组件的开启顺序决定单个反相链器链通道形成环形振荡器的延迟时间。

权利要求 :

1.一种真随机数发生器,其特征在于,包括多个反相器链通道、寄存器和异或元件;每个反相器链通道用于产生一个真随机数熵源;所述寄存器串联在每个反相器链通道上,用于同步各个真随机数熵源;所述异或元件用于将同步后的真随机数熵源混合后输出真随机数;

在所述反相器链通道中,任意两个反相器之间串联一个开关电容组件,开关电容组件的开启顺序决定单个反相链器链通道形成环形振荡器的延迟时间;

在所述反相器链通道中,反相器为动态CMOS反相器,以通过动态时钟来控制单个反相链器链通道的禁止或打开,以实现裁剪反相器链通道数目的目的;

所述动态CMOS反相器由上拉网络电路和下拉网络电路构成,所述上拉网络电路和下拉网络电路分别通对应时钟控制通断。

2.如权利要求1所述的真随机数发生器,其特征在于,当上拉网络电路的时钟信号输入为低电平时,预充上拉网络电路并根据上拉网络电路的输入进入预充阶段。

3.如权利要求1所述的真随机数发生器,其特征在于,当下拉网络电路的时钟信号输入为高电平时,计算下拉网络电路并根据下拉网络电路的输入进入计算阶段。

4.如权利要求1所述的真随机数发生器,其特征在于,当上拉网络电路的时钟信号输入为高电平,且下拉网络电路的时钟信号输入为低电平时,当前级反相器输出高阻态,以断开下一级反相器。

5.如权利要求1所述的真随机数发生器,其特征在于,所述开关电容组件由电容元件和开关元件构成。

6.如权利要求5所述的真随机数发生器,其特征在于,所述开关元件的数量为两个,分别为第一开关元件和第二开关元件;所述第一开关元件串联在两个反相器之间。

7.如权利要求6所述的真随机数发生器,其特征在于,所述电容元件一端接地,另一端与第二开关元件的固定端子相连,所述第二开关的活动端子用于在第一反相器的输出端和第二个反相器的输入端之间切换。

8.一种芯片,其特征在于,包括如权利要求1‑7中任一项所述的真随机数发生器。

说明书 :

一种真随机数发生器及芯片

技术领域

[0001] 本发明属于信息安全芯片领域,尤其涉及一种真随机数发生器及芯片。

背景技术

[0002] 本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
[0003] 据密码学原理,随机数的随机性检验可以分为三个标准:1)统计学伪随机性;2)密码学安全伪随机性;3)真随机性。伪随机数容易被攻破,传统电路没有给出一种有效的并且灵活的增加延迟环形振荡器延迟方法,而且真随机数TRNG产生电路也存在不统一、灵活性差且不可调控的问题。

发明内容

[0004] 为了解决上述背景技术中存在的技术问题,本发明的第一个方面提供一种真随机数发生器,其可以应用于密码学加密,更加灵活、可控、统一及有效的产生真正的随机数发生器,以实现随机数发生器的延迟动态可调且通道数可裁剪。
[0005] 为了实现上述目的,本发明采用如下技术方案:
[0006] 一种真随机数发生器,其包括多个反相器链通道、寄存器和异或元件;每个反相器链通道用于产生一个真随机数熵源;所述寄存器串联在每个反相器链通道上,用于同步各个真随机数熵源;所述异或元件用于将同步后的真随机数熵源混合后输出真随机数;
[0007] 在所述反相器链通道中,任意两个反相器之间串联一个开关电容组件,开关电容组件的开启顺序决定单个反相链器链通道形成环形振荡器的延迟时间。
[0008] 进一步地,在所述反相器链通道中,反相器为动态CMOS反相器,以通过动态时钟来控制单个反相链器链通道的禁止或打开,以实现裁剪反相器链通道数目的目的。
[0009] 进一步地,所述动态CMOS反相器由上拉网络电路和下拉网络电路构成,所述上拉网络电路和下拉网络电路分别通对应时钟控制通断。
[0010] 进一步地,当上拉网络电路的时钟信号输入为低电平时,预充上拉网络电路并根据上拉网络电路的输入进入预充阶段。
[0011] 进一步地,当下拉网络电路的时钟信号输入为高电平时,计算下拉网络电路并根据下拉网络电路的输入进入计算阶段。
[0012] 进一步地,当上拉网络电路的时钟信号输入为高电平,且下拉网络电路的时钟信号输入为低电平时,当前级反相器输出高阻态,以断开下一级反相器。
[0013] 进一步地,所述开关电容组件由电容元件和开关元件构成。
[0014] 进一步地,所述开关元件的数量为两个,分别为第一开关元件和第二开关元件;所述第一开关元件串联在两个反相器之间。
[0015] 进一步地,所述电容元件一端接地,另一端与第二开关元件的固定端子相连,所述第二开关的活动端子用于在第一反相器的输出端和第二个反相器的输入端之间切换。
[0016] 本发明的第二个方面提供一种芯片,其包括如上述所述的真随机数发生器。
[0017] 与现有技术相比,本发明的有益效果是:
[0018] (1)本发明在反相器链通道中的任意两个反相器之间串联一个开关电容组件,通过控制开关电容组件的开启顺序来调节单个反相链器链通道形成环形振荡器的延迟时间,从而实现真随机数发生器的延迟时间可调。
[0019] (2)本发明的反相器链通道中的反相器设置为动态CMOS反相器,通过动态时钟来控制单个反相链器链通道的禁止或打开,基于动态clock控制组合逻辑反相器技术,可以降低静态漏电,也可以禁止掉该随机数熵源通道,进行混合之前的通道数裁剪,通过随机通道数目可以裁剪,可调整最终的混合随机数输出熵源随即特性。
[0020] (3)本发明的真随机数发生器兼容主流CMOS工艺,方便IC集成芯片实现。
[0021] 本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0022] 构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0023] 图1是本发明实施例的真随机数发生器结构示意图;
[0024] 图2是本发明实施例的单独反相器链通道;
[0025] 图3是本发明实施例的动态clock控制上拉PUN/下拉PDN反相器示意图。

具体实施方式

[0026] 下面结合附图与实施例对本发明作进一步说明。
[0027] 应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
[0028] 需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0029] 实施例一
[0030] 参照图1,本实施例提供了一种真随机数发生器,其包括多个反相器链通道、寄存器和异或元件;每个反相器链通道用于产生一个真随机数熵源;所述寄存器串联在每个反相器链通道上,用于同步各个真随机数熵源;所述异或元件用于将同步后的真随机数熵源混合后输出真随机数。
[0031] 在图1中,OSC为环形振荡器,其由单个反相链器链通道(Inverter Chain Channel)形成的。本发明基于多个高频率(该频率预先设定)真随机数通道,如图1所示,其产生多个真随机数熵源,被低频率寄存器同步后,通带裁剪后、混合输出到多扇入异或门,产生混合后频率更大的真随机数。
[0032] 在所述反相器链通道中,任意两个反相器之间串联一个开关电容组件,开关电容组件的开启顺序决定单个反相链器链通道形成环形振荡器的延迟时间。
[0033] 如图2所示,所述开关电容组件由电容元件和开关元件构成。所述开关元件的数量为两个,分别为第一开关元件和第二开关元件;所述第一开关元件串联在两个反相器之间。所述电容元件一端接地,另一端与第二开关元件的固定端子相连,所述第二开关的活动端子用于在第一反相器的输出端和第二个反相器的输入端之间切换。
[0034] 本实施例使用SC(Switch‑Capacitor)开关电容技术,其通过开关1、2、3、4、5、6的闭合、打开顺序控制,灵活控制单个反相链器链通道的整体延迟。
[0035] 首先,开关1、2、3、4、5、6的闭合箭头方向如图2所示,如果开关1、2、3、4、5、6均断开,直接闭合开关7、8、9,即前面Inverter直接驱动后面的Inverter,则前级Inverter直接驱动后面Inverter栅极电容与2级反相器之间线电容的和,3个反相器被驱动的总延迟delay作为整体闭环环路的半个反相器链通道周期Thalf。
[0036] 而采用SC(Switch‑Capacitor开关电容)机制,按照图2箭头指示方向,只闭合6、1开关,同时打开2、3、4、5开关,即C3先对Inverter1反相器的输入栅极电容充电,再对C1负载电容充电,其消耗时间delay1;
[0037] 然后按照图2箭头指示方向,关闭2、3开关,打开4、5、6、1开关,C1的up‑plate(C1上极板)对Inverter2的栅极电容充电,再对C2电容充电,消耗时间delay2;
[0038] 然后按照图2箭头方向,只闭合4、5开关,打开6、1、2、3开关,C2的up‑plate(C2上极板)对Inverter3的输入栅极电容充电,再对C3电容充电,消耗时间delay3。
[0039] 当然,整体的开关切换控制,需要考虑每一级Inverter的本征delay,通过开关控制模块,依次进行准确的开关闭合、打开切换;
[0040] 只有前面一级Inverter完成对其后C1、2、3的充电后,才可以切换开关,进行C1、2、3对后级Inverter栅极电容充电;
[0041] 这样,整体单独Inverter chain channel消耗半个反相器链通道周期Thalf_sc=delay1+delay2+delay3。
[0042] 在本实施例中,在所述反相器链通道中,反相器为动态CMOS反相器,以通过动态时钟来控制单个反相链器链通道的禁止或打开,以实现裁剪反相器链通道数目的目的。
[0043] 如图3所示,所述动态CMOS反相器由上拉网络电路和下拉网络电路构成,所述上拉网络电路和下拉网络电路分别通对应时钟控制通断。
[0044] 当上拉网络电路的时钟信号输入为低电平时,预充上拉网络电路并根据上拉网络电路的输入进入预充阶段。当下拉网络电路的时钟信号输入为高电平时,计算下拉网络电路并根据下拉网络电路的输入进入计算阶段。
[0045] 当上拉网络电路的时钟信号输入为高电平,且下拉网络电路的时钟信号输入为低电平时,当前级反相器输出高阻态,以断开下一级反相器。
[0046] 具体地,采用动态clock进行CMOS组合逻辑控制技术,如图3所示,当clock1输入为低电平‘0’时,预充PUN网络(Power Up Network)电路根据in1输入进入预充阶段(上拉网络通);
[0047] 同时,当clock2输入为高电平‘1’时,计算PDN网络(Power Down Network)电路根据in2输入进入计算阶段(下拉网络通);通过添加clock1、clock2,如图3所示,可以降低静态漏电能耗,同时,如果clock1为‘1’,clock2为‘0’,则该级Inverter上拉网络、以及下来网络对其下一级Inverter断开,即该级Inverter输出高阻态‘high‑Z’,即减少了一个随机通道熵源。
[0048] 本实施例可用于物联网IoT(Internet Of Things)数据加密相关且需要广泛使用真随机数TRNG(True Random Number Generator)产生的熵源(使用物理机制作为熵源,以产生真随机数)的应用场景。一方面,本实施例基于Switch‑Capacitor技术进行调节单个反相链器链通道(Inverter Chain Channel)形成的环形振荡器(OSC)延迟,另一方面,本实施例使用动态CMOS反相器(Dynamic CMOS Inverter),进行单独Inverter链通道的禁止或打开,进而裁剪整体环形振荡器的通道数目,单个Inverter Chain Channel被寄存器进行同步后,输出单通道随机数。最后,多个反相器链通道进行异或,获得混合真随机数输出,实现了随机数发生器的延迟动态可调且通道数可裁剪。
[0049] 实施例二
[0050] 本实施例提供了一种芯片,其包括如上述实施例一所述的真随机数发生器。
[0051] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。