随机数发生器设计(一)

1 随机数发生器设计概述

密码行业的随机数发生器总体框架标准为GM/T 0103。随机数发生器可以分为硬件随机数发生器和软件随机数发生器。

硬件随机数发生器一般以组成部件的形式集成在安全芯片的内部,或者随机数发生器本身就是安全芯片。考虑到随机数发生器是密码产品必不可少的组成,一般的安全芯片都具备硬件随机数发生器。具备商用密码认证证书的安全芯片所使用随机数发生器都被认为是“核准”的随机数发生器。国内可供使用安全芯片产品众多,从物联网、IC卡、终端到密码卡均有覆盖,可以在这里查询信息:精准查询
相比硬件随机数发生器,软件随机数发生器具备成本低、便携型好的优势,适应当前移动互联网的应用场景。但考虑到软件的运行环境复杂,熵源信息易受控,软件随机数发生器的设计应更全面考虑自身安全性。

无论是硬件或软件随机数发生器,均应考虑如下方面:
1) 熵评估。在随机数发生器的设计阶段,应“通过理论建模分析、统计检测等方法对随机源序列进行预测评估,得到熵估值”。熵估计不是随机数发生器的组件部件,但却是设计阶段必需步骤。熵估计可以参考NIST.SP.800-90B第6部分。
2) 随机数发生器的实现。随机数发生器的熵源可以是物理熵源,也可以是系统熵源,熵源输出经熵源健康测试后进行后处理。处理完成后输出随机数数据。硬件和软件随机数发生器的实现分别参考本文第2和第3部分。
3) 外界使用随机数发生器时需对输出的随机数进行使用自测试。自测试应符合GM/T 0062.
随机数发生器设计框架

2 硬件随机数发生器

硬件随机数发生器的设计参考GM/T 0078《密码随机数生成模块设计指南》。本文不再对该标准进行重复。
硬件随机数组成

物理随机源电路即为物理熵源,设计原理包括混动动力系统原理、相位抖动原理和热噪声直接放大原理。
物理随机源失效检测即为熵源健康测试。需要注意的是,除了健康测试,物理随机源电路输出的随机数应满足GM/T 0005的单比特频数检测、扑克检测、游程总数检测,测试数据长度为2*10^4,检测显著性水平为α=0.0001。

3 软件随机数发生器

软件随机数发生器的设计参考GM/T 0105《软件随机数发生器设计指南》。
软件随机数发生器的熵源一般为系统熵源,也可以引入物理熵源。引入物理熵源时需注意物理熵源数据的安全传输。
下图是一个典型的软件随机数发生器。来自系统熵源的输入数据经健康测试(包括上电健康测试和连续健康测试)后存入熵池,再经扩展后进入后处理阶段。后处理阶段的输出函数根据内部状态计算最终输出的随机序列,初始化函数和重播种函数则根据输入的熵数据更新内部状态。
软件随机数发生器组成

与硬件随机数发生器一样,软件随机数发生器也对外提供2个输出接口:
1)状态输出接口:当内部自测试未通过,通过状态输出接口提示外界自身错误状态。
2)随机数据输出接口:为外界提供可用的随机数据。需要注意的是,这些随机数也应按照GM/T 0062进行自测试后才能使用。

考虑到当前商用密码产品由硬件向软件应用转型,越来越多的软件产品面临软件随机数发生器的设计问题,后面的文章会详细介绍上述软件随机数发生器的各部分设计方式和源码。

如果商用密码产品认证中遇到问题,欢迎加微信symmrz沟通。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随机数作为密钥或密码运算资源被广泛应用于信息安全系统,随机数的研究 越来越重要。随着计算技术密码学的发展,在信息安全应用中不仅需要可输出 各种形式随机数发生器,而且还需要对随机数随机性做更深入的研究与分析, 为相关应用提供理论支撑。 本文综合讨论了随机数发生器随机性检测器的设计与实现。 首先对随机数发生器进行了分类讨论,按照真随机数发生器与伪随机数发生 器两种产生方法及性能进行了分析和对比。本文研究并设计了两款伪随机数发生 器,并用软件实现这两个发生器,产生相应的实例以供随机性检测器测试。同时 在信息安全领域真 随机数发生器中选择了一款常用的噪声源芯片 WNG4 ,用该芯 片产生真随机数,本软件系统调用该真随机数序列作为测试实例,以供随机性检 测器测试。 其次 本文设计并实现了一款随机性检测器,该检测器实现了国内较常用的 15 种检测方法,包括单比特频数检测、块内频数检测、扑克检测、重叠子序列检测、 游程总数检测、游程分布检测、块内最 大 1 游程检测、二元推导检测、自相关 检测 、矩阵秩检测、累加和检测、近似熵检测、线性复杂度检测、 Maurer 通用统 计检测、离散傅立叶检测等 15 项检测方法。以统计与概率学为理论依据,对 15 种检测方法进行 软件实现,对每种方法的运算步骤及实现做了详细的研究与分析。 然后 本文使用三个正向实例与一个反向实例作为测试案例对检测器进行测试。 正向实例为本文自行设计随机数发生器产生 的 结果 作 为待测样本数据 即两款 伪随机数发生器与一款真随机数发生器产生的随机数 。 反向实例为模拟一个有明 显缺陷的随机数序列。 本文 详细讨论了测试结果,对随机数发生器随机性检测 器同时进行测试与验证, 以 证明随机数发生器的良好性能及随机性检测器的运行 有效性,并得出结论, 证明 该检测系统的设计与实现与预期一致。 本文的亮点在于: 紧密结合工作实际,紧紧围 绕随机数随机性检测这一课题的研究,系统地梳 理了相关检测方法,综合国内实际情况选择了最适合信息安全领域的 15 种检测方 法,再用简洁高效的软件语言实现这些检测方法,拓展了企业在随机性检测领域 的检测能力,使之成为信息安全 领域 的有效测试工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值