生成随机数的方法和装置 本发明涉及一种生成随机数的方法和装置。具体地,但不唯一地,本发明涉及在生成随机数中使用一采用放射性源的随机脉冲发生器。
当前生成随机数的方法通常采用使用一相当简单的计算机程序和一8-24位处理器的数学算法。该数学算法使用各种可能的数学公式而生成一自初始地籽数计算的数流。各生成的随机数然后被使用作为籽数用于下一计算。这些算法生成通常被描述为假随机的数(因为它们是基于一计算)且因此总有一机会使一随机数将被重复而导致被重复的序列数的一无限闭合的循环。
另外的已知的生成随机数的方法采用自然的不可预测的处理例如黑体辐射、布朗运动或放射性衰变。在JP58-166448中,描述了长周期假随机数的生成,其中来自放射性铀的毫居α辐射照射一64,000位RAM。该RAM的所有位被初始地设定至‘0’且各位被个别地复位至‘1’结果一α粒子被入射在该位上。在一预定时间周期后,在该RAM内生成的该数被读取为一假随机数。以此方法,通过入射在该RAM上的α粒子的空间分布而生成假随机数作为放射性衰变的结果。然而,该被描述的生成这些数的装置是笨重的,因为必须将放射性源定位得远离该RAM。而且,为了健康的原因,该装置需要的放射强度限定了该装置可被使用的条件。
本发明力图提供一种至少克服上述已知方法的一些缺陷的生成随机数的方法和装置。而且,当在该方法中使用放射性衰变时,本发明提供了采用非常低的放射强度使可其被视为以‘虚拟地无放射’(VNR)工作的装置。
本发明提供了一种生成随机数的方法,包括在预定时间周期期间检测放射性衰变事件,将检测的事件与一选择的输出进行比较并在该些检测的事件对应于该选择的输出时生成第一信号或在该些检测的事件对应于非该选择的输出的一输出时生成一第二信号,其中该时间周期被确定以使该些检测的事件对应于该选择的输出的概率基本上等于该些检测的事件对应于非该选择的输出的一输出的概率。
理想地,该时间周期通过测量放射性衰变事件的平均数并计算该选择的输出被检测的的概率为1/2的一时间周期而被确定。在一优选实施例中,检测放射性衰变事件,将检测的事件与一选择的输出进行比较并生成第一或第二信号的步骤被周期地重复以产生一串第一和第二信号。这样,当该预定时间周期被计算以使该选择的输出被检测的概率等于除该选择的输出以外的任意输出被检测的概率时,可从通过重复上述步骤而生成的该串第一和第二信号生成一真随机数。
最好,这些第一和第二信号为二进制位且该系列位被组合以形成二进制数。也可从这些二进制位确定反二进制数且这些二进制数和反二进制数可被转换成模拟数。
另外,该预定的时间周期可依据于检测的平均值而被调整。该检测的平均值可通过对重复的检测的衰变事件数进行求和以计算一总输出且然后将该总输出除以衰变事件被检测的被求和的总时间周期。
在另一种方法中,多个放射性随机事件源的各个输出在各时间周期期间被检测且各检测的输出与该选择的输出进行比较从而同时生成多个第一或第二信号。
在另一方面中,本发明提供用于生成随机数的装置,包括一衰变检测器,用于检测放射性衰变事件;一定时器,用于控制通过该衰变检测器检测衰变事件的时间周期;一比较器装置,用于将这些检测的事件与一选择的输出进行比较;及一数发生器,用于当这些检测的事件对应于该选择的输出时生成一第一信号及用于当这些检测的事件对应于非该选择的输出的一输出时生成一第二信号。
最好,该衰变检测器包括一放射性源和一对衰变产物的辐射敏感的半导体衬底形式的检测器。例如该检测器可以是一PIN二极管。理想地,该装置安装在一半导体芯片上并形成该芯片的部分。
可设置存储器装置,用于序列地存储生成的第一和第二信号从而形成一随机二进制数,且可设置一数一模转换器,用于将存储的随机二进制数转换成一模拟数。
另外,可设置一反馈装置,用于依据于该随机事件源的检测的平均输出来调整该预定的时间周期。
下面参考本发明所基于的概率理论的说明、下面给出的详细示例及作为该描述的示例中执行的逻辑操作的视图的图1,通过该示例对本发明的一实施例进行描述。
理论
本发明是基于这样的关系:一例如随机脉冲发生器(RPG)的随机事件源可生成随机数,当该RPG的平均脉冲输出被设定以使在一固定周期期间有该RPG生成一选择的输出或生成任一其他输出的相等的概率时。这要求该概率对于正生成的该选择的输出是1/2且因此对于正生成的任一其他输出也是1/2。
通过泊松概率函数对一RPG在一固定时间内发射m个脉冲的一输出的概率进行描述:
MPm=Mm·e-M/m!其中m为在测量期间出现的随机脉冲数,M为每次测量的平均脉冲输出及MPm为m个脉冲出现的概率。
对于该选择的输出为无脉冲且任一其他输出因此为一或多个脉冲的情况,RPG在该固定时间期间不发射的概率为:
MP0=M0·e-M/0!=e-M
由于该概率对于正生成的该选择的输出是等于1/2,可求解出e-M=1/2,给出M=ln2=0.693147181…
可对不同的选择的输出推导出其他的类似的公式。例如该PRG生成0或1作为选择的输出的概率如下:
MP0或1=M0·e-M/0!+M1·e-M/1!=e-M(1+M)进而给出:
e-M(1+M)=1/2且M=1.67835…自然意味脉冲输出还提供对于该RPG在该固定时间内生成非0或1(即2或更大)的一输出的1/2的概率。
从上将清楚地看到可为任一选择的输出确定平均脉冲输出,其中正生成的这(些)选择的输出的概率为1/2。通常其他的选择的输出不提供超过以上给出的示例的任何优点。
方法
为了生成一随机数,配置一随机事件源例如一RPG以使有在一RPG生成一选择的脉冲数的情况下正被检测的一选择的输出与有任一其他输出或任一除该正被检测的选择的数之外的任意数脉冲相同的概率。对于一预定的固定的时间周期将由该源生成的事件数进行计数且将计数的总数与该选择的输出进行比较。当该计数的事件数等于该选择的输出时,生成二进制‘1’而当该计数的事件数不同于该选择的输出时,生成二进制‘0’。然后重复该程序一或多次以生成一串二进制数字,该程序被执行的总次数等于在这样形成的二进制数中期望的数字数。当生成二进制‘1’或生成二进制‘0’的概率是相等的时,所有相等长度的‘1’序列和‘0’序列具有相等的出现概率且因此这些数字串是真正随机的。所得到的随机数可以以二进制形式被保持或可被转换成等效的模拟数字。
显然每当重复该程序时,生成二进制‘1’或二进制‘0’的情况可被反转或可被改变。而且,当该选择的输出是无输出脉冲时,在该预定时间周期期间生成的脉冲数不需要被计数。代之以,由当检测到第一脉冲时被致动的一开关导致二进制‘1’或‘0’的生成。
装置
该装置由一随机事件源和各自事件检测器组成。该检测器被连接至一计数器和一时钟以使可对一预定时间周期的检测的事件数进行计数。该计数器进而被连接到一比较器,该比较器将该计数器的输出与一相关存储器中存储的一选择的输出相比较。带有一移位寄存器的一多位RAM被连接至该比较器的输出端以使来自该比较器的序列的输出可被存储在该RAM的序列的位中。当该选择的输出为一或多个事件时,则不需要该计数器和比较器而替代地可直接将该检测器连接至该RAM。
该随机事件源最好采用低放射性辐射源RPG,其发射α、β、γ、x射线、转换电子、俄歇电子或其他由放射性衰变引起的随机辐射发射。较好的发射基本上是单能α粒子或转换电子且理想地这些发射是来自一具有较长的半衰期的放射性核素例如241Am、252Cf、250Cf、226Ra、238U、244Cm、243Cm、223Th、208Po、209Po、210Po、238Pu、或148Gd或它们的组合的α粒子。该RAM中的放射性核素可以是一小片薄金属箔的形式或可被沉积在一单独的衬底上。在两种情况下,该放射性核素被定位在该检测器的表面的几微米内。该检测器可以是包括一小片硅或其他对放射性发射敏感的固态半导体材料。另外一种替换方案,该放射性核素可被直接沉积到一充当该衬底的半导体芯片上。当将一偏置电压施加至该检测器时,照射在该检测器上的由该RPG发射的α粒子产生可由如上所述的适当的相关电路检测和计数的一电压和/或电流脉冲。另外一种替换方案,当自然本底辐射将被检测到时仅需要采用一衰变检测器。
适于生成随机数的一RPG可具有在每秒10-3和106个脉冲之间的一平均脉冲输出。较好的每秒平均输出是10-7和104个脉冲,更好的是每秒1-1000个脉冲。期望的平均输出依据于对具体的有关应用所要求的该RPG的输出率。例如,具有每秒10个脉冲的平均输出的-RPG可包含0.7nCi左右的放射性α发射核素,带有一具有约40%的整体效率的PIN二极管检测器。具体地该RPG的平均输出必须通过定时约1000个脉冲的生成而被实验地确定。具有上述的RPG,该测量将取约100秒左右。该测量中的统计不定性导致该RPG的测量的输出中的+/-3.16%的不定性(带有68%的置信水平或1个标准偏差)。
一旦得知该RPG的平均输出,来自该RPG的脉冲必须被计数的时间周期可被计算以确保生成的选择的脉冲数的1/2的概率。当选择的脉冲数为零且具有上述RPG时,该测量时间周期为ln2/10=0.0693秒(+/-3.16%)。
可从图1看到,连接至该RPG的一计数器电路计数预定时间周期内的由该RPG生成的脉冲数,在该示例中,该预定时间周期为0.0693秒。计数结果被输入一控制芯片的存储器,该控制芯片被编程以询问该存储器并在该计数为零时生成一‘0’或在计数为非零时生成一‘1’,反之亦然。
该RPG输出被反复计数,导致该控制芯片生成一连续的‘0’和‘1’的随机流。这些随机数字可立即被使用或可被存储在一具有移位寄存器的RAM中以使序列地生成的数字被序列地存储在该RAM中。在每秒10个脉冲的一平均输出时,生成每秒约15个数字左右。显然这些数字的生成率依据于该RPG的放射性。根据通常经验,假定整体检测效率为40%,1nCi产生每秒约21个‘0’或‘1’。例外的情况是每次衰变发射5个α粒子的226Ra。在此情况下,每nCi的生成率快5倍(即≌每nCi每秒105个‘0’或‘1’)。
以下给出上述装置的输出的一假定的示例。RPG输出(计数)(0020113000100102)(2111010000012104)(01000…该假定流的平均输出为≌每次测量1n2个脉冲(即37次测量中的26个脉冲=每次测量0.7)控制芯片输出(0010111000100101)(1111010000011101)(01000…反芯片输出(1101000111011010)(0000101111100010)(10111…该‘0’和‘1’的随机流被用于通过将该数字流组合成块而构成二进制数。例如,采用16个数字的块,可生成高达65536个随机数。在该示例中,括号中包括的数字生成以下数:1)0010111000100101=11813 1101000111011010=53722(反芯片输出)2)1111010000011101=62493 0000101111100010=3042自然可适当地采用不同长度的块。
替代在一流中序列地生成二进制数的位,可采用一排RPG,各生成该二进制数的一各自的随机位。必须为各RPG确定一单独的时间周期以确保各独自的RPG生成该选择的输出的概率为1/2。这样可基本上同时生成该二进制数的这些位,自然保证了比序列地生成该二进制数的各位的情况更快地生成随机数。
在一实际装置中,由于在平均输出的测量中一直有一些统计的不定性,该装置永远不可能将该平均输出设定至精确地为1/2的概率。由于例如PIN检测器二极管的劣化或放射性衰变,在其工作寿命期间该装置的性能将会发生偏移。这些影响将使该装置根据平均输出低于或高于期望值多少而平均地产生稍多的‘0’或‘1’。
即使该平均输出未被精确地设定,该‘0’和‘1’的流将依然是随机和不可断定的。仅这些随机数的发生概率是不相等的。换句话说,一些带有比‘1’多的‘0’的二进制数比那些带有比‘0’多的‘1’的二进制数稍微更加频繁的出现(反之亦然)。对于大多数应用,这不是一个问题。如果需要以下所述的方法可帮助确保期望的平均输出的精度。
当RPG的平均输出未与期望的平均输出精确地相匹配时,在输出中将有一偏移以如果该测量时间周期太短则平均地产生更多的‘0’或如果该时间周期太长则产生更多的‘1’。为提高该装置的精度,可包括一反馈机构,监视该RPG的平均输出。该反馈装置进行工作以对该RPG的脉冲输出进行求和以确定一累积总脉冲输出且在同时记录该总测量时间。如果需要,该数据然后被用于计算该RPG的实际平均输出,该实际平均输出然后被使用以调整该测量周期。该放射性衰变的统计特性确保该装置工作的越长,任意偏移将逐渐地减少。
除了该反馈装置使实现了确定精确的测量时间周期外,对于该反馈装置,可使用更短寿命的放射性同位素例如252Cf(2.64y)或208Po(2.9y)。就它们在假定5到10年的可用工作寿命后在该材料中未留下放射性痕量来说,这些更短寿命的放射性同位素提供了附加的环境和管理上的益处。
尽管专对于使用放射性衰变作为随机事件源的装置进行了参照,可以理解该方法和这些装置可采用任意随机或假随机处理,产生离散的、可检测的事件。而且,记录这些事件的装置和用于生成这些随机二进制数的控制电路可被改变同时仍然保证在可为二进制或可使用另外替代的基数的随机数的生成中采用这些随机事件的出现。
如上所述,采用所述方法,用于生成随机数的装置可被做得很小,小得足以被形成在一半导体芯片上且由于非常低的放射性含量,不需要特殊的屏蔽且该装置不会归于限制具有较高放射性的材料的使用的法规的控制之下。这进而意味着该装置可在通常的消费品中被使用。而且,不象数学算法,所述方法可提供真随机数。
因此该方法和装置适用于较宽范围的应用领域,包括保密监视和控制、统计参数控制和分析、游戏机及加密。例如,该装置可与智能卡技术一起使用以使该智能卡在每次使用时生成一新的随机数,然后在后续的时机上被重复作为识别。