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

news2024/11/23 3:40:16

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/500731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一点通路由模拟实验8

首先先设置hostA和hostB和hostC的ip 其次设置路由接口的各个ip 路由A 像这样的,再设置路由B 唯一要记住的是,时钟只要设置一个就行 就是clock rate 6400,之后开启路由:ip routing 然后就是查看路由表了(路由A&#…

Lecture 12(Preparation):Reinforcement Learning

目录 What is RL? (Three steps in ML) Policy Gradient Actor-Critic Reward Shaping No Reward: Learning from Demonstration It is challenging to label data in some tasks. 例如下围棋时,下一步下在哪个位置最好是不太好确定的,此时可以考虑…

无线传感器网络路由优化中的能量均衡LEACH改进算法(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 由于簇的规模和簇头选择对WSN总能耗影响较大:一方面,当簇的规模较小时,易导致WSN能量消耗不…

2021年NOC大赛编程马拉松赛道图形化中高组模拟卷,包含答案

目录 单选题: 判断题: 下载文档打印做题: 2021年NOC大赛编程马拉松赛道图形化中高组模拟卷 单选题: 1.雪球不小心误入了图灵学院旁边山林中的一个洞穴,一直都没有出来,禾木、桃子和小核桃打算进去找她,洞穴里漆黑一片,三人走着走着,不知怎么也走散了。如下图所示,…

加速开放计算产业化,OCTC五大原则瞄准需求痛点

回顾计算产业过去十余载的历程,开放计算始终是一个绕不开的核心焦点。 始于2011年Facebook发起的数据中心硬件开源项目--开放计算项目(简称:OCP),开放计算犹如星星之火,不仅迅速形成燎原之势,更…

windows安装GO语言环境

GO语言版本 Windows 平台和 Mac 平台推荐下载可执行文件版,Linux 平台下载压缩文件版。 版本:1.16.8 出现上面这个界面就说明已经安装好了 查看GO版本 可以打开终端窗口,输入go version命令,查看安装的 Go 版本 C:\Users\8617…

python数据可视化开发(5):webAPI百度地图轻量驾车路线规划距离与直线距离计算

webAPI百度地图轻量驾车路线规划规划 一、驾车路线规划说明1.接口说明API服务地址请求参数返回参数 二、python核心代码1.轻量路线规划代码封装2.批量读取起始点信息 三、直线距离计算 轻量级路线规划服务(又名DirectionLite API )是一套REST风格的Web服…

带你玩转数据结构-单链表(适合初学者的文章,讲解的很仔细哦)

前言: 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 C语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:讲解数据结构中链表的知识,;链表的分类,c语言实现单链…

界面控件Telerik UI for WinForms使用指南 - 数据绑定 填充(二)

Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件,所有的UI for WinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。 Telerik UI for WinForms组件为可视化任何类…

使用【SD-WEBUI】插件生成同一张图包含多个人物:分区域的提示词

文章目录 (零)前言(一)潜变量成对(Latent Couple)(1.1)可自组LoRA(Composable LoRA) (二)分区扩散(Multi Diffusion&#…

测试用例常见设计方法

1.基于需求的设计方法 主要从以下方面进行思考: 2.等价类法 将输入的数据等价划分成几个类,从每个类里面选出一个测试用例,如果这个测试用例通过,说明这一个类的测试用例都通过 有效等价类:满足输入数据要求的类 无…

rosbag相关进阶操作

一些很好用的网站 时间戳在线转换网页 旋转矩阵、四元数、绕轴旋转、欧拉角在线转换网页 四元数、欧拉角可视化在线转换网页 一、按时间截取bag 使用如下代码&#xff1a; rosbag filter 原始包名.bag 截取后的包名.bag "t.to_sec() > 开始时间 and t.to_sec() <…

如何导出windows平台下cloudflare warp内部存的私钥和token

结论&#xff1a;管理员身份运行 mimikatz&#xff1a;https://github.com/gentilkiwi/mimikatz/releases/tag/2.2.0-20220919 然后输入&#xff1a; privilege::debug &#xff08;提升权限到&#xff1a;NT-AUTHORITY\SYSTEM&#xff09;以及sekurlsa::credman 就能看到&…

免费使用GPT4.0?搭载多模态的全新New Bing开放使用教程(文末送书)

目录 1 微软发布新必应2 支持文本生成图像3 支持多模态回答4 历史记录和回答导出5 支持插件化导入本期图书推广 1 微软发布新必应 5月4日&#xff0c;微软基于ChatGPT的搜索引擎New Bing发布了一次大规模更新&#xff0c;并宣布已开放给所有用户&#xff0c;现在无需再排队等待…

前端技术搭建弹珠小游戏(内附源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了小人逃脱&#xff0c;当然很多伙伴再评论区提出了想法&#xff0c;后续我们会考虑实现的&#xff0c;今天还是继续按照我们原定的节…

sentinel 随笔 3-降级处理

0. 像喝点东西&#xff0c;但不知道喝什么 先来段源码&#xff0c;看一下 我们在dashboard 录入的降级规则&#xff0c;都映射到哪些字段上 package com.alibaba.csp.sentinel.slots.block.degrade;public class DegradeRule extends AbstractRule {public DegradeRule(String…

redis(1)---redis的安装以及五大基本类型的使用

一)认识NoSQL 格式化数据VS格式化 1)SQL关系型数据库&#xff0c;在关系型数据库里面表中的字段是有限制的&#xff0c;况且最好不要随意删除修改表结构&#xff0c;存入到关系型数据库中的数据&#xff0c;都是结构化的数据&#xff0c;对于这些数据都是必须要有格式化的要求&…

sentinel 随笔 2-流控

0. 想要个半个月的旅游 最近发现算法比较有意思一些&#xff0c;什么企业框架都是看不完的… 书接 FlowSlot 1. FlowRuleChecker.checkFlow() : 配置的规则校验类 sentinel 并没有对这个Checker进行抽象的设计&#xff0c;第一次看有些别扭… package com.alibaba.csp.sent…

01- 综述 (目标检测)

要点&#xff1a; 区分One-stage detector 和 Two-stage detector 参考链接&#xff1a;深度学习目标检测最全综述 - 爱码网 详细模型解读参考&#xff1a;目标检测简介 - 知乎 一 目标检测分类 1.1 发展历程 检测网络发布历程&#xff1a; 1.2 检测模型分类 2014年后目标…

C嘎嘎~~ [类 下篇之运算符重载]

类 下篇 之运算符重载 5.赋值运算符重载5.1运算符重载5.1.1 运算符的概念5..1.2 重载运费符的位置5.1.3运算符重载的实质 5.2 赋值运算符重载5.2.1深刻理解---编译器生成的默认赋值运算符重载5.2.2深刻理解---拷贝构造和赋值运算符重载5.2.3深刻理解---传参和返回值用引用修饰…