第三十四章 TRNG——真随机数
目录
在当今数字化时代,信息安全已成为嵌入式系统设计中不可忽视的关键因素。从物联网设备的身份认证到加密通信的密钥生成,高质量的随机数是构建安全系统的基石。W55MH32内置的真随机数生成器(TRNG)模块为开发者提供了硬件级别的随机数解决方案。
本文将通过W55MH32 TRNG的工作原理、应用场景、程序设计等方面对真随机数进行讲解。
1 TRNG概述
1.1 简介
TRNG(True Random Number Generator)即真随机数生成器,与伪随机数生成器(PRNG)不同,其随机性来源于物理噪声,而非确定性算法。W55MH32的TRNG模块利用芯片内部的物理噪声源(如热噪声、时钟抖动等)生成不可预测的随机数,适用于加密、安全认证、随机密钥生成等对随机性要求高的场景。
1.2 硬件结构
W55MH32的TRNG模块主要由以下部分组成:
- 噪声源:通常基于MOS管的热噪声或环形振荡器的抖动,产生原始随机信号。
- 放大与整形电路:增强噪声信号并转换为可处理的数字信号。
- 采样电路:对噪声信号进行采样,生成原始随机比特流。
- 熵累积器:收集采样得到的熵,积累足够的随机性。
- 随机数生成器:将累积的熵转换为可用的随机数(如32位整数)。
- 硬件测试与校准:确保噪声源正常工作,必要时进行校准。
1.3 真随机与伪随机的区别
随机数在计算机科学中主要分为两类——真随机和伪随机,其对比如下所示:
| 特性 |
真随机数(TRNG) |
伪随机数(PRNG) |
| 随机性来源 |
物理噪声(热噪声、时钟抖动) |
数学算法(如线性同余法) |
| 可预测性 |
不可预测(基于物理现象) |
理论上可预测(已知种子和算法) |
| 周期性 |
无周期性 |
存在周期性(周期长度取决于算法) |
| 硬件依赖 |
需要特定硬件模块 |
纯软件实现 |
| 应用场景 |
加密、安全认证、密码学 |
模拟、游戏、非安全场景随机数 |
1.4 工作流程
TRNG的工作流程可以分为以下几个关键步骤:
- 噪声采集阶段:多个环形振荡器同时工作,其输出频率的微小差异被捕获并放大。这些差异作为原始随机信号输入到后续处理电路。
- 数字化阶段:模拟的随机信号被采样并转换为数字比特流。采样过程通常使用高速时钟进行,确保捕获到足够的随机信息。
- 随机性增强阶段:原始数字信号可能存在统计偏差,需要通过算法进行后处理。W55MH32的TRNG使用一种称为"异或树"的结构,将多个环形振荡器的输出进行异或运算,增强随机性并消除可能的偏差。
- 质量检测阶段:生成的随机数经过实时统计测试,确保其符合随机性标准。W55MH32的TRNG实现了两种主要测试:
- 单比特频率测试:确保0和1的出现概率接近50%
- 游程测试:检测连续相同比特的长度是否符合随机分布
- 输出阶段:通过质量检测的随机数被存储在数据寄存器中,供CPU读取使用。当

最低0.47元/天 解锁文章
4174

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



