密码学工具:随机数生成器(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模块输出的随机数序列。
热门推荐
科学证实:丹栀逍遥丸有效缓解痛经,服用方法详解
上海“一日葬”引发热议:传统与现代的碰撞
重庆古城墙:一座见证六百年沧桑的明代建筑
一座城的文化“心跳”
《悲伤逆流成河》:一部引发社会关注校园欺凌的青春小说
12月15日起个人养老金全国实施,金融机构推出多样化产品
不同地区代步车价格差异大吗?
二硫化硒洗剂的正确用法是什么?有哪些注意事项?
二硫化硒洗剂的正确用法是什么?有哪些注意事项?
现代诗创作技巧大揭秘:让你秒变诗人!
凤凰单丛茶冲泡方式
探索台湾高山乌龙茶:科学解析八大好处与注意事项
凤凰单丛十大香型:从黄枝到茉莉,总有一款惊艳你的味蕾
王者荣耀明世隐攻略:链子机制详解与实战技巧
最新研究:地中海饮食和MINDDiet通过特定代谢物降低癌症风险
提升免疫力,改善淋巴细胞计数:从生活方式调整开始
2024北京免疫相关性皮肤病诊疗进展研讨会成功举办
儿童遗传内分泌专科医师揭秘:长高的黄金秘诀
减肥新宠花生芽:低脂高纤,美味又健康
筋膜炎最新疗法大揭秘!
四川麻将七对对决,同城游带你玩转
四川麻将七对对决,谁才是真正的牌王?
双十一手机清理大作战:告别卡顿
海鲜菇:营养堪比海鲜,3种家常烹饪方法
宅基地使用权引发邻里大战,该如何破解?
香菇炒青菜、炒肉丝等6种家常做法详解
中国历史上14位杰出女性:从军事统帅到政治家
项羽巨鹿之战:破釜沉舟奠定反秦主力地位
什么是合约交易
互联网法院诉讼材料准备全攻略