| 标准编号 | GB/T 32915-2026 (GB/T32915-2026) | | 中文名称 | 网络安全技术 二元序列随机性检测方法 | | 英文名称 | Cybersecurity technology - Randomness test methods for binary sequence | | 行业 | 国家标准 (推荐) | | 中标分类 | L80 | | 国际标准分类 | 35.040 | | 字数估计 | 34,331 | | 发布日期 | 2026-05-25 | | 实施日期 | 2026-12-01 | | 旧标准 (被替代) | GB/T 32915-2016 | | 发布机构 | 国家市场监督管理总局、国家标准化管理委员会 |
GB/T 32915-2026: 网络安全技术 二元序列随机性检测方法
GB/T 32915-2026 英文版: Cybersecurity technology - Randomness test methods for binary sequence
ICS 35.040
CCSL80
中华人民共和国国家标准
代替GB/T 32915-2016
网络安全技术
二元序列随机性检测方法
2026-05-25发布
2026-12-01实施
国 家 市 场 监 督 管 理 总 局
国 家 标 准 化 管 理 委 员 会 发 布
1 范围
本文件描述了二元序列的随机性检测方法,包括检测目的、检测步骤、参数设置和结果判定。
本文件适用于网络安全领域二元序列随机性检测。
2 规范性引用文件
本文件没有规范性引用文件。
4 符号
下列符号适用于本文件。
d:自相关检测中序列逻辑左移的位数
K:通用统计检测中待检序列L 位子序列个数
L:通用统计检测中子序列长度
Li:线性复杂度检测中子序列的线性复杂度
M:矩阵秩检测中矩阵的行数
m:子序列的比特长度
N:一个待检测的n比特序列中m 位子序列的个数
n:待检二元序列的比特长度
Q:矩阵秩检测中矩阵的列数,或者是通用统计检测中初始序列L 位子序列的个数
V:统计值
α:用于样本通过率检测的显著性水平
αT:用于样本分布均匀性检测的显著性水平
ε:待检二元序列
ε':在ε的基础上按照一定的规则产生出的新序列
εi:待检二元序列第i比特的数值
π:待检二元序列中1的比例
∑:求和符号
ApEn(m):待检二元序列的近似熵
erfc:余误差函数(ComplementaryErrorFunction)
igamc:不完全伽玛函数(IncompleteGammaFunction)
ln(x):x的自然对数
log2(x):以2为底的x的对数
max:从若干个元素中取最大值
min:从若干个元素中取最小值
modulus(x):用来计算复系数x模值的运算
P_value:一种衡量样本随机性好坏的度量指标,用于样本通过率判定
Q_value:一种衡量样本随机性好坏的度量指标,用于样本分布均匀性判定
x :不大于x的最大整数
Xi:2εi-1
Vn(obs):待检二元序列中游程的总数
Φ(x):标准正态分布的累积分布函数
Ψ 2m:重叠子序列检测中的第一个统计值
2Ψ 2m:重叠子序列检测中的第二个统计值
5 随机性检测
5.1 通则
本文件针对二元序列的随机性检测,规定了15种检测技术。每种技术用于检测判定二元序列的某
一种特征性质,具体检测步骤和结果判定方法各不相同。
二元序列样本的随机性检测应符合附录A规定的样本长度及检测设置要求。
5.2 单比特频数检测
5.2.1 检测目的
单比特频数检测用于检测二元序列是否具有较好的0、1平衡性,即比特0和1的个数是否相近。
检测参数要求应符合附录A中的相关规定,检测原理见附录B的B.1,结果示例见附录C的C.1。
5.2.2 检测步骤
单比特频数检测步骤如下:
5.2.3 结果判定
将5.2.2中计算得出的P_value结果与显著性水平α进行比较。如果P_value≥α,则认为该二元
序列样本通过单比特频数检测;否则认为未通过单比特频数检测。
5.3 块内频数检测
5.3.1 检测目的
块内频数检测用来检测待检序列的m 位子序列中1的个数是否接近
。对随机序列来说,其任
意m 位子序列中1的个数都应接近
。检测参数要求应符合附录A中的相关规定,检测原理见B.2,结
果示例见C.2。
5.3.2 检测步骤
块内频数检测步骤如下:
第一步:将待检序列ε分成N=
个长度为m 的非重叠子序列,将多余的比特舍弃。
5.3.3 结果判定
将5.3.2中计算得出的P_value结果与显著性水平α进行比较。如果P_value≥α,则认为该二元
序列样本通过块内频数检测;否则认为未通过块内频数检测。
5.4 扑克检测
5.4.1 检测目的
对任意的正整数m,长度为m 的二元序列有2m类。扑克检测将长度为n的待检序列划分成
非重叠的m 位子序列,检测长度为m 的2m类子序列的个数是否接近。检测参数要求应符合附录A中
的相关规定,检测原理见B.3,结果示例见C.3。
5.4.2 检测步骤
扑克检测步骤如下:
第一步:将待检序列ε划分成N=
个长度为m 的非重叠子序列,将多余的比特舍弃。统计第i
类子序列模式出现的频数,用ni(1≤i≤2m)表示。
5.4.3 结果判定
将5.4.2中计算得出的P_value结果与显著性水平α进行比较。如果P_value≥α,则认为该二元
序列样本通过扑克检测;否则认为未通过扑克检测。
5.5 重叠子序列检测
5.5.1 检测目的
重叠子序列检测将长度为n的待检序列划分成n个可叠加的m 位子序列,检测长度为m 的2m类
子序列的个数是否接近。检测参数要求应符合附录A中的相关规定,检测原理见B.4,结果示例见C.4。
5.5.2 检测步骤
重叠子序列检测步骤如下:
第一步:由待检序列ε构造一个新的序列ε',构造方法如下:将序列ε最开始的m-1位数据添加到
序列ε的结尾即可得到新序列ε',新序列ε'的长度为n'=n+m-1。
第二步:计算ε'中每一类m 位子序列模式(共有2m类)出现的频数,记m 位子序列模式i1i2im的
出现频数为vi1i2im。计算每一类m-1位子序列模式(共有2m-1类)出现的频数,记m-1位子序列模
式i1i2im-1的出现频数为vi1i2im-1。计算每一个m-2位子序列模式(共有2m-2类)出现的频数,
记m-2位子序列模式i1i2im-2的出现频数为vi1i2im-2。
5.5.3 结果判定
将5.5.2中计算得出的P_value1和P_value2结果分别与α进行比较。如果P_value1≥α,则认
为该二元序列样本通过P_value1的重叠子序列检测,否则认为未通过P_value1的重叠子序列检测;
如P_value2≥α,则认为该二元序列样本通过P _value2的重叠子序列检测,否则认为未通过P _
value2的重叠子序列检测。
5.6 游程总数检测
5.6.1 检测目的
游程总数检测主要检测待检序列中游程的总数是否服从随机性要求,即0和1之间的跳变不能过
快或过慢。检测参数要求应符合附录A中的相关规定,检测原理见B.5,结果示例见C.5。
5.6.2 检测步骤
5.6.3 结果判定
将5.6.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为该二元序列样本通
过游程总数检测;否则认为未通过游程总数检测。
5.7 游程分布检测
5.7.1 检测目的
游程分布检测用于检测序列中的游程分布是否均匀,随机的序列中,相同长度的游程数目应接近一
致,且游程长度每增加一比特,游程数目应接近减半。检测参数要求应符合附录A中的相关规定,检测
原理见B.6,结果示例见C.6。
5.7.2 检测步骤
5.7.3 结果判定
将5.7.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为该二元序列样本通
过游程分布检测;否则认为未通过游程分布检测。
5.8 块内最大游程检测
5.8.1 检测目的
块内最大游程检测方法分别对块内最大“1”游程和块内最大“0”游程两种模式进行检测。将待检序
列划分成N 个长度为m 的非重叠子序列,统计各个子序列中的最长“1”游程长度和最长“0”游程长
度,根据各个子序列中最大“1”游程、最大“0”游程的分布来评价待检序列的随机性。检测参数要求应符
合附录A中的相关规定,检测原理见B.7,结果示例见C.7。
5.11.3 结果判定
将5.11.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为该二元序列样本
通过矩阵秩检测;否则认为未通过矩阵秩检测。
5.12 累加和检测
5.12.1 检测目的
累加和检测方法分别对前向累加和、后向累加和两种模式进行检测。前向累加和检测从待检序列
第1比特开始,逐比特向后计算,后向累加和检测从待检序列最后1比特开始,逐比特向前计算,通过判
断待检序列的各个子序列中最大的偏移(与0之间),也就是将最大累加和与一个随机序列应具有的最
大偏移相比较,以判断待检序列的随机性。检测参数要求应符合附录 A中的相关规定,检测原理见
B.11,结果示例见C.11。
5.12.3 结果判定
将5.12.2中计算得出的前向累加和的P_value结果、后向累加和的P_value结果分别与α进行比
较。如果前向累加和的P_value≥α,则认为该二元序列样本通过前向累加和检测;否则认为未通过前
向累加和检测。如果后向累加和的P_value≥α,则认为该二元序列样本通过后向累加和检测;否则认
为未通过后向累加和检测。
5.13 近似熵检测
5.13.1 检测目的
近似熵检测通过比较m 位可重叠子序列模式的频数和m+1位可重叠子序列模式的频数来评价
其随机性。计算m 位可重叠子序列模式和m+1位可重叠子序列模式之间的频数差异,差异值较小则
表明待检序列具有规则性和连续性;差异值较大则表明待检序列具有不规则性和不连续性。对任意一
个m 来说,随机序列的近似熵应近似等于ln2。检测参数要求应符合附录A中的相关规定,检测原理
见B.12,结果示例见C.12。
5.13.2 检测步骤
近似熵检测步骤如下:
第一步:由待检序列ε构造一个新的序列ε',构造方法如下:将序列ε最开始的m-1位数据添加到
序列ε的结尾即可得到ε',新序列ε'的长度为n'=n+m-1。
第二步:计算ε'中所有的2m个m 位子序列模式的出现频数,记m 位模式i1i2im出现的频数
为vi1i2im。
5.13.3 结果判定
将5.13.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为该二元序列样本
通过近似熵检测;否则认为未通过近似熵检测。
5.14 线性复杂度检测
5.14.1 检测目的
线性复杂度检测用于检测各等长子序列的线性复杂度分布是否符合随机性的要求。将待检序列划
分成N 个长度为m 的子序列,然后利用Berlekamp-Massey算法计算每个子序列的线性复杂度Li,根
据Li的分布情况判断待检二元序列的随机性。检测参数要求应符合附录A中的相关规定,检测原理见
B.13,结果示例见C.13。
5.14.2 检测步骤
5.14.3 结果判定
将5.14.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为该二元序列样本
通过线性复杂度检测;否则认为未通过线性复杂度检测。
5.15 Maurer通用统计检测
5.15.1 检测目的
Maurer通用统计检测用于检测待检序列能否被无损压缩。因为随机序列不能被显著压缩,因此如
果待检序列能被显著地压缩,则认为该序列不随机。检测参数要求应符合附录A中的相关规定,检测
原理见B.14,结果示例见C.14。
6 随机性检测判定
6.1 通则
应采用5.2~5.16规定的15种随机性检测技术和附录A规定的检测设置对二元序列样本集进行
随机性检测。一种随机性检测技术对应至少一个随机性检测项目,其中如某随机性检测技术采用不同
的检测参数设置,或具有不同的检测模式(如块内最大游程检测方法、累加和检测方法),或具有多个统
计值(如重叠子序列检测方法),相关内容应作为单独的随机性检测项目进行检测,并分别对二元序列样
本集的每个检测项目的样本通过率、分布均匀性进行合格判定。比如累加和检测方法包括前向累加和、
后向累加和两种模式,前向累加和、后向累加和应作为2个独立的检测项目进行检测,并分别对二元序
列样本集中前向累加和、后向累加和的样本通过率、分布均匀性进行合格判定。
本文件确定的二元序列样本集中的样本数量为1000。
6.2 样本通过率判定
对于6.1中定义的每一个随机性检测项目,分别统计二元序列样本集中通过检测的样本个数。记s
为样本集中的样本数量,当通过某个检......
英文网页English: GB/T 32915-2026相关标准:
|