g-g-sakura/AnotherEntropyEstimationTool

GitHub: g-g-sakura/AnotherEntropyEstimationTool

一个基于NIST SP800-90B标准的最小熵估计工具,专注于非IID数据并提供可追溯的合规报告。

Stars: 2 | Forks: 0

# 另一个具有扩展功能的熵估计工具 支持基于 NIST SP 800-90B 非独立同分布(non-IID)路径的熵估计。 已起草了针对 NIST SP 800-90B 的修正建议列表,以便能够以可追溯的方式开发用于声明符合性的熵估计工具,如 [/documentation/ProposedListOfCorrections_SP800-90B.pdf]( [-w ] [-x] [--MSb|--LSb] [--useLCP] ``` - ```-f``` 指定来自熵源的采集数据的文件名。 文件路径必须是二进制文件的相对路径,该文件至少需要包含一百万个样本,如 [NIST SP 800-90B](https://doi.org/10.6028/NIST.SP.800-90B) 所规定。 - ```-w``` 指定每个样本的比特数。 取值应在 1 到 8 之间(包含 1 和 8)。 默认值为 8。 - ```-x``` 请求生成熵估计报告的 XeLaTeX 源文件,文件位于与指定的采集数据相同的文件夹中(参见 ```-f```)。 - ```--MSb``` 指定从样本到位串的转换采用最高有效位优先方式(**默认**)。 - ```--LSb``` 指定从样本到位串的转换采用最低有效位优先方式。 - ```--useLCP``` 请求使用最长公共前缀(LCP)来计算 t-Tuple 估计和 LRS 估计。 # 熵估计结果示例
上传到 usnistgov / SP800-90B_EntropyAssessment 的输入数据文件 分析环境 1
x64 INTEL
分析环境 2
x64 AMD
truerand_8bit.bin entropy_report_truerand_8bit_x64_INTEL.pdf entropy_report_truerand_8bit_x64_AMD.pdf
truerand_4bit.bin entropy_report_truerand_4bit_x64_INTEL.pdf entropy_report_truerand_4bit_x64_AMD.pdf
truerand_1bit.bin entropy_report_truerand_1bit_x64_INTEL.pdf entropy_report_truerand_1bit_x64_AMD.pdf
ringOsc-nist.bin entropy_report_ringOsc-nist_x64_INTEL.pdf entropy_report_ringOsc-nist_x64_AMD.pdf
rand8_short.bin entropy_report_rand8_short_x64_INTEL.pdf entropy_report_rand8_short_x64_AMD.pdf
rand4_short.bin entropy_report_rand4_short_x64_INTEL.pdf entropy_report_rand4_short_x64_AMD.pdf
rand1_short.bin entropy_report_rand1_short_x64_INTEL.pdf entropy_report_rand1_short_x64_AMD.pdf
normal.bin entropy_report_normal_x64_INTEL.pdf entropy_report_normal_x64_AMD.pdf
data.pi.bin entropy_report_data.pi_x64_INTEL.pdf entropy_report_data.pi_x64_AMD.pdf
biased-random-bytes.bin entropy_report_biased-random-bytes_x64_INTEL.pdf entropy_report_biased-random-bytes_x64_AMD.pdf
biased-random-bits.bin entropy_report_biased-random-bits_x64_INTEL.pdf entropy_report_biased-random-bits_x64_AMD.pdf
# 运行时环境系统要求 - 操作系统:64位 Windows 10 或更新版本 - 内存:16GB 或更多主内存 - TeX Live(可选,用于编译自动生成的 XeLaTeX 源文件) # 开发环境系统要求 ## 编译器 Visual Studio 2019 或更新版本,或 Intel oneAPI 编译器 ## 必需库 - [Boost C++ 库](https://www.boost.org/) - Boost.Dynamic bitset,用于存储可变长度的位串。 - Boost.Filesystem,用于操作文件路径。 - Boost.Math,用于求根和计算特殊函数。 - Boost.Multi-Index,用于处理 t-tuples。 - Boost.Posix Time,用于记录性能信息。 - Boost.Program Options,用于解析命令行选项。 - [Blitz++ 库](https://github.com/blitzpp/blitz) - 用于数组索引、引用子数组以及执行数组规约操作(例如,均值、求和)。
标签:C++, ISO/IEC 17025, meg, NIST SP800-90B, 信息安全, 可追溯性, 图形化, 密码学安全, 密码学评估, 工具开发, 数据擦除, 标准合规, 熵估计, 自动化报告, 随机数生成, 随机比特生成, 非IID分析