深入探讨随机数生成器设计中的安全性
1. 引言
随机数生成器(RNGs)是设计加密协议的基本加密原语之一。其应用广泛,包括生成加密密钥、初始化向量、挑战值、随机数和填充值,以及实施针对侧信道攻击的对策等。用于加密应用的RNGs必须满足基本的安全要求,输出值要有良好的统计特性且不可预测。在现代设计中,还要求生成器具有内在安全性、鲁棒性和抗攻击性,或者能够通过特定的在线测试。
加密系统的安全性主要与机密密钥的保护相关。在高端信息安全系统中,加密密钥应在系统内部生成且不暴露明文。因此,在逻辑设备(包括可配置逻辑设备)中实现随机数生成器至关重要。
现代嵌入式真随机数生成器(TRNG)设计面临三个基本挑战:
- 找到高质量的随机源(适用于数字技术)。
- 找到高效且鲁棒的随机提取原则。
- 保证安全性(例如通过稳健的设计或有效的在线测试)。
历史上,加密中使用的RNGs主要分为三类:确定性、非确定性(物理)和混合随机数生成器。
| RNG类型 | 特点 | 缺点 |
| ---- | ---- | ---- |
| 确定性(伪)随机数生成器(DRNGs) | 速度快,统计特性好,易于在逻辑设备中实现,常用于流密码的密钥生成 | 如果算法已知,输出可预测;即使算法未知,记录部分输出序列也可能用于未来攻击 |
| 物理(真)随机数生成器(TRNGs) | 使用物理过程生成随机数,若物理过程不可控,输出不可预测和/或不可控 | 最终速度受物理现象频谱和熵提取原则限制,统计特性通常比DRNGs差 |
| 混合随机数生成器(HRNGs) | 结合了快速且高质量的确定性RNG和缓慢但不可预测的物理RNG
超级会员免费看
订阅专栏 解锁全文
279

被折叠的 条评论
为什么被折叠?



