用于改善生成真随机数的随机性的熵估计和抽取 【技术领域】
本发明总体上涉及物理随机数生成器(即通过以不可确定的方式操作设备的一个或多个组件来生成表示数字的一个或多个比特的设备)和伪随机数生成器(即根据一种算法输入一个或多个随机数比特以生成伪随机数比特序列的设备)。具体来讲,本发明涉及在产生无偏随机数比特序列中一个或多个物理随机数生成器和一个或多个伪随机数生成器的应用。
背景技术
在本领域中众所知的物理随机数生成器通过以不可确定的方式操作设备的一个或多个组件来生成一个或多个随机数比特。从概念上讲,所述组件的不可确定地操作能够导致无偏随机生成随机数比特。实际上,所述的组件的不可确定的操作通常因为与所述组件操作相关的各种容许偏差而导致有偏随机生成随机数比特。采用在本领域中众所周知的伪随机数生成器来将有偏随机生成随机数比特调整到可接受的程度。
本发明还采用熵估计器和抽取器(decimator)来进一步对真随机数比特序列的随机性加以改进。本发明的各个方面都是新颖的、非显而易见的,并且提供了各种优点。虽然此处涵盖的本发明的实际特征只能参照所附加的权利要求书进行确定,但是以下简短地描述了此处所公开的实施例特有的某些特征。
【发明内容】
本发明是一种随机数生成系统,它包括物理随机数生成器、伪随机数生成器、熵估计器和抽取器。所述物理随机数生成器用于生成一个或多个真随机数比特序列。所述伪随机数生成器用于生成一个或多个伪随机数比特序列。所述熵估计器用于生成作为所述真随机数比特序列的随机性指示的估计信号。依照一种形式,所述抽取器用于依照所述一个或多个估计信号来生成一个或多个输出数比特序列,其表示所述一个或多个真随机数比特序列和所述一个或多个伪数比特的混合的抽取(decimation)。依照第二种形式,所述伪随机数比特序列被依照所述估计信号且作为所述真随机数比特序列的函数而生成,并且所述输出数比特序列是所述伪随机数比特序列的抽取的表示。
根据对当前优选实施例的以下详细说明并结合附图阅读,本发明的上述形式以及其他形式、特征和优点将变得更明显。所述详细说明和附图只是对本发明的说明而非限制,本发明的范围由所附权利要求书及其等价物来规定。
【附图说明】
图1说明了依照本发明的随机数生成系统的基本实施例的框图;
图2说明了依照本发明的图1的随机数生成系统的第一实施例的框图;
图3说明了依照本发明的图1的随机数生成系统的第二实施例的框图;以及
图4说明了依照本发明的图1的随机数生成系统的第三实施例的框图。
【具体实施方式】
图1说明了随机数生成系统10(以下称为“系统10”),其包括物理随机数生成器20(以下称为“PHNG 20”)、伪随机数生成器30(以下称为“PSNG 30”)、熵估计器40以及抽取器50。所述PHNG 20与熵估计器40通信,以便由此向熵估计器40提供一个或多个真随机数比特序列TRNB1-TRNBX。所述PHNG 20还可以与抽取器50通信,以便由此向抽取器50提供一个或多个真随机数比特序列TRNB1-TRNBX。所述熵估计器40与抽取器50通信,以便由此向抽取器50提供一个或多个估计信号ES1-ESY。所述PSNG 30与抽取器50通信,以便由此向抽取器50提供一个或多个伪随机数比特序列PRNB1-PRNBZ。所述PSNG 30可以与如所图解的PHNG 20通信,藉此生成一个或多个伪随机数比特序列PRNB1-PRNBZ,作为一个或多个真随机数比特序列TRNB1-TRNBX的函数。依照所述估计信号ES1-ESY,所述抽取器50生成一个或多个输出数比特序列ONB1-ONBA,表示所述真随机数比特序列TRNB1-TRNBX与所述伪随机数比特序列PRNB1-PRNBZ的混合的抽取,或者表示所述伪随机数比特序列PRNB1-PRNBZ的抽取。
PHNG 20、PSNG 30、所述熵估计器40以及抽取器50的配置的数目不受限制。另外,在PHNG 20、PSNG 30、熵估计器40和抽取器50之间的前述的通信能够以多种方式来实现(例如用电、用光、用声和/或用磁)。因此,系统10的实施例的数目实质上是无限的。图2-4说明了系统10的示例性实施例。
图2说明了作为系统10(图1)的一个实施例的随机数生成系统11(以下称为“系统11”)。所述系统11包括物理随机数生成器21(以下称为“PHNG 21”),用于生成真随机数比特序列TRNB1(X=1),以及伪随机数生成器24(以下称为“PSNG 31”),用于生成伪随机数比特序列PRNB1(Z=1)。所述PHNG 21和PSNG 31可以以软件、硬件或者软件和硬件组合的方式来具体实现。在PHNG 21的一个实施例中,所述PHNG 21是依照序号为[FILL IN]、题目为“Latching ElectronicCircuit For Random Number Generation”的美国专利申请来配置的,将该申请的全部内容在此引用以供参考,并且与受让人共同拥有。在PHNG 21的第二个实施例中,所述PHNG 21是依照序号为[FILLIN]、题目为“Switching Electronic Circuit For Random NumberGeneration”的美国专利申请来配置的,将该申请的全部内容在此引用以供参考,并且与受让人共同拥有。在PSNG 24的一个实施例中,所述PSNG 24是依照序号为[FILL IN]、题目为“Linear FeedbackShift Register For Improving A Randomness Of A Physical RandomNumber Generator”的美国专利申请来配置的,将该申请的全部内容在此引用以供参考,并且与受让人共同拥有。采用此实施例,所述真随机数比特序列TRNB1可以通过所述PHNG 21传送至PSNG 31,藉此所述伪随机数比特序列PRNB1是真随机数比特序列TRNB1的函数。
所述系统11还包括熵估计器41,用于生成作为真随机数比特序列TRNB1的函数的估计信号ES1(Y=1)。所述熵估计器41能以软件、硬件或者软件和硬件组合的方式来具体实现。在一个实施例中,所述熵估计器41在生成真随机数比特序列TRNB1的过程中采用测量最大随机误差的常规方法,正如本领域技术人员往往想到的那样。使用测量结果的滑动平均(running averaging)或者指数平均可以增强估计信号ES1的准确性。当安全具有高优先级时,所述熵估计器41还可以采用一个或多个常规的随机性测试算法和/或一个或多个常规的攻击检测器。
所述系统11还包括抽取器51,它具有采用XOR门53形式的逻辑组件,用于接收真随机数比特序列TRNB1和伪随机数比特PRNB1。作为选择,可以使用由一个或多个逻辑电路组成的其他逻辑组件来代替XOR门53。所述抽取器51还包括计数器54。将XOR门的输出传送到计数器54的数据输入D1,并且将估计信号ES1传送到计数器54的选择输入S1。依照所述估计信号ES1,所述计数器54生成一个输出数比特序列ONB1(A=1),作为真随机数比特序列TRNB1和伪随机数比特序列PRNB1的混合的抽取的表示。
优选地,所述PSNG 21、PHNG 31、熵估计器41和计数器54按照如图2中所示的时钟信号CS同步地加以操作。作为选择,PSNG21、PHNG 31、熵估计器41和计数器54中的一个或多个可以不同的方式同步地操作和/或异步地操作。
图3说明了作为系统10(图1)的一个实施例的随机数生成系统12(以下称为“系统12”)。所述系统12包括PSNG 21、PHNG 31和熵估计器41,如同先前在此结合图2描述的那样。为了增强真随机数比特序列TRNB1和伪随机数比特序列PRNB1的混合,所述系统12还包括抽取器52,它包括XOR门53、计数器54和以D-型触发器55的形式的双稳态锁存器。所述触发器55具有接收真随机数比特序列TRNB1的时钟输入端以及向触发器55的数据输入端D和XOR门53的输入端提供锁存随机数比特LRNB的反相输出端Q。作为选择,可以使用其他类型的双稳态锁存器代替触发器55。
图4说明了作为系统10(图1)的一个实施例的随机数生成系统13(以下称为“系统13”)。所述系统13包括PSNG 21、熵估计器41和计数器54,如同先前在此结合图2描述的那样。对于系统13,PHNG32生成作为真随机数比特序列TRNB1的函数的伪随机数比特序列PRNB1,并将伪随机数比特序列PRNB1传送到计数器54的数据输入端D1。在响应其的过程中,所述计数器54依照所述估计信号ES1生成作为伪随机数比特序列PRNB1的抽取的表示的输出数比特序列ONB1(A=1)。
虽然此处所公开的本发明的实施例目前被认为是优选的,但是在不脱离本发明的精神和范围的情况下可以作出各种改变和修改。本发明的范围在所附权利要求书中表明,并且在其等效的含义和范围内的所有改变都包括在内。