用于测试由随机数生成器生成的序列的设备和方法

文档序号:1821537 发布日期:2021-11-09 浏览:4次 >En<

阅读说明:本技术 用于测试由随机数生成器生成的序列的设备和方法 (Device and method for testing sequences generated by a random number generator ) 是由 Y·埃尔霍斯尼 F·洛扎克 于 2019-12-20 设计创作,主要内容包括:本发明的实施例提供了一种用于测试由随机数生成器(11)生成的位序列的设备(100),其中该设备被配置为响应于检测到由随机数生成器(11)生成的N个位,对位序列应用一个或多个统计测试(103),每个统计测试提供从所述序列的位导出的至少一个总和值,该测试设备包括:-比较器,用于将与每个统计测试相关的至少一个测试参数与一个或多个阈值进行比较;-验证单元(105),其被配置为取决于比较器针对每个统计测试进行的比较来确定所述位序列是否有效;其中,测试参数和至少一个阈值中的至少一个是根据N和根据目标错误概率确定的。(An embodiment of the invention provides a device (100) for testing a sequence of bits generated by a random number generator (11), wherein the device is configured to apply one or more statistical tests (103) to the sequence of bits, each statistical test providing at least one sum value derived from the bits of the sequence, in response to detecting N bits generated by the random number generator (11), the testing device comprising: -a comparator for comparing at least one test parameter associated with each statistical test with one or more thresholds; -a verification unit (105) configured to determine whether the bit sequence is valid depending on a comparison by a comparator for each statistical test; wherein at least one of the test parameter and the at least one threshold is determined based on N and on the target error probability.)

用于测试由随机数生成器生成的序列的设备和方法

技术领域

本发明总体上涉及用于测试由随机数生成器生成的序列的设备和方法。

背景技术

随机数生成器用于生成一组随机数(以位流的形式)以用于许多系统中。例如,可以在密码系统中使用随机数生成器来生成用于安全传输数据的随机密码密钥。

随机数生成器包括:硬件随机数生成器,也称为真随机数生成器(TNRG),它从物理过程而不是计算机程序(非确定性源)生成一组数字;以及伪随机数生成器,其从确定性源(例如,确定性算法)生成数字。

TNRG可以基于微观现象,所述微观现象生成低级、统计随机“噪声”信号,例如热噪声或散粒噪声、光电效应,涉及分束器和其它量子现象。TNRG通常包括将从物理现象导出的量或数据转换为电信号的换能器、放大器、被配置为将随机波动的幅度增加到可测量水平的附加组件,以及被配置为将这样获得的输出转换为数字(例如二进制数字0或1)的模数转换器。然后,TRNG对随机变化的信号重复采样以获得一系列随机数。

随机数生成的质量对于实现密码系统(例如密钥生成、认证协议、填充、数字签名、加密算法)至关重要。在此类应用中,安全性密切取决于所生成的随机数的质量。

事实上,许多攻击都针对密码系统的实现方式中的弱点。此类弱点可能源于所生成的随机数的质量,并被攻击者利用以试图破坏系统。

存在若干测试方法和系统用于测试生成的随机数的质量(特别是随机性),其中大多数基于统计测试。

这种测试被应用于检查随机获取的数字序列是否具有两个主要统计特性:

-生成的值应该均匀分布,以及

-生成的值应该独立于先前生成的值。

认识到这一点,如NIST和BSI的标准化实体已建立了给定20000位的二进制序列的统计测试套件。本文档的目的是提供测试的数学解释,并在给定N位序列、错误概率和其它参数的情况下建立通用数学公式。

当前需要测试由TNRG生成的随机数的集合,因为它可能会影响使用此类随机数的系统的性能,例如AIS31、FIPS140-1、NIST和DIEHARD测试。

如NIST和BSI的标准化实体已建立了给定固定位数(20000位)的二进制序列的统计测试套件。

在现有方法中,因此每次TRNG产生20000位序列时应用统计测试,该测试基于序列计算不同的总和。然后将这些总和与预先定义和固定的阈值进行比较,并取决于比较结果决定是接受还是拒绝该序列。用于执行比较的阈值被预先定义为固定错误概率的函数。

现有的测试方法和设备引入了不可控的延迟。此外,它们不能适用于解决目标错误概率。

因此,需要用于测试由随机数生成器生成的位序列的改进方法和设备。

发明内容

为了解决这些和其它问题,提供了一种用于测试由随机数生成器生成的位序列的设备,该设备被配置为响应于检测到由随机数生成器生成的N个位,对位序列应用一个或多个统计测试,每个统计测试提供从序列的位导出的至少一个总和值。该测试设备可以包括:

-比较器,用于将与每个统计测试相关的至少一个测试参数与一个或多个阈值进行比较;

-验证单元,其被配置为取决于由比较器对每个统计测试进行的比较来确定位序列是否有效;

其中,至少一个测试参数和至少一个阈值是根据N并且根据目标错误概率确定的。

在一些实施例中,被应用于序列的至少一个或多个统计测试包括统计测试的集合,该统计测试提供从序列的位导出的至少一个总和值,所述至少一个总和值针对每个统计测试提供至少一个测试参数,该设备还包括:

-阈值确定单元,用于针对统计测试的集合的每个统计测试,根据N并且根据与每个总和值相关联的目标错误概率确定下阈值和上阈值;

比较器被配置为针对每个统计测试将每个总和值与相关联的下阈值和上阈值进行比较。

在这样的实施例中,比较器可以被配置为如果每个总和值严格高于相关联的下阈值并且严格低于上阈值,则输出针对统计测试的验证位。

此外,验证单元可以被配置为如果针对统计测试的至少一个总和值低于或等于相关联的下阈值或者高于或等于对应的上阈值时,拒绝位序列。

在一个实施例中,统计测试可以包括提供总和值T1的AIS单位测试,对应的下阈值L1和上阈值H1等于:

以及

其中α表示目标错误概率。

在一个实施例中,统计测试可以包括AIS扑克测试,测试设备确定总和值T2。对应的下阈值L2和上阈值H2等于:

以及

其中M表示位序列中连续块的长度,且α表示错误概率。

在实施例中,统计测试可以包括AIS运行测试,测试设备针对长度为k的每个运行确定总和值T3(N,k),针对长度为k的每个运行,下阈值L3,k和上阈值H3,k等于:

其中α表示目标错误概率且

在一些实施例中,被应用于序列的至少一个或多个统计测试包括统计测试的附加集合,针对每个统计测试,测试设备确定根据N和根据错误概率确定出的测试参数。

特别地,统计测试包括AIS最长运行测试,测试参数是运行长度k,长度k根据以下等式确定:

其中α表示长运行概率。比较器随后将测试参数k与运行的最大长度进行比较。

在一个实施例中,位序列长度N可以在一个或多个时钟周期之间改变。

可以在不同时间或同时接收针对错误概率和数量N的新值。

还提供了一种在至少一个集成电路上实现的系统,该系统包括使用由随机数生成器生成的随机位序列的设备,其中该设备还包括根据前述实施例中的任一项所述的用于在使用之前测试由随机数生成器生成的每个随机位序列的测试设备。

还提供了一种用于测试由随机数生成器生成的位序列的方法,其中,该方法包括响应于检测到由随机数生成器生成的N个位,对位序列应用一个或多个统计测试,每个统计测试提供来自序列的位的至少一个测试参数,该测试方法包括:将与每个统计测试相关的至少一个测试参数与一个或多个阈值进行比较;取决于在比较步骤中针对每个统计测试执行的比较来确定所述位序列是否有效。测试参数和至少一个阈值中的至少一个是根据N并根据目标错误概率确定的。

本发明因此能够控制在给定系统中实现的随机数生成器的延迟/借记。

因此,本发明的实施例提供了贯穿所有操作阶段的灵活且完全延迟可控的RNG。

附图说明

被并入本说明书中并构成本说明书一部分的附图示出了本发明的各种实施例,并且与上面给出的本发明的一般描述和下面给出的实施例的详细描述一起用于解释本发明的实施例:

-图1描绘了根据一些实施例的用于测试由随机数生成器生成的随机数序列的设备。

-图2示出了根据一些实施例的在最长测试中使用的运行概率。

-图3是描绘了根据一些实施例的测试由随机数生成器生成的随机数序列的方法的流程图。

此外,详细说明由展示E1补充。将本展示分开放置是为了阐明详细说明,并便于参考。然而,它构成了本发明描述的组成部分。

具体实施方式

本发明的实施例提供了一种测试由硬件随机数生成器(如TRNG(真随机数生成器))生成的随机数序列的设备和方法。在以下描述中,随机数生成器也将被称为RNG。

参考图1,示出了包括密码系统12的测试设备10的示例性操作环境100,该密码系统12使用由硬件随机数生成器11生成的随机数序列以用于生成密钥、执行认证、生成签名和/或执行加密,等等。

测试设备10被配置为测试由随机数生成器11生成的随机数序列的质量。统计测试103的集合包括一个或多个统计测试T1、T2、…、TP,其中P至少等于一。

应当注意,本发明不限于在密码系统12中使用测试设备10,而是可以在使用由硬件RNG 11生成的随机数序列的任何系统或设备中普遍使用。系统100和/或者系统12可以在一个或多个集成电路上实现。

仅出于说明的目的,将参考密码系统12进行一些实施例的以下描述。

统计测试Test_j可以被配置为测试由密码系统所需的统计特性,包括随机数生成器11的后向和前向不可预测性特性。

示例性统计测试Tj包括例如AIS、测试每个生成数的熵增加的测试等。

更具体地,测试设备10可以被配置为在系统100的操作期间接收期望的错误概率α和频率数N,频率数N定义由RNG 11生成的序列的位数。N可以低于RNG 11可以生成的最大位数M。特别地,可以在系统运行期间取决于多个标准来调整N。因此,N可以在一个或多个时钟周期之间改变。有利地,值N可以不同于预先定义的固定值,并因此可以采用不同于通常用于激活统计测试的值N’=20000的值。可以在不同时间或同时接收针对错误概率α和频率数N的新值。

如本文所使用的,期望的错误概率(本文也称为“显著性水平”或“目标错误概率”)是指对由RNG 11生成的序列进行的测试的错误概率,即测试设备使用统计测试的集合103对由RNG 11生成的给定序列进行的测试返回错误结果的概率。因此,期望的错误概率α被定义为测试拒绝由RNG 11生成的序列的概率,假设该序列是真正随机的。

可以激活RNG 11以使用密码系统12所用的期望错误概率τ和频率数N的当前值来生成包括来自熵源的多位的随机数序列(例如用于密钥生成)。

测试设备10可以被配置为响应于检测到由随机数生成器生成的N位,通过对位序列应用一个或多个统计测试103来测试由随机数生成器11生成的位序列。有利地,数量N和目标概率可以取决于本发明的应用而变化(如果需要快速处理时间,则可以将N定义为尽可能小,或者如果需要测试以尽可能地限制假阳性,则可以将N定义为增加)。

每个统计测试103提供从所述序列的位导出的至少一个测试参数。

测试设备可以包括:比较器102,其被配置为将与每个统计测试相关的测试参数与一个或多个阈值进行比较;以及随机数序列验证单元105,其被配置为取决于由比较器102针对统计测试所做的比较来确定N位序列是否有效。

随机数序列验证单元105可以被配置为使用被应用于序列的统计测试103的结果来拒绝或验证N位随机数序列。在这样的实施例中,比较器102可以将结果值Oj返回给随机数序列验证单元105。

在一个实施例中,随机数序列验证单元105可以被配置为仅仅如果对于所有P个统计测试,对于考虑的N位序列,应用于通过执行统计测试获得的每个总和值的条件(1)被满足(即,对于j=1到K,Oj=Oj,2)。

每个统计测试103可以是用于测试由RNG 11生成的N位二进制序列中的随机性的统计测试。

有利地,测试参数和阈值中的至少一个是根据N和根据目标错误概率确定的。

响应于N位随机数序列的生成(即,响应于检测到在随机数序列中,位数等于N),随着从随机数生成器11接收到随机位,测试设备10因此执行P个统计测试的集合(P至少等于1)。P个统计测试的集合可以存储在存储单元103中。

在一些实施例中,统计测试103的集合包括如下统计测试的集合,其中每个统计测试用于确定从随机数序列的N位导出的一个或多个总和值(如果测试包括多个运行,则为多个值)和错误概率α。

测试设备10还可以包括阈值确定单元101,其被配置为确定包括下阈值Lj和上阈值Hj的至少一对阈值,对于每个测试Test_j,下阈值Lj和上阈值Hj取决于参数N并取决于显著水平参数α。

测试设备10可以被配置为针对每个统计测试Test_j,检查由所考虑的统计测试Test_j返回的每个值(总和结果)是否满足与由此确定的对应阈值对(下阈值Lj和上阈值Hj)相关的条件。

在这种实施例中,比较器105可以被配置为将由统计测试Test_j返回的每个总和结果与关联对的下阈值Lj和上阈值Hj进行比较。

在一个实施例中,测试设备的比较器105可以被配置为确定由统计测试Test_j返回的每个值Tj(总和结果)是否严格高于相关联阈值对的下阈值Lj并且严格低于相关联阈值对的上阈值Hj。基于对应的阈值对(下阈值Lj和上阈值Hi)针对值Tj检查的条件可以表示为:

Lj<Tj<Hj (1)

应当注意,在一些实施例中,可以针对每个统计测试确定多个总和值(例如,当测试包括多个运行时),并针对每个值确定对应的阈值对,针对每个总和值和每个对应的阈值对来测试条件(1)。

比较器105可以针对被应用于N位序列的每个测试Test_j返回结果值Oj,如果不满足等式(1)的测试条件,则设置为第一值Oj,1,或者如果满足等式(1)的测试条件,则设置为第二值Oj,2

为了促进理解本发明的一些实施例,提供以下定义:

如本文所使用的,“空假设H0”是指如下陈述:提供的序列是真随机。

“测试统计S”是指如下数值总结:将观察到的数据减少到一个值。

“p值”是指当H0为真时,统计测试与实际观察到的结果相同或更大的概率。

“显著性水平”α(本文也称为“错误概率”)是指假设H0为真时拒绝H0的概率。

给定这些定义,进行如下统计测试:

-如果p值≥α,则接受H0

-如果p值<α,则拒绝H0

给定测试统计S的统计模型,可以计算p值。

这种模型可以应用于被用于将真实世界RNG的经验数据链接到随机模型的所有统计测试。

统计测试103的集合可以包括例如AIS31测试套件的一个或多个测试,其包括:

-单位测试(A Monobit Test);

-扑克测试(A Poker Test);

-运行测试(A Runs Test);

-最长运行测试(A Longest Run Test)。

仅出于说明目的,将参考AIS31套件的一个或多个测试进行一些实施例的以下描述。

在以下描述中,考虑包括位bi并具有长度N的随机数序列。

在一个实施例中,统计测试的集合103可以包括单位测试。单位测试被配置为确定在给定的位序列中1和0的数量的比例。对于随机序列,预期序列中1(以及因此的0)的平均数量为1/2。

根据一个实施例,AIS31单位测试通过如下计算总和T1来检查N位序列:

根据本发明的一个实施例,可以定义统计参数的集合{H0,SN,α}来运行单位测试:

-H0:进行假设:生成的位序列是随机的;

-参数SN定义为:

-错误概率α被设置为:

α=9.6×10-7 (3)

-待测试的观察:

考虑到(待测试的观察),对于N的大值,这种观察的参考分布是半正态分布。如本文所使用的,半正态分布是指均值为0(零)的正态分布。在展示E1.1中提供了正态分布的定义。如果序列是随机的,那么加一和减一将倾向于彼此抵消,使得测试统计约为0。

p值(当H0为真时,统计测试与实际观察到的结果相同或更大的概率)由下式给出:

pvalue=erfc(Sobs) (5)

在等式(1)中,erfc(z)表示互补高斯误差函数:

对于半正态分布的随机变量X,erfc(x)是X落在[-x,x]范围之外的概率。

根据测试方法,如果发生以下情况,则接受H0

pvalue≥α (7)

根据等式(4)和(5),等式(7)可以改写为:

由于erfc-1是递减函数:

根据等式(2):

等式(10)可以改写为:

通过将等式(12)除以二,得到以下不等式:

给定N,则序列的长度:

因此,针对单位测试,等式(1)的条件可以改写为:

L1<T1<H1

其中:

以及

测试设备10然后可以被配置为对由RNG 11生成的N位的随机数序列执行单位测试,并且测试所得的总和T1是否包括在下阈值L1上阈值H1之间,这两者都取决于N和错误概率α。

比较器105将针对被应用于N位序列的单位测试,返回结果值O1,如果不满足等式(1)的测试条件,则结果值O1被设置为第一值O1,1,或者如果满足等式(1)的测试条件,则结果值O1被设置为第二值O1,2

应当注意,对于N=20000且α=9.6×10-7,针对单位测试的条件(1)为:

9653.54133637<T1<10346.4586636

相比之下,在传统方法中,AIS31单位测试通过将总和T1计算为并考虑固定的下阈值和固定的上阈值(此类阈值是静态定义的,独立于所选值N并且独立于错误概率α)来检查20000位的序列。通常,如果T1落在由固定阈值定义的范围之外,则测试失败。

在一些实施例中,统计测试103的集合可以包括扑克测试。

在一个实施例中,为了估计针对扑克测试的条件(1),定义了用于运行扑克测试的以下统计参数:

-H0:进行假设:生成的位序列是随机的;

-测试统计SN,M被定义为:

在等式(17)中,N表示序列的长度,M表示连续块的长度,而f(i)表示可能的M位值中的每一个的出现次数。给定实数x,表示x的整数部分。

此外,对于扑克测试,错误概率α被定义为α=1.014×10-6

扑克测试包括确定在每个M位块中1的比例。在每个M位块中1的频率应该是M/2,正如随机序列所预期的那样。出现次数f(i)呈正态分布,因此SN,M遵循自由度为2M-1的“卡方(chi square)”(χ2)分布。展示E1.2提供了卡方分布的定义。

为了确定在预期频率与观察频率之间是否存在显著差异,可将待测试的观察限制在自由度2M-1的的两个临界值内,给定错误概率为α。在AIS31中,错误概率可以被选择为等于30%×α和70%×α。因此,下界为而上界为得出T2的一般公式,给定N和M:

“卡方”χ2分布只有一个参数,该参数确定其自由度。这意味着无论N是什么,边界都是相同的,除非M改变。

因此,针对单位测试的等式(1)的条件可以改写为:

L2<T2<H2

其中下阈值L2和上阈值H2定义如下:

以及

如等式(19)和(20)所示,下阈值L2和上阈值H2也取决于N和取决于错误概率α。在扑克测试的情况下,下阈值L2和上阈值H2还取决于M(M表示连续块的长度)。

测试设备10可因此被配置为对由RNG 11生成的N位随机数序列执行扑克测试,并且测试所得的总和T2是否被包括在下阈值L2和上阈值H2之间,这两者均取决于N以及取决于错误概率α。

针对被应用于N位序列的扑克测试,比较器105将返回结果值O1,如果不满足等式(1)的测试条件,则结果值O1被设置为第一值O1,1,或者如果满足等式(1)的测试条件,则结果值O1被设置为第二值O1,2

例如,根据被应用于扑克测试的测试设备和方法,对于M=4且α=1.014×10-6

并且:

1 562 820,6684439≤T2(N,M)≤1 580 428,499198625

相比之下,在传统方法中,扑克测试:

-首先将N=20000位的序列划分为固定数量的5000个连续4位片段,然后对每个可能的4位值的出现次数进行计数并存储。

-计算T2总和:

-检查总和T2是否严格包括在固定的下阈值和固定的上阈值之间,这两者均独立于所选值N和目标错误概率α而被静态定义。

通常,如果T2落在由固定阈值定义的范围之外,则测试失败。

在一些实施例中,统计测试103的集合可以包括运行测试。

运行测试的目的是确定1和0的变化是否太快(0101010101)或太慢(0000011111)。

运行被定义为全1或全0的连续位的最大序列。

可以对样本流中所有长度(≥1)的运行的发生率(对于连续零和连续一)进行计数和存储。如果发生的运行的次数(长度为1到6)中的每个均在下面指定的对应间隔内,则运行测试通过。这对零和一都成立;也就是说,所有12个计数都必须位于指定的间隔内。出于该测试的目的,大于6的运行被视为长度为6。

T3(N,k)表示位0或1的长度为k的运行,发生在长度为N的序列中。

为了针对运行测试根据公式(1)来估计条件,定义了用于应用运行测试的以下统计参数:

-H0:进行假设:生成的位序列是随机的;

-S指定长度为k的运行的数量,用T3(N,k)表示,其中n是序列长度;以及

-错误概率α=k×10-6,其中k∈{3.25;1.33;0.85;0.40;0.10}。

假设序列位是恒等分布的,则针对运行测试的测试统计T3(n,k)被认为是正态分布的。这种分布的均值是因为每次运行零或一的概率是相同的。因此,在N/2中,存在k次运行0或1,并且每个位都有1/2发生的概率。因此,预期的均值是如果实验无限次进行,则所有k次运行的总和为N/2。

作为结果可以写成:

考虑观察p值是:

然后可以将等式(22)的量与错误概率α进行比较。如果出现以下情况,则运行测试通过:

p-value≥α (23)

根据等式(22),条件(23)可以改写为:

等式(23)可以进一步公式化如下:

因此,对于每次运行k,针对运行测试的等式(1)的条件可以改写为:

L3,k<T3(N,k)<H3,k (27)

其中,下阈值L3,k和上阈值H3,k定义如下:

如等式(28)和等式(29)所示,下阈值L3,k和上阈值H3,k也取决于N和取决于错误概率α(因为)。测试设备10可以因此被配置为对由RNG 11生成的N位随机数序列执行运行测试,并且测试对于长度为k的每个运行,所得的结果总和T3(N,k)是否包括在下阈值L3,k和上阈值H3,k之间,它们都取决于N和取决于错误概率α。比较器105将返回被应用于N位序列的针对运行测试的结果值O1,如果对于长度为k的至少一个运行不满足等式(1)的测试条件,则结果值O1被设置为设置为第一值O1,1,或者如果对于每个所考虑的长度为k的运行满足等式(1)的测试条件,则结果值O1被设置为设置为第二值O1,2

例如,对于N=20000,k∈[1,2,3,4,5,6]和α=K×10-6,其中k∈{3.25;1.33;0.85;0.40;0.10},获得如下表1所示的结果:

运行长度 要求的间隔
1 2267.04399878–2732.45600122
2 1078.99101268–1420.88398732
3 501.911931832–748.088068168
4 222.906024885–402.125225115
5 89.678247301–222.853002699
6+ 89.678247301–222.853002699

表1

相比之下,在传统方法中,运行被定义为全1或全0的连续位的最大序列,它是20,000位样本流的一部分,其间隔由下表2给出:

运行长度 要求的间隔
1 2267–2733
2 1079–1421
3 502–748
4 223–402
5 90–223
6+ 90–223

表2

在一些实施例中,统计测试103可以包括提供总和值Ti的一个或多个附加统计测试,但是代替测试总和值Ti,测试设备10可以被配置为通过将根据频率数N和错误概率α确定出的测试参数与阈值进行比较来测试N位序列。

例如,统计测试103的集合可以包括最长运行测试。

在传统方法中,对于20000位的样本,如果没有长运行,则最长运行测试通过。

根据本发明的实施例,最长运行测试可用于通过确定与目标错误概率α对应的运行长度k(其在最长运行测试的情况下对应于长运行概率PN(k)),然后将值k与阈值进行比较,来测试位序列。如果确定出的值k的整数部分小于运行的最长长度则测试通过。否则,测试失败。

更具体地,可以基于长运行概率PN(k)来确定索引k,长运行概率PN(k)表示长度大于或等于k的运行(零或一)出现在被考虑的N位序列中的概率。

PN(k)可以通过两个互斥事件概率的相加来表示。事件概率之一表示长于k的运行出现在N-1位的概率,而另一事件概率表示没有长于k的运行出现在N-1位但出现在N的最右边k位的概率,如图2所示。这意味着:

等式(30)和(31)得出给定k和N的一般表达式:

这对应于该类型的算术和几何序列(progression):

UN=a×UN-1+b (33)

因此:

UN=aN×(U0-r)+r (34)

在等式(34)中,因此:

在等式(35)中,U0=0且r=1。

等式(35)可以被改写为:

在等式(36)中,k因此可以如下找到:

当PN(k)=α时,等式36.4可以被改写为N和α的函数:

例如,对于N=2000和PN(k)=10-6

下表提供了根据前面的等式针对单位测试(T1)、扑克测试(T2)、运行测试和最长运行测试计算出的测试参数的示例,所述前面的等式提供了下/上阈值Li和Hi作为N和α的函数(对于T1、T2、T3)或最长运行参数k作为对于N∈{5000,10000,20000,40000}时α的函数,值N=20000是通常用于测试由RNG 11生成的位序列的固定值(由标准NIST FIPS 140-2和BSI AIS 31定义)。在下面的示例表中,出于说明目的选择了给定的α值,但是α可以变化:

表3

图3是根据一些实施例的使用测试的集合来测试由RNG 11生成的随机位序列的方法的流程图,所述测试提供针对其来检查条件(1)的总和测试Ti(例如,T1、T2和T3),条件由下阈值Li和上阈值Hi定义,这两者都取决于N和α。

在步骤300中,接收错误概率和位序列长度N。

在步骤302中,检测由RNG 11生成的随机数序列。

在步骤304中,检测RNG 11是否已生成了N位。

如果是,则在步骤306中,将P个统计测试103中的每一个应用于从RNG 11接收到的k位随机数序列。否则,过程返回到步骤302。每个统计测试的执行提供至少一个总和Ti。在运行测试的情况下,每个考虑的运行k提供总和Ti,k

在步骤310中,对于针对统计测试获得的每个统计测试总和Ti(或对于运行测试的每个运行k的Ti,k),与统计测试总和相关联地确定出下阈值Li(或用于运行测试的每个运行k的Li,k)和上阈值Hi(或用于运行测试的每个运行k的Hi,k),下阈值和上阈值取决于N和取决于错误概率α。

在步骤312中,使用相关联的下阈值Li(或Li,k)和相关联的上阈值Hi(或Hi,k),针对由每个统计测试提供的每个统计测试总和Ti(或用于运行测试的每个运行k的Ti,k)来测试条件(1)。

在步骤314中,如果至少一个统计测试不满足条件1(框312),则可以拒绝随机位序列。否则,对于其它统计测试,重复步骤310和312,因为并非所有统计测试都已被处理(步骤313)。在步骤316中,如果所有统计测试总和满足条件1,则随机位序列被验证通过并且可以将N个随机位传送到目标系统12。

展示E1.3提供了一种测试方法,用于根据一个实施例,使用统计测试,来在以微代码格式的随机位到达时测试由RNG生成的位序列:

-单位测试(T1);

-扑克测试(T2);

-运行测试(T3);

-最长运行测试(T4)。

展示E.1.3的测试方法具有优化的延迟,并且特别适用于在嵌入芯片的测试设备10中测试N位序列。

本发明的实施例因此能够动态选择数量N的原始位以在给定目标借记/延迟的情况下进行测试。它们还提供给定目标应用情况下的动态错误概率τ并且(通过等待固定数量的原始位)提供在所有阶段完全可控的延迟(与现有技术相比,现有技术生成不可控的延迟)。

本发明的实施例应用于嵌入式统计测试(使用随机数序列在系统或设备的芯片内执行测试)和在线统计测试。

在一些需要快速处理的应用中,可以选择N的值小于20000,从而减少测试位序列所需的整体时间。相比之下,对于需要对生成的随机数进行更严格评估的应用,为了减少误报检测的数量,可以增加序列大小N。

因此,本发明的实施例能够根据应用的需要而灵活地调整N。

根据本发明实施例的测试设备可以用于各种应用,例如:

-模拟应用,其模拟和建模复杂现象(例如,在金融和工程领域中使用的蒙特卡罗积分);

-随机采样应用,其从较大数据集中选择随机样本;

-密码应用,例如,认证、签名、加密、数字签名生成、加密密钥生成系统或互联网加密协议应用;

-芯片制造和特定于设备的密钥的播种,例如,用于近场通信或设备ID;-机器学习和统计学习应用(真随机数生成器可用于从随机分布中获得样本)。

示例性目标系统12包括基于一个或多个密码密钥来实现密码功能以确保数据和/或信号安全、认证、保护和隐私的密码系统,例如:

-智能卡,存储密钥的设备(例如钱包),智能卡读卡器(例如,用于金融应用中的自动取款机(ATM));

-诸如RFID标签等的数字电子设备;

-嵌入式安全元件;

-计算机(例如,台式计算机和膝上型计算机),平板计算机;

-路由器、交换机、打印机;

-移动电话,例如智能手机、基站、中继站、卫星;

-物联网(IoT)设备、机器人、无人机;以及

-记录器、多媒体播放器、移动存储设备(例如,存储卡和硬盘),其中由加密机制监控登录访问,等等。

在某些替代实施例中,在流程图、序列图和/或框图中指定的功能、动作和/或操作可以重新排序、与本发明的实施例一致地串行处理和/或并发处理。此外,流程图、序列图和/或框图中的任一个可以包括比与本发明的实施例一致示出的那些更多或更少的框。

特别地,应当注意,可以以任何次序、顺序地或并行地测试统计测试103。

虽然通过各种实施例的描述已经说明了本发明的全部,并且虽然已经相当详细地描述了这些实施例,但是申请人的意图不是将所附权利要求的范围约束或以任何方式限制到这样的细节。本领域的技术人员将容易地理解附加的优点和修改。因此,本发明在其更广泛的方面不限于所示和描述的具体细节、表示性装置和方法以及说明性示例。特别地,应当注意,本发明不限于对AIS31测试集的统计测试并且可以使用用于测试由RNG 11生成的序列的其它类型的统计测试,例如:

-来自AIS31合的其它测试,包括例如自相关测试(测试5)、均匀分布测试(测试6)、同质性测试或用于多项分布的比较测试(测试8)、熵估计测试(测试8)。

-来自NIST测试套件的测试,例如根据NIST SP800-22测试套件,例如串行测试、频率(单位)测试等。

展示E1

定义

E1.1.正态分布

如果(连续)随机变量X的概率密度函数为以下,则该X具有平均值为μ且方差为σ2的正态分布:

连续随机变量X的密度函数满足:

-(x)≥0 for all x∈]-∞,+∞[

-

-对于所有的

E1.2“卡方”χ2分布

χ2分布可用于比较事件的观察到的频率与其假设分布下的预期频率的拟合优度。当具有标准正态分布的k个独立随机变量的平方相加时,就会出现自由度为k的χ2分布。

令k≥1为整数。如果密度函数为以下,则连续随机变量X具有自由度为k的χ2分布:

其中Γ(x)是针对t>0定义的伽马函数:

E.1.3:测试方法

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:具有读高速缓存的供应服务(PVS)云流送

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类