特别说明:本文写于 2018 年 5 月,当时 David Johnston 发布的 sp800_22_tests 工具还不能在 Python 3 环境下运行,在 2018 年 6 月,David Johnston 在 GitHub 上发布了新的程序,新版程序能够在 Python 3 环境下直接运行了。
要在一台安装了 64 位 CentOS 6.9 的计算机上运行随机性检测工具 sp800_22_tests,操作系统自带的 Python 版本是 2.6.6,sp800_22_tests 在 Python 2.7 下可以正常运行,在 Python 2.6 下运行会出错。对于这台计算机,实际情况不允许修改默认的 Python 设置。经过一番尝试后终于能成功运行测试工具了,把过程记录如下:
1)安装 Python 2.7;
下载 Python2.7.15,网址是:https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz 。这里创建了一个目录 /myfiles/python27,解压缩 tgz 文件以后,使用以下命令安装到该目录下:
./configure --prefix=/myfiles/python27
make
make install
2)安装与 sp800_22_tests 相关的 Python 包 argparse 和 NumPy;
执行以下命令:
/myfiles/python27/bin/pip install argparse
/myfiles/python27/bin/pip install setuptools (安装NumPy时需要用到 setuptools)
/myfiles/python27/bin/pip install numpy
3) 运行随机性测试工具。
到 sp800_22_tests 的 py 类型文件所在目录下,执行命令:
/myfiles/python27/bin/python sp800_22_tests.py 二进制随机数文件名
例如:
/myfiles/python27/bin/python sp800_22_tests.py data.sha1
执行结果如下图:
这里用到的 data.sha1 文件是从 NIST 提供的一个随机性检测工具文件中提取出来的,这个工具文件的下载网址是:https://csrc.nist.gov/CSRC/media/Projects/Random-Bit-Generation/documents/sts-2_1_2.zip