首页> 中国专利> 随机数生成器、随机数生成电路及随机数生成方法

随机数生成器、随机数生成电路及随机数生成方法

摘要

本发明公开了一种随机数生成器、随机数生成电路及随机数生成方法,随机数生成电路包含随机数生成器并可执行随机数生成方法,随机数生成器包含具有N个存储元件的移位寄存器以及组合逻辑电路,N个存储元件在静止状态时接收随机种子,并且在多个频率周期内重复进行位移位动作,组合逻辑电路依据随机种子和从外部来源获得的随机比特流而产生输出序列。

著录项

  • 公开/公告号CN113138752A

    专利类型发明专利

  • 公开/公告日2021-07-20

    原文格式PDF

  • 申请/专利权人 旺宏电子股份有限公司;

    申请/专利号CN202010174948.4

  • 发明设计人 曾柏皓;李明修;林榆瑄;

    申请日2020-03-13

  • 分类号G06F7/58(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人任岩

  • 地址 中国台湾新竹科学工业园区力行路16号

  • 入库时间 2023-06-19 11:54:11

说明书

技术领域

本发明是有关于一种随机数生成器、随机数生成电路及随机数生成方法,可迅速产生具有高随机性的输出序列。

背景技术

随机数具有许多用途,举例来说,随机数可用于产生一次性密码(one-timepassword,OTP),为避免被攻击,其随机性(randomness)十分重要,否则经由观察数个一次性密码,便可能预测出之后的密码。另外,随机数序列广泛应用于密码学上,这对新的通信技术像是第五代行动通信技术(5G)及物联网(Internet of Things,IoT)不可或缺,当使用在通信技术上,便要考虑产生随机数序列的速度,由此可知,随机性及速度是设计随机数生成器的两大重要考虑因素。

发明内容

本发明是有关于一种随机数生成器、随机数生成电路及随机数生成方法,可迅速产生具有高随机性的输出序列。

根据一实施例,提出一种随机数生成器,其依据多个频率周期运作,随机数生成器包含移位寄存器、组合逻辑电路以及反馈端,移位寄存器包含N个存储元件,其以串联方式电连接,其中N个存储元件在静止状态时分别对应接收N位的随机种子,且移位寄存器在多个频率周期内重复进行位移位动作。组合逻辑电路包含第一输入端、第二输入端以及至少一逻辑栅,第一输入端与外部来源电连接,可在多个频率周期内从外部来源持续接收随机比特流;第二输入端与第一存储元件电连接,并抓取第一存储元件内所存储的数据;至少一逻辑栅针对随机比特流和第二输入端所抓取的数据执行至少一逻辑运算。反馈端与第二存储元件电连接,并因应至少一逻辑运算在多个频率周期内输出一输出序列,第二存储元件内所存储的数据在多个频率周期内以输出序列持续进行更新。

根据另一实施例,提出一种随机数生成电路,其包含第一随机数生成器,第一随机数生成器包含第一移位寄存器、第一组合逻辑电路以及第一反馈端,第一移位寄存器包含N个第一存储元件,其以串联方式电连接,其中N个第一存储元件包含第一移位寄存器的第一存储元件及第二存储元件,N个第一存储元件在静止状态时对应接收N位的随机种子,且第一移位寄存器在多个频率周期内重复进行第一位移位动作。第一组合逻辑电路包含第一输入端、第二输入端以及至少一第一逻辑栅,第一组合逻辑电路的第一输入端在多个频率周期内从第一外部来源持续接收第一随机比特流;第一组合逻辑电路的第二输入端与第一移位寄存器的第一存储元件电连接,并抓取第一移位寄存器的第一存储元件内所存储的数据;至少一第一逻辑栅针对第一随机比特流及第一组合逻辑电路的第二输入端所抓取的数据执行至少一第一逻辑运算。第一反馈端与第一移位寄存器的第二存储元件电连接,并因应至少一第一逻辑运算在多个频率周期内输出一输出序列,第一移位寄存器的第二存储元件内所存储的数据在多个频率周期内以输出序列持续进行更新。

根据另一实施例,提出一种随机数生成方法,应用于随机数生成电路,其中随机数生成电路包含移位寄存器和组合逻辑电路,而随机数生成方法包含下列步骤,首先,在静止状态时接收N位的随机种子,接着移位寄存器依据随机种子及随机比特流重复进行位移位动作,组合逻辑电路在多个频率周期内持续接收随机比特流,然后针对随机比特流和移位寄存器的第一存储元件内所存储的数据执行至少一逻辑运算,再来因应至少一逻辑运算在多个频率周期内输出一输出序列,然后以输出序列更新移位寄存器的第二存储元件内所存储的数据。

为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合所附附图详细说明如下:

附图说明

图1是本案实施例的随机数生成器的示意图;

图2A至图2C是图1的随机数生成器的运作示意图;

图3是显示随机数生成器所接收的随机序列输入的示意图;

图4是图3中随机数生成器运作时产生的波形图;

图5是举例说明随机种子的来源及随机序列输入的示意图;

图6A是组合逻辑电路的另一实施方式的示意图;

图6B是组合逻辑电路的另一实施方式的示意图;

图7是具有二阶随机数生成器的随机数生成电路的示意图;

图8是图7的随机数生成器的输出信号的真值表;

图9A是说明在同一随机数生成电路中的两个随机数生成器所对应的随机种子的来源的示意图;

图9B是显示随机数生成电路包含两个随机数生成器并从外部来源接收随机比特流的示意图;

图10是具有三阶随机数生成器的随机数生成电路的示意图;

图11A及图11B是显示组合逻辑电路的输入端与移位寄存器内的存储元件之间的连接关系可以任意变化的示意图。

【符号说明】

100,100a,100b,200,300,400a,400b,500a,500b,600,600′,600a,600b,600c,700b:随机数生成器

11,21,31,41a,41b,51a,51b,61a,61b,61c:随机种子

33,63,73:外部来源

35,45,551,553:位图(点阵数据表)

35a.35b:格子

40,50,60,70:随机数生成电路

101,101a,101b,201,401a,401b,501a,501b,601,601′,601a,601b,601c,701b:线性反馈移位寄存器

103,103a,103b,203,403a,403b,503a,503b,603,603′,603a,603b,603c,703b:组合逻辑电路

1031,4031a,4031b,6031,6031′,6032,6032′,7031,7032:逻辑栅

clk:频率信号

in1,in2,in3,in1′,in2′:输入端

Nf,Nf1,Nf2,Nf3:反馈端

P,S:随机比特流

p1,p2,p3,p4,q1,q2,q3,q4,q5,s1,s2,s3,s4:存储元件

Q:输出序列

xout,xout′:输出

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

在下列用于解释本案的叙述中,所描述的细节仅为增进对所公开实施例的完整了解,其实施例的实施不必包含所提供细节,另外,对已知的结构或装置仅以示意方式绘出以简化图示。

说明书中给出随机数生成电路的不同实施例,这些例示的随机数生成电路可以高速产生具有高随机度的输出序列Q。

本案因为使用两个随机来源,所以可以确保高随机度,这两个随机来源包含从熵(entropy)来源获得的随机种子和来自外部来源的随机比特流,随机数生成电路中的随机数生成器是以硬件为基础,所以可以确保输出序列Q的产出速度,再导入随机比特流之后,即使利用逆向工程(reverse engineering)窃取到随机数生成电路的硬件设计,仍旧无法预测输出序列Q,下面将说明随机数生成电路的实施方式。

图1是本案实施例的随机数生成器的示意图,随机数生成器100包含线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)101、组合逻辑电路103以及反馈端Nf。

线性反馈移位寄存器101具有M个存储元件(M为正整数),其中M个存储元件以串联方式电连接,以串联方式电连接的存储元件举例来说可以是D正反器(D flip-flops),在图1中假设M等于“4”。线性反馈移位寄存器101从熵来源接收随机种子11,熵来源举例来说可以是具有物理反复制功能(Physically Unclonable Function,PUF)的点阵数据表(Bitmaptable)、随机电报杂讯(Random Telegraph Noise,RTN)来源、非稳态电子振荡器、实时时钟(Real-Time Clock,RTC)、软件(software-based)种子或演算(algorithm-based)种子。

线性反馈移位寄存器101内的存储元件q1~q4依据频率信号clk运作,每一个存储元件q1~q4代表一个位“0”或“1”,频率信号的周期在文中称为频率周期,而存储元件q1、q2、q3、q4依据频率周期顺序(clock-by-clock basis)进行位移位动作。

组合逻辑电路103包含两个输入端in1、in2,输入端in1从外部来源接收随机比特流P,外部来源可以与熵来源相同或不同,提供随机比特流P的外部来源可以是非稳态正反器、随机电报杂讯(RTN)装置、实时时钟(RTC)、非稳态电子振荡器等等,或者随机比特流P可以来自另一个随机数生成器。

输入端in2从一个存储元件q1、q2、q3、q4(例如存储元件q1)抓取存储的数据,组合逻辑电路103针对输入端in1、in2进行逻辑运算产生输出xout,实际的逻辑运算取决于组合逻辑电路103内部的逻辑栅。

反馈端Nf与存储元件q4及组合逻辑电路103的输出xout电连接,同时,反馈端Nf也作为随机数生成器100的输出,反馈端Nf的逻辑电平在频率信号clk的每一个频率周期更新一次,反馈端Nf的逻辑电平将作为输出序列Q,逻辑电平属于二元逻辑,存在两种电平(逻辑“1”及逻辑“0”),根据本案实施例,输出序列Q不只是具有高随机性,同时难以预测。

根据本案实施例,线性反馈移位寄存器101在启动或重设随机数生成器100时接收随机种子11,而线性反馈移位寄存器101在进行位移位动作时停止接收随机种子11,在图2A、图2B及图2C中,组合逻辑电路103仅示出一个逻辑栅(例如异或(XOR)门),实际上并不限制组合逻辑电路103的实施样态。

图2A至图2C是图1的随机数生成器的运作示意图,为了便于显示,图中没有示出频率信号。图2A对应静止状态,表示线性反馈移位寄存器101正在接收随机种子11;图2B和图2C对应随机数生成器10的运作状态,表示线性反馈移位寄存器101正进行位移位动作,其中图2B和图2C分别代表随机数生成器100正处在频率周期clk1和频率周期clk2,频率周期clk1代表静止状态后的第一个频率周期,而频率周期clk2代表频率周期clk1的下一个频率周期。

请参阅图2A,在静止状态时,存储元件q1接收并存储随机种子11的最后一个位sd1,存储元件q2接收并存储随机种子11的倒数第二个位sd2,存储元件q3接收并存储随机种子11的正数第二个位sd3,以及存储元件q4接收并存储随机种子11的正数第一个位sd4。在初始状态,组合逻辑电路103的输入端in1、in2还没有接收任何信号,因此反馈端Nf在静止状态时的值是“未知(unknown)”。

请参阅图2B,在频率周期clk1开始之前,存储元件q1~q4分别存储了随机种子11的最后一个位(sd1)、倒数第二个位(sd2)、正数第二个位(sd3)以及正数第一个位(sd4)。

此时,组合逻辑电路103的输入端in1在频率周期clk1内接收随机比特流P的一个位P(clk1),而组合逻辑电路103的输入端in2则抓取存储元件q1内所存储的数据,亦即随机种子11的最后一个位(sd1)。因为逻辑栅1031的逻辑输入分别与组合逻辑电路103的输入端in1、in2电连接,逻辑栅1031即针对在频率周期clk1时所接收的随机比特流P(clk1)和输入端in2在频率周期clk1时所抓取的数据(即随机种子11的最后一个位(sd1))执行异或(XOR)运算,因此在频率周期clk1时的反馈端Nf等值于频率周期clk1时所接收的随机比特流P(clk1)和随机种子11的最后一个位(sd1)两者间的异或(XOR)运算结果。

请参阅图2C,在频率周期clk2时,线性反馈移位寄存器101进行位移位动作,这里仅以存储元件q1的位移位动作为例简单说明,其他有关存储元件q2、q3、q4的位移位动作就不再赘述。

在频率周期clk2时,将存储元件q2在频率周期clk1时所存储的数据q2(clk1)=sd2传送到存储元件q1(数据q1(clk2)),因此由图2C可知,在频率周期clk2时,存储元件q1内所存储的数据等值于随机种子11的倒数第二个位,也就是q1(clk2)=q2(clk1)=sd2。

如图2C所示,在频率周期clk2时,组合逻辑电路103的输入端in1接收随机比特流P的一个位(P(clk2)),组合逻辑电路103的输入端in2则抓取存储元件q1内所存储的数据,即随机种子11的倒数第二个位(sd2)。与图2B的说明类似,在频率周期clk2产生的输出序列Q等值于在频率周期clk2时所接收的随机比特流P(clk2)和随机种子11的倒数第二个位(sd2)两者间的异或(XOR)运算结果。

图3是显示随机数生成器200所接收的随机序列输入的示意图,随机数生成器200包含具有存储元件q1~q4的线性反馈移位寄存器201、组合逻辑电路203以及反馈端Nf,线性反馈移位寄存器201经由随机种子21(“1000”)初始化,当线性反馈移位寄存器201依据频率周期运作,与随机数生成器200运作有关的信号波形变化如图4所示。

图4是图3中随机数生成器运作时产生的波形图,纵轴由上到下分别代表随机比特流P、存储元件q4内所存储的数据、存储元件q3内所存储的数据、存储元件q2内所存储的数据、存储元件q1内所存储的数据、输出序列Q以及频率信号clk,横轴则代表时间,显示多个连续的频率周期clk=1~17。

虚线方框显示将随机种子“1000”存储在存储元件q1、q2、q3、q4内,虚线箭头A1、A2代表线性反馈移位寄存器201进行位移位动作。

再来说明虚线箭头A1相关的信号,在频率周期clk=1时,存储元件q4内所存储的数据是高逻辑电平“1”;然后,在频率周期clk=2时,将存储元件q4在频率周期clk=1时所存储的数据(高逻辑电平“1”)移动到存储元件q3,因此在频率周期clk=2时,存储元件q3内所存储的数据是高逻辑电平“1”;接着,在频率周期clk=3时,将存储元件q3在频率周期clk=2时所存储的数据(高逻辑电平“1”)再移动到存储元件q2,因此在频率周期clk=3时,存储元件q2内所存储的数据是高逻辑电平“1”;同样地,在频率周期clk=4时,将存储元件q2在频率周期clk=3时所存储的数据(高逻辑电平“1”)再移动到存储元件q1,因此在频率周期clk=4时,存储元件q1内所存储数据是高逻辑电平“1”。

再来说明虚线箭头A2相关的信号,在频率周期clk=2时,以在频率周期clk=1时所产生的输出序列Q更新存储元件q4内所存储的数据;然后,在频率周期clk=3时,以存储元件q4在频率周期clk=2时所存储的数据更新存储元件q3内所存储的数据;接着,在频率周期clk=4时,以存储元件q3在频率周期clk=3时所存储的数据更新存储元件q2内所存储的数据;同样地,在频率周期clk=5时,以存储元件q2在频率周期clk=4时所存储的数据更新存储元件q1内所存储的数据。

虚线圆圈c1、c2、c3共同显示组合逻辑电路203在频率周期clk=1时的运作,虚线圆圈c1对应在频率周期clk=1时的随机比特流P,即高逻辑电平“1”;虚线圆圈c2对应在频率周期clk=1时存储元件q1内所存储的数据,即低逻辑电平“0”。

虚线圆圈c3对应在频率周期clk=1时所产生的输出序列Q,即高逻辑电平“1”,在频率周期clk=1时所产生的输出序列Q便是组合逻辑电路203的输出,如图3所示,组合逻辑电路203分别经由输入端in1、in2接收随机比特流P(在clk=1时P=1)和存储元件q1内所存储的数据(在clk=1时q1=0),然后将随机比特流P和存储元件q1内所存储的数据传送到组合逻辑电路203的逻辑栅的逻辑输入,接着针对随机比特流P和存储元件q1在频率周期clk=1时所存储的数据执行异或(XOR)运算,在频率周期clk=1时所产生的输出序列Q等值于高逻辑电平“1”。另外,虚线圆圈c4表示在频率周期clk=2时,将组合逻辑电路203的输出再传送到存储元件q4进行存储。

其余频率周期的随机比特流P、存储元件q1~q4内所存储的数据以及输出序列Q的波形之间的关系可如频率周期clk=1所示的方式推导,总结一下图4的数据序列,当静止状态时接收到随机种子“1100”和随机比特流P“1001-0100-0101-1101”,随机数生成器200所产生的输出序列Q是“1000-1100-1001-0100”。

必须注意的是,输出序列Q与随机种子数值和随机比特流P都有关系,即使随机种子保持不变,输出序列Q也会跟着动态产生的随机比特流变化,例如假设图3的随机数生成器200一直接收相同的随机种子“1000”和不同的随机比特流P′=“0011-0010-1110-0110…”,则对应随机比特流P′的输出序列Q′会是“0001-1001-0010-100…”。

图5是举例说明随机种子的来源及随机序列输入的示意图,随机种子31可以来自位图,其对应具有物理反复制功能的点阵数据表,随机比特流P则来自外部来源33,在位图35中,假设白色格子35a代表位“0”,而斜线阴影格子35b代表位“1”,位图35可作为非确定性(non-deterministic)的熵来源,而来自外部来源33的随机比特流P又难以预测,因此输出序列Q确实具有高随机性。

实际应用上并不限定组合逻辑电路使用的逻辑栅、逻辑栅的结构及/或连接关系,图6A和图6B例示具有二级结构的组合逻辑电路。

图6A是组合逻辑电路的另一实施方式的示意图,在图6A中,随机数生成器600包含5位的线性反馈移位寄存器601(M=5)、组合逻辑电路603以及反馈端Nf。组合逻辑电路603从外部来源63接收随机比特流P。

组合逻辑电路603包含三个输入端in1、in2、in3以及两个逻辑栅6031、6032,逻辑栅6031、6032形成二级排列,在图6A中,逻辑栅6031、6032是异或(XOR)门,每一个逻辑栅6031、6032都包含两个逻辑输入,逻辑栅6032的两个逻辑输入分别与输入端in1、in2电连接,逻辑栅6031的两个逻辑输入分别与逻辑栅6032的输出和输入端in3电连接,因此可将逻辑栅6032定义成第一级(first-stack)逻辑栅,而将逻辑栅6031定义成第二级(second-stack)逻辑栅。

输入端in1接收随机比特流P,输入端in2则抓取存储元件q1内所存储的数据,因此逻辑栅6032的逻辑输入分别经由输入端in1、in2接收随机比特流P及存储元件q1内所存储的数据,然后将逻辑栅6032的输出传送到逻辑栅6031的一个逻辑输入,逻辑栅6031的另一个逻辑输入则经由输入端in3接收存储元件q3内所存储的数据,接着,逻辑栅6031根据逻辑栅6032的输出和存储元件q3内所存储的数据产生输出序列Q。此处不赘述存储元件q1、q2、q3、q4的位移位动作。

在图6A中,逻辑栅6032作为第一级逻辑栅,从非稳态振荡器接收随机比特流;另一方面,图6B中则使用第二级逻辑栅来接收随机比特流P。

图6B是组合逻辑电路的另一实施方式的示意图,在图6B中,随机数生成器600′包含5位的线性反馈移位寄存器601′(M=5)、组合逻辑电路603′以及反馈端Nf,组合逻辑电路603′从外部来源63接收随机比特流P。

组合逻辑电路603′包含三个输入端in1、in2、in3以及两个逻辑栅6031′、6032′,逻辑栅6031′、6032′形成二级排列,在图6B中,逻辑栅6031′、6032′是异或(XOR)门,每一个逻辑栅603a′、603b'都包含两个逻辑输入,逻辑栅6032'的两个逻辑输入分别与输入端in2、in3电连接,逻辑栅6031'的两个逻辑输入分别与输入端in1和逻辑栅6032'的输出电连接,因此可将逻辑栅6032'定义成第一级逻辑栅,而将逻辑栅6031′定义成第二级逻辑栅。

输入端in1接收随机比特流P、输入端in2抓取存储元件q1内所存储的数据、输入端in3抓取存储元件q2内所存储的数据,然后,逻辑栅6032′的一个逻辑输入经由输入端in2接收存储元件q1内所存储的数据,另一个逻辑输入则经由输入端in3接收存储元件q2内所存储的数据,逻辑栅6032′执行逻辑运算后产生第一级异或(XOR)输出,接着,将逻辑栅6032′的输出传送至逻辑栅6031′。逻辑栅6031′的逻辑输入分别接收随机比特流P和逻辑栅6032′的输出,之后,逻辑栅6031′执行另一逻辑运算后产生第二级异或(XOR)输出,也就是输出序列Q。此处不赘述存储元件q1~q4执行的位移位动作。

在某些应用中,随机数生成电路可能包含多个随机数生成器,图7是具有二阶随机数生成器的随机数生成电路的示意图,随机数生成电路40包含随机数生成器400a、400b,随机数生成器400b定义为第一阶(first-stage)随机数生成器,而随机数生成器400a定义为第二阶(second-stage)随机数生成器。

随机数生成器400b包含具有存储元件p1~p4的线性反馈移位寄存器401b、组合逻辑电路403b以及反馈端Nf2,组合逻辑电路403b包含具有两个逻辑输入的逻辑栅4031b以及两个输入端in1′、in2′,逻辑栅4031b的逻辑输入分别与组合逻辑电路403b的输入端in1′、in2′电连接。

随机数生成器400a包含具有存储元件q1~q4的线性反馈移位寄存器401a、组合逻辑电路403a以及反馈端Nf1,组合逻辑电路403a包含具有两个逻辑输入的逻辑栅4031a以及两个输入端in1、in2,逻辑栅4031a的逻辑输入分别与组合逻辑电路403a的输入端in1、in2电连接。

在静止状态时,随机数生成器400b的线性反馈移位寄存器401b接收随机种子41b(“1000”),而随机数生成器400a的线性反馈移位寄存器401a接收随机种子41a(“1000”),因应接收频率信号clk的多个频率周期,线性反馈移位寄存器401a、401b均重复进行位移位动作,图中假设随机种子41a、41b来自同一位图的不同位置。

再来说明随机数生成器400b的运作,当线性反馈移位寄存器401b在静止状态时接收随机种子41b之后,存储元件p1、p2、p3、p4依据频率信号clk进行位移位动作,组合逻辑电路403b的输入端in1′抓取存储元件p1内所存储的数据,而组合逻辑电路403b的输入端in2′则抓取存储元件p2内所存储的数据,经过逻辑栅4031b执行逻辑运算,组合逻辑电路403b在反馈端Nf2产生输出xout′(即随机比特流P)。

随机数生成器400a的运作涉及在静止状态时接收的随机种子41a、随机比特流P、线性反馈移位寄存器401a的位移位动作以及组合逻辑电路403a的设计,随机数生成器400a的内部设计、连接关系以及运作方式与图5的随机数生成器300类似,差别在于图7的随机比特流P来自于另一个随机数生成器400b,随机数生成器400a会在反馈端Nf1产生输出序列Q。

在图7中,随机种子41a、41b来自同一点阵数据表45的不同位置,点阵数据表45具有物理反复制功能,随机种子41a、41b的值可以相同或不同,或者线性反馈移位寄存器401a、401b可以选择自同一点阵数据表的相同位置,换句话说,随机数生成器的随机种子可以从能够提供随机数据的任何来源任意选择,随机种子的来源例如为非稳态正反器、随机电报杂讯装置、实时时钟、非稳态电子振荡器等等。

图8是图7的随机数生成器的输出信号的真值表,左半边的表格和右半边的表格分别对应随机数生成器400a和400b的运算,在静止状态提供给线性反馈移位寄存器401a的随机种子41a如虚线方框所示是“1000”,而在静止状态提供给线性反馈移位寄存器401b的随机种子41b则如虚线方框所示是“1000”。虚线箭头代表线性反馈移位寄存器401a和401b进行的位移位动作。

基于随机种子41b(“1000”)和线性反馈移位寄存器401b的位移位动作,组合逻辑电路403b将因应多个频率周期产生随机比特流P=”0011-0101-1110-0010-0110-1011-1100-0100-11...”。基于随机种子41a(“1000”)、随机比特流P以及线性反馈移位寄存器401a的位移位动作,组合逻辑电路403a产生输出序列Q。随机比特流P等值于存储元件p4在下一频率周期时所存储的数据。因此,频率周期clk=1~33的随机比特流P,和存储元件p4在频率周期clk2~34所存储的数据相同。

在频率周期clk=1时产生的输出序列Q等值于低逻辑电平“0”(未绘示),如图4所示,输出序列Q等值于存储元件q4在下一频率周期时所存储的数据,举例来说,输出序列Q在频率周期K时等值于存储元件q4在频率周期clk=K+1时所存储的数据,由此,在图8中,经过多个频率周期clk=1~33的输出序列Q是“0010-0111-1001-1011-1101-0110-1010-1110-0…”,和存储元件q4在频率周期clk2~34所存储的数据相同。

输出序列Q与存储元件q1、q2、q3、q4、p1、p2、p3、p4在频率周期clk=1~34所存储的数据如图8所示,由图8可观察到输出序列Q在频率周期clk1~34之间并没有固定的模式,也就是说输出序列Q具有高随机性。

图9A是说明在同一随机数生成电路中的两个随机数生成器使用不同来源的随机种子的示意图,随机数生成电路50包含随机数生成器500a、500b,随机数生成器500b包含具有五个存储元件p1~p5的线性反馈移位寄存器501b、组合逻辑电路503b以及反馈端Nf2;随机数生成器500a包含具有四个存储元件q1~q4的线性反馈移位寄存器501a、组合逻辑电路503a以及反馈端Nf1。

在静止状态时,随机数生成器500b从位图553接收随机种子51b,而随机数生成器500a从位图551接收随机种子51a,因应接收频率信号clk的多个频率周期,线性反馈移位寄存器501a、501b均重复进行位移位动作,随机数生成器500b定义为第一阶随机数生成器,随机数生成器500a则定义为第二阶随机数生成器。

随机数生成器500b的运作与在静止状态时接收到的随机种子51b、线性反馈移位寄存器501b的位移位动作以及组合逻辑电路503b的设计有关,而随机数生成器500a的运作则与在静止状态时接收到的随机种子51a、线性反馈移位寄存器501a的位移位动作以及组合逻辑电路503a的设计有关。随机数生成器500b在反馈端Nf2产生随机比特流P,而随机数生成器500a在反馈端Nf1产生输出序列Q。

在图9A中,随机种子51a、51b由不同的来源获得,传送到随机数生成器500a的随机种子51a来自点阵数据表551,而传送到随机数生成器500b的随机种子51b则来自点阵数据表553,点阵数据表551、553均具有物理反复制功能。

图9B是显示随机数生成电路包含两个随机数生成器并从外部来源接收随机比特流的示意图,随机数生成电路70包含随机数生成器500a、700b,随机数生成器700b包含具有五个存储元件p1~p5的线性反馈移位寄存器701b、组合逻辑电路703b以及反馈端Nf2,组合逻辑电路703b还包含逻辑栅7031、7032,随机数生成器500a即如图9A所示。

在静止状态时,随机数生成器700b接收随机种子51b,而随机数生成器500a则接收随机种子51a,因应接收频率信号clk的多个频率周期,线性反馈移位寄存器501a、701b均重复进行位移位动作。

在图9B中,第一阶随机数生成器(即随机数生成器700b)有二级结构,组合逻辑电路703b的二级结构与图6B的组合逻辑电路603′的结构类似,不是由第一级逻辑栅7032接收随机比特流,而是由第二级逻辑栅7031从外部来源73接收随机比特流S。

逻辑栅7032经由输入端in2、in3接收存储元件p1、p2内所存储的数据,然后逻辑栅7032、7031执行逻辑运算在反馈端Nf2产生输出(即随机比特流P),因为随机数生成器500a的运作与图7的类似,这里省略图9B的随机数生成器500a的相关叙述。

图10是具有三阶随机数生成器的随机数生成电路的示意图,随机数生成电路60包含串接的随机数生成器600a、600b、600c,在实际应用中,可以串接更多的随机数生成器。

在图10中,要产生输出序列Q包含三阶段,随机数生成器600c执行初始阶段,随机数生成器600b执行中间阶段,随机数生成器600a执行最终阶段。

随机数生成器600c包含具有存储元件s1、s2、s3、s4的线性反馈移位寄存器601c、组合逻辑电路603c以及反馈端Nf3,存储元件s1、s2、s3、s4在静止状态时共同接收随机种子61c,因应线性反馈移位寄存器601c接收频率信号clk,存储元件s1、s2、s3、s4在每一频率周期内进行位移位动作,因应多个频率周期,线性反馈移位寄存器601c内所存储的数据持续更新,组合逻辑电路603c在反馈端Nf3产生随机比特流,随机比特流S再传送到随机数生成器600b和存储元件s4。

随机数生成器600c、600b的运作原理类似,随机数生成器600b包含具有存储元件p1、p2、p3、p4的线性反馈移位寄存器601b、组合逻辑电路603b以及反馈端Nf2,线性反馈移位寄存器601b的存储元件p1~p4共同接收随机种子61b,组合逻辑电路603b根据随机比特流S和存储元件p1内所存储的数据执行另一逻辑运算,组合逻辑电路603b在反馈端Nf2输出随机比特流P,然后随机比特流P再传送到存储元件p4供随机数生成器600a使用。

随机数生成器600a包含具有存储元件q1~q4的线性反馈移位寄存器601a、组合逻辑电路603a以及反馈端Nf1,线性反馈移位寄存器601a的存储元件q1~q4共同接收随机种子61a,组合逻辑电路603a接收随机比特流P并抓取存储元件q1内所存储的数据,在针对随机比特流P和存储元件q1内所存储的数据执行逻辑运算后,组合逻辑电路603a在反馈端Nf1产生输出序列Q,输出序列Q再传送并存储在存储元件q4。

如上所述,随机数生成器600b、600c用来产生暂时的随机比特流P、S,因为暂时的随机比特流P、S是动态实时生成的,由随机数生成电路60外部看不见其内容,因此随机比特流P、S并无法像输出序列Q一样监测,也不能像硬件元件(组合逻辑电路的逻辑栅)进行逆向工程,由于使用了随机数生成器600b、600c而提高了输出序列Q的随机性,因而大大改善了随机数生成电路的安全性。

在图10中,组合逻辑电路603a、603b、603c可以是异或(XOR)电路,线性反馈移位寄存器601a、601b、601c可以包含四个存储元件,不过组合逻辑电路603a、603b、603c和线性反馈移位寄存器601a、601b、601c的实施方式可视实际应用改变,例如线性反馈移位寄存器601a、601b、601c的存储元件数量可以不同,或是各组合逻辑电路603a、603b、603c可以包含超过一个逻辑栅。

在上述实施例中,作为说明之用,组合逻辑电路的一个输入端与对应最后一个位的存储元件(即存储元件q1)电连接,然而在实际应用时,输入端可以与任意的存储元件电连接。图11A和图11B是显示组合逻辑电路的输入端与线性反馈移位寄存器内的存储元件之间的连接关系可以任意变化的示意图。

在图11A中,随机数生成器100a包含线性反馈移位寄存器101a、组合逻辑电路103a以及反馈端Nf,线性反馈移位寄存器101a包含存储元件q1~q4,而组合逻辑电路103a包含输入端in1、in2,输入端in1可接收随机比特流P,组合逻辑电路103a的设计就不再复述,输入端in2可与存储元件q2电连接,因此组合逻辑电路103a所执行的逻辑运算是针对随机比特流P和从存储元件q2抓取的数据。这里省略说明组合逻辑电路103a的逻辑运算细节,不再赘述。

在图11B中,随机数生成器100b包含线性反馈移位寄存器101b、组合逻辑电路103b以及反馈端Nf,线性反馈移位寄存器101b包含存储元件q1~q4,而组合逻辑电路103b包含输入端in1、in2、in3,组合逻辑电路103b的设计就不再复述,输入端in2、in3可分别与存储元件q2、q3电连接,因此组合逻辑电路103b所执行的逻辑运算是针对从存储元件q2、q3抓取的数据和随机比特流P。这里省略说明组合逻辑电路103b的设计及逻辑运算细节,不再赘述。

根据图11A和图11B,组合逻辑电路的输入端、存储元件以及反馈端Nf之间的连接关系可以任意变化。

随机数生成器(Random Number Generator,RNG)在现今的电路设计中十分重要,可以应用在不同的领域,像是第五代行动通信技术(5G)的数据加密、一次性密码、乐透、统计模拟等等。本案说明了随机数生成器和随机数生成电路的各种实施例,上述实施例以硬件方式实施,只需要很小的位置,就可以在高速下提供良好的随机性。

实施例中采用的随机种子具有高混乱程度(degree of entropy),再使用随机比特流更增强随机度,如果组合逻辑电路采用异或(XOR)门或同或(XNOR)门,输出序列Q具有均匀统计分布的0和1,根据本案,即使攻击者可以监测输出序列Q及利用逆向工程找出组合逻辑电路的电路设计,但是因为加入了随机比特流P,输出序列Q的模式仍旧难以预测。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号