NIST随机数测试:详解重叠模块匹配检验与统计分析

需积分: 29 459 下载量 169 浏览量 更新于2024-07-09 收藏 1.03MB PDF 举报
重叠模块匹配检验是电子工程师在设计和验证电子设备中常用的一种关键技术,特别是在处理随机或伪随机数据流时。这项检验主要应用于NIST(美国国家标准与技术研究所)的随机数测试标准,旨在检测序列中是否存在预设模块模式,以确保其随机性和均匀性。 2.8.1 检验目的 重叠模块匹配检验的目的是检查数据流中是否存在预先定义的模块(B,长度为m),尤其是在数据流中有重复或相邻模块的情况下。与非重叠模块匹配检验相比,它在发现目标模块后,窗口只向后移动一位,然后继续搜索,这增加了对连续模式的敏感性。 2.8.2 函数调用 `OverlappingTemplateMatching(m, n)` 函数是实现这一功能的核心,其中: - `m` 代表模块的长度,通常对应于游程的长度。 - `n` 是数据串的长度,即要检验的整体序列长度。 - 其他参数包括: - `ε`:一个随机或伪随机码序列,由测试代码提供,长度从1到n。 - `B`:预先定义好的m位模块,存储在非周期模式库中。 - `K`:自由度的数量,通常设置为5,用于调整检验的灵活性。 - `M`:子块的长度,通常在测试编码中固定为1032。 - `N`:独立子块的数量,一般设置为968,用于分割数据进行并行检验。 2.8.3 检验统计量及其标准分布 检验统计量衡量的是实际检测到的模块数量与预期模块数量的匹配程度。其标准分布是基于理论上的随机性预期的,即如果数据是随机的,统计量应该接近零。当序列中存在非随机模式时,这个统计量会偏离标准分布。 2.8.4 检验过程 步骤包括: 1. 将输入数据分为N个长度为M的独立子块。 2. 对每个子块应用重叠模块匹配算法。 3. 计算每个子块中匹配到的模块数量,汇总得到总匹配数。 4. 通过比较实际匹配数与理论预期,评估数据的随机性。 NIST随机数测试提供了全面的随机性测试手段,包括重叠模块匹配检验在内,以确保生成的序列符合高质量的随机性标准。在实际应用中,如果所有16种测试手段均显示通过,那么可以认为生成的数字序列具有足够的随机性和均匀性,适合用于安全性和保密性的关键应用。