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
繁體地址,請注明出處:http://hk.pswp.cn/web/83632.shtml
英文地址,請注明出處:http://en.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 電路板有多種配置&…