随机性检测标准对比——国密GM/T 0005 vs NIST SP800-22r1a
概述
检测标准
- 我国随机检测规范GM/T 0005-2012《随机性检测规范》,现已经升级为国家标准GB/T 32915-2016 信息安全技术 二元序列随机性检测方法。
- NIST随机性检测文档NIST SP800-22r1a, A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications。
1 检测项对比
NIST和国密随机性检测项目的对比如下:
- NIST有15个检测项,国密有15个检测项。
- 两者有11个相同的检测项:单比特频数检测、块内频数检测、游程总数检测、块内最大1游程检测、矩阵秩检测、离散傅里叶变换检测、Maurer通用统计检测、线性复杂度检测、重叠子序列检测、近似熵检测、累加和检测。
- NIST有4个专有检测项:随机游动检测、随机游动变式检测、非覆盖模板匹配检测、覆盖模板匹配检测。
- 国密有4个专有检测项:扑克检测、游程分布检测、二元推导检测、自相关检测。
NIST测试项 |
国密测试项GM |
单比特频数检测 Frequency(Monobit) Test |
单比特频数检测 Monobit Frequency Test |
块内频数检测 Frequency Test within a block |
块内频数检测 Frequency Test within a block |
游程检测 Runs Test |
游程总数检测 Runs Test |
块内“1”的最大游程检测 Test for the longest Run of Ones in a block |
块内最大1游程检测 Test for the longest Run of Ones in a block |
二元矩阵秩检测 Binary Matrix Rank Test |
矩阵秩检测 Binary Matrix Rank Test |
离散傅里叶变换检测 Discrete Fourier Transform (Spectral) Test |
离散傅里叶变换检测 Discrete Fourier Transform Test |
Maurer通用统计检测 Maurer's "Universal Statistical" Test |
Maurer通用统计检测 Maurer's "Universal Statistical" Test |
线性复杂度检测 Linear Complexity Test |
线性复杂度检测 Linear Complexity Test |
序列检测 Serial Test |
重叠子序列检测 Serial Test |
近似熵检测 Approximate Entropy Test |
近似熵检测 Approximate Entropy Test |
累积和检测 Cumulative Sums (Cusum) Test |
累加和检测 Cumulative Test |
随机游动检测 Random Excursion Test |
—— |
随机游动变式检测 Random Excursion Variant Test |
—— |
非覆盖模板匹配检测 Non-overlapping Template Matching Test |
—— |
覆盖模板匹配检测 Overlapping Template Matching Test |
—— |
—— |
扑克检测 poker test |
—— |
游程分布检测 runs distribution test |
—— |
二元推导检测 binary derivative test |
—— |
自相关检测 Autocorrelation Test |
2 检测参数对比
参数说明:
- n:样本序列的比特长度。国密规定取1000000;NIST未定义,但倾向于取1000000。
- a:显著性水平。国密规定为0.01;NIST未定义,建议为0.001~0.01。
检测项 |
NIST参数建议 |
STS参数取值 |
国密参数取值 |
单比特频数检测 |
n>100 |
自定义n |
n=1000000 |
块内频数检测 |
n>100, 块大小M>20,M>0.1n 块数N=floor(n/M)<100 |
块大小M=128 可自行设定 |
块大小M=100 |
游程检测 |
n>100 |
自定义n |
n=1000000 |
块内最大1游程检测 |
块大小M,由n定: 当128<=n<6272时,取M=8; 当6272<=n<750000时,取M=128 当750000<=n时,取M=10000 |
根据n值设定M,具体设定同左 |
块大小M =10000 |
二元矩阵秩检测 |
n>32MQ,其中M和Q矩阵的行数和列数 |
M=Q=32 |
M=Q=32 |
离散傅里叶变换检测 |
n>1000 |
自定义n |
n=1000000 |
Maurer通用统计检测 |
n>=(Q+K)L 6<=L<=16 Q=10*2L K=floor(n/L)-Q 表后的图有详细设定 |
按表后的图,根据n值设定L和Q |
n=1000000 L=7 Q=1280 |
线性复杂度检测 |
n>=1000000 块长M:500<M<5000 块数N:N>200 |
块长M=500 可自行设定 |
块长M=500 |
序列检测 |
m=16 可自行设定 |
m=2,5 |
|
近似熵检测 |
m=10 可自行设定 |
m=2,5 |
|
累积和检测 |
n>100 |
自定义n |
n=1000000 |
随机游动检测 |
n>=1000000 |
自定义n |
N/A |
随机游动变式检测 |
n>=1000000 |
自定义n |
N/A |
非覆盖模板匹配检测 |
模板长度可为2-10,但通常取9,10(更有意义) 块数N<=100, 块大小M>0.01n |
模板长度=9 可自行设定 |
N/A |
覆盖模板匹配检测 |
n>1000000 建议m=9,10 n>=MN. N •(min πi) > 5. λ= (M-m+1)/2m ≈2 m ≈log2 M |
m=9 可自行设定 |
N/A |
扑克检测 |
N/A |
N/A |
子序列长度m=4,8 |
游程分布检测 |
N/A |
N/A |
n=1000000,k=15 |
二元推导检测 |
N/A |
N/A |
k=3,7 |
自相关检测 |
N/A |
N/A |
d=1,2,8,16 |
3 检测通过准则对比
- NIST:两个准则。
- (1)每个检测项计算出来的P值不小于显著性水平a为通过;通过的样本总量有上下界;
- (2)P的统计一致性需满足要求。
- 国密:一个准则。(1)每个检测项计算出来的P值不小于显著性水平a为通过;通过的样本总量只有下界,没有上界。
(1)每个检测项计算出来的P值不小于显著性水平a
记s为样本个数
NIST |
国密 |
|
显著性水平 |
建议为0.001~0.01 |
固定为0.01 |
通过率阈值 |
上下界 当显著性水平为0.01,样本个数s为1000时,上式计算出的上下界为(0.9805607,0.9994392)。 |
只有下界 当显著性水平为0.01,样本个数s为1000时,上式计算出的下界为0.9805607。 |
(2)P的统计一致性需满足要求(仅NIST)
检测步骤:
步骤1:把[0,1]区间等份成10段,统计各个被检验序列的P值落入各区间的数目,再把统计结果用直方图表述出来。
步骤2:P值分布的一致均匀性可以通过检验来验证,并得到对应这个检验的所有被检验序列的P值的P值.这个P值表明P值的经验分布与一致均匀分布的符合程度(Goodness-of-Fit Distributional Test)。计算统计量:
,
其中是落入区间的P值数目,s是样本序列数目。
步骤3:计算,
步骤4:如果这个,就说明被检验序列的P值一致均匀分布。
随机性检测标准对比——国密GM/T 0005 vs NIST SP800-22r1a相关推荐
- 随机性检测模块支持GM/T 0005-2021标准的升级建议
如对GM/T 0005的2021版和2012版差异不了解,建议先翻看 GM/T 0005<随机性检测规范>2012版和2021版对比https://blog.csdn.net/samsho ...
- 国密算法简介及电子印章相关标准
国密算法,即国家商用密码算法.是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准.如SM系列密码,SM代表商密,即商业密码,是指用于商业的.不涉及国家秘密的密码技 ...
- 商密圈大咖齐聚北京 共商国密开源未来发展方向
2019年7月26日,星期五,北京已经连续被骄阳炙烤了一周,最高温度甚至超过 了40摄氏度.但是相比室外的高温,商密圈精英们参与"基于国密算法的OpenSSL技术沙龙"的热情更高, ...
- 基于国密算法SM2SSL证书的https加密,如何实现?
为什么80%的码农都做不了架构师?>>> 如果要在客户端/网关系统和服务端之间进行SSL加密通信,当客户端应用(浏览器等)发起登录认证.加密.签名等请求时,服务端如何实现基于国 ...
- JumpServer国密支持配置
1. 环境说明 HTTPS 国密证书配置在JumpServer前端的Nginx服务器,用户通过本地的国密支持的浏览器访问到Nginx服务器,此链路为国密HTTPS加密链路,Nginx服务器进行HTTP ...
- 国密版 Nginx服务器安装
一.简介 GMSSL提供一个国密版OpenSSL和国密版Nginx,支持单向/双向认证,支持标准SSL/国密SSL自适应. 其中国密版OpenSSL基于OpenSSL1.1.1d实现,且已经修正了CV ...
- GM/T 0005《随机性检测规范》2012版和2021版对比
目录 1. 背景 2. 规范的差异性对比 2.1 检测项存在的差异 2.1.1 检测线差异的概况 2.1.3 累加和检测的差异 2.1.4 游程分布检测的差异 2.1.5 离散傅里叶检测的差异 2.1 ...
- 随机数随机性检测工具国密版
项目概述: 依据标准<GM/T 0005-2012 随机性检测规范>.<GB/T 32915-2016 信息安全技术 二元序列随机性检测方法>.对128mb的随机数文件进行随机 ...
- HSM 加密机 硬件加密机 国密标准解读 安当加密
HSM全称硬件安全模块,是数据安全领域的关键硬件设备,是公钥基础设施的一部分.本文从国密0054出发,概要分析了HSM也就是通常说的服务器密码机需要遵循的国密相关标准,以及与等保的关系. 一.信息系统 ...
最新文章
- android中websockt断开链接,接吻SDK - 的WebSocket在断开的Android
- 【杂谈】有三AI-CV春季划有用吗,听听他们的分享
- [windows]windows 10 锁屏壁纸保存方法
- 【unity3d游戏开发之基础篇】利用射线实现鼠标控制角色转向和移动(角色移动一)...
- 利用资源文件实现多语言的系统
- 线性代数知识点总结_[Github项目推荐] 机器学习amp; Python 知识点速查表
- 测试机器学习算法的好坏
- 关于电的计算机公式,电能计算-电能的计算公式-电工基础 - 电工屋
- java 200以内质数_Java:2-200内的质数
- 快速达成目标的12种方
- 实现汉字的凯撒密码(内容包括:去掉字符串中的转义字符、汉字的unicode转换)
- i5 13600K和i5 12600k差距
- 计算机经典书籍- -
- vr技术在计算机教学中的应用,VR/AR技术在中小学基础教学中的应用分析
- APK文件完全破解(源码可见)
- html更改纵坐标数值,excel折线图纵坐标轴数值与实际值不一致该怎么办?折线图怎么修改纵坐标...
- 同是网盘下载工具,Pan Download和速盘Speedpan的对比
- RMQ--区间最值问题
- SpringCloud_EurekaRibbonNacosFeignGateway
- 微信小程序读取服务器多个数组,微信小程序多层嵌套循环,二级数组遍历