随机性检测工具 rddetector 使用说明
概述
随机数随机性检测检测方法依据《GM/T 0005-2021 随机性检测规范》中提及的15种检测方法,检测完成后,将会生成csv
格式检测报告。
待检测数据规模将由程序根据文件大小自动推断,支持单文件(后缀为.bin
)规模:
- 20 000 bit
- 1 000 000 bit
- 100 000 000 bit
使用手册
工具使用说明:
randomness 随机性检测 rddetector 使用说明
rddetector -i 待检测数据目录 [-o 生成报告位置]
示例: rddetector -i /data/target/ -o RandomnessTestReport.csv
-i string
待检测随机数文件位置
-o string
待检测随机数文件位置 (default "RandomnessTestReport.csv")
-n int
工作线程数 (default CPU核心数)
注意:在离散傅里叶检测 10^8 bit 规模数据检测为了加速计算 单次检测 需要消耗 1024MB以上 内存,请控制 n
数量防止发生内存溢出(OOM)!
运行效果如下:
检测报告CSV文件如下所示:
CSV具有简单的数据结构,各项之间使用,
(英文逗号)分割,您可以通过程序通过简单的处理提取或分析,也可以使用WPS、Excel等工具打开进行分析。
编译
切换到tools/rddetector
目录内运行,本项目并无三方依赖,直接运行编译命令即可:
go build .
检测规格
rddetector 检测工具只进行检测,不对结果进行判断,判断逻辑请参考《GM/T 0005-2021 随机性检测规范》 6 随机性检测判定。
检测参数:
- 显著水平(P):
α = 0.01
- 样本均匀性分布检测的显著性水平(Q):
ατ = 0.0001
- 子区间数量:
k = 10
样本通过检测应同时满足以下条件:
- 显著水平:
P >= α
(α = 0.01
)
- 样本均匀性分布检测的显著性水平:
Q >= ατ
(ατ = 0.0001
)
《GM/T 0005-2021 随机性检测规范》附录 A 样本长度及检测设置中提及的检测规格如下。
20 000 比特检测规格
长度为20 000
比特的样本按下表的随机性检测方法和检测参数进行随机性统计检测。
序号 |
检测项目 |
参数 |
1 |
单比特频数检测 |
- |
2 |
块内频数检测 |
m = 1 000 |
3 |
扑克检测 |
m = 4,8 |
4 |
重叠子序列检测 |
m = 3,5 |
5 |
游程总数检测 |
- |
6 |
游程分布检测 |
- |
7 |
块内最大游程检测(“1”、“0”) |
m = 128 |
8 |
二元推导检测 |
k = 3,7 |
9 |
自相关检测 |
d = 2,8,16 |
10 |
累加和检测(前向、后向) |
- |
11 |
近似熵检测 |
m = 2,5 |
12 |
离散傅里叶检测 |
- |
1 000 000 比特检测规格
长度为1 000 000
比特的样本按下表的随机性检测方法和检测参数进行随机性统计检测。
序号 |
检测项目 |
参数 |
1 |
单比特频数检测 |
- |
2 |
块内频数检测 |
m = 10 000 |
3 |
扑克检测 |
m = 4,8 |
4 |
重叠子序列检测 |
m = 3,5 |
5 |
游程总数检测 |
- |
6 |
游程分布检测 |
- |
7 |
块内最大游程检测(“1”、“0”) |
m = 10 000 |
8 |
二元推导检测 |
k = 3,7 |
9 |
自相关检测 |
d = 1,2,8,16 |
10 |
矩阵秩检测 |
- |
11 |
累加和检测(前向、后向) |
- |
12 |
近似熵检测 |
m = 2,5 |
13 |
线型复杂度检测 |
m = 500,1 000 |
14 |
Maurer通用统计检测 |
L=7,Q=1 280 |
15 |
离散傅里叶检测 |
- |
100 000 000 比特检测规格
长度为100 000 000
比特的样本按下表的随机性检测方法和检测参数进行随机性统计检测。
序号 |
检测项目 |
参数 |
1 |
单比特频数检测 |
- |
2 |
块内频数检测 |
m = 1000 000 |
3 |
扑克检测 |
m = 4,8 |
4 |
重叠子序列检测 |
m = 3,5 |
5 |
游程总数检测 |
- |
6 |
游程分布检测 |
- |
7 |
块内最大游程检测(“1”、“0”) |
m = 10 000 |
8 |
二元推导检测 |
k = 3,7,15 |
9 |
自相关检测 |
d = 1,2,8,16,32 |
10 |
矩阵秩检测 |
- |
11 |
累加和检测(前向、后向) |
- |
12 |
近似熵检测 |
m = 5,7 |
13 |
线型复杂度检测 |
m = 5 000 |
14 |
Maurer通用统计检测 |
L=7,Q=1 280 |
15 |
离散傅里叶检测 |
- |