https://csrc.nist.gov/

https://csrc.nist.gov/projects/random-bit-generation/documentation-and-software

https://wenku.baidu.com/view/dc0ada02eff9aef8941e0644.html

https://blog.csdn.net/zkkzpp258/article/details/82685404

https://blog.csdn.net/zhaomengszu/article/details/79384050

https://blog.csdn.net/lafu5137/article/details/79593845    随机数测试的参数范围

另外 官方有使用文档

igamc:UNDERFLOW的原因:

1. size* bitstrems > sizeof(file)   例如: 就是./assess 10000,  然后bitstreams 100  100*10000 > 你的文件大小 (bytes)(采用ascii 的0,1串,那单位就是byte)

2. 数据过于 不随机  。一开始用一个seed,利用7位LFSR,生成127个0,1,然后换另一个seed,就一直 underflow。然后换成一个seed生成10个数,就可以成功测试。(虽然结果还是错的)

Linux安装

下载,解压

在ubuntu安装

复制到home

make

得assess文件

测试文件拷贝

测试

(我的randsme.txt含10000000个ascii 0,1)

这里 ./assess 1000000  。1000000*10=10000000

然后 0,选择输入文件方式

输入1,做是上面的全部测试

这里how many bitstreams和文件大小和一开始输入的 ./assess XXX有关

XXX * bitstreams num = 文件大小。因为我的测试文件是10000000个0,1  =1000000 * 10,所以输入10

然后因为是ascii形式的0,1(用 ofstream,写入了string "0" "1"),所以选择ascii。

分析完成。

测试结果 在

结果分析:

Freq.txt文件记录着0和1出现的频数。

有十组,就是我们上面输入的10组bitstream

先看测试种类。一共15种。

对应分析结果有15个文件夹

以其中Appro ..为例

打开有两个文件 result和stats。

分析stats

上面表明了测试种类为APPROXIMATE

然后分成了10组(对应上面的十组bitstream)

每组 一个p-VALUE.pvalue一般是>0.01 (1%)就是通过 (前面的sussess) (一般是这样,见下面的分析)

汇总到 finalanalysisreport

1.C1,C2...

这里,因为pvalue的范围是0-1,将0-1分为10个区间,每个区间0.1,C1,C2...就是统计落到各自区间的pvalue的数量。(比如我这里是10个bitstream,那么他们各自,对应一个测试,有一个Pvalue,所以每个测试的C1,C2+..C10 加起来应该等于10)。

[0.0-0.1 )  左闭右开,应该是

[0.1,0.2)

...

最终的PVALUE 由卡方分布统计(在别人的blog上看到的,没有验证)

2.文档下方有解释

这里就是说对于这些统计性的测试 8/10组,4/5组就算通过。

比如下面这样意思应该就是5组中通过了5组或4组,10组中通过了10组。

3.失败的形式

对于某个测试失败后在这个txt内会有 '*' 号标识

比如这是我之前做的另外一个测试,可见有一个错误

100组中只有94组通过,没有达到96组

注意文档里数据对应的是下方的文字

然后这个universal的错误表面上看是100/100,100组全部合格,其实打开对应文件夹下面的stats发现全是error。那么应该这100组都是默认的0.5.都在C6下面

所以表面上100/100通过了,其实没通过,故后面有 '*' 号

NIST随机数测试软件安装与使用 && igamc:UNDERFLOW的更多相关文章

  1. 基于linux下的NIST数字测试包安装过程

    基于linux下的NIST数字测试包安装过程 1. 首先解决windows文件不能粘贴到Ubuntu的问题 选择利用VMware Tools进行解决 打开虚拟机VMware Workstation,启 ...

  2. 自动化测试 selenium 测试软件安装

      一.自动化测试优点 1.对程序的回归测试更方便.在程修改的比较平凡的时候,表现的更明显. 2.可以代替测试人员运行更繁琐的测试,也可以代替测试人员不可能完成的操作(比如连续点击50次) 3.更好的 ...

  3. TestLink测试软件安装条件检查不通过的解决方案

    在第一次安装的时候出现这个错误信息 解决办法: 修改config.inc.php文件里的两个属性值为: $tlCfg->log_path = TL_ABS_PATH . 'logs' . DIR ...

  4. DeepFaceLab小白入门(2):软件安装!

    严格上来说这个软件本身并不需要安装,他唯一需要的就是对应版本的显卡驱动,CUDA和CuDNN都非必须.下面我说一下如何安装正确的驱动版本.我尽量写得简洁清晰,希望大家都能看懂,但是,如果你连基本的电脑 ...

  5. Linux压力测试软件Stress安装及使用指南2

    stress工具使用指南和结果分析 Linux压力测试软件Stress安装及使用指南     一.Stress是什么 stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高 ...

  6. 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记

    Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...

  7. linux命名详解及其软件安装实例

    始于cd,ls命令 好啦,步入正题,我使用的linux连接工具为xshell,mRemoteNG,对两款工具不做介绍啦,你可以百度一下,实在不会入左上方群. 进入之后,便是上面的界面黑乎乎一片,对于初 ...

  8. 软件安装 RPM SRPM YUM

    RPM介绍 RPM是已经编译好的软件安装库.编译是有相应环境相适应的,包括系统,版本等相关信息都要跟编译版本一致才行,否则肯定会出现安装不成功的情况,强制安装的话,也会出现各种各样的问题. 在这种情况 ...

  9. [转载]SharePoint 2013测试环境安装配置指南

    软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企业版 Office Web Apps 2013 备注: ...

随机推荐

  1. [工作札记]03: 微软Winform窗体中ListView、DataGridView等控件的Bug,会导致程序编译失败,影响范围:到最新的.net4.7.2都有

    工作中,我们发现了微软.net WinForm的一个Bug,会导致窗体设计器自动生成的代码失效,这个Bug从.net4.5到最新的.net4.7.2都存在,一直没有解决.最初是我在教学工作中发现的,后 ...

  2. oracle动态采样导致数据库出现大量cursor pin s wait on x等待

    生产库中,突然出现了大量的cursor pin s wait on x等待,第一反应是数据库出现了硬解析,查看最近的DDL语句,没有发现DDL.那么有可能这个sql是第一次进入 在OLTP高并发下产生 ...

  3. css全站变灰

    2020年4月4日全国哀悼日这一天,我发现不少网址都变灰了,我第一想法就是怎么做到的?不可能换素材整个网址重做一遍吧?后面发现是用的其实是css的filter滤镜: grayscale可以将图像转化为 ...

  4. 转 Fiddler3 使用技巧

    Fiddler3 使用技巧  文章转自:https://www.cnblogs.com/zhengna/category/1466001.html 1.Fiddler抓不到包怎么解决 (1)先确定是H ...

  5. 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息。

    1 import java.text.SimpleDateFormat; 2 import org.apache.hadoop.fs.*; 3 4 public class E_RecursiveRe ...

  6. 为什么Go自带的日志默认输出到os.Stderr?

    为什么Go自带的日志默认输出到os.Stderr? - 知乎 https://www.zhihu.com/question/67629357 Note that the Go runtime writ ...

  7. 京东零售mockRpc实践

    https://mp.weixin.qq.com/s/A0T6ySub0DfQiXJAbWm2Qg jsf协议是基于tcp的而且对数据进行了序列化.加密等操作,直接截获的方式很难实现.最后决定注入自己 ...

  8. QTREE----树剖

    题目内容: ---------------------------------------------------- Query on a tree Time Limit: 851MS   Memor ...

  9. Language Guide (proto3) | proto3 语言指南(七)更新消息类型

    Updating A Message Type - 更新消息类型 如果现有的消息类型不再满足您的所有需要(例如,您希望消息格式有一个额外的字段),但是您仍然希望使用用旧格式创建的代码,不要担心!在不破 ...

  10. Django(命名空间)

    命名空间 命名空间(英语:Namespace)是表示标识符的可见范围.一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的.这样,在一个新的命名空间中可定义任何标识符,它们不会与任何 ...