CN / EN
CN / EN

写技术文章

NIST SP 800-22随机数测试指南

Tim

2022-06-28 20:20:59

前言

本文介绍了如何使用NIST SP 800-22随机数测试集,对GR551X系列芯片的TRNG(真随机数发生器)模块进行测试,以便验证该模块生成的随机数质量满足标准的要求。


目录

一、简介

1.1 随机数测试集

1.2 P-value值说明

1.3 TRNG(真随机数发生器)

二、环境搭建

2.1 NIST测试集下载与安装

2.2 随机数测试源生成

三、测试流程

3.1 随机数序列生成

3.2 NIST测试

四、测试报告

五、附录


一、简介

美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)发布了一篇名为“A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications”的文章,对用于检验加密应用的随机数发生器的质量的NIST SP 800-22随机数测试集进行了全面的介绍。

该文章可通过链接https://csrc.nist.gov/publications/detail/sp/800-22/rev-1a/final获取。

1.1随机数测试集

NIST SP 800-22随机数测试集包含15个测试项,用于测试由基于硬件或软件的加密随机数或伪随机数生成器生成的(任意长)二进制序列的随机性。这些测试侧重于序列中可能存在的各种不同类型的非随机性,其中的一些测试可分解为各种子测试。

1. The Frequency (Monobit) Test(频率测试)该测试的重点是整个序列中0和1的比例。此测试的目的是确定序列中1和0的数量是否与真正随机序列的预期数量大致相同。该测试评估1的分数与1/2的接近程度,即序列中1和0的数量应该大致相同。所有后续测试都取决于此测试的通过。

2. Frequency Test within a Block(块内频率测试)该测试的重点是M位内1的比例。该测试的目的是确定M位中1的频率是否大约为M/2,正如在随机性假设下所预期的那样。对于块大小M=1,此测试退化为测试1,即频率(单比特)测试。

3. The Runs Test(运行测试)该测试的重点是序列中的运行总数,其中运行是相同位的不间断序列。长度为k的运行由k个完全相同的位组成,并且在前后以相反值的位为界。运行测试的目的是确定运行时各种长度的1和0是否符合随机序列的预期,即该测试确定这些0和1之间的振荡是太快还是太慢。

4. Tests for the Longest-Run-of-Ones in a Block该测试的重点是M位中最长的1。该测试的目的是确定测试序列中最长1的长度是否与随机序列中预期的最长1的长度一致。

5. The Binary Matrix Rank Test(二元矩阵秩检验)该测试的重点是整个序列的不相交子矩阵的等级。此测试的目的是检查原始序列的固定长度子串之间的线性相关性。

6. The Discrete Fourier Transform (Spectral) Test(离散傅里叶变换测试)该测试的重点是序列的离散傅里叶变换中的峰值高度。该测试的目的是检测测试序列中的周期性特征(即彼此靠近的重复模式),这些特征表明与随机性假设的偏差。目的是检测超过95 %阈值的峰数是否与5 %显着不同。

7. The Non-overlapping Template Matching Test(非重叠模板匹配测试)该测试的重点是预先指定的目标字符串的出现次数。此测试的目的是检测产生过多出现给定非周期性(非周期性)模式的生成器。

8. The Overlapping Template Matching Test(重叠模板匹配测试)重叠模板匹配测试的重点是预先指定的目标字符串的出现次数。

9. Maurer's "Universal Statistical" Test该测试的重点是匹配模式之间的位数(与压缩序列长度相关的度量)。测试的目的是检测是否可以在不丢失信息的情况下显着压缩序列,一个显着可压缩的序列被认为是非随机的。

10. The Linear Complexity Test(线性复杂度测试)该测试的重点是线性反馈移位寄存器(LFSR)的长度。此测试的目的是确定序列是否足够复杂以被认为是随机的。随机序列的特点是较长的LFSR,太短的LFSR意味着非随机性。

11. The Serial Test(串行测试)该测试的重点是整个序列中所有可能的重叠m位模式的频率。该测试的目的是确定2m位重叠模式的出现次数是否与随机序列的预期值大致相同。随机序列具有一致性,也就是说每个m位模式与其他每个m位模式出现的机会相同。

12. The Approximate Entropy Test(近似熵检验)与串行测试一样,该测试的重点是整个序列中所有可能的重叠m位模式的频率。

13. The Cumulative Sums (Cusums) Test(累积和测试)该测试的重点是随机游程的最大偏移(从零开始),由序列中调整后的(-1,+1)数字的累积和定义。测试的目的是确定测试序列中出现的部分序列的累积和相对于随机序列的累积和的预期行为是太大还是太小。这个累积和可以被认为是随机游程。对于随机序列,随机游程的偏移应该接近于零。对于某些类型的非随机序列,这种随机游程从零开始的偏移会很大。

14. The Random Excursions Test(随机偏移测试)该测试的重点是在累积和随机游程中恰好有K次访问的周期数。累积和随机游程是从(0,1)序列转移到适当的(-1,+1)序列后的部分和得出的。随机游程的循环由一系列随机采取的单位长度的步骤组成,这些步骤从原点开始并返回原点。此测试的目的是确定在一个周期内访问特定状态的次数是否偏离了人们对随机序列的预期。

15. The Random Excursions Variant Test(随机偏移变化测试)该测试的重点是在累积和随机游程中访问(即发生)特定状态的总次数。此测试的目的是检测随机游程中对各种状态的预期访问次数的偏差。

1.2 P-value值说明

检验统计量用于计算总结针对零假设的证据强度的P-value值。对于这些测试,在给定测试评估的非随机性类型的情况下,每个P-value值是完美随机数发生器生成的序列随机性小于被测序列的概率。如果确定测试的P-value值等于1,则序列似乎具有完全随机性。若P-value值为零表示该序列似乎是完全非随机的。

1.3 TRNG(真随机数发生器)

TRNG模块支持伪随机数生成和真随机数生成。伪随机数由线性反馈移位寄存器(LFSR)生成。真随机数是通过使用前馈环形振荡器(FRO)作为熵源来生成的。

TRNG模块详细的资料和介绍可以在GR551X系列芯片的Datasheet中获取。


二、环境搭建

2.1 NIST测试集下载与安装

NIST SP 800-22随机数测试集配套工具包可以在NIST官网上获取。

打开链接https://csrc.nist.gov/projects/random-bit-generation/documentation-and-software点击Download即可下载sts-2_1_2.zip。


该工具包是Linux系统下开发的,如果你的电脑是Linux系统,可以直接进入文件夹运行Makefile安装。如果你的电脑是Windows系统,可以借助虚拟机软件来运行Makefile安装。本文是在Windows系统下,使用Cygwin软件来运行Makefile安装工具包。

通过命令行进入sts-2.1.2工具包根目录,找到Makefile文件,输入make命令进行自动化编译。编译过程中的警告可以忽略,这些警告不会影响到测试。


编译完成后,查看sts-2.1.2工具包根目录,如果能够找到assesss.exe文件,说明编译成功,随后assesss.exe文件将作为随机数测试的入口。


2.2 随机数测试源生成

NIST测试集工具包支持ASCII和Binary数据格式的多种文件格式的输入。本文将采用二进制字符串数据格式的txt文件格式作为随机数测试源,其中的随机数序列将通过GR551X系列芯片上的TRNG(真随机数发生器)模块生成。

TRNG模块可以通过下列配置,使用FR0环形振荡器,生成32位真随机数。

app_rng_params_t rng_params;
rng_params.use_type = APP_RNG_TYPE_POLLING;
rng_params.init.seed_mode = RNG_SEED_FR0_S0;
rng_params.init.lfsr_mode = RNG_LFSR_MODE_59BIT;
rng_params.init.out_mode = RNG_OUTPUT_FR0_S0;
rng_params.init.post_mode = RNG_POST_PRO_NOT;
app_rng_init(&rng_params, NULL);

调用下列函数接口,可以使用轮询的方式生成32位随机数。

uint16_t app_rng_gen_sync(uint16_t *p_seed, uint32_t *p_random32bit);

GR551X系列芯片不能直接创建txt文件并写入数据,但是可以将生成的随机数序列通过串口打印至PC端。通过串口调试工具,可以将串口的打印保存成txt文件,这样生成的随机数序列也就以txt文件格式保存在PC端。注意串口的速率不要过高,这样串口调试工具保存下的数据会存在丢失的风险。

可以使用printf函数将生成的32位随机数按照二进制字符串形式打印至串口。

printf("% 08X", p_random32bit);


三、测试流程

下图介绍了使用NIST测试工具集sts-2.1.2对GR551X系列芯片生成的随机数序列进行测试的流程。


3.1 随机数序列生成

按照2.2随机数测试源生成小节的方法,使用GR551X系列芯片的TRNG(真随机数发生器)模块生成符合格式的随机数序列文件。

TRNG的示例工程在SDK_Folder\projects\peripheral\rng\app_rng目录下。

由于NIST测试集工具包具有自定义测试序列长度的选项,所以测试的随机数序列的长度可以根据当前的测试环境决定。测试序列数据量越大,测试所需的时间越长。本文推荐的随机数序列至少为20480000位二进制字符串格式大小的txt文件,即需要使用TRNG生成至少640000个32位随机数。

将生成的随机数序列文件拷贝至sts-2.1.2工具包根目录下的data目录下。

3.2 NIST测试

3.2.1设置数据段长度

在sts-2.1.2工具包根目录下,输入./assess.exe并回车,可以看到如何设置数据段长度。


NIST测试集是按数据段来进行检验的,无论原始数据文件有多大,都可以通过设置数据段长度,将数据文件分成小端。数据段的长度不应过小,因为有些测试项所需的数据流至少要大于特定值才能进行检验。数据段的长度最好满足32的倍数。本文推荐的数据段长度为1024000位,该长度可以满足所有测试项的数据流要求。

在sts-2.1.2工具包根目录下,输入./assess.exe 1024000并回车。

3.2.2 设置测试数据文件

根据菜单指引,输入0可以设置测试数据文件,注意这里需要输入的是测试数据文件的绝对路径,相对路径可能会报错。


3.2.3 设置测试项

如1.1随机数测试集小节介绍,sts-2.1.2工具包可以进行15项随机数测试。根据菜单指引,可以选择单项测试也可以选择全项测试,输入1将选择全项测试。


如果想进行单项测试可以输入0,随后输入0或1以指示是否应将该编号的测试项应用于随机数序列。例如,输入111111111111111则将15个测试项应用于随机数序列。


3.2.4 设置测试参数

根据菜单指引,需要设置相应的测试参数才能开启测试。测试参数的设置十分重要,因为不同的参数将会带来不同的测试结果,合理的参数设置才能获取到正确的测试报告。

输入数字[1,2,3,4,5,6]可以设置对应的测试参数,输入0将会结束参数的设置。


3.2.4.1 Block Frequency Test - block length(M)

这项测试建议每个要测试的序列至少包含100位(即n ≥ 100)。 请注意,n ≥ MN。 应选择块大小M,使得M ≥ 20,M > .01n和N < 100。其中M为每个块的长度,n为序列的位数,N为将输入序列划分为 n/M 的非重叠块。

由于本文推荐的数据段长度为1024000位,这项参数推荐设置为20480。

3.2.4.2 NonOverlapping Template Test - block length(m)

这项测试已编写的测试代码提供m = 2、3、…、10的模板。建议指定m = 9或m = 10以获得有意义的结果。

尽管在测试代码中已指定N = 8,但代码可以更改为其他大小。应使N ≤ 100以确保P-value值有效。此外,确保M > 0.01 ∙ n且N = n/M。

3.2.4.3 Overlapping Template Test - block length(m)

这项测试的m可以选择各种值,但目前NIST建议m = 9或m = 10。如果需要其他值,需要满足以下条件:

1. n ≥ MN

2. 应选择N以使 N∙( min(⁡π_i) )>5

3. 计算λ=(M-m+1)/2^m≈2

4. 应满足 m≈log2⁡_M

5. 自由度数K应满足K≈2λ,注意除5以外的K值,需要重新计算 π_i 的值

3.2.4.4 Approximate Entropy Test - block length(m)

这项测试使每个块的长度m和序列的位数n满足m<[ log2_⁡n ]-5。

3.2.4.5 Serial Test - block length(m)

这项测试使每个块的长度m和序列的位数n满足m<[ log2_⁡n ]-2。

3.2.4.6 Linear Complexity Test - block length(M)

这项测试需要满足序列的位数n ≥ 10^6,每个块的长度M必须在500 ≤ M ≤ 5000的范围内,并且 N = n/M ≥ 200才能使结果 χ^2 有效。

3.2.5 设置数据流数量

此处需要设置数据流的数量,数据流的数量应与数据段的长度对应,不能大于测试数据文件的总数据量,否则可能会导致测试失败。由于先前设置了数据段长度为1024000位,测试数据文件的总位数为20480000位,所以数据流的数量不能大于20。本文推荐数据流的数量为20,这样可以满足所有的测试项的测试条件。


3.2.6 设置文件格式

此处需要设置文件的格式,由于本文的随机数序列是按照二进制字符串格式生成的,所以这里将输入1选择Binary格式。如果文件格式不一致,则可能会导致测试失败。


3.2.7 测试完成

设置完测试参数后可以获得一个开始测试提示,测试完成后可以获得一个测试完成的提示,如下图所示。


igamc: UNDERFLOW是数据存在下溢,如果文件格式设置的不匹配则会出现大量的该提示,少量的该提示可以忽略。

测试的随机数序列的长度可以根据当前的测试环境决定,测试序列数据量越大,测试所需的时间越长。


四、测试报告

当数据测试完成后,NIST随机数测试集工具包将生成测试报告文件,其中包含相关的中间值,例如测试统计数据和每个统计测试的P-value值。基于这些P-value值,可以得出关于随机数序列质量的结论。

每项测试的详细报告保存位置在sts-2.1.2\experiments\AlgorithmTesting\<测试集名称>,所有测试的结果摘要会汇总在sts-2.1.2\experiments\AlgorithmTesting\finalAnalysisReport.txt文件中。


对于每个统计测试,都会产生一组P-value值(对应于一组随机数序列)。对于固定的测试阈值,预计一定百分比的P-value值表示序列测试不通过。例如,如果将测试阈值设置为0.01(即α= 0.01),则预计大约1%的序列不满足测试要求。当P-value值≥α时,测试序列通过NIST随机数统计检验,否则测试序列不满足NIST随机数测试要求。

对于每个统计测试,相应地计算和分析通过的序列的比例。对于单项测试的测试结果,可以进入至相应测试的文件夹中查看。例如频率测试的结果,可以进入sts-2.1.2\experiments\AlgorithmTesting\BlockFrequency\stats.txt文件中查看。当P-value值大于等于0.01时,左侧会有SUCCESS提示。当P-value值小于0.01时,左侧会有FAILURE提示。


汇总的测试报告可以进入sts-2.1.2\experiments\AlgorithmTesting\finalAnalysisReport.txt文件中查看。

如果某项测试的P-value值偏低,在该测试项的P-value值右边会有*号的提示。


如果某测试项通过随机数检验的数据流比例偏低,在该测试项的PROPORTION右边会有*号的提示。


由于测试序列具有随机性,且不同的测试序列和测试参数将生成不同的测试报告,建议生成多组测试序列进行随机数检验。


五、附录

下图为使用GR5515芯片的TRNG模块生成随机数序列进行NIST SP 800-22随机数测试的汇总测试报告。

------------------------------------------------------------------------------

RESULTS FOR THE UNIFORMITY OF P-VALUES AND THE PROPORTION OF PASSING SEQUENCES

------------------------------------------------------------------------------

generator is <GR5515_test.txt>

------------------------------------------------------------------------------

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 P-VALUE PROPORTION STATISTICAL TEST

------------------------------------------------------------------------------

4 2 2 1 1 0 4 2 2 2 0.637119 19/20 Frequency

1 2 1 2 3 2 3 2 3 1 0.964295 19/20 BlockFrequency

4 1 1 3 3 1 1 1 2 3 0.739918 19/20 CumulativeSums

4 1 2 0 2 4 3 0 0 4 0.162606 18/20 CumulativeSums

5 0 0 4 1 4 1 2 1 2 0.122325 19/20 Runs

4 2 2 5 1 2 1 1 0 2 0.350485 19/20 LongestRun

4 2 1 1 0 2 5 2 1 2 0.350485 20/20 Rank

4 1 2 2 1 3 2 1 3 1 0.834308 18/20 FFT

2 1 3 4 3 2 1 3 1 0 0.637119 19/20 NonOverlappingTemplate

3 1 4 0 5 2 1 1 0 3 0.162606 19/20 NonOverlappingTemplate

2 3 3 2 1 3 2 1 2 1 0.964295 19/20 NonOverlappingTemplate

2 2 1 0 4 1 1 4 1 4 0.350485 20/20 NonOverlappingTemplate

5 0 3 4 1 1 1 1 2 2 0.275709 19/20 NonOverlappingTemplate

1 4 0 5 5 1 0 1 2 1 0.048716 19/20 NonOverlappingTemplate

3 1 2 0 1 3 2 2 2 4 0.739918 18/20 NonOverlappingTemplate

2 3 2 1 2 2 2 1 2 3 0.991468 20/20 NonOverlappingTemplate

1 1 3 0 3 3 2 2 2 3 0.834308 19/20 NonOverlappingTemplate

3 2 2 1 3 1 3 0 2 3 0.834308 19/20 NonOverlappingTemplate

1 4 1 1 3 1 1 4 1 3 0.534146 19/20 NonOverlappingTemplate

5 1 1 2 1 1 1 1 4 3 0.350485 19/20 NonOverlappingTemplate

2 3 3 2 1 1 1 4 3 0 0.637119 19/20 NonOverlappingTemplate

2 1 1 4 2 0 3 1 3 3 0.637119 19/20 NonOverlappingTemplate

0 3 2 1 4 2 3 0 3 2 0.534146 20/20 NonOverlappingTemplate

1 3 1 0 4 4 1 1 2 3 0.437274 20/20 NonOverlappingTemplate

3 3 0 5 0 2 3 0 3 1 0.162606 18/20 NonOverlappingTemplate

3 1 1 1 2 1 1 4 4 2 0.637119 20/20 NonOverlappingTemplate

4 6 0 1 2 1 0 2 1 3 0.066882 20/20 NonOverlappingTemplate

1 0 2 3 4 2 1 5 2 0 0.213309 19/20 NonOverlappingTemplate

3 0 1 2 3 2 3 3 1 2 0.834308 18/20 NonOverlappingTemplate

1 2 1 4 1 4 2 1 2 2 0.739918 19/20 NonOverlappingTemplate

4 2 3 1 2 0 3 2 2 1 0.739918 19/20 NonOverlappingTemplate

1 1 1 3 3 4 2 1 1 3 0.739918 19/20 NonOverlappingTemplate

3 2 2 0 2 2 2 4 1 2 0.834308 18/20 NonOverlappingTemplate

1 0 2 2 1 4 1 2 1 6 0.122325 19/20 NonOverlappingTemplate

1 4 1 2 1 3 2 1 4 1 0.637119 20/20 NonOverlappingTemplate

2 5 0 3 2 1 0 2 0 5 0.066882 20/20 NonOverlappingTemplate

3 2 0 1 2 2 3 1 3 3 0.834308 19/20 NonOverlappingTemplate

3 4 2 0 0 0 2 3 2 4 0.275709 19/20 NonOverlappingTemplate

2 2 3 1 2 2 2 1 2 3 0.991468 20/20 NonOverlappingTemplate

2 1 2 2 2 4 2 1 3 1 0.911413 19/20 NonOverlappingTemplate

3 2 1 1 2 2 1 4 2 2 0.911413 19/20 NonOverlappingTemplate

3 2 1 2 0 1 2 3 4 2 0.739918 20/20 NonOverlappingTemplate

3 0 4 1 0 5 2 0 2 3 0.122325 18/20 NonOverlappingTemplate

3 5 1 4 1 1 3 2 0 0 0.162606 19/20 NonOverlappingTemplate

1 0 2 1 2 5 4 3 0 2 0.213309 20/20 NonOverlappingTemplate

2 1 4 3 1 2 2 2 0 3 0.739918 20/20 NonOverlappingTemplate

2 0 0 3 6 1 1 2 2 3 0.122325 19/20 NonOverlappingTemplate

0 3 0 2 3 2 2 4 2 2 0.637119 20/20 NonOverlappingTemplate

4 4 3 1 1 2 1 1 1 2 0.637119 19/20 NonOverlappingTemplate

3 3 1 1 2 4 2 0 4 0 0.350485 19/20 NonOverlappingTemplate

2 2 4 1 3 1 2 3 1 1 0.834308 20/20 NonOverlappingTemplate

2 7 2 2 2 1 1 1 1 1 0.090936 19/20 NonOverlappingTemplate

2 3 2 2 3 3 2 3 0 0 0.739918 19/20 NonOverlappingTemplate

4 2 1 3 2 0 2 1 2 3 0.739918 19/20 NonOverlappingTemplate

4 2 0 3 1 0 4 2 2 2 0.437274 19/20 NonOverlappingTemplate

3 1 2 4 2 2 1 2 2 1 0.911413 19/20 NonOverlappingTemplate

3 1 1 5 2 2 1 4 1 0 0.275709 20/20 NonOverlappingTemplate

5 3 2 2 1 1 1 2 2 1 0.637119 19/20 NonOverlappingTemplate

3 1 0 4 2 1 2 1 5 1 0.275709 20/20 NonOverlappingTemplate

5 1 0 3 3 3 0 0 2 3 0.162606 19/20 NonOverlappingTemplate

1 3 2 4 1 2 2 1 2 2 0.911413 19/20 NonOverlappingTemplate

2 0 2 0 4 2 0 3 4 3 0.275709 20/20 NonOverlappingTemplate

4 2 0 2 3 2 4 1 0 2 0.437274 18/20 NonOverlappingTemplate

5 2 2 3 1 2 0 0 5 0 0.066882 19/20 NonOverlappingTemplate

4 0 3 3 2 3 1 2 0 2 0.534146 20/20 NonOverlappingTemplate

2 2 1 1 2 3 2 2 4 1 0.911413 19/20 NonOverlappingTemplate

2 3 2 1 1 4 3 3 0 1 0.637119 19/20 NonOverlappingTemplate

2 1 2 3 2 0 4 1 3 2 0.739918 19/20 NonOverlappingTemplate

2 4 2 1 1 2 2 0 3 3 0.739918 18/20 NonOverlappingTemplate

3 2 2 0 0 3 3 1 1 5 0.275709 20/20 NonOverlappingTemplate

1 1 0 1 3 1 5 7 1 0 0.004301 19/20 NonOverlappingTemplate

1 4 2 2 2 3 3 1 1 1 0.834308 19/20 NonOverlappingTemplate

4 0 1 2 0 3 4 2 2 2 0.437274 19/20 NonOverlappingTemplate

1 2 1 3 3 1 4 1 3 1 0.739918 19/20 NonOverlappingTemplate

2 2 4 1 1 2 3 3 1 1 0.834308 18/20 NonOverlappingTemplate

3 3 3 2 1 0 3 1 3 1 0.739918 19/20 NonOverlappingTemplate

2 0 3 2 1 3 3 4 1 1 0.637119 20/20 NonOverlappingTemplate

3 2 1 1 1 2 1 4 5 0 0.275709 18/20 NonOverlappingTemplate

5 3 1 2 1 1 2 1 2 2 0.637119 19/20 NonOverlappingTemplate

3 3 2 1 5 1 3 0 1 1 0.350485 18/20 NonOverlappingTemplate

3 3 3 2 1 1 0 5 1 1 0.350485 20/20 NonOverlappingTemplate

5 1 2 3 1 3 1 3 0 1 0.350485 19/20 NonOverlappingTemplate

2 1 3 4 3 2 1 3 1 0 0.637119 19/20 NonOverlappingTemplate

2 4 4 1 1 3 2 0 1 2 0.534146 19/20 NonOverlappingTemplate

3 1 3 1 5 0 1 1 2 3 0.350485 19/20 NonOverlappingTemplate

4 1 0 1 2 4 2 3 2 1 0.534146 20/20 NonOverlappingTemplate

3 2 0 3 3 2 1 3 3 0 0.637119 19/20 NonOverlappingTemplate

4 3 4 4 0 3 0 0 2 0 0.090936 18/20 NonOverlappingTemplate

1 0 4 4 2 0 4 1 1 3 0.213309 19/20 NonOverlappingTemplate

1 2 2 2 3 2 0 3 3 2 0.911413 20/20 NonOverlappingTemplate

1 2 3 1 2 1 2 3 4 1 0.834308 20/20 NonOverlappingTemplate

4 2 3 3 2 2 1 0 2 1 0.739918 19/20 NonOverlappingTemplate

3 1 3 2 1 0 2 0 3 5 0.275709 19/20 NonOverlappingTemplate

3 2 4 3 2 1 3 1 0 1 0.637119 19/20 NonOverlappingTemplate

4 2 1 2 0 3 2 2 3 1 0.739918 19/20 NonOverlappingTemplate

2 4 2 0 0 1 4 2 2 3 0.437274 19/20 NonOverlappingTemplate

1 2 5 1 3 3 3 1 1 0 0.350485 19/20 NonOverlappingTemplate

1 2 3 2 1 4 2 2 1 2 0.911413 20/20 NonOverlappingTemplate

4 3 2 3 2 1 2 0 1 2 0.739918 19/20 NonOverlappingTemplate

4 2 3 4 1 4 1 0 1 0 0.213309 20/20 NonOverlappingTemplate

3 5 2 1 2 1 1 3 0 2 0.437274 19/20 NonOverlappingTemplate

1 2 1 5 0 4 1 3 1 2 0.275709 20/20 NonOverlappingTemplate

3 3 0 0 0 3 2 1 3 5 0.162606 19/20 NonOverlappingTemplate

3 1 2 4 0 3 3 0 4 0 0.213309 19/20 NonOverlappingTemplate

2 2 1 1 1 4 2 2 1 4 0.739918 19/20 NonOverlappingTemplate

3 0 3 0 2 1 1 6 2 2 0.122325 19/20 NonOverlappingTemplate

5 0 2 3 2 2 2 2 1 1 0.534146 19/20 NonOverlappingTemplate

2 4 3 5 0 2 1 2 1 0 0.213309 19/20 NonOverlappingTemplate

5 1 1 1 2 1 3 1 2 3 0.534146 19/20 NonOverlappingTemplate

3 1 2 4 1 2 4 1 0 2 0.534146 19/20 NonOverlappingTemplate

2 1 3 4 1 3 2 1 3 0 0.637119 20/20 NonOverlappingTemplate

2 1 2 4 3 4 0 1 3 0 0.350485 19/20 NonOverlappingTemplate

3 1 2 1 3 3 1 1 3 2 0.911413 19/20 NonOverlappingTemplate

5 4 2 1 2 0 3 1 2 0 0.213309 18/20 NonOverlappingTemplate

1 4 2 1 1 2 3 2 1 3 0.834308 19/20 NonOverlappingTemplate

2 4 2 1 2 3 2 1 2 1 0.911413 20/20 NonOverlappingTemplate

1 2 5 3 0 3 1 1 1 3 0.350485 19/20 NonOverlappingTemplate

2 3 1 1 2 0 4 2 2 3 0.739918 19/20 NonOverlappingTemplate

1 4 2 2 1 2 2 1 3 2 0.911413 19/20 NonOverlappingTemplate

1 3 3 0 2 1 4 3 0 3 0.437274 20/20 NonOverlappingTemplate

4 2 3 2 0 2 0 3 3 1 0.534146 19/20 NonOverlappingTemplate

6 2 3 0 2 1 2 0 3 1 0.122325 20/20 NonOverlappingTemplate

3 1 4 2 2 0 2 1 3 2 0.739918 18/20 NonOverlappingTemplate

3 3 2 0 3 0 1 5 1 2 0.275709 20/20 NonOverlappingTemplate

3 1 1 1 3 2 4 2 3 0 0.637119 19/20 NonOverlappingTemplate

3 3 2 2 0 4 1 0 2 3 0.534146 19/20 NonOverlappingTemplate

2 3 1 2 1 0 2 3 2 4 0.739918 19/20 NonOverlappingTemplate

2 3 1 3 1 3 2 1 2 2 0.964295 19/20 NonOverlappingTemplate

3 1 2 4 2 1 3 0 1 3 0.637119 19/20 NonOverlappingTemplate

3 3 1 2 2 2 0 2 2 3 0.911413 20/20 NonOverlappingTemplate

3 1 2 4 2 1 0 4 1 2 0.534146 19/20 NonOverlappingTemplate

3 3 1 2 1 3 2 2 2 1 0.964295 18/20 NonOverlappingTemplate

5 0 3 2 3 2 0 2 2 1 0.350485 19/20 NonOverlappingTemplate

3 3 0 1 1 3 1 4 0 4 0.275709 19/20 NonOverlappingTemplate

4 4 3 1 1 2 0 3 1 1 0.437274 19/20 NonOverlappingTemplate

2 3 2 1 0 2 1 3 3 3 0.834308 19/20 NonOverlappingTemplate

2 4 3 1 1 3 2 1 2 1 0.834308 19/20 NonOverlappingTemplate

3 1 6 0 0 1 3 2 3 1 0.090936 18/20 NonOverlappingTemplate

2 2 3 1 3 3 1 1 3 1 0.911413 18/20 NonOverlappingTemplate

5 1 1 3 1 1 2 1 3 2 0.534146 20/20 NonOverlappingTemplate

2 2 1 2 2 1 1 3 3 3 0.964295 19/20 NonOverlappingTemplate

2 3 0 1 1 3 3 1 2 4 0.637119 19/20 NonOverlappingTemplate

2 1 2 3 1 1 2 3 3 2 0.964295 19/20 NonOverlappingTemplate

4 2 1 4 2 2 1 1 2 1 0.739918 19/20 NonOverlappingTemplate

1 1 2 6 3 1 2 1 1 2 0.275709 20/20 NonOverlappingTemplate

4 3 1 2 3 2 1 1 0 3 0.637119 19/20 NonOverlappingTemplate

3 1 3 0 4 2 0 0 3 4 0.213309 19/20 NonOverlappingTemplate

4 3 4 1 3 1 1 2 1 0 0.437274 19/20 NonOverlappingTemplate

3 2 0 5 3 1 1 3 1 1 0.350485 19/20 NonOverlappingTemplate

2 2 2 3 2 0 2 2 4 1 0.834308 19/20 NonOverlappingTemplate

2 0 0 3 1 4 3 3 2 2 0.534146 18/20 NonOverlappingTemplate

2 1 1 1 2 4 3 3 3 0 0.637119 20/20 NonOverlappingTemplate

2 1 0 1 3 3 2 2 4 2 0.739918 20/20 NonOverlappingTemplate

4 2 1 2 1 2 2 1 1 4 0.739918 18/20 NonOverlappingTemplate

3 3 2 0 1 1 1 4 3 2 0.637119 19/20 NonOverlappingTemplate

5 1 2 3 1 3 1 3 0 1 0.350485 19/20 NonOverlappingTemplate

1 1 1 1 2 7 1 2 3 1 0.066882 20/20 OverlappingTemplate

2 3 1 3 3 1 2 2 3 0 0.834308 19/20 Universal

3 4 1 0 2 1 5 1 3 0 0.162606 19/20 ApproximateEntropy

2 2 0 0 1 0 0 0 2 3 0.213309 10/10 RandomExcursions

0 0 2 3 1 0 1 1 2 0 0.350485 10/10 RandomExcursions

2 0 3 1 0 3 0 0 0 1 0.122325 10/10 RandomExcursions

0 1 0 2 2 1 2 0 2 0 0.534146 10/10 RandomExcursions

1 1 1 1 0 1 1 0 3 1 0.739918 10/10 RandomExcursions

1 1 0 0 2 1 2 1 1 1 0.911413 10/10 RandomExcursions

0 4 1 1 0 0 2 1 1 0 0.122325 10/10 RandomExcursions

1 0 3 2 1 0 2 1 0 0 0.350485 10/10 RandomExcursions

0 0 1 1 2 0 2 2 1 1 0.739918 10/10 RandomExcursionsVariant

0 1 2 0 0 0 2 1 2 2 0.534146 10/10 RandomExcursionsVariant

0 2 1 0 0 0 1 2 2 2 0.534146 10/10 RandomExcursionsVariant

0 1 1 1 1 1 0 0 2 3 0.534146 10/10 RandomExcursionsVariant

0 1 3 1 0 0 1 0 1 3 0.213309 10/10 RandomExcursionsVariant

1 2 0 1 1 0 2 0 2 1 0.739918 10/10 RandomExcursionsVariant

2 1 0 2 0 0 2 1 1 1 0.739918 10/10 RandomExcursionsVariant

1 1 1 0 1 2 1 0 2 1 0.911413 10/10 RandomExcursionsVariant

1 1 0 0 1 2 0 2 1 2 0.739918 10/10 RandomExcursionsVariant

0 1 1 1 0 0 2 2 1 2 0.739918 10/10 RandomExcursionsVariant

1 0 0 0 2 1 1 4 1 0 0.122325 10/10 RandomExcursionsVariant

0 1 1 3 0 0 1 0 2 2 0.350485 10/10 RandomExcursionsVariant

0 1 1 2 2 1 1 0 1 1 0.911413 10/10 RandomExcursionsVariant

0 0 2 2 2 1 0 0 1 2 0.534146 10/10 RandomExcursionsVariant

0 3 1 1 0 1 1 1 0 2 0.534146 10/10 RandomExcursionsVariant

2 1 2 0 2 1 1 0 0 1 0.739918 10/10 RandomExcursionsVariant

1 2 2 2 1 1 1 0 0 0 0.739918 10/10 RandomExcursionsVariant

0 4 1 1 4 0 0 0 0 0 0.004301 10/10 RandomExcursionsVariant

2 2 2 2 1 3 4 0 3 1 0.739918 19/20 Serial

2 3 3 0 2 2 3 1 2 2 0.911413 19/20 Serial

2 1 3 3 2 0 2 2 1 4 0.739918 19/20 LinearComplexity

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The minimum pass rate for each statistical test with the exception of therandom excursion (variant) test is approximately = 18 for asample size = 20 binary sequences.

The minimum pass rate for the random excursion (variant) testis approximately = 8 for a sample size = 10 binary sequences.

For further guidelines construct a probability table using the MAPLE programprovided in the addendum section of the documentation.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1收藏

3赞成

您的评论
我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注