NIST随机数静态测试


这是一个NIST随机数静态测试包,可以用它来测试你自己设计的为随机数生成算法是否满足一定的密码学强度。
资源截图
代码片段和文件信息
#include 
#include 
#include 
#include 
#include “../include/externs.h“
#include “../include/utilities.h“
#include “../include/cephes.h“  

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
                A P P R O X I M A T E  E N T R O P Y   T E S T
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

void
ApproximateEntropy(int m int n)
{
int i j k r blockSize seqLength powLen index;
double sum numOfBlocks ApEn[2] apen chi_squared p_value;
unsigned int *P;

fprintf(stats[TEST_APEN] “ APPROXIMATE ENTROPY TEST
“);
fprintf(stats[TEST_APEN] “ --------------------------------------------
“);
fprintf(stats[TEST_APEN] “ COMPUTATIONAL INFORMATION:
“);
fprintf(stats[TEST_APEN] “ --------------------------------------------
“);
fprintf(stats[TEST_APEN] “ (a) m (block length)    = %d
“ m);

seqLength = n;
r = 0;

for ( blockSize=m; blockSize<=m+1; blockSize++ ) {
if ( blockSize == 0 ) {
ApEn[0] = 0.00;
r++;
}
else {
numOfBlocks = (double)seqLength;
powLen = (int)pow(2 blockSize+1)-1;
if ( (P = (unsigned int*)calloc(powLensizeof(unsigned int)))== NULL ) {
fprintf(stats[TEST_APEN] “ApEn:  Insufficient memory available.
“);
return;
}
for ( i=1; i P[i] = 0;
for ( i=0; i k = 1;
for ( j=0; j k <<= 1;
if ( (int)epsilon[(i+j) % seqLength] == 1 )
k++;
}
P[k-1]++;
}
/* DISPLAY FREQUENCY */
sum = 0.0;
index = (int)pow(2 blockSize)-1;
for ( i=0; i<(int)pow(2 blockSize); i++ ) {
if ( P[index] > 0 )
sum += P[index]*log(P[index]/numOfBlocks);
index++;
}
sum /= numOfBlocks;
ApEn[r] = sum;
r++;
free(P);
}
}
apen = ApEn[0] - ApEn[1];

chi_squared = 2.0*seqLength*(log(2) - apen);
p_value = cephes_igamc(pow(2 m-1) chi_squared/2.0);

fprintf(stats[TEST_APEN] “ (b) n (sequence length) = %d
“ seqLength);
fprintf(stats[TEST_APEN] “ (c) Chi^2               = %f
“ chi_squared);
fprintf(stats[TEST_APEN] “ (d) Phi(m)        = %f
“ ApEn[0]);
fprintf(stats[TEST_APEN] “ (e) Phi(m+1)        = %f
“ ApEn[1]);
fprintf(stats[TEST_APEN] “ (f) ApEn                = %f
“ apen);
fprintf(stats[TEST_APEN] “ (g) Log(2)              = %f
“ log(2.0));
fprintf(stats[TEST_APEN] “ --------------------------------------------
“);

if ( m > (int)(log(seqLength)/log(2)-5) ) {
fprintf(stats[TEST_APEN] “ Note: The blockSize = %d exceeds recommended value of %d
“ m
MAX(1 (int)(log(seqLength)/log(2)-5)));
fprintf(stats[TEST_APEN] “ Results are inaccurate!
“);
fprintf(stats[TEST_APEN] “ --------------------------------------------
“);
}

fprintf(stats[TEST_APEN] “%s p_value = %f

“ p_value < ALPHA ? “FAILURE“ : “SUCCESS“ p_value); fflush(stats[TEST_APEN]);
fprint

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .......  37500000  2000-04-13 09:36  sts-2.1.2sts-2.1.2dataBBS.dat

    .......   1572864  2000-03-02 09:31  sts-2.1.2sts-2.1.2datadata.bad_rng

    .......   1165666  1998-03-25 13:39  sts-2.1.2sts-2.1.2datadata.e

    .......   1165666  1998-03-25 13:39  sts-2.1.2sts-2.1.2datadata.pi

    .......    125000  1999-06-10 13:08  sts-2.1.2sts-2.1.2datadata.sha1

    .......   1165667  1998-03-25 13:39  sts-2.1.2sts-2.1.2datadata.sqrt2

    .......   1165667  1998-03-25 13:39  sts-2.1.2sts-2.1.2datadata.sqrt3

    .......       526  2008-04-28 13:31  sts-2.1.2sts-2.1.2experimentscreate-dir-script

    .......       388  2008-03-20 22:49  sts-2.1.2sts-2.1.2includecephes.h

    .......       806  2008-05-06 10:41  sts-2.1.2sts-2.1.2includeconfig.h

    .......       989  2008-05-09 11:21  sts-2.1.2sts-2.1.2includedecls.h

    .......      2340  2008-06-23 13:26  sts-2.1.2sts-2.1.2includedefs.h

    .......       691  2008-05-09 11:22  sts-2.1.2sts-2.1.2includeexterns.h

    .......      1728  2008-04-25 12:26  sts-2.1.2sts-2.1.2includegenerators.h

    .......      1563  2008-04-28 15:25  sts-2.1.2sts-2.1.2includegenutils.h

    .......       786  2008-04-25 10:27  sts-2.1.2sts-2.1.2includematrix.h

    .......       720  2008-04-25 14:03  sts-2.1.2sts-2.1.2includestat_fncs.h

    .......       709  2008-04-28 10:30  sts-2.1.2sts-2.1.2includeutilities.h

    .......      3657  2008-06-18 12:50  sts-2.1.2sts-2.1.2makefile

    .......      3069  2009-09-02 20:43  sts-2.1.2sts-2.1.2srcapproximateEntropy.c

    .......      1754  2009-09-02 20:44  sts-2.1.2sts-2.1.2srclockFrequency.c

    .......      5834  2008-06-19 12:54  sts-2.1.2sts-2.1.2srccephes.c

    .......      2919  2009-09-02 20:46  sts-2.1.2sts-2.1.2srccusum.c

    .......     25517  2008-10-31 08:18  sts-2.1.2sts-2.1.2srcdfft.c

    .......      2525  2014-07-08 10:51  sts-2.1.2sts-2.1.2srcdiscreteFourierTransform.c

    .......      1319  2009-09-02 20:49  sts-2.1.2sts-2.1.2srcfrequency.c

    .......     12629  2010-01-27 09:41  sts-2.1.2sts-2.1.2srcgenerators.c

    .......     15669  2008-06-19 13:13  sts-2.1.2sts-2.1.2srcgenutils.c

    .......      3693  2014-07-08 10:51  sts-2.1.2sts-2.1.2srclinearComplexity.c

    .......      3770  2009-09-02 20:51  sts-2.1.2sts-2.1.2srclongestRunOfOnes.c

............此处省略202个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)