密码学工具:随机数生成器(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模块输出的随机数序列。
热门推荐
养老保险缴费攻略:最低档最划算?
猫贫血指标详解(掌握猫咪贫血的筛查指标)
猫贫血指标详解(掌握猫咪贫血的筛查指标)
猫咪贫血吃什么食物可以补血?
《财富的孩子》:揭秘富二代的真实生活与成功密码
厦金大桥(厦门段)刘五店航道桥钢沉井 全部下放到位
基金定投策略全解析:从投入方法到止盈技巧
挑选ETF时有个很重要的指标,但很多投资者却并不知道
情绪管理:如何通过饮食调理克服食欲不振?
肝病、胃食道逆流和更年期:揭秘食欲不振背后的医学真相
红枣助你找回好胃口!
中药调理:快速恢复食欲的小妙招
王者荣耀橘右京攻略:技能详解与实战技巧
脱敏治疗:过敏性鼻炎的「呼吸重塑」
春季过敏高发,外出需做好防护
深圳机场“搬到”江门市民家门口
济南灵活就业新趋势:互联网平台成热门
济南市调查队揭秘:灵活就业成吸纳就业重要渠道
河南六旬阿姨8年穷游12国,10年抑郁症成功断药
丝瓜络泡酒:通经活络新潮流
秋冬养生新选择:丝瓜络泡酒的功效与制作方法
别人结婚说恭喜合适吗
王者荣耀夏洛特攻略:技能详解、出装推荐及实战技巧
王者荣耀夏洛特攻略:最强连招顺序与出装推荐
湘西腊肉:千年传奇,一味乡愁
济南驾考新规来了!你准备好了吗?
腊肉储存大作战:冰箱 vs. 真空袋,哪个更靠谱?
腊肉大作战:15种做法让你过年吃出新花样!
冬季必吃!腊肉炒荷兰豆超简单做法
春节必备:腊肉这样吃才健康!