色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

真隨機數生成器TRNG外設模塊應用要點

冬至子 ? 來源:靈動MM32 MCU ? 作者:靈動MM32 MCU ? 2023-11-08 14:52 ? 次閱讀

簡介

國產車規微控制器原廠云途半導體設計和發售的YTM32ME微控制器上集成的真隨機數生成器TRNG(True Random Number Generator)外設模塊,是一個可生成256位隨機數的硬件模塊,生成的隨機數將用于數據加解密等應用場景。在功能安全相關的系統中,隨機數也可以作為生成加密算法的種子數據的生成器。

原理與機制

TRNG包含了一個回環振蕩器(Ring Oscillator)、一個隨機比特流搜集器(Random Bits Collector)、一個時鐘監測器(Clock Monitor)和一個錯誤檢測器(Fault Detector)。有內部結構系統框圖,如圖x所示。

image.png

圖x TRNG系統框圖

其中,回環振蕩器是隨機噪聲的高速時鐘信號源,它對環境狀況非常敏感,例如溫度、電壓、電磁干擾,以及別的潛在的噪聲源。

這些噪聲可以引起回環振蕩器輸出時鐘頻率產生微弱的、連續的和隨機的變化,每個振蕩時鐘周期會產生非常微小的變化,因此,使用功能時鐘信號(的上升沿)對回環振蕩器時鐘信號進行采樣,得到的邏輯電平值,每次都是隨機不確定的。這就是隨機特性的最初來源。

隨機比特位流搜集器的核心是一個定時器和一個計數器。其中,定時器的計數時鐘源來自于外部的功能時鐘,計時周期數量可由軟件配置(TRNG_SDCTL[ENT_DLY])。

在定時器啟動的同時,計數器也復位并開始啟動,當定時器的周期數達到軟件預先配置的數量時,使用功能時鐘的上升沿對回環振蕩器產生的高速時鐘信號進行采樣得到一個比特的邏輯值,會被送到隨機數數據移位寄存器中并參與移位過程,如此周而復始,后續送入足夠多的隨機比特,形成比特流。

時鐘監測器主要用于監測回環振蕩器的頻率的變化范圍,軟件可以讀取回環振蕩器頻率的當前值(TRNG_FRQCNT),并可設定允許范圍的上限(TRNG_FRQMAX)和下限(TRNG_FRQMIN),一旦頻率的當前值超出設定允許的范圍,TRNG就會設定一個標志位TRNG_STAT[FRQ_CT_IF],對應也可以觸發中斷。時鐘檢測器相當于實現了一個對回環振蕩器頻率的硬件比較機制。

錯誤檢測器通過一些測試,以對產生隨機數的過程進行統計分析。其中:

長期運行測試(Long Run Test)可以限制在生成隨機比特流中連續產生全0或全1的長度(TRNG_CTRL[LRUN_MAX],并稱之為“長期運行”事件。當檢測到長期運行事件時,TRNG將會自動清空當前緩存的比特流,重新開始新的隨機比特流的生成過程。

單邊位約束(Monobit Limitation)限制了產生隨機比特流過程中,輸出0或者1的總數(TRNG_SCML[MONO_RNG]TRNG_SCML[MONO_MAX]),如果產生的隨機比特流中破壞了配置好的單邊位約束,TRNG將會自動清空當前緩存的比特流,重新開始新的隨機比特流的生成過程。

重試次數約束(Retry Count Limitation)限定了因上述原因產生重置的合法次數(TRNG_CTRL[RTY_CT]),當重置次數超過配置數量,將被視為產生錯誤(TRNG_STAT[HW_ERR_IF]

需要注意的是,這里產生的“錯誤”并不是因為硬件運行出現故障而產生的錯誤,而是表示產生隨機數過程中超出了某些預設的約束條件,因為產生的數據是隨機的,用戶不能預判生成數據的內容,所以,當這些所謂的“錯誤”發生后,TRNG硬件上激活了一些標志位,可以當做是一些狀態的提示,用戶可以簡單地忽略,或者為了適配某些使用隨機數的算法,以某些處理方法,適當地重置隨機過程并記錄統計信息

應用要點

時鐘源

TRNG外設相關的時鐘源有3個:外設模塊的訪問時鐘(總線時鐘)、功能時鐘,以及自己內部的回環振蕩器。

TRNG掛在APB總線上,當AHB總線主機(CPU)訪問TRNG的寄存器時,通過AHB總線到APB總線的外設橋轉接到低速設備,此時用到的是系統時鐘(System Clock)。

功能時鐘(function clock)在手冊中描述TRNG的章節中出現多次,通過查閱IPC中的可配置信息可知,YTM32ME微控制器上,固定使用SLOW_BUS_CLK作為時鐘源。而SLOW_BUS_CLK`是從系統時鐘經過兩次分頻后得到的。

回環振蕩器是TRNG內部實現的一個高速時鐘源,頻率高(300MHz左右),但不準,作為獲取隨機數據的信號源。

中斷源

TRNG模塊設計的中斷源如表x所示。

表x TRNG外設模塊的中斷源

image.png

TRNG的中斷源未連接到DMA觸發源,因此不能觸發DMA搬運過程。

初始化

對TRNG外設模塊的配置,包括各種參數、功能開關,均可在初始化過程中完成。

TRNG外設模塊設計了一個鎖定機制(TRNG_CTRL[UNLOCK]):只有當TRNG_CTRL[UNLOCK]寄存器的值為1時,才能向各配置寄存器中寫數;配置完畢后,將TRNG_CTRL[UNLOCK]寄存器寫0,以防止各配置參數被意外篡改。

TRNG外設模塊包含一個自動復位硬件配置到復位狀態的控制位TRNG_CTRL[SWR],每次向該位寫1,都將復位多個配置寄存器的值至初始狀態。當然,這個控制位,也需要再解鎖狀態下(TRNG_CTRL[UNLOCK]=1)操作。

TRNG外設模塊設計了一個使能控制位TRNG_CTRL[TRNG_EN],這個控制位實際啟用隨機數生成器是否開始啟動生成過程。其開關與否不影響修改其它配置。

數據

顧名思義,TRNG是一個數據生成器,僅輸出數據。TRNG生成器每次執行過程,將生成1個256位的隨機數,存放在TRNG_ENT0 - TRNG_ENT7的8個32位寄存器中。每當TRNG_STAT[ENT_VAL_IF]標志位置1時,表示這256個比特的隨機數據流已經填充完畢,可供軟件讀走。在軟件讀走生成數據之前,TRNG將暫停工作。

特別注意,讀TRNG_ENT7寄存器的操作,將會觸發TRNG繼續啟動工作,因此,為了讀到一個完整一致性的256位隨機數,應該先從TRNG_ENT0寄存器開始讀數,讀到TRNG_ENT7時,軟件可以拿已經讀到的8個32位數進行后續計算,而硬件也將會重新生成新的隨機數填充這8個寄存器。

軟件支持

SDK為TRNG設計了驅動程序,供開發者使用。這里列寫TRNG驅動程序的API,讀者可以一窺TRNG驅動程序的用法。至于具體用法,讀者可以體驗一下ytmicro-sdk

bool TRNG_Init(TRNG_Type * base, trng_config_t *config);  
bool TRNG_GetEntropyValues(TRNG_Type * base, uint32_t * values);  
uint32_t TRNG_GetStatus(TRNG_Type * base);  
void TRNG_ClearStatus(TRNG_Type * base, uint32_t flags);
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7542

    瀏覽量

    151321
  • 振蕩器
    +關注

    關注

    28

    文章

    3832

    瀏覽量

    139041
  • 定時器
    +關注

    關注

    23

    文章

    3246

    瀏覽量

    114725
  • 生成器
    +關注

    關注

    7

    文章

    315

    瀏覽量

    21003
  • 時鐘源
    +關注

    關注

    0

    文章

    93

    瀏覽量

    15956
收藏 人收藏

    評論

    相關推薦

    TC389芯片上HSM的TRNG隨機數功能,如何判斷其隨機能力呢?

    想咨詢一下,TC389芯片上HSM的TRNG隨機數功能,如何判斷其隨機能力呢?有什么資料或者測試內容嗎?
    發表于 03-05 07:20

    關于隨機數生成器復用的問題

    本人最近用verilog寫了一個隨機數生成器RNG,生成一個32bits的隨機數,然后加入到信道仿真的模塊中,在信道仿真的
    發表于 07-27 16:59

    用PIC16F87Aa怎么制作隨機數生成器

    嗨,伙計們,我需要用PIC16F87Aa制作隨機數生成器,它在兩個數字(0-10)或(2-30)之間起作用。事實上,我用移位函數做了一個,但是每次給我相同的數字:(謝謝)
    發表于 04-20 09:52

    Kintex上的隨機數生成器測試失敗的原因有哪些?

    我想在Kintex-7上生成真正的隨機數。我正在關注Xilinx發表的論文,其中環形振蕩器用于隨機數生成,LHCA已被用作擾碼器。但是,每當我捕獲11兆字節的數據(
    發表于 04-26 11:06

    YIE002-STM32的隨機數生成器構建

    font color=#ff5555 size=2>YIE002開發探索之隨機數生成器1 隨機數生成器構建2 YIE002-STM32的隨機數
    發表于 01-17 07:40

    新手求助怎樣去使用隨機數生成器RNG呢

    新手求助怎樣去使用隨機數生成器RNG呢?
    發表于 01-20 06:24

    i.MX8QM隨機數生成器符合什么要求?

    大家好, 我們的客戶要求我們指定一個真正的隨機數生成器。 i.MX8QM 隨機數生成器符合什么要求? 以下是對 SE050 中的
    發表于 05-18 06:13

    Arm隨機數生成器固件接口1.0平臺設計文件

    本文檔定義了操作系統(OS)和提供條件熵源的TRNG FW實現之間的接口。 條件熵通常用于種子確定隨機數生成器生成密鑰,以及其他用例。 本文件認為
    發表于 08-11 07:26

    Arm隨機數發生器(TRNG)表征應用說明

    本章概述ARM?隨機數生成器(TRNG)及其特性。 ARM?隨機數
    發表于 08-29 07:19

    STM32L4隨機數生成器模塊(RNG)介紹

    基于噪聲源的32位隨機數生成器。 ?使用線性反饋移位寄存器進行后處理。 ?由專用時鐘(PLL48CLK)計時 ?兩個連續隨機數之間的PLL48CLK時鐘信號的40個周期 ?可禁用以降
    發表于 09-11 07:29

    如何使用隨機數生成器生成私鑰

    ,尤其重要。 說到隨機,有兩個必須要搞清楚的概念:“隨機數生成器”(TRNG)和偽
    發表于 03-18 10:40 ?5062次閱讀
    如何使用<b class='flag-5'>隨機數</b><b class='flag-5'>生成器</b>來<b class='flag-5'>生成</b>私鑰

    在Arduino開放平臺上用隨機數生成器控制眼睛動作

    隨機數生成器計算每只眼睛的新位置,給人一種自然又可怕的眼睛動作~
    的頭像 發表于 05-24 06:20 ?3864次閱讀

    YIE002開發探索10-隨機數生成器

    生成器1 隨機數生成器構建2 YIE002-STM32的隨機數生成器編程2.1 隨機數
    發表于 01-17 13:06 ?2次下載
    YIE002開發探索10-<b class='flag-5'>隨機數</b><b class='flag-5'>生成器</b>

    Arduino Lotto隨機數生成器

    電子發燒友網站提供《Arduino Lotto隨機數生成器.zip》資料免費下載
    發表于 11-02 10:59 ?0次下載
    Arduino Lotto<b class='flag-5'>隨機數</b><b class='flag-5'>生成器</b>

    隨機數生成器開源分享

    電子發燒友網站提供《隨機數生成器開源分享.zip》資料免費下載
    發表于 11-11 11:57 ?0次下載
    <b class='flag-5'>隨機數</b><b class='flag-5'>生成器</b>開源分享
    主站蜘蛛池模板: 久久亚洲精品中文字幕| 爱穿丝袜的麻麻3d漫画acg| 亚洲国产欧美国产综合在线| 日本无码人妻精品一区二区视频 | 亚洲男人的天堂久久精品麻豆| 日本高清色片| 破苞流血哭泣 magnet| 免费A级毛片无码鲁大师| 美女被艹网站| 免费视频精品38| 男女夜晚在爽视频免费观看| 免费看的一级毛片| 欧美14videosex性欧美成人| 欧美zzzoooxxx| 青娱乐极品视觉盛宴av| 轻点慢点1V2啊高H抽插| 日本精品久久久久中文字幕| 欧美最猛12teevideos| 日本精品久久无码影院| 日韩中文网| 午夜小视频免费观看| 亚洲精品日韩在线观看视频| 一天不停的插BB十几次| 御姐被吸奶| 99热久久视频只有精品6| 扒开美女下面粉嫩粉嫩冒白浆| 成人永久免费视频网站在线观看| 国产69精品久久久久观看软件| 国产99RE在线观看69热| 国产色精品久久人妻无码看片| 红豆视频免费资源观看| 久久99r66热这里有精品| 麻豆精品传媒一二三区| 青青草久久| 亚洲 欧美 国产 在线 日韩| 野花高清影视免费观看| 99久久99久久久精品久久| 俄罗斯17vidio| 好男人在线观看视频观看高清视频免费 | 欧美熟妇互舔20p| 日韩一级精品久久久久|