【经验】如何使用NIST SP 800-22随机数测试集?

2022-07-12 汇顶科技
低功耗蓝牙模块,GR551X,汇顶科技 低功耗蓝牙模块,GR551X,汇顶科技 低功耗蓝牙模块,GR551X,汇顶科技 低功耗蓝牙模块,GR551X,汇顶科技

本文汇顶科技介绍了如何使用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随机数测试集进行了全面的介绍。可参考SP 800-22 Rev. 1a:A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications获取。


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官网上获取。可参考NIST SP 800-22: Download 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.

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


技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由咪猫转载自汇顶科技,原文标题为:NIST SP 800-22随机数测试指南,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】汇顶科技单模低功耗蓝牙系统级芯片GR551x_OpenHarmony开发——环境搭建篇

GR551x是汇顶科技推出的支持Bluetooth 5.1的单模低功耗蓝牙系统级(SoC)芯片,广泛应用于物联网(IoT)和智能穿戴设备领域。本文主要介绍如何在Ubuntu系统上一步一步搭建OpenHarmony软件开发环境,编译出可执行文件。

2022-08-10 -  设计经验

【经验】汇顶科技蓝牙SoC GR551X芯片内部PWM的功能使用说明

汇顶蓝牙SoC GR551X芯片内部有两个PWM模块,每个模块有三个独立的PWM输出:PWMA、PWMB、PWMC,在实际应用中可实现6路PWM输出,输出频率有两种,每三个PWM的频率是相同的。本文介绍GR551X芯片内部PWM的功能使用。

2021-07-03 -  设计经验

【经验】为实现GR551x晶体校准、固件下载、筛选不良片等功能,汇顶科技产测方案为硬件+PC端上位机提供详细指南

汇顶科技GR551x产测方案为硬件+PC端上位机整体解决方案,用以实现GR551x的晶体校准、固件下载、RSSI测试、筛选不良片等功能。怎么查看芯片在工厂时的产测结果: GRPLT软件的Log文件夹中保存待测板的产测log。

2022-08-02 -  设计经验

汇顶科技携手涂鸦智能打造基于GR551x系列低功耗蓝牙SoC的Smart Tag防丢器解决方案,可支持苹果生态

汇顶科技携手全球化IoT开发平台服务商涂鸦智能基于GR551x系列低功耗蓝牙SoC,共同打造了支持苹果生态的Smart Tag防丢器解决方案。支持多连接特性,只需简单配置即可在多个苹果设备间实现寻物功能。

2022-08-24 -  原厂动态

汇顶科技GR551x系列低功耗蓝牙SoC通过Apple Find My network accessory合规性验证

近日,汇顶科技GR551x系列低功耗蓝牙SoC成功通过Apple授权第三方测试机构的各项合规性验证,标志着该系列SoC已全面兼容Find My network accessory的最新规格和功能要求,将为Apple Find My生态终端产品引入性能、成本和开发效率三者兼顾的低功耗蓝牙参考应用方案。

2023-07-26 -  原厂动态

GR551X可靠性测试报告

型号- GR551X FAMILY,GR551X

2024-03-27  - 汇顶科技  - 测试报告  - Version: 1.3 查看更多版本

【应用】国产低功耗蓝牙5.1SoC GR551x系列用于血氧仪,内置两个PWM模块,Flash高达1M

在血氧仪的应用中,汇顶科技GR551x系列作为低功耗蓝牙5.1SoC,现有产品有双模蓝牙音频SoC芯片和超低功耗(BLE)蓝牙SoC芯片,除了考虑到蓝牙SoC的应用范围,选择低功耗蓝牙SoC还需考虑工作电流和睡眠电流以及应用的环境温度。

2023-04-18 -  应用方案

GR5515入门套件用户指南

描述- 本指南介绍了GR5515开发套件,包括硬件布局、电路图、硬件功能模块以及RF和电流测试。旨在帮助用户快速上手GR5515开发板,用于开发基于GR551x系列蓝牙5.1芯片的低功耗蓝牙产品和应用。指南涵盖了硬件概述、接口MCU、电源、Arduino Uno盾连接器、按钮和LED、LCD连接器、板载QSPI闪存、性能测试和常见问题解答等内容。

型号- GR551X,GR5515

2020-09-30  - 汇顶科技  - 用户指南  - Version 1.7

GR5XX应用日志应用笔记

型号- GR5XX,GR551X

2023-11-06  - 汇顶科技  - 应用笔记或设计指南  - Version: 3.2

【产品】1MB Flash,2M PHY,强大的驱屏能力,汇顶蓝牙SoC解决方案 | 视频

在2021年4年27日主控器件及存储专场|世强硬创新产品研讨会中,汇顶科技市场谢经理给大家带来汇顶超低功耗蓝牙5.1 SoC GR551x,Flash高达1M,RAM 256K,以及在智能穿戴,电子标签等市场的应用介绍。

2021-04-29 -  新产品

【经验】汇顶科技低能耗蓝牙SoC芯片GR551x系列在SDK1.7.0中如何使用CMSIS-DSP库

低能耗蓝牙SoC芯片GR551x系列,SDK1.7.0新增了对CMSIS-DSP的支持,本文汇顶科技介绍在SDK1.7.0中使用此DSP库的方法。本文主要分为以下三个部分,一是CMSIS-DSP简介;二是使用CMSIS-DSP的步骤;最后则是正弦数据生成实例。

2022-07-21 -  设计经验
2023-11-06  - 汇顶科技  - 应用笔记或设计指南  - Version: 3.1

GR551x BLE Stack用户指南

描述- 本指南详细介绍了GR551x低功耗蓝牙(BLE)协议栈的功能、概念和应用层与协议栈的交互流程。内容涵盖GAP(通用访问规范)、GATT(通用属性规范)、SM(安全管理)和L2CAP(逻辑链路控制和适配协议)等关键组件。指南提供了设备发现、连接建立、连接终止、设备参数配置等基础流程的详细说明,并附有代码示例以帮助开发者更好地理解和应用BLE协议栈。

型号- GR551X

2022-02-20  - 汇顶科技  - 用户指南  - 版本: 1.9 查看更多版本

GR551x低功耗蓝牙堆栈用户指南

描述- 本指南介绍了GR551x蓝牙低功耗(BLE)协议栈的层次结构和基本层功能,包括GAP、GATT、SM和L2CAP等层。指南详细阐述了应用如何通过SDK提供的API与协议栈交互,旨在帮助开发者高效地使用API开发BLE应用。指南还包括了代码示例,以帮助开发者更好地理解BLE协议栈的组成和功能。

型号- GR551X

2022-02-20  - 汇顶科技  - 用户指南  - Version: 1.9 查看更多版本
2023-11-06  - 汇顶科技  - 应用笔记或设计指南  - Version: 3.1
展开更多

电子商城

查看更多

品牌:G-NiceRF

品类:低功耗蓝牙模块

价格:¥26.8375

现货: 1,000

品牌:沃进科技

品类:无线模块

价格:

现货: 1,000

品牌:G-NiceRF

品类:低功耗蓝牙模块

价格:¥32.2050

现货: 1,000

品牌:信驰达

品类:低功耗蓝牙模组

价格:¥12.0000

现货: 10

品牌:FEASYCOM

品类:超低功耗蓝牙模块

价格:¥28.5720

现货: 10

品牌:FEASYCOM

品类:低功耗蓝牙模块

价格:¥17.1430

现货: 10

品牌:FEASYCOM

品类:低功耗蓝牙模块

价格:¥35.7150

现货: 5

品牌:FEASYCOM

品类:低功耗蓝牙模块

价格:¥35.7150

现货: 2

品牌:信驰达

品类:低功耗蓝牙模组

价格:

现货: 0

品牌:信驰达

品类:低功耗蓝牙模组

价格:

现货: 0

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥4.5000

现货:53,089

品牌:汇顶科技

品类:高精度多功能交互传感器

价格:¥2.3556

现货:2,987

品牌:汇顶科技

品类:NB-IoT系列芯片(SoC)

价格:¥9.4889

现货:2,800

品牌:汇顶科技

品类:高精度多合一传感器

价格:¥4.5334

现货:2,250

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥4.5889

现货:2,190

品牌:汇顶科技

品类:心率传感器

价格:¥3.7935

现货:1,439

品牌:汇顶科技

品类:NB-IoT系列芯片(SoC)

价格:¥10.0778

现货:1,312

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥5.1556

现货:1,153

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥6.8334

现货:991

品牌:汇顶科技

品类:高性能NB-IoT系统芯片(SoC)

价格:¥8.5778

现货:495

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

蓝牙射频及通信协议测试

根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。

实验室地址: 深圳 提交需求>

蓝牙资格认证(BQB)

提供蓝牙BLE芯片协议、蓝牙模块蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。

实验室地址: 深圳 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面