• NIST随机数测试软件安装与使用 && igamc:UNDERFLOW


    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通过了,其实没通过,故后面有 '*' 号

     

  • 相关阅读:
    Hadoop--Map/Reduce实现多表链接
    map/reduce实现 排序
    Hadoop-Map/Reduce实现实现倒排索引
    虚拟机之仅主机模式(HostOnly)链接外网设置
    hadoop家族之mahout安装
    SQLserver中的常量与变量、判断循环语句
    sqlserver中的数据转换与子查询
    SQLserver中常用的函数及实例
    sqlserver的增删改查
    SQLserver数据库基础
  • 原文地址:https://www.cnblogs.com/lqerio/p/11798459.html
Copyright © 2020-2023  润新知