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

随机数产生电路及随机数产生方法

摘要

本发明涉及一种随机数产生装置及随机数产生方法,装置包括:脉冲信号产生模块,第一物理不可克隆函数结构,第二物理不可克隆函数结构,多路比较模块和交叉编码模块,所述第一物理不可克隆函数结构包括第一延时模块和第一比较模块,所述第二物理不可克隆函数结构包括第二延时模块和第二比较模块;所述第一延时模块和所述第二延时模块的输入端分别连接所述脉冲信号产生模块,所述第一延时模块和第二延时模块的使能端分别接入随机数种子信号,所述第一延时模块的输出端分别连接多路比较模块和第一比较模块,所述第二延时模块的输出端分别连接多路比较模块和第二比较模块,所述第一比较模块、第二比较模块和多路比较模块连接交叉编码模块。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-19

    授权

    授权

  • 2017-08-18

    实质审查的生效 IPC(主分类):G06F7/58 申请日:20170329

    实质审查的生效

  • 2017-07-25

    公开

    公开

说明书

技术领域

本发明涉及加密技术领域,特别是涉及一种随机数产生电路及随机数产生方法。

背景技术

物理不可克隆函数(Physical Unclonable Function,PUF)是通过提取物体的物理特性来对唯一的输入提供唯一的输出。物理不可克隆函数由芯片物理特性所决定,具有稳定唯一的、随用随取且不需要初始化、难以预测但容易测量、具有不可克隆性和篡改证据等特点。以物理不可克隆函数为基础,设计物理不可克隆函数电路即可提供安全、稳定和低成本的随机数输出。

目前,在基于仲裁器的物理不可克隆函数的方案中。一个信号在同时通过一个双输入双输出的选择开关时,受制造工艺差异的影响,产生传输延迟竞争,这种延迟通过多个开关组成的链路后进入仲裁器,通过仲裁器判断最后一个开关的两个输出端哪个信号先到达仲裁器来输出“0”或“1”。在实现过程中,开关使用的是锁存器或者触发器。采用锁存器时,输出0的概率较大,从而导致整个电路的输出不对称。

综上所述,现有的物理不可克隆函数输出不均衡。

发明内容

基于此,有必要针对输出不均衡的问题,提供一种随机数产生装置和随机数产生方法。

一种随机数产生装置,包括:

脉冲信号产生模块,第一物理不可克隆函数结构,第二物理不可克隆函数结构,多路比较模块和交叉编码模块,所述第一物理不可克隆函数结构包括第一延时模块和第一比较模块,所述第二物理不可克隆函数结构包括第二延时模块和第二比较模块;

所述第一延时模块和所述第二延时模块的输入端分别连接所述脉冲信号产生模块,所述第一延时模块和第二延时模块的使能端分别接入随机数种子信号,所述第一延时模块的输出端分别连接多路比较模块和第一比较模块,所述第二延时模块的输出端分别连接多路比较模块和第二比较模块,所述第一比较模块、第二比较模块和多路比较模块连接交叉编码模块;

所述第一延时模块根据所述随机数种子信号对所述脉冲信号产生模块输出的激励信号按不同路径延迟后,输出第一延迟信号和第二延迟信号至所述第一比较模块,所述第一比较模块根据所述第一延迟信号和第二延迟信号的到达顺序获取第一比较值,将所述第一比较值的反码输出至交叉编码模块;

所述第二延时模块根据所述随机数种子信号对所述激励信号按不同路径延迟后,输出第三延迟信号和第四延迟信号至所述第二比较模块,所述第二比较模块根据所述第三延迟信号和第四延迟信号的到达顺序输出第二比较值至交叉编码模块;

所述多路比较模块对第一物理不可克隆函数结构和第二物理不可克隆函数结构的信号到达顺序进行比较;

所述交叉编码模块根据所述第一比较值的反码、所述第二比较值和多路比较模块的输出信号生成随机数。

一种随机数产生方法,包括以下步骤:

通过第一物理不可克隆函数结构的第一延时模块将所述激励信号按不同路径延时后输出第一延迟信号和第二延迟信号,通过第二物理不可克隆函数结构的第二延时模块将所述激励信号按不同路径延时后输出第三延迟信号和第四延迟信号;

通过第一物理不可克隆函数结构的第一比较模块对所述第一延迟信号和第二延迟信号的输出顺序进行比较,获取第一比较值,通过第二物理不可克隆函数结构的第二比较模块对所述第三延迟信号和第四延迟信号的输出顺序进行比较,获取第二比较值;

通过多路比较模块对第一物理不可克隆函数结构和第二物理不可克隆函数结构的信号到达顺序进行比较;

通过交叉编码模块根据取所述第一比较值的反码、所述第二比较值和多路比较模块的输出信号生成随机数。

上述随机数产生装置和随机数产生方法,通过对激励信号进行不同路径的时延,根据不同路径信号的到达顺序输出比较值,并根据其中一半比较值的反码、另一半比较值的原码和反码、原码的到达顺序生成随机数,能够增进随机数输出的均衡性。

附图说明

图1为一个实施例的随机数产生装置的结构示意图;

图2为一个实施例的物理不可克隆函数布线框图;

图3为一个实施例的第一物理不可克隆函数结构示意图;

图4为一个实施例的第二物理不可克隆函数结构示意图;

图5为一个实施例的机数产生方法流程图。

具体实施方式

下面结合附图对本发明的技术方案进行说明。

如图1所示,本发明的一个实施例提供一种随机数产生装置,可包括:

脉冲信号产生模块,第一物理不可克隆函数结构,第二物理不可克隆函数结构,多路比较模块和交叉编码模块,所述第一物理不可克隆函数结构包括第一延时模块和第一比较模块,所述第二物理不可克隆函数结构包括第二延时模块和第二比较模块;

所述第一延时模块和所述第二延时模块的输入端分别连接所述脉冲信号产生模块,所述第一延时模块和第二延时模块的使能端分别接入随机数种子信号,所述第一延时模块的输出端分别连接多路比较模块和第一比较模块,所述第二延时模块的输出端分别连接多路比较模块和第二比较模块,所述第一比较模块、第二比较模块和多路比较模块连接交叉编码模块;

所述第一延时模块根据所述随机数种子信号对所述脉冲信号产生模块输出的激励信号按不同路径延迟后,输出第一延迟信号和第二延迟信号至所述第一比较模块,所述第一比较模块根据所述第一延迟信号和第二延迟信号的到达顺序获取第一比较值,将所述第一比较值的反码输出至交叉编码模块;

所述第二延时模块根据所述随机数种子信号对所述激励信号按不同路径延迟后,输出第三延迟信号和第四延迟信号至所述第二比较模块,所述第二比较模块根据所述第三延迟信号和第四延迟信号的到达顺序输出第二比较值至交叉编码模块;

所述多路比较模块对第一物理不可克隆函数结构和第二物理不可克隆函数结构的信号到达顺序进行比较;

所述交叉编码模块根据所述第一比较值的反码、所述第二比较值和多路比较模块的输出信号生成随机数。

脉冲信号产生模块的输入端为随机数种子信号,输出端为激励信号。当随机数种子信号输入改变时,该模块产生一个激励信号,并输出至延时模块。

第一延时模块和第二延时模块的输入端为随机数种子信号和脉冲信号产生模块产生的一个激励信号,输出端均为两个信号。以第一延时模块为例,该模块提供了两条信号传播路径,受到工艺偏差的影响,这两条信号传播路径的延时有所差别,导致输入信号在传播后可能存在相位偏差。根据随机数种子信号的输入值,选择激励信号在该模块中的传播路径,激励信号经过这两条不同路径后输出两个延时后的信号。第二延时模块可采用与第一延时模块相同的延时模块,此处不再赘述。

第一比较模块的输入端与第一延时模块输出的两个延时后的信号相连,其获取经第一延时模块延时后输出的两个信号的到达顺序,进行比较后获得第一比较值,并输出该第一比较值的反码。第二延时模块的输入端与第二延时模块输出的两个延时后的信号相连,其获取经第二延时模块延时后输出的两个信号的到达顺序,进行比较后输出第二比较值。

交叉编码模块的输入为第一比较值的反码、第二比较值的原码和多路比较模块的输出信号,根据多路比较模块的输出值对第一比较值的反码和第二比较值的原码进行交叉编码后输出均衡随机数。

第一延时模块和第一比较模块可构成第一物理不可克隆函数结构,第二延时模块和第二比较模块可构成第二物理不可克隆函数结构。在一个实施例中,所述第一物理不可克隆函数结构和第二物理不可克隆函数结构的数量均为多个,且所述第一物理不可克隆函数结构和第二物理不可克隆函数结构的数量相等,各个第一物理不可克隆函数结构和第二物理不可克隆函数结构分别通过多路比较模块连接至所述交叉编码模块;所述多路比较模块对各个第一物理不可克隆函数结构和第二物理不可克隆函数结构输出信号的到达顺序进行比较;所述交叉编码模块根据所述各个第一物理不可克隆函数结构和第二物理不可克隆函数结构输出信号的到达顺序对所述第一比较值的反码和所述第二比较值进行交叉编码,生成随机数。具体地,所述交叉编码模块可根据各个第一物理不可克隆函数结构和第二物理不可克隆函数结构输出信号的到达顺序确定所述第一比较值的反码和所述第二比较值在随机数中的排位,根据所述排位、所述第一比较值的反码和所述第二比较值生成随机数。

在另一个实施例中,所述第一物理不可克隆函数结构可包括多个第一延时模块和多个第一比较模块,所述第一延时模块和第一比较模块的数量相等,各个第一延时模块级联,且各个第一延时模块分别与对应的第一比较模块相连接,首级第一延时模块与所述脉冲信号产生模块相连接,末级第一延时模块与所述多路比较模块相连接,各个第一比较模块分别与所述交叉编码模块相连接,将对应第一比较值的反码输出至交叉编码模块;所述第二物理不可克隆函数结构可包括多个第二延时模块和多个第二比较模块,所述第二延时模块和第二比较模块的数量相等,各个第二延时模块级联,且各个第二延时模块分别与对应的第二比较模块相连接,首级第二延时模块与所述脉冲信号产生模块相连接,末级第二延时模块与所述多路比较模块相连接,各个第二比较模块分别与所述交叉编码模块相连接,将对应第二比较值的原码输出至交叉编码模块;各个第一物理不可克隆函数结构中第一延时模块和各个第二物理不可克隆函数结构中第二延时模块的数量相等。

进一步地,所述随机数产生装置可包括多个第一物理不可克隆函数结构和多个第二物理不可克隆函数结构,且每个第一物理不可克隆函数结构均可包括多个第一延时模块和多个第一比较模块,每个第二物理不可克隆函数结构均可包括多个第二延时模块和多个第二比较模块。基于一个脉冲信号产生及输入模块、Z*M/2个相同结构的第一延时模块、Z*M/2个相同结构的第二延时模块、Z*M/2个第一比较模块、Z*M/2个第二比较模块以及一个交叉编码模块、一个多路比较模块,可实现Z位随机数种子输入、Z*M位随机数输出的随机数产生装置如图2所示。在图2中,各个第一物理不可克隆函数结构和各个第二物理不可克隆函数结构均匀分布在圆形上,所述脉冲信号产生模块、交叉编码模块和多路比较模块设置在所述圆形的圆心上。通过这种方式,可以改善片间汉明距离,进一步提高随机数产生装置的性能。但本领域技术人员可知,本发明的随机数产生装置的布线结构并不限于上述结构。

在图2所示的实施例中,输入Z位的随机数种子后可触发脉冲信号产生模块产生一个激励信号。每一位随机数种子选择M个两通路第一延时模块的延时通路,并选择M个两通路第二延时模块的延时通路。由于存在工艺差异,使第一延时模块两条通路延时出现差异。经第一延时模块延时后的两个信号作为下级第一延时模块的输入,此外这两个信号也经过比较模块比较到达顺序后输出第一比较值的反码后至交叉编码模块。由于存在工艺差异,使第二延时模块两条通路延时出现差异,经第二延时模块延时后的两个信号作为下级第二延时模块的输入,此外这两个信号也经过比较模块比较到达顺序后输出第二比较值的原码至交叉编码模块。多路比较模块可输出各个第一物理不可克隆函数结构最后一级和各个第二物理不可克隆函数结构最后一级的到达顺序。交叉编码模块根据M个物理不可克隆函数结构最后一级到达顺序决定交叉编码的高低位。

在一个实施例中,将上级延时模块的两个输出信号与下级延时模块的两个输入信号相连后,可依据上一级延时模块的选择信号,判断上一级延时模块的输出信号与下一级延时模块的输入信号间的相连路径。通过这种方式,可增进随机数输出间的差异性。

在一个实施例中,所述第一延迟模块包括第一复用器和第一选择开关;所述第一复用器的第一输入端通过对应第一选择开关的一档连接上级第一复用器的第一输出端,所述第一复用器的第二输入端通过对应第一选择开关的二档连接上级第一复用器的第二输出端;所述第一复用器的第一输出端连接对应第一比较模块的第一输入端,所述第一复用器的第二输出端连接对应第一比较模块的第二输入端;首级第一选择开关的一档和二档短接,首级第一复用器的第一输入端和第二输入端连接所述脉冲信号产生模块,所述第一复用器的使能端接入随机数种子信号。所述第二延迟模块包括第二复用器和第二选择开关;所述第二复用器的第一输入端通过对应第二选择开关的一档连接上级第二复用器的第一输出端,所述第二复用器的第二输入端通过对应第二选择开关的二档连接上级第二复用器的第二输出端;所述第二复用器的第一输出端连接对应第二比较模块的第一输入端,所述第二复用器的第二输出端连接对应第二比较模块的第二输入端;首级第二选择开关的一档和二档短接,首级第二复用器的第一输入端和第二输入端连接所述脉冲信号产生模块,所述第二复用器的使能端接入随机数种子信号。

在另一个实施例中,所述第一比较模块包括第一D触发器;所述第一D触发器的D输入端连接对应第一复用器的第一输出端,所述第一D触发器的触发端连接对应第一复用器的第二输出端,所述第一D触发器的反相输出端连接所述交叉编码模块。所述第二比较模块包括第二D触发器;所述第二D触发器的D输入端连接对应第二复用器的第一输出端,所述第二D触发器的触发端连接对应第二复用器的第二输出端,所述第二D触发器的同相输出端连接所述交叉编码模块。

一个实施例的第一物理不可克隆函数结构和一个实施例的第二物理不可克隆函数结构分别如图3和图4所示。图中C1,C2,……,CZ表示随机数种子信号,D1,D2,……,DZ表示第一比较模块输出的第一比较值,E1,E2,……,EZ表示第二比较模块输出的第二比较值。其中,C1,C2,……,CZ可分别采用随机数种子信号的第1至Z位,Z为正整数,D表示D触发器的输入端,Q和Q分别表示D触发器的同相输入端和反相输入端。

下面以单个第一物理不可克隆函数结构包括Z个由两输入两输出的第一复用器组成的第一延时模块,Z个由第一D触发器组成的第一比较模块,且单个第二物理不可克隆函数包括Z个由两输入两输出的第二复用器组成的第二延时模块,Z个由第二D触发器组成的第二比较模块的实施例为例进行说明。由于第一物理不可克隆函数结构和第二物理不可克隆函数结构除了对原码取反生成反码的操作外,其他操作和结构都是相同的,为了便于描述,以下不区分“第一”和“第二”。本领域技术人员可以理解,将以下各个模块均替换为对应的第一模块,或者将以下各个模块均替换为对应的第二模块,以下实施例均成立。

每个延时模块包含一位的选择开关、两个信号输入(in1和in2)、两个信号输出(out1和out2)。第一级开关的in1和in2相短接,其输入由脉冲信号产生模块和随机数种子所提供。第一级结构的选择开关与随机数种子中最低位相连;若该选择开关的选择位为“1”,则in1通过out1输出,in2通过out2输出,在这个延时模块中形成直线通路;若该选择开关的选择位为“0”,则in1通过out2输出,in2通过out1输出,在这个延时模块中形成交叉通路。第一级的out1和out2分别与第二级开关的in1和in2相连接,此外第一级开关的out1与out2分别与比较模块相连。比较模块由一个上升沿D触发器组成,若连接到该比较模块的out1信号比out2信号先到达,则该比较模块输出为“1”;若out2信号比out1信号先到达,则该比较模块输出为“0”。第二级延时模块选择位连接到随机数种子的次低位,以此类推,最后一级的延时模块选择位连接到随机数种子输入位最高位,输出的out1和out2连接到一个D触发器比较模块。

通过Z个比较模块的级联,输入为Z位的随机数种子作为选择位,由于信号经过每个延时模块的通路不同,存在工艺差异,使延时模块两条通路延时出现差异。所以每个比较模块的输出响应都是随机的。单个物理不可克隆函数就可以得到Z位的随机数,M个物理不可克隆函数就能得到Z*M比特的随机数输出。另外第一个物理不可克隆函数结构的最后一级的out1和其余M-1个物理不可克隆函数结构的最后一级的out1连接到一个多路比较模块。多路比较模块由M*(M-1)/2个上升沿D触发器组成,对每个物理不可克隆函数进行两两比较。假设有ABCD四个物理不可克隆函数结构,AB的输出结果为原码,CD输出为反码。把A的末级延时信号和B的末级延时信号输入1号D触发器;A的末级延时信号和C的末级延时信号输入2号D触发器;A的末级延时限号和D的末级延时信号输入3号D触发器。B的末级延时信号和C的末级延时信号输入4号D触发器;B的末级延时信号和D的末级延时信号输入5号D触发器。C的末级延时信号和D的末级延时信号输入6号D触发器。根据1号至6号D触发器六比特的值来对ABCD四个物理不可克隆函数末级延时信号到达顺序进行先后排序。按此顺序对ABCD的原码和反码进行编排。

M个物理不可克隆函数结构的选择位依次连接到一起,由脉冲信号产生模块同时产生激励信号。这M个物理不可克隆函数每个结构分别产生Z位的输出,其中M/2个第一物理不可克隆函数结构共输出M*Z/2位反码,连接到交叉编码模块。另外M/2个第二物理不可克隆函数结构的M*Z/2位原码输出直接连接到交叉编码模块,多路比较模块输出结果也连接到交叉编码模块。交叉编码模块根据这个多路比较模块的输出结果决定优先到达这个多路比较模块的输出编码排在较高位。

脉冲信号产生模块和交叉编码模块可由时钟信号控制。在一个实施例中,可在时钟信号的上升沿,把激励信号以及Z位的输入信号在圆形的圆心同时传输给M个物理不可克隆函数。交叉编码结构把来自圆形其中M/2个上半周的点的M/2*Z位反码与另外M/2个顶点的M/2*Z位原码,根据多路比较模块输出结果,对信号来得最快的原码放在最高位,第M/2快的原码的结果放在次高位,对信号来得最快的反码放在次低位,第M/2快的反码放在最低位,以此类推。进行交叉编码构成M*Z比特的输出响应。即,将到达顺序为第i位的原码作为随机数的第2i-1位,将到达顺序为倒数第i位的原码作为随机数的第2i位,将到达顺序为第i位的反码作为随机数的倒数第2i-1位,将到达顺序为倒数第i位的反码作为随机数的倒数第2i位,直到所有原码和反码设置完毕;其中,i=1,2,……,M*Z/2。

如图2所示,M个相同的物理不可克隆函数结构,每个结构包括延时模块和比较模块。把这些模块组合起来,形成M个区域块。M个区域块的Z位输入连接到一起,输入脉冲信号也连接到一起,由圆心的脉冲信号产生模块提供。通过布局布线功能,以一个圆形的圆周的位置分别均匀安放M个区域。在圆形的圆心点安放脉冲信号产生模块、交叉编码模块、多路比较模块。脉冲信号从圆的中心经过相同的距离,同时传输到圆周上的M个物理不可克隆函数结构,经过各个区域块物理不可克隆函数结构的延时后,每个结构有Z位输出。其中位于圆的上半周的第二物理不可克隆函数结构输出为Z位的原码,位于圆的下半周的第一物理不可克隆函数结构输出为Z位原码的反码。M个物理不可克隆函数输出通过以及每个结构的延时模块最后一级的输出信号经过相同距离传送回来圆心中的多路比较模块。多路比较模块根据每个物理不可克隆函数结构的延时模块最后一级的输出信号的到达顺序选择编码的高低位,再传输到圆心的交叉编码模块,实现对原码反码的交叉编码。通过多个物理不可克隆函数在不同区域的冗余、编码,能有效的增加片外汉明距离。

如图5所示,本发明的实施例还提供一种随机数产生方法,可包括以下步骤:

S1,通过第一物理不可克隆函数结构的第一延时模块将所述激励信号按不同路径延时后输出第一延迟信号和第二延迟信号,通过第二物理不可克隆函数结构的第二延时模块将所述激励信号按不同路径延时后输出第三延迟信号和第四延迟信号;

S2,通过第一物理不可克隆函数结构的第一比较模块对所述第一延迟信号和第二延迟信号的输出顺序进行比较,获取第一比较值,通过第二物理不可克隆函数结构的第二比较模块对所述第三延迟信号和第四延迟信号的输出顺序进行比较,获取第二比较值;

S3,通过多路比较模块对第一物理不可克隆函数结构和第二物理不可克隆函数结构的信号到达顺序进行比较;

S4,通过交叉编码模块根据取所述第一比较值的反码、所述第二比较值和多路比较模块的输出信号生成随机数。

其中,所述第一物理不可克隆函数结构和所述第二物理不可克隆函数结构的数量均为多个;通过交叉编码模块根据取所述第一比较值的反码、所述第二比较值和多路比较模块的输出信号生成随机数的步骤包括:根据所述多路比较模块的输出信号对所述第一比较值的反码和所述第二比较值进行交叉编码,生成随机数。

本方法实施例中各个模块的实施例与上述随机数产生装置中各个模块的实施例相同,此处不再赘述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号