这是一个NIST随机数静态测试包,可以用它来测试你自己设计的为随机数生成算法是否满足一定的密码学强度。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
....... 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个文件信息
#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-sc
....... 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个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)