
ICS 35.030
GM
CCS L 80
中华人民共和国密码行业标准
GM/T 0105—2021
软件随机数发生器设计指南
Design guide for software-based random number generators
2021-10-18发布
2022-05-01实施
国家密码管理局 发布
GM/T 0105—2021
目次
前言 …………………………………………………………………………………………………………Ⅲ
引言 …………………………………………………………………………………………………………IV
1 范围……………………………………………………………………………………………………1
2 规范性引用文件 ………………………………………………………………………………………………………1
3 术语和定义 ……………………………………………………………………………………………1
4 缩略语 ………………………………………………………………………………………………3
5 软件随机数发生器设计 ………………………………………………………………………………3
5.1 基本模型 …………………………………………………………………………………………3
5.2 熵源 ………………………………………………………………………………………………4
5.3 熵池 ………………………………………………………………………………………………5
5.4 熵估计 ……………………………………………………………………………………………………5
5.5 健康测试 …………………………………………………………………………………………5
5.6 DRNG ……………………………………………………………………………………………6
6 安全分级方法 …………………………………………………………………………………………7
6.1 概述 ………………………………………………………………………………………………7
6.2 GB/T37092安全等级一级…………………………………………………………………8
6.3 GB/T37092安全等级二级……………………………………………………………………………8
7 实现 ……………………………………………………………………………………………………8
7.1 通用 ………………………………………………………………………………………………8
7.2 关键安全参数定义 ………………………………………………………………………………8
7.3 熵源独占性 ………………………………………………………………………………………………………8
附录A(资料性)熵源和熵池结构示例 ………………………………………………………………9
附录 B(规范性) 基于SM3算法的 RNG设计………………………………………………………11
附录C(资料性) 熵估计方法…………………………………………………………………………………16
附录D(规范性)连续健康测试方法………………………………………………………………20
附录 E(规范性)基于SM4算法的RNG设计………………………………………………………23
参考文献 …………………………………………………………………………………………………29GM/T 0105—2021
软件随机数发生器设计指南
1 范围
本文件给出了软件随机数发生器设计的基本模型、基本部件的设计指南以及安全分级方法,并在附录中给出了基于SM3算法和基于SM4算法的设计实例。
本文件适用于软件随机数发生器的设计、开发、检测和评估。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 15852.1 信息技术 安全技术 消息鉴别码 第1部分:采用分组密码的机制GB/T 17964 信息安全技术 分组密码算法的工作模式GB/T 32905 信息安全技术 SM3密码杂凑算法GB/T 32907 信息安全技术 SM4分组密码算法
GB/T 32915—2016 信息安全技术 二元序列随机性检测方法GB/T 37092—2018 信息安全技术 密码模块安全要求GM/Z 4001 密码术语
3 术语和定义
GB/T 32915—2016、GB/T 37092—2018和GM/Z 4001界定的以及下列术语和定义适用于本文件。
3.1
熵 entropy
对一个封闭系统的无序性、随机性或变化性等状态的度量。注:随机变量X的熵是对通过观测X所获得信息量的一个数学度量。
3.2
熵源 entropy souree产生输出的部件、设备或事件。当该输出以某种方法捕获和处理时,产生包含熵的比特串。
3.3
已知答案测试 known-answer test
一种测试确定性机制的方法,即通过该机制处理给定的输入,然后将所得到的输出与已知值进行比较。
3.4
熵池 entropy pool
临时保存熵的存储区域。