间隙直方图在线随机性测试制造技术

技术编号:2861208 阅读:166 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种用于实时测试由随机数发生器产生的随机数的方法和装置。由随机数发生器产生的一连串随机位被分割为预先定义的位块,然后对这些位块执行间隙长度计算操作,在其中确定间隙所属的具体范围,然后这些间隙长度值被用于指数计算操作以得到和更新不同位模式和间隙范围的间隙频率值。其后,更新了的间隙频率值与至少一个预先确定的可接受范围进行比较,以便如果至少一个间隙频率值重复落在预先确定的可接受范围之外的次数多于预先定义的次数,判定产生的随机位是不够随机的。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
专利
本专利技术属于随机数发生器领域,而更具体的,本专利技术用于测试由随机数发生器产生的随机数是否足够随机。 相关技术描述 在现实应用中,产生一个真正的随机序列是困难的。例如,典型地,当随机数发生器产生一串1和0超过一定的时间,随机数发生器的硬件元件就会发热。在某些情况下产生一个数位1比产生一个数位0要消耗更多的功率。当产生一长串的数位1时,随机数发生器的电路将会变热。因此,如果在电路热的时候产生一个数位1,电路将会“闭锁”。结果,电路将大量产生数位1而很少产生数位0。如果随机数被用在安全性很关键的应用中,上述有偏差的0/1频率错误将会带来灾难性后果。 因此,当进行随机性测试时对硬件温度和元件故障的检测都是必需的。常规的随机性测试是在产生的一个随机数流上进行广泛的统计测试,比如卡方测试(chi-squared test)、delta测试等等来进行的。然而,由于需要大量的计算处理能力,这些测试在实时执行中都很昂贵。 专利技术概要 本专利技术解决了上述问题,并通过提供一种用于在线随机性测试以确保产生的随机数足够随机的方法和装置来提供另外的优点。按照本专利技术的一个方面,一种用于测试一个随机数流的随机性的方法包括以下步骤产生一个随机二进制位的连续流;将随机二进制位分割成预先定义的位块;对每一个预先定义的位块进行指数间隙频率计算(A)以计算和更新至少两个同样位块之间的间隙频率值;以及,通过将指数间隙频率计算的输出和预先确定的可接受范围进行比较来确定产生的随机位是否足够随机。该方法还包括以下步骤当至少一个间隙频率值重复落在预先确定的可接受范围之外的次数多于预先定义的次数时,判定产生的随机位是不够随机的;当至少一个间隙频率值重复落在预先确定的可接受范围之外的次数多于预先定义的次数时,报告产生的随机位是不够随机的;以及,当至少一个间隙频率值重复落在预先确定的可接受范围之外的次数多于预先定义的次数时,产生一组新的随机位。 按照本专利技术的另一方面,一种用于测试由随机数发生器产生的一个随机数流的方法包括以下步骤将随机二进制位分割为预先定义的位块;对分割开的随机位进行间隙长度计算;对间隙长度计算的输出进行指数平均计算,以得到和更新至少两个同样位块之间的间隙频率值;将间隙频率值和预先确定的可接受范围进行比较;以及,当任一间隙频率值落在预先确定的可接受范围之外的次数多于预先定义的次数时,判定产生的随机位是不够随机的。 按照本专利技术的又一方面,一个用于测试随机性的系统包括用于产生包含二进制位的随机序列的随机数发生器;用于根据指数间隙频率运算检测产生的随机序列是否足够随机的检测器;以及,用于根据指数间隙频率运算结果控制产生的随机序列的流动以用于后续应用的开关,其中,随机序列被分割成预先定义的位块以进行指数间隙频率运算以便得到和更新至少两个同样位块之间的间隙频率值,以及,其中如果至少一个间隙频率值重复落在预先确定的可接受范围之外的次数多于预先定义的次数,则判定产生的随机序列是不够随机的。该系统还包括当至少一个间隙频率值重复落在预先确定的可接受范围之外的次数多于预先定义的次数时,用于发送表示产生的随机序列是不够随机的报警信号的装置,以及当至少一个间隙频率值重复落在预先确定的可接受范围之外的次数多于预先定义的次数时,用于产生一组新的随机位的装置。 还有一个方面是,根据具体应用的需要,本专利技术可以用硬件、软件或者软硬件的组合实现。 而且,本专利技术可以实现得简单、可靠和便宜。 对本领域技术人员而言,通过阅读下面的的详细说明并结合附图,这些和其它优点将变得显而易见。 附图的简要说明 附图说明图1是依据本专利技术一个实施例的随机数产生模块的简化框图; 图2是显示依据本专利技术的一个实施例的对一个随机数流执行随机性测试的图表; 图3是显示依据本专利技术的一个实施例对产生的随机数进行统计测试的操作步骤流程图。 实施例详细说明 在下面的描述中,为了解释而不是限制的目的,阐明了具体的细节,比如提出了具体的结构、接口、工艺等,以便提供对本专利技术的透彻理解。然而,对本领域技术人员来说,本专利技术显然可以用不同于这些具体细节的其它实施例实现。为了简单和清楚起见,公知的设备、电路和方法的详细描述被省略,以免不必要的细节混淆本专利技术的描述。 图1显示了依据本专利技术典型实施例的随机数发生系统10的简化框图。系统10包括用于产生一个随机数流的随机数发生器(RG)12、检测器14以及开关16。本公开内容中的RG12指任何产生能被转换为二进制位序列或任何其它形式、以常规或非常规方式含有期望的随即性的信号的设备。检测器14按照预先确定的标准(在后面解释)检测产生的随机数是否是真正的随机序列。开关16可以代表一个到加密系统、音频或视频噪声发生器、计算机程序或者其它设备和处理程序的输入。 在操作中,当随机数由随机数发生器12产生时,检测器14检测产生的随机数是否形成真正的随机序列。如果它们被判定在可接受的范围内是足够随机的,开关16允许产生的随机数被转送到任何合适的后续应用,例如任何电路、系统、处理程序、赌博应用、仿真、统计采样、Diffie-Hellman密钥交换,或类似的使用RG12提供的随机数的其它应用。因此,当产生的随机数被检测器14判定为不够随机时,开关16可以停止产生的随机数流。在可替换的实施例中,如果产生的随机序列被判定为是不够随机的,一组新的随机数就可以由随机数发生器12产生。 现在,参考图2和3,对判定产生的随机数是否足够随机进行详细的说明。 参照图2,当一个随机数流由RG12产生,产生的随机数被分割成预先确定的k位块。每次当一个新的随机位产生,该新的位就被附加到先前位的序列中直到积累到k位。注意为了解释的目的,6位组作为k位的一个单位;然而,应当理解,本专利技术支持任何正整数的k位。因此,图中的6位一组不应带来对本专利技术范围的限制。 在实施例中,对所有的分割块,检测器14分析每一个k位的分割块,以判定与先前出现的同样k位块的距离,称为间隙。本专利技术的一个关键原理是,相同k位模式之间某一间隙长度出现的平均次数是已知的。如果所有可能间隙长度的范围被分成适当的间隔,计算的间隙长度落入每个间隔的次数一定近似相等。为每一个可能的k位块和每一个间隙长度间隔提供一个累加器(A),这样每次当一个新的k位块被产生以及与先前出现的同样的k位块的间隙被计算时,块中k位的二进制表示以及间隙落入的间隔数就被用来索引各自的累加器。例如,如图2所示,因为模式“000000”出现在第一块和第四块,所以与该模式相对应的间隙为3。因为模式“000010”出现在第三块和第五块,所以与该模式相应的间隙为2。累加器跟踪具体位块的某一间隙落入预先确定的间隙长度间隔的平均次数(频率),然后通过分析每个块的间隙落入预先确定的范围的次数来判定产生的随机数是否足够随机,对于所有可能的k位块和间隙范围该次数必须大约相同。 注意,本专利技术是适用于实时测试随机序列的,所有累加器必须被更新。这样,旧的频率值的作用应该逐渐减少或不起作用。也就是,由于评估随机序列统计质量的测试要连续运行,因此累加器必须周期性地清除以避免溢出。根据本专利技术的技术,有多种计数方法可以用;然而,如下文所述,指数平均被优先用在频率计数操作中。 如本文档来自技高网...

【技术保护点】
一种用于测试一个随机数流的随机性的方法,该方法包含以下步骤:产生一个随机二进制位的连续流;将所述随机二进制位分割为预先定义的位块;将每一个所述预先定义的位块应用到指数间隙频率计算(A)中以计算和更新至少两个同样的位块 之间的间隙频率值;以及,通过将所述指数间隙频率计算的输出和预先确定的可接受范围进行比较来确定产生的随机位是否足够随机。

【技术特征摘要】
【国外来华专利技术】US 2002-4-22 10/127,5561.一种用于测试一个随机数流的随机性的方法,该方法包含以下步骤产生一个随机二进制位的连续流;将所述随机二进制位分割为预先定义的位块;将每一个所述预先定义的位块应用到指数间隙频率计算(A)中以计算和更新至少两个同样的位块之间的间隙频率值;以及,通过将所述指数间隙频率计算的输出和预先确定的可接受范围进行比较来确定产生的随机位是否足够随机。2.如权利要求1所述的方法,其中用于每个所述预先定义的位块的所述指数间隙频率计算(A)按照下述方程式来更新Anew=α·Aold+b,其中α位于0和1之间(0<α<1),并且其中如果所述至少两个同样的位块出现,则b=1,否则b为0。3.如权利要求1所述的方法,还包含步骤当至少一个间隙频率值重复落在所述预先确定的可接受范围之外的次数多于预先定义的次数时,确定所述产生的随机位是不够随机的。4.如权利要求1所述的方法,还包含步骤当至少一个间隙频率值重复落在所述预先确定的可接受范围之外的次数多于预先定义的次数时,通知所述产生的随机位是不够随机的。5.如权利要求1所述的方法,还包含步骤当至少一个间隙频率值重复落在所述预先确定的可接受范围之外的次数多于预先定义的次数时,产生一组新的随机位。6.如权利要求1所述的方法,还包含步骤当至少一个间隙频率值重复落在所述预先确定的可接受范围之外的次数多于预先定义的次数时,拒绝将所述产生的随机位用于后续应用。7.一种用于测试由随机数发生器(12)产生的一个随机数流的方法,该方法包含以下步骤(a)将所述随机的二进制位分割为预先定义的位块;(b)将所述分割开的随机位应用于间隙长度计算;(c)将所述间隙长度计算的输出应用于指数平均计数,以得到和更新至少两个同样的位块之间的间隙频率值;(d)将间隙频率值和预先确定的可接受范围进行比较;以及(e)确定是否至少一个间隙频率值落在所述预先确定的可接受范围之外的次数多于预先定义的次数。8.如权利要求7所述的方法,其中用于每个所述预先定义的位块的所述指数平均按照下述方程式来更新Anew=α·Aold+b,其中α位于0和1之间(0<α<1),并且其中如果所述至少两个同样的位块出现,则b=1,否则b为0。9.如权利要求7所述的方法,还包含步骤当任何间隙频率值落在所述预先确定的可接受范围之外的次数多于预先定义的次数时,确定所述产生的随机位是不够随机的。10.如权利要求7所述...

【专利技术属性】
技术研发人员:L哈斯
申请(专利权)人:NXP股份有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1