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

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

文章目录

  • GD32 MCU的真随机数发生器(TRNG)
      • 一、定义与核心特征
      • 二、物理机制:量子与经典随机性
      • 三、生成方法
      • 四、应用场景
      • 五、与伪随机数的对比
      • 六、局限性
      • ⚙️ 七、物理熵源原理
      • 🔧 八、硬件实现流程(以GD32F450 GD32L233为例)
        • 8.1. **初始化与时钟使能**
        • 8.2. **随机数生成与读取**
        • 8.3. **安全监测机制**
      • ⚠️ 九、关键注意事项
      • 💎 十、总结

真随机数(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_

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/83632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vulkan学习笔记6—渲染呈现

一、渲染循环核心 while (!glfwWindowShouldClose(window)) {glfwPollEvents();helloTriangleApp.drawFrame(); // 绘制帧} 在 Vulkan 中渲染帧包含一组常见的步骤 等待前一帧完成(vkWaitForFences) 从交换链获取图像(vkAcquireNextImageKH…

React第六十二节 Router中 createStaticRouter 的使用详解

前言 createStaticRouter 是 React Router 专为 服务端渲染(SSR) 设计的 API,用于在服务器端处理路由匹配和数据加载。它在构建静态 HTML 响应时替代了客户端的 BrowserRouter,确保 SSR 和客户端 Hydration 的路由状态一致。 一…

qt 双缓冲案例对比

双缓冲 1.双缓冲原理 单缓冲:在paintEvent中直接绘制到屏幕,绘制过程被用户看到 双缓冲:先在redrawBuffer绘制到缓冲区,然后一次性显示完整结果 代码结构 单缓冲:所有绘制逻辑在paintEvent中 双缓冲:绘制…

华为云AI开发平台ModelArts

华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…

ParaGraphX [特殊字符]

https://github.com/stevechampion1/paragraphx 一个基于 JAX 的、为 CPU/GPU 加速而生的超高性能图算法库。 ParaGraphX 是一个实验性的 Python 库,旨在利用 JAX 的即时编译 (JIT) 和大规模并行计算能力,为经典的图算法提供惊人的性能提升。我们的目标…

如何用4 种可靠的方法更换 iPhone(2025 年指南)

Apple 每年都会发布新版本的 iPhone。升级到新 iPhone 是一种令人兴奋的体验,但转移所有宝贵数据的想法有时会让人感到畏惧。幸运的是,我们准备了 4 种有效的更换 iPhone 的方法,让你可以毫不费力地更换到你的新 iPhone。 此外,您…

GitLab 拉取变慢的原因及排查方法

前言:在软件开发的快节奏世界里,高效协作与快速交付是制胜关键。然而,当开发团队兴高采烈地投入工作,却发现从GitLab拉取代码的速度慢如蜗牛,那种沮丧感简直能瞬间浇灭热情。在分布式开发环境中,这种情况时…

落水人员目标检测数据集(猫脸码客第253期)

落水人员目标检测:科技守护生命之舟 一、背景与意义 随着人类海洋活动和水上活动的日益频繁,海上与水域安全事故频发。每年都会开展大量的海上救援行动,以搜救数以万计的落难人员。在水上活动区域,如水库、河道等,溺…

JAVA_强制类型转换:

类型范围大的变量,不可以直接赋值给类型变量小的变量 需要进行强制类型转换: 想要完成类型范围大的变量传给类型范围小的变量需要先创建一个新的变量(类型与方法的形参类型要相同)。将类型范围大的变量前面加上(转换类…

打卡第44天:无人机数据集分类

重复以下内容 作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶: 并拆分成多个文件 import os import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader,…

个人网站大更新,还是有个总站比较好

个人网站大更新,还是有个总站比较好 放弃了所有框架,用纯htmlcssjs撸了个网站,这回可以想改啥改啥了。 选择了黑紫作为主色调,暂时看着还算可以。 为什么不用那些框架了 几个原因: 尝试用vuepress、vitepress、not…

高精度算法详解:从原理到加减乘除的完整实现

文章目录 一、为什么需要高精度算法二、高精度算法的数据结构设计2.1 基础工具函数2.2 高精度加法实现2.3 高精度减法实现2.4 高精度乘法实现2.5 高精度除法实现 三、完整测试程序四、总结 一、为什么需要高精度算法 在编程中,处理极大数值是常见需求,例…

排序--计数排序

一,引言 计数排序是一种针对整数数据的高效排序算法。其主要流程可分为三个步骤:首先计算整数数据的数值范围;接着按大小顺序统计各数值的出现次数;最后根据统计结果输出排序后的数据序列。 二,求最值 遍历现有数据,获取最大值…

Kubernetes安全机制深度解析(四):动态准入控制和Webhook

#作者:程宏斌 文章目录 动态准入控制什么是准入 Webhook? 尝试准入Webhook先决条件编写一个准入 Webhook 服务器部署准入 Webhook 服务即时配置准入 Webhook对 API 服务器进行身份认证 Webhook 请求与响应Webhook 配置匹配请求-规则匹配请求&#xff1a…

WDK 10.0.19041.685,可在32位win7 sp1系统下搭配vs2019使用,可以编译出xp驱动。

(14)[驱动开发]配置环境 VS2019 WDK10 写 xp驱动 (14)[驱动开发]配置环境 VS2019 WDK10 写 xp驱动_microsoft visual 2019 wdk-CSDN博客文章浏览阅读3k次,点赞8次,收藏17次。本文介绍了如何在VS2019环境下安装和配置Windows Driver Kit(WDK)&#xff0…

论坛系统自动化测试

1、项目背景与测试目标 系统定位 论坛系统作为典型的高并发Web应用,需支持用户注册、登录、发帖、评论、私信及个人中心管理等核心功能,是用户公开交流与信息共享的核心平台。其稳定性与响应效率直接影响用户体验及平台活跃度。 测试必要性 功能可靠性&…

ChipWhisperer教程(一)

一、ChipWhisperer介绍 ChipWhisperer 是一个完整的开源工具链,用于学习嵌入式设备上的侧信道攻击并验证这些设备的侧信道抗性。ChipWhisperer主要用于功耗分析,利用设备功耗泄露的信息进行攻击,也可用于故障攻击(电压和时钟毛刺…

【持续更新】计算机网络试题

问题1 请简要说明TCP/IP协议栈的四层结构,并分别举出每一层出现的典型协议或应用。 答案 应用层:ping,telnet,dns 传输层:tcp,udp 网络层:ip,icmp 数据链路层:arp,rarp 问题2 下列协议或应用分别属于TCP/IP协议…

短剧系统开发:打造高效、创新的短视频娱乐平台 - 从0到1的完整解决方案

一、短剧市场迎来爆发式增长 - 不容错过的万亿级蓝海 随着5G技术的普及和移动互联网的深度渗透,短剧市场正在经历前所未有的爆发式增长。根据权威机构艾瑞咨询最新发布的《2023年中国网络短剧行业发展报告》显示: 市场规模:2023年中国短剧市…

ChipWhisperer教程(三)

——CW305目标板的波形采集 一、目标板介绍 CW305 是一款独立的 FPGA 目标板,搭载的FPGA芯片为Xilinx Artix-7系列。 它具有与 FPGA 通信的 USB 接口、为 FPGA 提供时钟的外部 PLL、编程 VCC-INT 电源以及用于故障注入环境的二极管保护。 CW305 电路板有多种配置&…