密码学工具:随机数生成器(PRNG与TRNG)设计详解
创作时间:
作者:
@小白创作中心
密码学工具:随机数生成器(PRNG与TRNG)设计详解
引用
CSDN
1.
https://blog.csdn.net/WillsonZ/article/details/141954472
随机数生成器是密码学中的核心组件,广泛应用于密钥生成、初始化向量设置等多个场景。本文将深入探讨随机数的性质、伪随机数生成器(PRNG)和真随机数生成器(TRNG)的设计原理及其硬件实现方式。
随机数应用
随机数与密码学密切相关,在AES算法中多次使用到随机数。具体应用场景包括:
- 密钥(对称密码和消息认证码)生成
- 密钥对(公钥密码和数字签名)生成
- 初始化向量(IV)生成
- NONCE码(AES-CTR模式中生成计数器初值)生成
- 盐码(应用于口令密码PBE)生成
随机数性质
随机数具有三个关键性质:
- 随机性:不存在统计学偏差,数列完全杂乱
- 不可预测性:无法从过去的数列推测出下一个数
- 不可重现性:除非保存数列本身,否则无法重现相同的数列
其中,满足随机性和不可预测性的随机数称为强伪随机数,可应用于密码算法;具备不可重现性的随机数称为真随机数,也可应用于密码算法。
随机数生成器
随机数生成器分为两类:
- 伪随机数生成器(PRNG):通过软件实现,具有内部状态,根据种子生成随机数序列
- 真随机数生成器(TRNG):通过硬件实现,从物理现象中获取随机性
伪随机数生成器(PRNG)
伪随机数生成器的内部状态是指内存中的数值,根据内部状态计算伪随机数。种子用于初始化内部状态,必须保密。常见的实现方法包括:
- 线性同余法:算法简单但不适合密码算法
- 单向散列函数法:基于SHA-1等单向散列函数
- 密码法:基于AES等对称密码算法
- ANSI X9.17:使用三重DES或AES,增加了掩码步骤
在芯片硬件中,PRNG模块也称DRNG,需要种子进行伪随机数的生成,种子可以由用户写入或使用TRNG模块的输入写入。
真实随机数生成器(TRNG)
TRNG通过物理现象产生随机数,过程不可预测,因此安全性较高。TRNG模块包含随机源模块、采样模块和数字后处理模块。
随机源设计
核心是环形振荡器,由多个反相器组成(必须是奇数个)。环形振荡器没有稳态,会产生周期性振荡信号。使用D触发器作为采样开关,高频环形震荡器的信号作为输入,低频时钟信号作为采样时钟信号。
数字后处理设计
一般采用线性反馈移位寄存器(LFSR),也称作M序列扰乱模块。LFSR通过将寄存器中的某些位进行异或处理,将结果反馈到最左边作为数据输入。经LSFR数字处理后的随机数列,就是TRNG模块输出的随机数序列。
热门推荐
鬼谷子的智慧:飞箝术解读及其经典案例
深圳笔架山体育公园:活力山水,脉动星河
乐跑一夏!全国慢跑指数地图来了 看哪里适宜全天畅跑
案件视频档案:揭秘警方如何利用高科技手段悬案
利息超过法定如何确认?全面解读与实务操作指南
全面解读新加坡公司条例:注册、运营与法律合规指南
为什么四分配速,是业余跑者的“天花板”?
医美案例警示:纹身后三度烧伤,消费者获赔后续治疗费
轻型商用车制动热衰退性能道路试验研究
租赁合同到期查询与车位转让合同签订指南
ofo、永安行等六大共享单车接入支付宝:扫一扫即可骑走 部分城市免押金
劳动力类型根据什么标准区分
唐楷之:颜真卿的笔法、结体与影响
什么是芥末(Mustard)?
每日摄入多少水量可以满足新陈代谢需求
如何在iPad及其他Apple设备上使用私有网络地址
为什么会出现explorer.exe占用很大内存的情况
香港工作、深圳生活,一年攒下30.8万,每日通勤3小时,值得么?
保密无小事,人人当尽责
模因meme是什么意思?你知道“模因”这个词是由谁最先提出的吗?
手机无线充电终于可以开卷了,苹果却先挨了一枪。
原来做花卷这么简单,教你2种简单好看的拧法,松软又多层
大闸蟹只知阳澄湖?还有这些湖泊的螃蟹同样美味
危险品运输标志全解析:主副标志详细指南
夹头类型的了解
如何做好有利于身心健康的办公室装修环境
马斯克:SpaceX星舰第八次试飞将于本周五进行
鸿蒙老祖出自哪里的神话?道教文化解读!
茶具的造型与功能:如何选择最适合你的那一款
做了射波刀一般能活几年?