商用密码产品认证中的随机数(一)

1 商密认证中的随机数介绍

      如果说密钥的安全是密码产品的基石,那随机数的安全就是密钥安全的基石。密码产品设计和商用密码产品认证中,随机数的合规性也是需要重点关注的环节。

      随机数的合规性主要包括:

  1. 随机数的来源合规。如果是自行设计的随机数发生器,该发生器需符合相关标准。
  2. 不同类型的密码产品在使用随机数时需进行对应的自测试,以保证产品的随机数安全。例如,密码机应对随机数执行出厂检测、上电检测、使用检测,其中使用检测又包括周期检测和单次检测。
  3. 密码产品使用的随机数质量检测。按照要求应采集1000组128KB大小的样本文件,执行GB/T 32915要求的15项测试。注意,随机数质量检测仅有2次机会,不通过则判定产品不合格。

      本系列将围绕随机数展开描述,涉及随机数的定义、应用场景、规范解读、随机数发生器的设计、随机数质量的检测等。

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

2 随机数概述

2.1 随机数的定义

       随机数,顾名思义就是随机出现的数,其最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。

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

  1. 统计学伪随机性。统计学伪随机性指的是在给定的随机比特流样本中,1的数量大致等于0的数量。同理,‘10’、‘01‘、’00’、‘11’四者数量大致相等。类似的标准被称为统计学随机性。满足这类要求的数字在人类“一眼看上去”是随机的。
  2. 密码学安全伪随机性。其定义为,给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。
  3. 真随机性。其定义为随机样本不可重现。实际只要给定边界条件,真随机数并不存在,可如果产生一个真随机数样本的边界条件十分复杂且难以捕捉(例如计算机当地的辐射波动值),可以认为用这个方法演算出来了真随机数。

     按照上述三个标准,随机数也分为三类:

  1. 伪随机数:满足第一个条件的随机数。
  2. 密码学安全的伪随机数:同时满足前两个条件的随机数。可以通过密码学安全伪随机数生成器计算得出。
  3. 真随机数:同时满足三个条件的随机数。

2.2 随机数常见应用场景

       随机数是密码学的基石,在密钥生成、密码运算、密码应用等场景,随机数都是关键信息。试想,如果在生成密钥时无法确保随机数的随机性,即攻击者可以预测即将生成的“密钥”,这将对密码产品带来严重的安全风险。下面简要介绍几个常见的随机数应用场景

2.2.1 密钥生成

        对于密码产品,密钥生成方式可以简单分类为内部生成和根据输入派生两种方式。

        内部生成:内部生成时可以直接调用随机数发生器的输出作为密钥。需要注意的是,设计密码产品时,随机数发生器应是“核准”的。例如,可以使用安全芯片的随机数接口获取真随机数作为对称密钥,也可以使用密码卡产生的真随机数作为SM2私钥。

       根据输入派生:从一个密钥派生出一个或多个新的密钥。比如在GM/T 0024定义的GMSSL通信中,通信双方通过随机数协商出一个主密钥,再使用PRF函数从这个主密钥派生出本次会话需要使用的一组密钥作为工作密钥。如下图。

2.2.2 密码运算

       在SM2数字签名、加密、密钥交换等运算中,会产生随机椭圆曲线点,此时需要使用随机数发生器输出的随机数。如下图所示,在SM2签名过程中的第3步,需要使用随机数发生器生成随机数,该随机数作为基点的倍数用来生成椭圆曲线上的随机点。

2.2.3 密码应用

      随机数广泛应用于密码技术的应用。

      a) 生成Nonce(Number once)

      参考GB/T 15843,在执行身份鉴别过程中,需要使用时间戳、序号或随机数作为时变参数抵御重放攻击。时间戳、序号或随机数可以统一称为Nonce,即GB/T 15843中描述的时变参数。

      在密码学中,推荐使用随机数作为时变参数。如下图所示,RB即为验证方B发送给声称方A的随机数。验证方B每次执行鉴别时调用随机数生成器产生一定长度的随机数RB,声称方A需要对RB执行加密并将加密结果返回以证明自身具备鉴别密钥。

b) 生成Salt盐值

      Salt盐值是指将特定字符串插入到明文固定位置,让散列/加密等运算的结果值不同于使用原始明文的计算结果值。

      以散列运算为例,散列算法如果被获知,只要有相同的明文,任何人都能算出相同的摘要值。添加盐值的意义在于让只有掌握正确盐值的用户才能计算出正确的散列值。如果每次散列使用的盐值都不一样,那么即使相同明文的散列值也是不一样的,这样就增加了破解难度。此外,盐值的随机性越好,对应的散列计算的安全性就越高。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GMT 0062-2018 是一份文件,属于密码产品检测领域随机数检测要求。该文件的主要目的是为了保证密码产品(如加密芯片、密码锁等)在使用随机数时具有足够的安全性和不可预测性,以避免密码泄露和攻击风险。 GMT 0062-2018 对随机数的生成、存储、传输和使用等方面做出了详细的规定和要求。其包括了随机数生成器的设计要求、随机数的输出格式、随机数的使用场景和安全性要求等方面。 此外,该文件还针对随机数检测的方法和标准进行了规范,包括统计测试、随机性测试和加密性测试等方面。 总之,GMT 0062-2018 《密码产品随机数检测要求》是一份非常重要的文件,对保证密码产品的安全性和可靠性具有极为重要的作用。同时,对于从事密码产品设计和测试的专业人员也有着重要的指导意义。 ### 回答2: GMT 0062-2018 《密码产品随机数检测要求》是我国密码产品质量检验的重要建议性文件,旨在保障密码产品的安全性和可靠性,提高密码保护体系能力。本文件规定了密码产品生成随机数的要求,同时也提供了相关的测试方法。 密码产品是现代信息化社会必不可缺的一部分,它们广泛应用于互联网金融、电子商务等领域,保护金融、电子商务等领域的敏感信息。密码产品生成的随机数是确保密码安全的核心之一。该建议性文件要求密码产品生成的随机数应具有充分的随机性、独立性和不可预测性,并且要求密码产品在生成随机数时要使用安全算法且具有防篡改设计。 此外,该文件还规定了密码产品随机数检测的方法。对于密码产品生成的随机数进行测试,测试结果应该符合文件规定的参数范围,而且测试结果也应该具有科学性和可信度。 总之,GMT 0062-2018 《密码产品随机数检测要求》的发布为我国密码领域的发展提供了重要的参考意见,在未来的密码产品开发,将能够更加轻松地保障密码产品的安全性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值