Crates.io | opengm_rts |
lib.rs | opengm_rts |
version | |
source | src |
created_at | 2024-06-19 06:10:13.285129 |
updated_at | 2024-11-07 07:04:56.724627 |
description | GM/T 0005-2021 randomness test suits written in Rust. |
homepage | |
repository | https://github.com/opengm-libs/opengm_rts |
max_upload_size | |
id | 1276556 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
opengm_rts is the fast randomness test suits following the GM/T 0005-2021 Randomness test specification.
A lightweight command line executable program is provided to test for 1000 samples with one million bits each.
opengm_rts是随机数检测函数库, 遵循GM/T 0005-2021 随机性检测规范.
包括15个随机性测试函数以及命令行程序,方便对1000组1百万比特的样本进行随机性测试, 应用程序也可通过定制api调用实现开机检测和周期检测.
图形界面程序见https://github.com/opengm-libs/opengm_rts_gui
Build the command line executable:
cargo build --bin opengm_rts --release
The command line executable program:
$ ./opengm_rts <dir/to/samples>
1000组,每组100万比特测试数据, Macbook M1 Max上多线程5秒内完成.
1000组,每组1亿比特测试数据, Macbook M1 Max上多线程716秒完成.
对e的前100万比特检测结果.
参数 | p-value | q-value | |
---|---|---|---|
Frequency | - | 0.953748 | 0.476874 |
BlockFrequency | 10000 | 0.676226 | 0.676226 |
Poker | 8 | 0.023946 | 0.023946 |
Serial1 | 5 | 0.225782 | 0.225782 |
Serial2 | 5 | 0.057499 | 0.057499 |
Runs | - | 0.561916 | 0.719041 |
RunsDistribution | - | 0.772411 | 0.772411 |
LongestRun0 | - | 0.437860 | 0.437860 |
LongestRun1 | - | 0.718354 | 0.718354 |
BinaryDerivative | 7 | 0.760365 | 0.619817 |
Autocorrelation | 16 | 0.912408 | 0.543795 |
Rank | - | 0.307543 | 0.307543 |
CumulativeSumsBackward | - | 0.724265 | 0.724265 |
CumulativeSumsForward | - | 0.669886 | 0.669886 |
ApproximateEntropy | 5 | 0.361687 | 0.361687 |
LinearComplexity | 1000 | 0.844720 | 0.844720 |
Universal | - | 0.282567 | 0.141283 |
DiscreteFourier | - | 0.851010 | 0.425505 |
对 sm3(0x00000001) || sm3(0x00000002) || ... || sm3(0x0005f5e1)的检测结果.
注: 采用大端表示,即0x00000001表示为4个字节: [0x00, 0x00, 0x00, 0x01].
参数 | p-value | q-value | |
---|---|---|---|
Frequency | - | 0.369291 | 0.184645 |
BlockFrequency | 100000 | 0.100391 | 0.100391 |
Poker | 4 | 0.279315 | 0.279315 |
Poker | 8 | 0.921122 | 0.921122 |
Serial1 | 3 | 0.356591 | 0.356591 |
Serial1 | 5 | 0.184023 | 0.184023 |
Serial1 | 7 | 0.177479 | 0.177479 |
Serial2 | 3 | 0.361706 | 0.361706 |
Serial2 | 5 | 0.108221 | 0.108221 |
Serial2 | 7 | 0.331672 | 0.331672 |
Runs | - | 0.214118 | 0.892940 |
RunsDistribution | - | 0.136170 | 0.136170 |
LongestRun0 | 10000 | 0.951972 | 0.951972 |
LongestRun1 | 10000 | 0.503703 | 0.503703 |
BinaryDerivative | 3 | 0.975508 | 0.487754 |
BinaryDerivative | 7 | 0.606901 | 0.696549 |
BinaryDerivative | 15 | 0.899019 | 0.449509 |
Autocorrelation | 1 | 0.214051 | 0.892974 |
Autocorrelation | 2 | 0.298153 | 0.149076 |
Autocorrelation | 8 | 0.419550 | 0.209775 |
Autocorrelation | 16 | 0.118146 | 0.059073 |
Autocorrelation | 32 | 0.116368 | 0.941815 |
Rank | - | 0.900557 | 0.900557 |
CumulativeSumsBackward | - | 0.715149 | 0.715149 |
CumulativeSumsForward | - | 0.310534 | 0.310534 |
ApproximateEntropy | 5 | 0.172294 | 0.172294 |
ApproximateEntropy | 7 | 0.243197 | 0.243197 |
LinearComplexity | 5000 | 0.128996 | 0.128996 |
Universal | - | 0.589902 | 0.294951 |
DiscreteFourier | - | 0.838827 | 0.580586 |
OpenGM is the (ongoing) open-source project for the GM/T standards.