【Windows11下载NIST随机数测试包测试混沌系统生成的随机数性能】

一、下载NIST测试数据包

前往NIST官网link.
点击download直接下载压缩包。如果想了解测试的原理点击论文链接阅读即可。
点击Download下载

二、安装Cygwin终端

如果是Linux环境,则不需要下载这个,本文只根据自身经历提供Windows11系统上的实操过程。Linux可参考link

1.选择setup-x86_64.exe下载打开

cygwin下载

2.具体安装过程

具体的安装步骤可参考博客link,注意事项如下:

1.选择镜像地址那一步,直接选第一个即可,只是下载速度上的差异
2.在Devel分支下选择组件一定要加上make,不然后续要手动下载make压缩包,必要的组件如下图所示
组件勾选
3.在有些教程里由于版本原因,需要勾选的名称不一样,但都是一个意思;点击跳过选择版本号,源代码不必要勾选。
为方便打开,最好在最后一步选择添加桌面快捷方式

3.配置环境变量并使用make添加sts-2.1.2包(已下载)

配置环境变量

将Cygwin的根路径比如:D:\cygwinroot\bin添加到系统的环境变量中

安装

运行Cygwin,通过命令行进入该软件包中sts-2.1.2中包含 Makefile文件的文件夹,输入make命令,该软件就会安装了,按成之后会在文件夹中多一个文件,assess.exe可执行文件,有了意味着我们的软件就安装成功了,

三、进行随机数测试

1.matlab随机数生成

最近正在改良一个三维混沌系统,需要将生成的随机数序列转为二进制序列来测试其随机性的好坏。
使用matlab语句
fid = fopen('D:\sts-2.1.2\data\output.txt','wt'); fprintf(fid,'%g',normalized_sequence); fclose(fid);
将normalized_sequence(double类型的0/1矩阵)导出为txt文件存储在sts-2.1.2/data文件夹中。随机数的个数尽量大一些,验证的效果更好。

2.在Cygwin终端上测试

输入命令:./assess.exe 1000000(一般取大于10的6次方的数),出现操作选项
在这里插入图片描述
选择0-Input files,输入你的txt文件路径:User Prescribed Input File: D:\sts-2.1.2\data\output.txt
在这里插入图片描述
询问是否进行所有测试,选择1
在这里插入图片描述
输入0继续
在这里插入图片描述
上图的bitstreams非常重要,解释如下:

*在语句./assess.exe 1000000的这个1000000(记为a)是每个bitstream的数据量,我自己生成的数据量为10000,000(记为b),所以bitstreams a = b,不然会出现读入数据为0的错误。并且这里的bitstreams最好大于等于10。

Input File Format指的是数据类型,我选择0,ASCII码形式。

3.结果查看

结果在sts-2.1.2文件夹下的experiments/AlgorithmTesting中,finalAnalysisReport.txt存储总体的结果,每个单独的文件夹分别存储每个指标的结果。
我的结果如下:
在这里插入图片描述
根据P-value是否大于0.001来判定Success/Failure,显然我的序列在Run这项指标中出现问题,具体原因还需要后续分析。

任何问题可以联系510273374@qq.com

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NIST SP-800-90B是由美国国家标准与技术研究院(NIST)发布的一项测试标准,用于评估生成随机数序列的质量。该标准主要含四个测试方法:熵测试、比特偏倚测试、重叠测试和掩码测试。 熵测试是用来评估随机数生成生成随机数序列的“混乱程度”。这个测试会检查序列中的每个元素出现的概率,如果概率分布均匀,就认为生成随机数序列有较高的熵。 比特偏倚测试用于检测生成随机数序列中比特位0和1的分布是否接近均匀。如果比特位的分布没有明显的偏向,就认为生成随机数序列通过了比特偏倚测试。 重叠测试是通过检测生成随机数序列中是否存在子序列的重复来评估生成器的性能。如果生成的序列中不存在重叠,就认为生成随机数序列通过了重叠测试。 掩码测试是一种更严格的测试方法,用于检测生成随机数序列中是否存在可预测性。该测试会检查序列中是否存在由其他部分推导或预测得出的信息,以评估随机数序列的安全性。 通过以上四个测试方法,NIST SP-800-90B可以评估随机数生成生成随机数序列的质量和安全性。这对于保证密码学安全、安全通信和随机事件模拟等领域至关重要。该测试标准的使用可以帮助开发者选择和评估随机数生成器,并确保生成随机数序列满足需求和安全标准。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值