最近公司在做国密认证,本人参与TRNG测试部分。找到一个可以用来检测随机数的工具,符合国标GM_T 0005-2021的测试要求。
工具的使用在网页上有详细介绍,可以下载到本地,适合高频测试。测试的环境需要安装java,可以自行查看csdn上安装教程。
工具地址:GMSSL - 国密SSL实验室
另外有一个在线的检测网站,无需本地安装环境,检测完会自动下载检测报告,适合低频测试:
工具地址:国密随机性检测
测试有两种测试方法,都需要切分随机数的大小。以下是切分脚本,读者可以参考。
import os
bin_path = 'self_seeding_rand.bin'
split_path = 'rand'
bin_name = 'self_seeding_rand'
# slice = 1000
# slice_size = 125000000
slice_size = 131072000 # 大小125m
fr = open(bin_path, 'rb')
count = 0
if not os.path.exists(bin_name):
os.makedirs(bin_name)
while True:
b = fr.read(slice_size)
if not b:
break
with open(split_path + os.sep + bin_name + '_%s.bin' % count, 'wb') as fw:
fw.write(b)
count += 1
fr.close()