主页 购物车 询价 关于我们
www.GB-GBT.com
收录标准: 223366 (2026-07-10) 搜索
路径: 主页 > MISC > 第117页 > GM/T 0005-2021

[PDF] GM/T 0005-2021 - 自动发货. 英文版

标准搜索结果: 'GM/T 0005-2021'
标准号码美元购买PDF工期标准名称(英文版)
GM/T 0005-2021 485 GM/T 0005-2021 9秒内发货PDF 随机性检测规范
基本信息
标准编号 GM/T 0005-2021 (GM/T0005-2021)
中文名称
英文名称 Randomness test specification
行业 Chinese Industry Standard (推荐)
中标分类 L80
字数估计 30,396
发布机构 国家密码管理局

GM/T 0005-2021: 随机性检测规范 GM/T 0005-2021 英文名称: Randomness test specification 中华人民共和国密码行业标准 代替GM/T 0005-2012 随 机 性 检 测 规 范 国家密码管理局 发 布 1 范围 本文件规定了适用于二元序列的随机性检测指标和检测方法。 2 规范性引用文件 本文件没有规范性引用文件。 3 术语和定义 下列术语和定义适用于本文件。 5 随机性检测方法 5.1 单比特频数检测方法 5.1.1 概述 单比特频数检测是最基本的检测,用来检测一个二元序列中0和1的个数是否相近。随机序列应 具有较好的0、1平衡性。 5.1.2 检测步骤 单比特频数检测步骤如下。 第一步:该检测将待检序列ε中的0和1分别转换成-1和1 第二步:累加求和计算得到 5.1.3 结果判定 将5.1.2中计算得出的P_value结果与α进行比较,如果P_value≥α,则认为待检序列通过单比 特频数检测,否则未通过单比特频数检测。 5.2 块内频数检测方法 5.2.1 概述 块内频数检测用来检测待检序列的m 位子序列中1的个数是否接近 。对随机序列来说,其任意 长度的m 位子序列中1的个数都应该接近 5.2.2 检测步骤 块内频数检测步骤如下。 第一步:将待检序列ε分成N= 个长度为m 的非重叠子序列,将多余的比特舍弃。 5.2.3 结果判定 将5.2.2中计算得出的P_value结果与α进行比较,如果P_value≥α,则认为待检序列通过块内 频数检测,否则未通过块内频数检测。 5.3 扑克检测方法 5.3.1 概述 扑克检测用来检测长度为m 的2m类子序列的个数是否接近。对于随机的序列,2m类子序列的个 数应该接近。 5.3.2 检测步骤 扑克检测步骤如下。 第一步:将待检序列ε划分成N= 个长度为m 的非重叠子序列,将多余的比特舍弃。统计第i 类子序列模式出现的频数,用ni(1≤i≤2m)表示。 5.3.3 结果判定 将5.3.2中计算得出的P_value结果与α进行比较,如果P_value≥α,则认为待检序列通过扑克 检测,否则未通过扑克检测。 5.4 重叠子序列检测方法 5.4.1 概述 对任意的正整数m,长度为m 的二元序列有2m类。重叠子序列检测将长度为n的待检序列划分 成n个可叠加的m 位子序列。对随机二元序列来说,由于其具有均匀性,故m 位可叠加子序列的每一 类模式出现的概率应该接近。 5.4.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.4.3 结果判定 将5.4.2中计算得出的两个结果P_value1和P_value2分别与α进行比较。如果P_value1≥α, 则认为待检序列通过P_value1的重叠子序列检测,否则未通过P _value1的重叠子序列检测;如 P_value2≥α,则认为待检序列通过P_value2的重叠子序列检测,否则未通过P_value2的重叠子序 列检测。 5.5 游程总数检测方法 5.5.1 概述 游程是指序列中由连续的“0”或者“1”组成的子序列,并且该子序列的前导与后继元素都与其本身 的元素不同。游程总数检测主要检测待检序列中游程的总数是否服从随机性要求。 5.5.2 检测步骤 游程总数检测步骤如下。 5.5.3 结果判定 将5.5.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过游程 总数检测,否则未通过游程总数检测。 5.6 游程分布检测方法 5.6.1 概述 游程分布检测用于检测序列中相同长度游程分布是否均匀,随机的序列中,相同长度的游程数目应 该接近一致,且游程长度每增加一比特,游程数目应接近减半。 5.6.2 检测步骤 游程分布检测步骤如下。 5.6.3 结果判定 将5.6.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过游程 分布检测,否则未通过游程分布检测。 5.7 块内最大游程检测方法 5.7.1 概述 块内最大游程检测方法分别对块内最大“1”游程和块内最大“0”游程两种模式进行检测。将待检序 列划分成N 个长度为m 的子序列,此时n=N*m,统计各个子序列中的最长“1”游程长度和最长“0” 游程长度,根据各个子序列中最大“1”游程、最大“0”游程的分布来评价待检序列的随机性。 5.7.2 检测步骤 块内最大“1”/“0”游程的检测步骤如下。 第一步:将待检序列ε划分成N= 个长度为m 的非重叠子序列,舍弃多余的位不用。 第二步:设置K+1个集合(K 的取值见表B.2),计算每一个子序列中最大“1”/“0”游程的长度,参 照表B.3的规则将其归入相应的集合中。 5.7.3 结果判定 将5.7.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过块内 最大游程检测,否则未通过块内最大游程检测。 5.8 二元推导检测方法 5.8.1 概述 二元推导检测的目的是判定第k次二元推导序列中0和1的个数是否接近一致。对于长度为n的 二元初始序列,依次将初始序列中两个相邻比特做异或操作,即可得到该序列的一次二元推导序列,长 度为n-1。依次执行上述操作k次,即可得到该初始序列的k次二元推导序列,长度为n-k。对于一 个随机的序列,无论进行多少次推导,其0、1的个数都应该接近一致。 5.8.2 检测步骤 二元推导检测步骤如下。 5.8.3 结果判定 将5.8.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过二元 推导检测,否则未通过二元推导检测。 5.9 自相关检测方法 5.9.1 概述 自相关检测用来检测待检序列与将其左移(逻辑左移)d位后所得新序列的关联程度。一个随机序 列应该和将其左移任意位所得的新序列都是独立的,故其关联程度也应该很低,即初始序列与将其左移 d位后所得新序列进行异或操作形成的新序列中,0、1的个数应该接近一致。 5.9.2 检测步骤 自相关检测步骤如下。 5.9.3 结果判定 将5.9.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过自相 关检测,否则未通过自相关检测。 5.10 矩阵秩检测方法 5.10.1 概述 矩阵秩检测用来检测待检序列中给定长度的子序列之间的线性独立性。由待检序列构造矩阵,然 后检测矩阵的行或列之间的线性独立性,矩阵秩的偏移程度可以给出关于线性独立性的量的认识,从而 影响对二元序列随机性好坏的评价。 5.10.2 检测步骤 矩阵秩检测步骤如下。 5.10.3 结果判定 将5.10.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过矩 阵秩检测,否则未通过矩阵秩检测。 5.11 累加和检测方法 5.11.1 概述 累加和检测方法分别对前向累加和、后向累加和两种模式进行检测。前向累加和检测从待检序列 第1比特开始,逐比特向后计算,后向累加和检测从待检序列最后1比特开始,逐比特向前计算,通过判 断待检序列的各个子序列中最大的偏移(与0之间),也就是最大累加和与一个随机序列应具有的最大 偏移相比较,以判断待检序列的随机性。 5.11.2 检测步骤 累加和检测步骤如下。 第一步:将待检序列ε中的0和1分别转换为-1和1,Xi=2εi-1(1≤i≤n)。 第二步:计算序列累加和Si(1≤i≤n)。 第三步:计算z=max1≤i≤n Si 。 第四步:计算 5.11.3 结果判定 将5.11.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过累 加和检测,否则未通过累加和检测。 5.12 近似熵检测方法 5.12.1 概述 近似熵检测通过比较m 位可重叠子序列模式的频数和m+1位可重叠子序列模式的频数来评价 其随机性。计算m 位可重叠子序列模式和m+1位可重叠子序列模式之间的频数差异,差异值较小则 表明待检序列具有规则性和连续性;差异值较大则表明待检序列具有不规则性和不连续性。对任意一 个m 来说,随机序列的近似熵应该近似等于ln2。 5.12.2 检测步骤 近似熵检测步骤如下。 第一步:由待检序列ε构造一个新的序列ε',构造方法如下:将序列ε最开始的m-1位数据添加到 序列ε的结尾即可得到ε',新序列ε'的长度为n'=n+m-1。 第二步:计算ε'中所有的2m个m 位子序列模式的出现频数,记m 位模式i1i2im出现的频数 为vi1i2im。 5.12.3 结果判定 将5.12.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过近 似熵检测,否则未通过近似熵检测。 5.13 线性复杂度检测方法 5.13.1 概述 线性复杂度检测用于检测各等长子序列的线性复杂度分布是否符合随机性的要求。将待检序列划 分成N 个长度为m 的子序列,此时n=N*m,然后利用Berlekamp-Massey算法计算每个子序列的线 性复杂度Li,根据Li的分布情况判断待检二元序列的随机性。 5.13.2 检测步骤 线性复杂度检测步骤如下: 第一步:将待检序列ε划分为N= 个长度为m 的非重叠子序列,将多余的比特舍弃。 5.13.3 结果判定 将5.13.2中计算得出的P_value结果与α进行比较。如果P_value≥α,则认为待检序列通过线 性复杂度检测,否则未通过线性复杂度检测。 5.14 Maurer通用统计检测方法 5.14.1 概述 Maurer通用统计检测用于检测待检序列能否被无损压缩。因为随机序列是不能被显著压缩,因此 如果待检序列能被显著地压缩,则认为该序列不随机。 6 随机性检测判定 6.1 概述 应采用第5章规定的15种随机性检测方法和附录A规定的检测设置对二元序列样本集进行随机 性检测。一种随机性检测方法对应至少一个随机性检测项目,其中如某一项随机性检测方法采用不同 检测参数设置(详见附录A),或具有不同检测模式(如块内最大游程检测方法、累加和检测方法),或具 有多个统计值(如重叠子序列检测方法),应作为单独的随机性检测项目进行检测,并分别对二元序列样 本集的每个检测项目的样本通过率、分布均匀性进行合格判定。比如累加和检测方法包括前向累加和、 后向累加和两种模式,前向累加和、后向累加和应作为2个独立的检测项目进行检测,并分别对二元序 列样本集中前向累加和、后向累加和的样本通过率、分布均匀性进行合格判定。 本文件确定二元序列样本集中的样本数量为1000。 6.2 样本通过率判定 对于每一个随机性检测项目,统计二元序列样本集中P_value值大于或等于α的样本个数,本文 件确定的用于样......