CN111694545B - 随机数产生器 - Google Patents

随机数产生器 Download PDF

Info

Publication number
CN111694545B
CN111694545B CN202010155985.0A CN202010155985A CN111694545B CN 111694545 B CN111694545 B CN 111694545B CN 202010155985 A CN202010155985 A CN 202010155985A CN 111694545 B CN111694545 B CN 111694545B
Authority
CN
China
Prior art keywords
random number
signal
generator
shift register
linear feedback
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
Application number
CN202010155985.0A
Other languages
English (en)
Other versions
CN111694545A (zh
Inventor
邵启意
吴孟益
王志明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
eMemory Technology Inc
Original Assignee
eMemory Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by eMemory Technology Inc filed Critical eMemory Technology Inc
Publication of CN111694545A publication Critical patent/CN111694545A/zh
Application granted granted Critical
Publication of CN111694545B publication Critical patent/CN111694545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Abstract

一种随机数产生器,包括地址产生器、静态乱数源、计数值产生器与处理电路。计数值产生器产生第一随机数。地址产生器产生地址信号。静态乱数源连接至该地址产生器以接收该地址信号,并产生第二随机数。处理电路连接至该静态乱数源与该计数值产生器,用以接收该第一随机数与该第二随机数。该处理电路对该第一随机数与该第二随机数进行逻辑运算后产生输出随机数。

Description

随机数产生器
技术领域
本发明是有关于一种随机数产生器(random number generator,简称RNG),且特别是有关于一种运用物理不可复制技术(physically unclonable function,简称PUF技术)的随机数产生器。
背景技术
请参照图1A,其所绘示为已知随机数产生器示意图。随机数产生器100包括动态乱数源(dynamic entropy source)110。动态乱数源110可产生不可预测的(unpredictable)输出数据(output data)作为随机数(random number)。
动态乱数源110可利用本身的不确定性(uncertainty)来产生随机数。也就是说,动态乱数源110可产生一连串无法预测的逻辑"0"与逻辑"1"来作为随机数。
一般来说,图1A的随机数产生器100,其输出数据的随机度完全依赖动态乱数源110的品质。当动态乱数源110的品质不佳时,动态乱数源110会产生随机度不佳(badrandomness)的输出数据。
为了改善随机度不佳的情况发生。请参照图1B,其所绘示为已知另一随机数产生器示意图。随机数产生器150包括动态乱数源110、处理电路120以及健康测试电路(healthtest circuit)130。
动态乱数源110产生生成数据(generated data)并输入处理电路120。处理电路120再将生成数据进行运算后,产生输出数据作为随机数。基本上,处理电路120可以将生成数据进行特定演算法,并产生随机度较佳的输出数据作为随机数。举例来说,处理电路120可为安全散列算法电路(SHAcircuit)、高级加密标准电路(AES circuit)等等。因此,在随机数产生器150中,利用处理电路120对生成数据进一步处理后,可产生随机度较佳的输出数据。
另外,健康测试电路130接收动态乱数源110输出的生成数据,并对生成数据进行评估。当健康测试电路130判断出生成数据的随机度不佳时,健康测试电路130产生警告信号(alarm)。举例来说,动态乱数源110输出的生成数据中,逻辑"1"连续出现的数目过多时,健康测试电路130产生警告信号。或者,动态乱数源110产生的生成数据中,相同的图样(pattern)连续出现时,健康测试电路130也会产生警告信号。
由于图1A与图1B的随机数产生器100与150利用动态乱数源110来产生随机数,所以称之为真随机数产生器(true random number generator,简称TRNG)。
物理不可复制技术(physically unclonable function,简称PUF技术)是一种利用半导体芯片的制造变异(manufacturing variation)来获得独特的随机数。亦即,就算有精确的制造工艺步骤可以制作出半导体芯片,但是其随机数几乎不可能被复制(duplicate)。因此,具有PUF技术的半导体芯片通常被运用于高安全防护的应用(applications with high security requirements)。
美国专利号US 9,613,714公开一种具反熔丝晶体管型态存储单元(antifusetransistor type memory cell)的随机数产生器。由于反熔丝晶体管型态存储单元的制造工艺变异,对反熔丝存储单元进行编程动作(program)后,并无法预测反熔丝存储单元的存储状态,亦即无法预测反熔丝型存储单元中存储的逻辑电平。因此,反熔丝存储单元即可视为一种PUF存储单元。其中,编程动作又可称为注册动作(enrollment)。
另外,将多个PUF存储单元组成PUF存储单元阵列(PUF cell array)后,对PUF存储单元阵列中的所有PUF存储单元进行注册动作后,将使得每个PUF存储单元中存储特定的逻辑电平。
由于每个PUF存储单元中的逻辑电平无法预测,所以必须对PUF存储单元阵列进行读取动作后,才可确认每个反熔丝存储单元中的逻辑电平,并作为随机数。基本上,存储单元阵列进行注册动作(enrollment)后,虽然无法预测PUF存储单元所存储的逻辑电平,但是每个PUF存储单元所存储的逻辑电平已经决定了,且无法再更改。利用此特性所实现的随机数产生器称为伪随机数产生器(pseudo random number generator,简称PRNG)。
而利用PUF存储单元组成的存储单元阵列来制造出真随机数产生器(TRNG)为本发明所欲达成的目的。
发明内容
本发明系有关于一种随机数产生器,包括:计数值产生器,产生第一随机数;地址产生器,产生地址信号;静态乱数源,连接至该地址产生器以接收该地址信号,并产生第二随机数;以及处理电路,连接至该静态乱数源与该计数值产生器,用以接收该第一随机数与该第二随机数,其中该处理电路对该第一随机数与该第二随机数进行逻辑运算后产生输出随机数。
本发明系有关于一种随机数产生器,包括:第一动态乱数源,产生触发信号;第二动态乱数源,产生第一种子信号与第二种子信号;计数值产生器,连接至该第二动态乱数源用以接收该第一种子信号并产生第一随机数;地址产生器,连接至该第二动态乱数源用以接收该第二种子信号,并产生地址信号;静态乱数源,连接至该地址产生器用以接收该地址信号,并产生第二随机数;处理电路,连接至该静态乱数源与该计数值产生器,用以接收该第一随机数与该第二随机数,其中该处理电路对该第一随机数与该第二随机数进行逻辑运算后产生输出随机数;控制电路,连接至该第一动态乱数源用以接收该触发信号,其中当该触发信号动作时,该控制电路选择性地产生第一再种子信号至该计数值产生器。
为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合所附图式,作详细说明如下:
附图说明
图1A与图1B为已知随机数产生器。
图2为静态乱数源的实施例。
图3为本发明随机数产生器的第一实施例。
图4A与图4B为3比特的线性回馈移位寄存器以及相关运作示意图。
图5为本发明随机数产生器的第二实施例。
图6为本发明随机数产生器的第三实施例。
图7A与图7B为第三实施例中动态乱数源电路图。
图8A与图8B为第三实施例中控制电路的二个范例。
图9为本发明随机数产生器的第四实施例。
图10A与图10B为第二动态乱数源与亚稳态元件示意图。
图11为本发明随机数产生器的第五实施例。
图12A与图12B为本发明第五实施例随机数产生器的时序图。
具体实施方式
根据本发明的实施例,随机数产生器中包括由多个PUF存储单元所组成的PUF存储单元阵列,作为静态乱数源(static entropy source)。如图2所示,其为静态乱数源的实施例。静态乱数源为PUF存储单元阵列200,PUF存储单元阵列200共有128×32个PUF存储单元c0,0~c127,31,共可存储4Kbits的随机比特。
也就是说,对PUF存储单元阵列200中的所有PUF存储单元c0,0~c127,31进行注册动作(enrollment)后,将使得每个PUF存储单元c0,0~c127,31中存储一个特定逻辑电平,亦即随机比特。由于每个PUF存储单元c0,0~c127,31中的逻辑电平无法预测,所以必须对PUF存储单元阵列c0,0~c127,31进行读取动作后,才可确认每个反熔丝存储单元中的逻辑电平,并作为随机数。
再者,PUF存储单元阵列200中包括128(亦即,27)条字元线(word line,WL0~WL127),每条字元线对应地连接至32个PUF存储单元。举例来说,字元线WL0连接至32个PUF存储单元c0,0~c0,31,共可存储32比特的随机比特(random bits)。
另外,当PUF存储单元阵列接收到的地址信号为"0"时,则字元线WL0动作,且对应的32个PUF存储单元c0,0~c0,31中的随机比特会经由对应的比特线BL0~BL31传递至感测放大器210,并输出一组32比特的随机数D。同理,当PUF存储单元阵列接收到的地址信号为"127"时,则字元线WL127动作,且对应的32个PUF存储单元c127,0~c127,31中的随机比特会经由对应的比特线BL0~BL31传递至感测放大器210,并输出一组32比特的随机数D。
请参照图3,其所绘示为本发明随机数产生器的第一实施例。随机数产生器300包括地址产生器(address generator)305、静态乱数源310、计数值产生器(counting valuegenerator)320以及处理电路(processing circuit)330。其中,将PUF存储单元阵列进行注册动作(enrollment)后,PUF存储单元阵列即可作为静态乱数源310。
根据本发明的第一实施例,计数值产生器320产生第一随机数D1至处理电路330。静态乱数源310连接至地址产生器305。根据地址产生器输出的地址信号A,静态乱数源310产生第二随机数D2至处理电路330。再者,处理电路330处理第一随机数D1与第二随机数D2后,产生输出随机数Dout。如此,随机数产生器300可产生随机度较佳的输出随机数Dout。
举例来说,静态乱数源310产生32比特(32bits)的第二随机数D2,计数值产生器320产生32比特的第一随机数D1,处理电路330将第一随机数D1与第二随机数D2进行逻辑运算(logical operation)后,产生32比特的输出随机数Dout。
上述的逻辑运算可为异或运算(exclusive or operation,XOR operation)。亦即,第一随机数D1的最高比特(most significant bit,MSB)与第二随机数D2的最高比特进行异或运算后,产生最高比特的输出随机数Dout。依此类推,第一随机数D1的最低比特(least significant bit,LSB)与第二随机数D2的最低比特进行异或运算后,产生最低比特的输出随机数Dout。
再者,计数值产生器320可由一般的计数器(counter)或者线性回馈移位寄存器(linear feedback shift register,简称LFSR)来实现。以下介绍线性回馈移位寄存器。
线性位移寄存器包括移位寄存器(shift register)以及连接多项式(connectionpolynomial)。经过适当的设计连接多项式后,线性回馈移位寄存器可在多个状态之间重复循环。
请参照图4A与图4B,其所绘示为3比特的线性回馈移位寄存器以及相关运作示意图。线性位移寄存器400包括移位寄存器410以及异或门(XOR gate)420。其中,移位寄存器410的b2比特与b1比特分别输入异或门410的二个输入端,异或门420的输出端则输入移位寄存器410的比特b0。因此,连接多项式g(x)即为,g(x)=x2+x1+1。
移位寄存器410可接收种子信号(seed signal)seed,并存储至移位寄存器410。之后,移位寄存器410即根据连接多项式g(x)来达成多个状态之间重复循环的目的。
举例来说,假设输入移位寄存器410的种子信号seed为"101",则线性回馈移位寄存器400的初始状态即为"101"。如图4B所示,线性回馈移位寄存器400会由初始"101"状态依序改变为"110"状态、"111"状态、"011"状态、"001"状态、"100"状态、"010"状态。之后,再次回到"101"状态并继续重复循环。亦即,线性回馈移位寄存器400会在7个状态之间重复循环。
再者,如果线性回馈移位寄存器400在运作的过程中,另外将另一种子信号seed,例如"011",载入移位寄存器410时,则不论线性回馈移位寄存器400处在何种状态,线性回馈移位寄存器400会直接跳至"011"状态,并开始在7个状态之间重复循环。举例来说,假设线性回馈移位寄存器400在"010"状态时接收到"011"的种子信号seed,则线性回馈移位寄存器400会直接跳至"011"状态,并且依序改变为"001"状态、"100"状态、"010"状态、"101"状态、"110"状态、"111"状态,并在7个状态之间重复循环。
基本上,种子信号seed不可以是"000",亦即线性回馈移位寄存器400不可出现"000"状态。而经由适当地设计连接多项式g(x),可使得三比特的线性回馈移位寄存器400在7个(23-1)状态之间重复循环。
同理,n比特的线性回馈移位寄存器将可在(2n-1)个状态之间重复循环。例如,当n=7时,7比特的线性回馈移位寄存器将可在127(27-1)个状态之间重复循环。当n=32时,32比特的线性回馈移位寄存器将可在(232-1)个状态之间重复循环。
再者,第一实施例随机数产生器中的计数值产生器320以及地址产生器305皆可利用线性回馈移位寄存器来实现。
请参照图5,其所绘示为本发明随机数产生器的第二实施例。随机数产生器500包括第一线性回馈移位寄存器520、静态乱数源310、第二线性回馈移位寄存器505以及处理电路330。其中,将PUF存储单元阵列进行注册动作(enrollment)后,PUF存储单元阵列即可作为静态乱数源310。
再者,第二线性回馈移位寄存器505的状态即作为地址信号A,输入静态乱数源310。静态乱数源310根据地址信号A,产生第二随机数D2至处理电路330。再者,第一线性回馈移位寄存器520的状态即作为第一随机数D1,可输入处理电路330。再者,处理电路330处理第一随机数D1与第二随机数D2后,产生输出随机数Dout。
举例来说,静态乱数源310为PUF存储单元阵列包括128×32个PUF存储单元,PUF存储单元阵列存储4Kbits的随机比特(random bits),并作为静态乱数源310。因此,第二线性回馈移位寄存器505可为7比特线性回馈移位寄存器,可产生7比特的地址信号A至静态乱数源310,并使得静态乱数源310产生32比特的第二随机数D2。另外,第一线性回馈移位寄存器520可为32比特线性回馈移位寄存器,可产生32比特的第一随机数D1。
根据本发明的第二实施例,于随机数产生器500开始运作时,提供第一初始种子信号seed1至第一线性回馈移位寄存器520,提供第二初始种子信号seed2至第二线性回馈移位寄存器505。因此,第一线性回馈移位寄存器520将可在(232-1)个状态之间重复循环,并产生第一随机数D1,第二线性回馈移位寄存器505可在127(27-1)个状态之间重复循环,并产生地址信号A。
于前一状态时,静态乱数源310根据地址信号A产生32比特的第二随机数D2,第一线性回馈移位寄存器520产生32比特的第一随机数D1,处理电路330将第一随机数D1与第二随机数D2进行逻辑运算(logical operation)后,产生32比特的输出随机数Dout。
之后,在另外一个状态时,静态乱数源310根据另一个地址信号A产生另一个32比特的第二随机数D2,第一线性回馈移位寄存器520产生另一个32比特的第一随机数D1。而处理电路330将另一第一随机数D1与另一第二随机数D2进行逻辑运算后,产生另一个32比特的输出随机数Dout。
依此类推,每当随机数产生器500改变状态时,随机数产生器500即可产生一个32比特的输出随机数Dout。相较于第一实施例,利用上述方式运作的第二实施例随机数产生器500,可产生随机度较佳的输出随机数Dout。
在第二实施例的随机数产生器500中,由于第一线性回馈移位寄存器520与第二线性回馈移位寄存器505会根据固定循环方式在多个状态之间重复循环。因此,修改第二实施例,并利用动态乱数源与控制电路来产生再种子信号(reseed signal)载入(load to)线性回馈移位寄存器,用以更改线性回馈移位寄存器的状态,进而产生随机度更佳的输出随机数Dout。
请参照图6,其所绘示为本发明随机数产生器的第三实施例。随机数产生器600包括第一线性回馈移位寄存器520、静态乱数源310、第二线性回馈移位寄存器505、处理电路330、第一动态乱数源610以及控制电路620。基本上,第一线性回馈移位寄存器520、静态乱数源310、第二线性回馈移位寄存器505的运作方式相同于第二实施例,此处不再赘述。
于随机数产生器600正常运作时,第一动态乱数源610会随机地产生触发信号Tgr至控制电路620。举例来说,第一动态乱数源610可产生1比特触发信号Tgr。当触发信号Tgr为高逻辑电平时,代表触发信号Tgr动作。当触发信号Tgr为低逻辑电平时,代表触发信号Tgr不动作。
因此,根据触发信号Tgr,控制电路620可选择性地产生第一再种子信号reseed1载入第一线性回馈移位寄存器520,用以更新第一线性回馈移位寄存器520的状态,并改变第一线性回馈移位寄存器520的状态循环方式,并在下一状态改变第一随机数D1。
举例来说,在图6中,控制电路620接收前一状态的32比特第一随机数D1与7比特地址信号A后,组合成32比特的第一再重子信号reseed1。另外,当触发信号Tgr动作时,控制电路620将第一再种子信号reseed1载入第一线性回馈移位寄存器520,用以改变第一线性回馈移位寄存器520的状态,并改变第一线性回馈移位寄存器520的状态循环方式。
当然,在上述的第三实施例中,控制电路620仅产生一个第一再种子信号seed1至第一线性回馈移位寄存器520。在此领域的技术人员也可以设计控制电路620另外产生第二再种子信号seed2(未绘示)至第二线性回馈移位寄存器505,用以改变线性回馈移位寄存器520的状态,或者设计控制电路620仅产生一个第二再种子信号seed2(未绘示)至第二线性回馈移位寄存器505。
请参照图7A与图7B,其所绘示为第三实施例中动态乱数源电路图。第一动态乱数源610包括第一环振荡器(ring oscillator)612、第二环振荡器614、异或门616与锁存器(latch)618。
第一环振荡器612中包括n级(n stage)延迟元件(delay unit)的环状连接。第二环振荡器614中包括m级(m stage)延迟元件的环状连接。其中,延迟元件可为非门(NOTgate),n与m为奇数,且m不等于n。因此,第一环振荡器612可产生第一振荡信号Osc1,第二环振荡器614可产生第二振荡信号Osc2。
再者,异或门616的二输入端分别接收第一振荡信号Osc1与第二振荡信号Osc2,并产生输出信号X至锁存器618。锁存器618可根据时钟信号CLK来取样异或门616的输出信号X,并产生触发信号Tgr。
如图7B所示,由于m不等于n,所以第一振荡信号Osc1与第二振荡信号Osc2的频率相异。当第一振荡信号Osc1与第二振荡信号Osc2的电平相同时,异或门616的输出信号X为低逻辑电平。当第一振荡信号Osc1与第二振荡信号Osc2的电平不相同时,异或门616的输出信号X为高逻辑电平。因此,于时间点t1、t2的时钟信号CLK上升缘,锁存器618产生低逻辑电平的触发信号Tgr。于时间点t3、t4、t5的时钟信号CLK上升缘,锁存器618产生高逻辑电平的触发信号Tgr。
请参照图8A与图8B,其所绘示为第三实施例中控制电路的二个范例。
如图8A所示,控制电路620中包括开关元件(switching device)SW1,开关元件SW1的控制端接收触发信号Tgr,其中开关元件SW1可由传输闸(transmission gate)来实现。再者,控制电路620中,将一部分的地址信号A以及一部分的第一随机数D1组合成为32比特的结合信号(combination signal)Y,并传递至开关元件SW1的第一端。开关元件SW1的第二端产生再种子信号reseed1。
由图8A可知,由7比特的地址信号A中选取其中6个比特A<5:0>,并且由32比特的第一随机数D1中选取其中26个比特D1<25:0>,组合成为32比特的结合信号Y。当触发信号Tgr未动作(例如低逻辑电平)时,开关元件SW1第一端与第二端为开路状态(opened state),开关元件SW1未输出再种子信号reseed1。另外,当触发信号Tgr动作(例如高逻辑电平)时,开关元件SW1第一端与第二端为闭路状态(closed state),开关元件SW1输出再种子信号reseed1。
另外,本发明并未限定控制电路620中地址信号A、第一随机数D1与再种子信号reseed1之间的关系。在此领域的技术人员也可以设计控制电路620不接收地址信号A、第一随机数D1,并于触发信号Tgr动作时,控制电路620内部自行产生32比特的再种子信号reseed1。或者,在此领域的技术人员也可以设计控制电路620接收第一随机数D1、第二随机数D2、地址信号A、输出随机数Dout,并选择性的组合成32比特的再种子信号reseed1。
在图8B的另一控制电路的范例中,开关元件SW1的控制端连接至异或门622的输出端。而异或门622的输入端则接收触发信号Tgr以及另一部分的第一随机数D1。举例来说,异或门622的输入端接收触发信号Tgr以及6比特的第一随机数D1<31:26>。当异或门622的输出端产生低逻辑电平时,开关元件SW1第一端与第二端为开路状态(opened state),开关元件SW1未输出再种子信号reseed1。另外,当异或门622的输出端产生高逻辑电平时,开关元件SW1第一端与第二端为闭路状态(closed state),开关元件SW1输出再种子信号reseed1。
在第二实施例与第三实施例中的随机数产生器500、600中,当随机数产生器500、600开始运作之前,需要提供第一种子信号seed1与第二种子信号seed2至第一线性回馈移位寄存器520与第二线性回馈移位寄存器505。如果第一种子信号seed1与第二种子信号seed2具有不可预测性(unpredictable),则随机数产生器可产生随机度更佳的输出随机数Dout。
请参照图9,其所绘示为本发明随机数产生器的第四实施例。相较于第三实施例,随机数产生器700还包括第二动态乱数源710。当随机数产生器700开始运作时,第二动态乱数源710产生不可预测的第一种子信号seed1与第二种子信号seed2至第一线性回馈移位寄存器520与第二线性回馈移位寄存器505。其中,第二动态乱数源710为亚稳态电路(meta-stability circuit)。
请参照图10A与图10B,其所绘示为第二动态乱数源与亚稳态元件(meta-stability device)示意图。第二动态乱数源710为亚稳态电路,包括多个亚稳态元件721a~721x、722a~722y,每一个亚稳态元件的构造相同,其中x与y为正整数。再者,每一个亚稳态电路可以产生一比特的信号,因此x个亚稳态元件721a~721x可产生x比特的第一种子信号seed1,y个亚稳态元件722a~722y可产生y比特的第二种子信号seed2。亦即,32个亚稳态元件可产生32比特的第一种子信号seed1,7个亚稳态元件可产生7比特的第二种子信号seed2。
请参照图10B,其所绘示为亚稳态元件示意图。以亚稳态电路721a为例,亚稳态电路721a包括第一反相器730、第二反相器740与开关元件SW2、SW3。其中,第一反相器730与第二反相器740皆连接至操作于电源电压Vdd与接地电压GND。因此,第一反相器730与第二反相器740的高逻辑电平为电源电压Vdd,低逻辑电平为接地电压GND。
开关元件SW2与开关元件SW3的控制端接收起始信号Str,用以选择性地提供一半的电源电压Vdd/2至第一反相器730与第二反相器740的输入端。再者,第一反相器730的输出端连接至第二反相器740的输入端,第二反相器740的输出端连接至第一反相器730的输入端,第一反相器730的输出端产生最低比特(LSB)的第一种子信号seed1<0>。
当随机数产生器700开始运作之前时,起始信号Str未动作,开关元件SW2与开关元件SW3为闭路状态(closed state),第一反相器730与第二反相器740的输入端被固定在一半的电源电压Vdd/2。当随机数产生器700开始运作时,起始信号Str动作,开关元件SW2与开关元件SW3为开路状态(opened state)。此时,第一反相器730与第二反相器740之间开始竞争(fighting)。最后,第一反相器730与第二反相器740其中之一输出端产生高逻辑电平,第一反相器730与第二反相器740的另一输出端产生低逻辑电平。
举例来说,经过竞争之后,第二反相器740的输出端产生低逻辑电平,第一反相器730的输出端产生高逻辑电平,则最低比特(LSB)的第一种子信号seed1<0>即为高逻辑电平。或者,经过竞争之后,第二反相器740的输出端产生高逻辑电平,第一反相器730的输出端产生低逻辑电平,最低比特(LSB)的第一种子信号seed1<0>即为低逻辑电平。由于无法预测第一反相器730与第二反相器740的竞争结果,因此无法预测最低比特(LSB)的第一种子信号seed1<0>的逻辑电平。
换言之,当随机数产生器700开始运作时,第二动态乱数源710即产生不可预测的第一种子信号seed1与第二种子信号seed2至第一线性回馈移位寄存器520与第二线性回馈移位寄存器505。
另外,第四实施例随机数产生器700中的处理电路330也可以进一步的修改,使得随机数产生器可产生随机度最佳的输出随机数Dout。
请参照图11,其所绘示为本发明随机数产生器的第五实施例。随机数产生器900包括第一线性回馈移位寄存器920、第二线性回馈移位寄存器905、静态乱数源310、处理电路950、控制电路930、第一动态乱数源610与第二动态乱数源710。其中,第一线性回馈移位寄存器920为可视为计数值产生器(counting value generator),第二线性回馈移位寄存器905为可视为一地址产生器(address generator)。再者,静态乱数源310为PUF存储单元阵列包括128×32个PUF存储单元,将PUF存储单元阵列进行注册动作(enrollment)后,PUF存储单元阵列即存储4Kbits的随机比特(random bits),并作为静态乱数源310。
当随机数产生器900开始运作时,第二动态乱数源710产生第一种子信号seed1至第一线性回馈移位寄存器920。再者,第二动态乱数源710产生第二种子信号seed2至第二线性回馈移位寄存器905。因此,第二线性回馈移位寄存器905根据第一时钟信号CLK1以及第二种子信号seed2,持续地产生地址信号A至静态乱数源310,使得静态乱数源310持续地产生第二随机数D2。同理,第一线性回馈移位寄存器920根据第一时钟信号CLK1与第一种子信号seed1,持续地产生第一随机数D1。
于随机数产生器900运作的过程中,第一动态乱数源610随机地产生触发信号Tgr至控制电路930,而控制电路930根据触发信号Tgr选择性地产生第一再种子信号reseed1至第一线性回馈移位寄存器920,用以改变输出的第一随机数D1。当然,控制电路930也可以根据触发信号Tgr选择性地产生第二再种子信号reseed2(未绘示)至第二线性回馈移位寄存器905,用以改变输出的地址信号A,并改变第二随机数D2。另外,控制电路930可将部分的地址信号A与部分的第一随机数D1结合成为第一再选择信号reseed1。
再者,处理电路950包括第一异或电路952、第一锁存电路954、第二异或电路962与第二锁存电路964。第一异或电路952的第一输入端连接至静态乱数源310的输出端,第一异或电路952的第二输入端连接至第一线性回馈移位寄存器的输出端,第一异或电路952的输出端连接至第一锁存电路954的数据输入端D。第一锁存电路954的时钟输入端接收控制电路930输出的第二时钟信号CLK2。第二异或电路962的第一输入端连接至静态乱数源310的输出端,第二异或电路962的第二输入端连接至第一锁存电路954的输出端Q,第二异或电路962的输出端连接至第二锁存电路964的数据输入端D。第二锁存电路964的时钟输入端接收控制电路930输出的第三时钟信号CLK3,第二锁存电路964的输出端产生输出随机数Dout。
根据本发明的第五实施例,先前状态所产生的第一随机数D1与第二随机数D2先输入第一异或电路952,使得第一异或电路952输出第三随机数D3,并且存储至第一锁存电路954。另外,之后状态所产生的第二随机数D2与第三随机数D3输入第二异或电路962,使得第一异或电路962产生输出随机数Dout,并且存储至第二锁存电路964,并使得第二锁存电路964产生输出随机数Dout。
请参照图12A与图12B,其所绘示为本发明第五实施例随机数产生器的时序图。在图12A的时序图中,第一动态乱数源610未动作触发信号Tgr。在图12B的时序图中,第一动态乱数源610动作触发信号Tgr。其中,根据第一时钟信号CLK1可区分为多个时间区间(timeperiod)。
如图12A所示,当随机数产生器900开始运作时,于时间区间T1,第一随机数D1的内容D1_T1由第一种子信号seed1决定,地址信号A的内容A_T1由第二种子信号seed2决定。而根据地址信号A的内容A_T1,静态乱数源310产生第二随机数D2的内容D2_T1
于后续的时间区间T2~T8,第一线性回馈移位寄存器920会自行产生不同内容D1_T2~D1_T8的第一随机数D1,第二线性回馈移位寄存器905会自行产生不同内容A_T2~A_T8的地址信号A,使得静态乱数源310产生不同内容D2_T2~D2_T8的第二随机数D2。另外,由于第一动态乱数源610未动作触发信号Tgr,所以第一随机数D1的内容D1_T2~D1_T8不会被更新。
再者,于时间区间T2时,第二时钟信号CLK2动作,第一异或电路952对第一随机数D1的内容D1_T2与第二随机数D2的内容D2_T2进行异或运算后,产生的内容D3_T2成为第三随机数D3并存储于第一锁存电路954。
再者,于时间区间T5时,第三时钟信号CLK3动作,第二异或电路962对第三随机数D3的内容D3_T2与第二随机数D2的内容D2_T5进行异或运算后,即产生的内容Dout_T5即为输出随机数Dout并存储于第二锁存电路964。
相同地,于时间区间T6时,第二时钟信号CLK2动作,第一异或电路952对第一随机数D1的内容D1_T6与第二随机数D2的内容D2_T6进行异或运算后,产生的内容D3_T6成为第三随机数D3并存储于第一锁存电路954。
如图12B所示,触发信号Tgr于时间区间T3时动作时,第一再种子信号reseed1即会载入第一线性回馈移位寄存器920。因此,于时间区间T4,第一随机数D1的内容D1'_T1由第一再种子信号reseed1决定。而于后续的时间区间T6~T8,第一线性回馈移位寄存器920会自行产生不同内容D1'_T6~D1'_T8的第一随机数D1。
另外,于时间区间T2、时间区间T5,处理电路950的运作流程相同于图12A。
再者,于时间区间T6时,第二时钟信号CLK2动作,第一异或电路952对第一随机数D1的内容D1'_T6与第二随机数D2的内容D2_T6进行异或运算后,产生的内容D3_T6成为第三随机数D3并存储于第一锁存电路954。之后,当第三时钟信号CLK3动作时,第二锁存电路964产生的输出随机数Dout即会异于图12A的输出随机数Dout。
由以上的说明可知,本发明提出一种随机码产生器,本发明利用PUF存储单元组成的存储单元阵列来作为静态乱数源,并利用处理电路、第一动态乱数源、第二动态乱数源来扰乱其产生的随机数,使其成为具备最佳随机度的输出随机数Dout的真随机数产生器(TRNG)。
综上所述,虽然本发明已以较佳实施例公开如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明之保护范围当视后附的权利要求所界定者为准。
【符号说明】
100,150,300,500,600,700,900:随机数产生器
110,610,710:动态乱数源
120,330,950:处理电路
130:建康测试电路
200:PUF存储单元阵列
210:感测放大器
305:地址产生器
310:静态乱数源
320:计数值产生器
400,505,520,905,920:线性位移寄存器
410:移位寄存器
420,616:异或门
612,614:环振荡器
618:锁存器
620,930:控制电路
721a~721x,722a~722y:亚稳态元件
730,740:反相器
952,962:异或电路
954,964:锁存电路

Claims (20)

1.一种随机数产生器,包括:
计数值产生器,产生第一随机数;
地址产生器,产生地址信号;
静态乱数源,连接至该地址产生器以接收该地址信号,并产生第二随机数;以及
处理电路,连接至该静态乱数源与该计数值产生器,用以接收该第一随机数与该第二随机数,其中该处理电路对该第一随机数与该第二随机数进行逻辑运算后产生输出随机数。
2.如权利要求1所述的随机数产生器,其中该静态乱数源包括PUF存储单元阵列,该PUF存储单元阵列由多个PUF存储单元所组成,且该PUF存储单元经过注册动作后,该PUF存储单元阵列存储多个随机比特。
3.如权利要求2所述的随机数产生器,其中该计数值产生器为第一线性回馈移位寄存器,该地址产生器为第二线性回馈移位寄存器,该第一线性回馈移位寄存器接收第一种子信号,且该第二线性回馈移位寄存器接收第二种子信号。
4.如权利要求3所述的随机数产生器,还包括控制电路与第一动态乱数源,该第一动态乱数源连接至该控制电路,其中当该第一动态乱数源动作触发信号时,该控制电路选择性地产生第一再种子信号至该第一线性回馈移位寄存器。
5.如权利要求4所述的随机数产生器,其中该控制电路接收该地址信号与该第一随机数,将第一部分的该地址信号与第一部分的该第一随机数结合成该第一再种子信号,当该第一动态乱数源动作该触发信号时,该控制电路将该第一再种子信号传递该第一线性回馈移位寄存器。
6.如权利要求4所述的随机数产生器,其中该控制电路接收该地址信号与该第一随机数,将第一部分的该地址信号与第一部分的该第一随机数结合成该第一再种子信号;其中该控制电路将该触发信号与第二部分的该第一随机数进行逻辑运算后,根据该逻辑运算的结果,该控制电路选择性地将该第一再种子信号传递该第一线性回馈移位寄存器。
7.如权利要求4所述的随机数产生器,其中当该第一动态乱数源动作该触发信号时,该控制电路选择性地产生第二再种子信号至该第二线性回馈移位寄存器。
8.如权利要求4所述的随机数产生器,其中该第一动态乱数源包括:
第一环振荡器,包括环状连接的n级延迟元件,产生第一振荡信号;
第二环振荡器,包括环状连接的m级延迟元件,产生第二振荡信号,其中n与m为奇数,且m不等于n;
异或门,接收该第一振荡信号与该第二振荡信号,并产生输出信号;以及
锁存器,接收该输出信号,并根据第一时钟信号来锁存该输出信号,并产生该触发信号。
9.如权利要求3所述的随机数产生器,还包括第二动态乱数源,产生该第一种子信号至该第一线性回馈移位寄存器,且产生该第二种子信号至该第二线性回馈移位寄存器。
10.如权利要求9所述的随机数产生器,其中该第二动态乱数源为亚稳态电路,该亚稳态电路包括:
x个亚稳态元件,每一该亚稳态产生1比特的随机信号,于起始信号动作时,该x个亚稳态元件产生x比特的该第一种子信号;以及
y个亚稳态元件,每一该亚稳态产生1比特的随机信号,于该起始信号动作时,该y个亚稳态元件产生y比特的该第二种子信号;
其中,x与y为正整数。
11.如权利要求10所述的随机数产生器,其中该x个亚稳态元件中的第一亚稳态元件包括:
第一开关元件,该第一开关元件的第一端接收第一电压,该第一开关元件的控制端接收该起始信号;
第二开关元件,该第二开关元件的第一端接收该第一电压,该第二开关元件的控制端接收该起始信号;
第一反相器,操作于电源电压与接地电压之间,该第一反相器的输入端连接至该第一开关元件的第二端,该第一反相器的输出端连接至该第二开关元件的第二端;以及
第二反相器,操作于该电源电压与该接地电压之间,该第二反相器的输入端连接至该第二开关元件的该第二端,该第二反相器的输出端连接至该第一开关元件的该第二端;
其中,该第一电压为该电源电压的一半,当该起始信号未动作时,该第一开关元件与该第二开关元件为闭路状态;且当该起始信号动作时,该第一开关元件与该第二开关元件为开路状态。
12.一种随机数产生器,包括:
第一动态乱数源,产生触发信号;
第二动态乱数源,产生第一种子信号与第二种子信号;
计数值产生器,连接至该第二动态乱数源用以接收该第一种子信号并产生第一随机数;
地址产生器,连接至该第二动态乱数源用以接收该第二种子信号,并产生地址信号;
静态乱数源,连接至该地址产生器用以接收该地址信号,并产生第二随机数;
处理电路,连接至该静态乱数源与该计数值产生器,用以接收该第一随机数与该第二随机数,其中该处理电路对该第一随机数与该第二随机数进行逻辑运算后产生一输出随机数;
控制电路,连接至该第一动态乱数源用以接收该触发信号,其中当该触发信号动作时,该控制电路选择性地产生第一再种子信号至该计数值产生器。
13.如权利要求12所述的随机数产生器,其中该静态乱数源包括PUF存储单元阵列,该PUF存储单元阵列由多个PUF存储单元所组成,且该PUF存储单元经过注册动作后,该PUF存储单元阵列存储多个随机比特。
14.如权利要求13所述的随机数产生器,其中该计数值产生器为第一线性回馈移位寄存器,该地址产生器为第二线性回馈移位寄存器,该第一线性回馈移位寄存器接收该第一种子信号,且该第二线性回馈移位寄存器接收该第二种子信号。
15.如权利要求14所述的随机数产生器,其中该控制电路接收该地址信号与该第一随机数,将第一部分的该地址信号与第一部分的该第一随机数结合成该第一再种子信号,当该第一动态乱数源动作该触发信号时,该控制电路将该第一再种子信号传递该第一线性回馈移位寄存器。
16.如权利要求14所述的随机数产生器,其中该控制电路接收该地址信号与该第二随机数,将第一部分的该地址信号与第一部分的该第一随机数结合成该第一再种子信号;其中该控制电路将该触发信号与第二部分的该第一随机数进行逻辑运算后,根据该逻辑运算的结果该控制电路选择性地将该第一再种子信号传递该第一线性回馈移位寄存器。
17.如权利要求12所述的随机数产生器,其中当该第一动态乱数源包括:
第一环振荡器,包括环状连接的n级延迟元件,产生第一振荡信号;
第二环振荡器,包括环状连接的m级延迟元件,产生第二振荡信号,其中n与m为奇数,且m不等于n;
异或门,接收该第一振荡信号与该第二振荡信号,并产生输出信号;以及
锁存器,接收该输出信号,并根据第一时钟信号来锁存该输出信号,并产生该触发信号。
18.如权利要求12所述的随机数产生器,其中该第二动态乱数源为亚稳态电路,该亚稳态电路包括:
x个亚稳态元件,每一该亚稳态产生1比特的随机信号,于起始信号动作时,该x个亚稳态元件产生x比特的该第一种子信号;以及
y个亚稳态元件,每一该亚稳态产生1比特的随机信号,于该起始信号动作时,该y个亚稳态元件产生y比特的该第二种子信号;
其中,x与y为正整数。
19.如权利要求18所述的随机数产生器,其中该些亚稳态元件中的第一亚稳态元件包括:
第一开关元件,该第一开关元件的第一端接收第一电压,该第一开关元件的控制端接收该起始信号;
第二开关元件,该第二开关元件的第一端接收该第一电压,该第二开关元件的控制端接收该起始信号;
第一反相器,操作于电源电压与接地电压之间,该第一反相器的输入端连接至该第一开关元件的第二端,该第一反相器的输出端连接至该第二开关元件的第二端;以及
第二反相器,操作于该电源电压与该接地电压之间,该第二反相器的输入端连接至该第二开关元件的该第二端,该第二反相器的输出端连接至该第一开关元件的该第二端;
其中,该第一电压为该电源电压的一半,当该起始信号未动作时,该第一开关元件与该第二开关元件为闭路状态;且当该起始信号动作时,该第一开关元件与该第二开关元件为开路状态。
20.如权利要求12所述的随机数产生器,其中该处理电路包括:
第一异或电路,该第一异或电路的第一输入端连接至该静态乱数源用以接收该第二随机数,该第一异或电路的第二输入端连接至该计数值产生器用以接收该第一随机数;
第一锁存电路,该第一锁存电路的数据输入端连接至该第一异或电路的输出端,该第一锁存电路的时钟输入端接收该控制电路产生的第二时钟信号,该第一锁存电路的数据输出端产生第三随机数;
第二异或电路,该第二异或电路的第一输入端连接至该静态乱数源用以接收该第二随机数,该第二异或电路的第二输入端连接至该第一锁存电路的该数据输出端用以接收该第三随机数;以及
第二锁存电路,该第二锁存电路的数据输入端连接至该第二异或电路的输出端,该第二锁存电路的时钟输入端接收该控制电路产生的第三时钟信号,该第二锁存电路的数据输出端产生该输出随机数。
CN202010155985.0A 2019-03-13 2020-03-09 随机数产生器 Active CN111694545B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962817568P 2019-03-13 2019-03-13
US62/817,568 2019-03-13
US201962847246P 2019-05-13 2019-05-13
US62/847,246 2019-05-13
US16/784,739 2020-02-07
US16/784,739 US11294640B2 (en) 2019-03-13 2020-02-07 Random number generator

Publications (2)

Publication Number Publication Date
CN111694545A CN111694545A (zh) 2020-09-22
CN111694545B true CN111694545B (zh) 2023-05-30

Family

ID=69742646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010155985.0A Active CN111694545B (zh) 2019-03-13 2020-03-09 随机数产生器

Country Status (4)

Country Link
US (1) US11294640B2 (zh)
EP (1) EP3709157B1 (zh)
CN (1) CN111694545B (zh)
TW (1) TWI758688B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210026602A1 (en) * 2019-07-25 2021-01-28 PUFsecurity Corporation Entropy Generator and Method of Generating Enhanced Entropy Using Truly Random Static Entropy
US11907684B2 (en) * 2021-02-16 2024-02-20 Cassy Holdings Llc High clock-efficiency random number generation system and method
US20220261221A1 (en) * 2021-02-18 2022-08-18 PUFsecurity Corporation Random number generator
TWI778557B (zh) * 2021-03-26 2022-09-21 新唐科技股份有限公司 真實亂數產生器及真實亂數產生方法
CN113672199B (zh) * 2021-08-27 2023-07-14 太原理工大学 一种具备物理不可克隆函数功能的多熵源随机数发生器
US20230124622A1 (en) * 2021-10-14 2023-04-20 Arm Limited Alarm Systems and Circuits
US20230273772A1 (en) * 2022-02-02 2023-08-31 Cassy Holdings Llc High clock-efficiency random number generation system and method
CN114584305B (zh) * 2022-04-28 2022-07-26 苏州云途半导体有限公司 一种随机数发生器、电子电路和系统级芯片

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824602A (zh) * 2014-12-16 2016-08-03 新唐科技股份有限公司 输入-相依随机数产生装置及其方法
CN106020771A (zh) * 2016-05-31 2016-10-12 东南大学 一种基于puf的伪随机序列发生器
CN106062771A (zh) * 2013-12-31 2016-10-26 有限公司Ictk 随机数字值的生成装置以及方法
CN106257860A (zh) * 2015-06-18 2016-12-28 松下知识产权经营株式会社 随机数处理装置以及集成电路卡
CN106775584A (zh) * 2016-12-08 2017-05-31 上海爱信诺航芯电子科技有限公司 一种抵抗侵入式攻击的真随机数发生器
CN107688755A (zh) * 2017-08-03 2018-02-13 宁波大学 一种双胞胎存储型的多值物理不可克隆函数电路
CN108123928A (zh) * 2016-11-30 2018-06-05 台湾积体电路制造股份有限公司 客户端-服务器设备通信系统内的服务器设备及其操作方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2922701C (en) * 2013-08-28 2021-05-04 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
US9613714B1 (en) 2016-01-19 2017-04-04 Ememory Technology Inc. One time programming memory cell and memory array for physically unclonable function technology and associated random code generating method
US10511451B2 (en) 2016-11-04 2019-12-17 Taiwan Semiconductor Manufacturing Company Ltd. Physically unclonable function (PUF) device and method of extending challenge/response pairs in a PUF device
CN110018810B (zh) * 2018-01-10 2021-05-18 力旺电子股份有限公司 随机码产生器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106062771A (zh) * 2013-12-31 2016-10-26 有限公司Ictk 随机数字值的生成装置以及方法
CN105824602A (zh) * 2014-12-16 2016-08-03 新唐科技股份有限公司 输入-相依随机数产生装置及其方法
CN106257860A (zh) * 2015-06-18 2016-12-28 松下知识产权经营株式会社 随机数处理装置以及集成电路卡
CN106020771A (zh) * 2016-05-31 2016-10-12 东南大学 一种基于puf的伪随机序列发生器
CN108123928A (zh) * 2016-11-30 2018-06-05 台湾积体电路制造股份有限公司 客户端-服务器设备通信系统内的服务器设备及其操作方法
CN106775584A (zh) * 2016-12-08 2017-05-31 上海爱信诺航芯电子科技有限公司 一种抵抗侵入式攻击的真随机数发生器
CN107688755A (zh) * 2017-08-03 2018-02-13 宁波大学 一种双胞胎存储型的多值物理不可克隆函数电路

Also Published As

Publication number Publication date
EP3709157B1 (en) 2022-05-04
TW202034158A (zh) 2020-09-16
CN111694545A (zh) 2020-09-22
EP3709157A1 (en) 2020-09-16
US20200293287A1 (en) 2020-09-17
US11294640B2 (en) 2022-04-05
TWI758688B (zh) 2022-03-21

Similar Documents

Publication Publication Date Title
CN111694545B (zh) 随机数产生器
US6954770B1 (en) Random number generator
US10511451B2 (en) Physically unclonable function (PUF) device and method of extending challenge/response pairs in a PUF device
US9052975B2 (en) Random number generator with ring oscillation circuit
US10078493B2 (en) Secured pseudo-random number generator
JP2006139756A (ja) 乱数発生器および乱数を発生する方法
JP7006887B2 (ja) 乱数発生器及び出力乱数を生成する方法
US10333708B1 (en) Hybrid random-number generator
JP2009524998A (ja) 信号発生器をベースとした装置セキュリティ
JPWO2005078573A1 (ja) 乱数発生方法と半導体集積回路装置
KR20140110142A (ko) 난수 발생기
TWI801742B (zh) 熵產生器及產生增強熵的方法
TWI579763B (zh) 具有亂數產生模式的儲存電路
US11483168B2 (en) Survey mechanism for a physically unclonable function
JP5119417B2 (ja) 擬似乱数生成装置
CN115220694A (zh) 随机数据生成电路及读写训练电路
US10776079B2 (en) True random number generation device and generation method thereof
Gudla et al. Design And Implementation of Digital Clock Manager Based Pseudo-True Random Number Generator
CN113535123A (zh) 具有通过位线预充电的物理不可克隆函数
US11586418B2 (en) Random number generator, random number generating circuit, and random number generating method
TWI798982B (zh) 隨機數產生器
US20230333818A1 (en) Entropy Generator and Method of Generating Enhanced Entropy Using Truly Random Static Entropy
CN110609672B (zh) 真实随机数产生装置及其产生方法
KR20100102794A (ko) 반도체 메모리 장치의 카운터 회로

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
GR01 Patent grant
GR01 Patent grant