商用密码应用与安全性评估要点笔记(随机数)

1、随机数简介

        根据密码学原理,随机数的随机性检验可以分为三个标准:

        A. 统计学伪随机性。统计学伪随机性指的是在给定的随机比特流样本中,1的数量大致等于0的数量,同理,“10”“01”“00”“11”四者数量大致相等。类似的标准被称为统计学随机性。满足这类要求的数字在人类“一眼看上去”是随机的。(弱伪随机数,只满足随机性即可)

        B. 密码学安全伪随机性。其定义为,给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。(强伪随机数,需满足随机性和不可预见性)值得注意的是没有数学证明表示密码学安全的伪随机数生成器是确实存在的。其存在性证明涉及到P和NP的数学难题。

        C. 真随机性。其定义为随机样本不可重现。实际上只要给定边界条件,真随机数并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉(比如计算机当地的本底辐射波动值),可以认为用这个方法演算出来了真随机数。(真随机数,同时满足随机性、不可预见性和不可重复性)

         随机数在密码学中非常重要,保密通信中大量运用的会话密钥的生成即需要真随机数的参与。如果一个随机数生成算法是有缺陷的,那么会话密钥可以直接被推算出来。若果真发生这种事故,那么任何加密算法都失去了意义。

2、随机数标准

        随机数的质量直接影响到密钥生成、数字签名以及其他密码算法和协议的实际安全性。关于随机数相关国密标准具体如下:

        

 

        GMT 0005-2012 随机性检测规范(对应国标GBT32915-2016二元序列随机性检测方法)

        GMT 0062-2018 密码产品随机数检测要求

        GMT 0078-2020 密码随机数生成模块设计指南

        GMT 0103-2021 随机数发生器总体框架

        GMT 0105-2021 软件随机数发生器设计指南

        按照随机数检测规范(共15项检测:单比特频数检测、块内频数检测、扑克检测、重叠子序列检测、游程总数检测、游程分布检测、块内最大1游程检测、二元推导检测、自相关检测、矩阵秩检测、累加和检测、近似熵检测、线性复杂度检测、Maurer通用统计检测、离散傅里叶检测),对于每一项随机性检测,统计P-value值不少于显著性水平a的样本数,则随机数发生器通过该项检测,否则为不通过。如果随机数发生器通过所有15项检测,则该随机数发生器通过检测,否则为不通过。

        对于商用密码产品应用中,硬件实现随机数发生器产生随机数的随机性指标和检测,分为5类不同的产品形态,每类检测划分为四个不同应用阶段:送样检测、出厂检测、上电检测、使用检测。(具体的检测项目就是采用GBT32915的那15项检测方法,采用的显著性水平a取0.01)

        A类,不能独立作为功能产品使用的,例如随机数发生器芯片。要求送样检测和出厂检测。

        B类,用时上电,随机数检测处理能力有限,对上电响应速度有严格要求,例如IC卡。要求送样检测、出厂检测和使用检测。

        C类,用时上电,随机数检测处理能力有限,对上电响应速度没有严格要求,例如UKey。要求所有四个阶段进行检测。

        D类,长期加电,随机数检测处理能力有限,对上电响应速度没有严格要求,例如POS机。要求所有四个阶段进行检测。

        E类,长期加电,较强的随机数检测处理能力,对上电响应速度没有要求,例如服务器。要求所有四个阶段进行检测。

3、随机数生成器

        3.1 密码硬件随机数生成模块(GMT0078-2020)

        硬件随机数生成模块一般模型,使用物理随机源(混沌动力系统、相位抖动、热噪声直接放大),后处理电路生产符合统计特性的序列。

        3.2 软件随机数发生器(GMT0105-2021)

        软件随机数发生器一般模型如下,其中软件随机数发生器收集系统熵源的随机性作为其随机性的来源(随机性的来源也可以来自系统或 硬件随机数发生器),同时熵源同一时刻只能被一个软件随机数发生器独占访问,以保证软件随机数发生器独占过程中所读 取的熵源数据无法被其他实体。利用SM3和SM4构建DRNG。对应安全级别为安全一级和安全二级。

        

4、典型随机数生成器

        4.1 弱随机数生成

        线性同余算法(Xn+1 = aXn + c mod m),已知X0可以推导出所有序列。

        4.2 密码学安全随机数生成

        Yarrow,在FreeBSD中被用作CSPRNG,并被Mac OS X系统继承。是密码学安全的伪随机数生成算法。

        Blum Blum Shub,BBS安全性基于二次同余方程的求解问题,即基于大数分解问题。

        双椭圆曲线随机比特生成器(Dual_EC_DRBG),Dual_EC_DRBG是NIST的密码学安全的伪随机比特生成标准。该标准引发了大量的争议。尽管被用来作为官方的密码学标准,但是它很快被证明了它是不够好。

        ANSI X9.17伪随机数发生器(使用分组密码的伪随机数产生算法),基于此的伪随机数产生器是密码强度最高的伪随机数产生器之一,目前已经在包括PGP等许多应用中被采纳。

        后续将持续补充。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游鲦亭长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值