GD32 MCU的真随机数发生器(TRNG)

发布于:2025-06-15 ⋅ 阅读:(19) ⋅ 点赞:(0)

GD32 MCU的真随机数发生器(TRNG)


真随机数(True Random Numbers)是指 完全基于物理世界中的不可预测过程生成的随机数序列,具有 本质上的不可重复性、不可预测性和统计独立性。其核心特征和应用原理如下:


一、定义与核心特征

  1. 不可预测性
    • 真随机数的生成依赖于物理系统的固有随机性(内禀随机性),例如量子叠加态的坍缩、热噪声或光子行为。即使完全知晓物理系统的初始状态和生成机制,也无法预测下一个输出结果。
    • 对比伪随机数:伪随机数由确定性算法(如线性同余法)生成,一旦知道种子值和算法,整个序列可完全复现。
  2. 无周期性与不可重复性
    • 真随机数序列没有周期性,且无法重现相同的序列。例如,基于量子测量的随机数,每次观测结果都是独立的随机事件。
  3. 统计独立性
    • 序列中的每个数不仅服从均匀分布,且与其他数及外部变量(如环境温度、设备状态)完全无关,满足密码学安全的“独立性”要求。

二、物理机制:量子与经典随机性

  1. 量子随机性(内禀随机性)
    • 量子过程:如单光子通过分束器时,透射或反射的概率各为50%,结果由量子力学的不确定性决定,与测量精度无关。
    • 设备无关随机数扩展:通过量子纠缠和贝尔不等式检验(如CHSH值>2),确保生成的随机数与设备缺陷或供应商恶意操作无关。
  2. 经典物理过程的局限性
    • 抛硬币、电子噪声等宏观过程看似随机,但本质是表面随机性。若精确控制初始条件(如抛掷角度、风速),结果可预测。
    • 此类方法生成的随机数属于伪随机或弱随机,仅适用于低安全场景(如游戏随机化)。

三、生成方法

  1. 硬件随机数发生器(HRNG/TRNG)
    • 物理源:利用热噪声、放射性衰变、光量子效应等物理现象,通过传感器和模数转换器输出随机比特。
    • 改进技术:因原始物理信号可能存在偏差,常结合算法(如哈希函数)优化统计分布,通过国家密码管理局的随机性检测。
  2. 量子随机数发生器(QRNG)
    • 基于量子态测量(如单光子路径选择),是目前唯一被严格证明具备真随机性的方法。

四、应用场景

  • 密码学:会话密钥生成、数字签名、加密算法初始化,依赖真随机数防止密钥被推测。
  • 安全认证:智能卡与读卡器之间的双向认证,需真随机数抵御重放攻击。
  • 高精度模拟:蒙特卡罗仿真、金融风险评估,要求输入完全独立。

五、与伪随机数的对比

特性 真随机数 伪随机数
来源 物理过程(量子噪声、热噪声) 数学算法(如梅森旋转器)
可预测性 完全不可预测 已知种子和算法即可预测
周期性 无周期 有长周期(如梅森旋转器为2^19937-1)
生成速度 较慢(依赖物理过程) 极快(纯计算)
适用场景 密码学、安全密钥 游戏、仿真、一般随机抽样

六、局限性

  • 生成效率低:物理过程需采样和转换,速率低于伪随机数生成器。
  • 成本高:需专用硬件(如量子光学设备),难以集成到普通计算机。
  • 需后处理:原始物理信号可能含偏差,需算法优化分布均匀性。

GD32 MCU的真随机数发生器(TRNG)通过物理噪声源生成不可预测的随机数,其核心原理和实现流程如下:


⚙️ 七、物理熵源原理

  1. 模拟噪声采集
    TRNG依赖硬件电路中的​​连续模拟噪声​​(如半导体热噪声、时钟抖动)作为随机性来源。这些噪声源于量子级别的物理现象(电子热运动),具有天然不可预测性。
  2. 熵源特性
    • 真随机 vs 伪随机:相同输入条件下,真随机数输出必然不同;伪随机数依赖算法和种子,输入相同时输出固定。
    • 不可重复性:噪声的量子特性确保每次生成的随机数独立且无规律。

🔧 八、硬件实现流程(以GD32F450 GD32L233为例)

GD MCU真随机数发生器模块(TRNG)能够通过连续模拟噪声生成一个32位的随机数值。

8.1. 初始化与时钟使能
  • GD32F450:直接使能TRNG时钟:

    rcu_periph_clock_enable(RCU_TRNG); // 开启TRNG时钟
    trng_enable();                     // 激活TRNG模块
    
  • GD32L233:需额外启动高频时钟源(IRC48M)支持噪声采样:

    rcu_osci_on(RCU_IRC48M);              // 启动IRC48M时钟
    rcu_

网站公告

今日签到

点亮在社区的每一天
去签到