在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

真隨機(jī)數(shù)生成器TRNG外設(shè)模塊應(yīng)用要點(diǎn)

冬至子 ? 來(lái)源:靈動(dòng)MM32 MCU ? 作者:靈動(dòng)MM32 MCU ? 2023-11-08 14:52 ? 次閱讀

簡(jiǎn)介

國(guó)產(chǎn)車規(guī)微控制器原廠云途半導(dǎo)體設(shè)計(jì)和發(fā)售的YTM32ME微控制器上集成的真隨機(jī)數(shù)生成器TRNG(True Random Number Generator)外設(shè)模塊,是一個(gè)可生成256位隨機(jī)數(shù)的硬件模塊,生成的隨機(jī)數(shù)將用于數(shù)據(jù)加解密等應(yīng)用場(chǎng)景。在功能安全相關(guān)的系統(tǒng)中,隨機(jī)數(shù)也可以作為生成加密算法的種子數(shù)據(jù)的生成器。

原理與機(jī)制

TRNG包含了一個(gè)回環(huán)振蕩器(Ring Oscillator)、一個(gè)隨機(jī)比特流搜集器(Random Bits Collector)、一個(gè)時(shí)鐘監(jiān)測(cè)器(Clock Monitor)和一個(gè)錯(cuò)誤檢測(cè)器(Fault Detector)。有內(nèi)部結(jié)構(gòu)系統(tǒng)框圖,如圖x所示。

image.png

圖x TRNG系統(tǒng)框圖

其中,回環(huán)振蕩器是隨機(jī)噪聲的高速時(shí)鐘信號(hào)源,它對(duì)環(huán)境狀況非常敏感,例如溫度、電壓、電磁干擾,以及別的潛在的噪聲源。

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

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

在定時(shí)器啟動(dòng)的同時(shí),計(jì)數(shù)器也復(fù)位并開(kāi)始啟動(dòng),當(dāng)定時(shí)器的周期數(shù)達(dá)到軟件預(yù)先配置的數(shù)量時(shí),使用功能時(shí)鐘的上升沿對(duì)回環(huán)振蕩器產(chǎn)生的高速時(shí)鐘信號(hào)進(jìn)行采樣得到一個(gè)比特的邏輯值,會(huì)被送到隨機(jī)數(shù)數(shù)據(jù)移位寄存器中并參與移位過(guò)程,如此周而復(fù)始,后續(xù)送入足夠多的隨機(jī)比特,形成比特流。

時(shí)鐘監(jiān)測(cè)器主要用于監(jiān)測(cè)回環(huán)振蕩器的頻率的變化范圍,軟件可以讀取回環(huán)振蕩器頻率的當(dāng)前值(TRNG_FRQCNT),并可設(shè)定允許范圍的上限(TRNG_FRQMAX)和下限(TRNG_FRQMIN),一旦頻率的當(dāng)前值超出設(shè)定允許的范圍,TRNG就會(huì)設(shè)定一個(gè)標(biāo)志位TRNG_STAT[FRQ_CT_IF],對(duì)應(yīng)也可以觸發(fā)中斷。時(shí)鐘檢測(cè)器相當(dāng)于實(shí)現(xiàn)了一個(gè)對(duì)回環(huán)振蕩器頻率的硬件比較機(jī)制。

錯(cuò)誤檢測(cè)器通過(guò)一些測(cè)試,以對(duì)產(chǎn)生隨機(jī)數(shù)的過(guò)程進(jìn)行統(tǒng)計(jì)分析。其中:

長(zhǎng)期運(yùn)行測(cè)試(Long Run Test)可以限制在生成隨機(jī)比特流中連續(xù)產(chǎn)生全0或全1的長(zhǎng)度(TRNG_CTRL[LRUN_MAX],并稱之為“長(zhǎng)期運(yùn)行”事件。當(dāng)檢測(cè)到長(zhǎng)期運(yùn)行事件時(shí),TRNG將會(huì)自動(dòng)清空當(dāng)前緩存的比特流,重新開(kāi)始新的隨機(jī)比特流的生成過(guò)程。

單邊位約束(Monobit Limitation)限制了產(chǎn)生隨機(jī)比特流過(guò)程中,輸出0或者1的總數(shù)(TRNG_SCML[MONO_RNG]TRNG_SCML[MONO_MAX]),如果產(chǎn)生的隨機(jī)比特流中破壞了配置好的單邊位約束,TRNG將會(huì)自動(dòng)清空當(dāng)前緩存的比特流,重新開(kāi)始新的隨機(jī)比特流的生成過(guò)程。

重試次數(shù)約束(Retry Count Limitation)限定了因上述原因產(chǎn)生重置的合法次數(shù)(TRNG_CTRL[RTY_CT]),當(dāng)重置次數(shù)超過(guò)配置數(shù)量,將被視為產(chǎn)生錯(cuò)誤(TRNG_STAT[HW_ERR_IF]

需要注意的是,這里產(chǎn)生的“錯(cuò)誤”并不是因?yàn)橛布\(yùn)行出現(xiàn)故障而產(chǎn)生的錯(cuò)誤,而是表示產(chǎn)生隨機(jī)數(shù)過(guò)程中超出了某些預(yù)設(shè)的約束條件,因?yàn)楫a(chǎn)生的數(shù)據(jù)是隨機(jī)的,用戶不能預(yù)判生成數(shù)據(jù)的內(nèi)容,所以,當(dāng)這些所謂的“錯(cuò)誤”發(fā)生后,TRNG硬件上激活了一些標(biāo)志位,可以當(dāng)做是一些狀態(tài)的提示,用戶可以簡(jiǎn)單地忽略,或者為了適配某些使用隨機(jī)數(shù)的算法,以某些處理方法,適當(dāng)?shù)刂刂秒S機(jī)過(guò)程并記錄統(tǒng)計(jì)信息。

應(yīng)用要點(diǎn)

時(shí)鐘源

TRNG外設(shè)相關(guān)的時(shí)鐘源有3個(gè):外設(shè)模塊的訪問(wèn)時(shí)鐘(總線時(shí)鐘)、功能時(shí)鐘,以及自己內(nèi)部的回環(huán)振蕩器。

TRNG掛在APB總線上,當(dāng)AHB總線主機(jī)(CPU)訪問(wèn)TRNG的寄存器時(shí),通過(guò)AHB總線到APB總線的外設(shè)橋轉(zhuǎn)接到低速設(shè)備,此時(shí)用到的是系統(tǒng)時(shí)鐘(System Clock)。

功能時(shí)鐘(function clock)在手冊(cè)中描述TRNG的章節(jié)中出現(xiàn)多次,通過(guò)查閱IPC中的可配置信息可知,YTM32ME微控制器上,固定使用SLOW_BUS_CLK作為時(shí)鐘源。而SLOW_BUS_CLK`是從系統(tǒng)時(shí)鐘經(jīng)過(guò)兩次分頻后得到的。

回環(huán)振蕩器是TRNG內(nèi)部實(shí)現(xiàn)的一個(gè)高速時(shí)鐘源,頻率高(300MHz左右),但不準(zhǔn),作為獲取隨機(jī)數(shù)據(jù)的信號(hào)源。

中斷源

TRNG模塊設(shè)計(jì)的中斷源如表x所示。

表x TRNG外設(shè)模塊的中斷源

image.png

TRNG的中斷源未連接到DMA觸發(fā)源,因此不能觸發(fā)DMA搬運(yùn)過(guò)程。

初始化

對(duì)TRNG外設(shè)模塊的配置,包括各種參數(shù)、功能開(kāi)關(guān),均可在初始化過(guò)程中完成。

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

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

TRNG外設(shè)模塊設(shè)計(jì)了一個(gè)使能控制位TRNG_CTRL[TRNG_EN],這個(gè)控制位實(shí)際啟用隨機(jī)數(shù)生成器是否開(kāi)始啟動(dòng)生成過(guò)程。其開(kāi)關(guān)與否不影響修改其它配置。

數(shù)據(jù)

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

特別注意,讀TRNG_ENT7寄存器的操作,將會(huì)觸發(fā)TRNG繼續(xù)啟動(dòng)工作,因此,為了讀到一個(gè)完整一致性的256位隨機(jī)數(shù),應(yīng)該先從TRNG_ENT0寄存器開(kāi)始讀數(shù),讀到TRNG_ENT7時(shí),軟件可以拿已經(jīng)讀到的8個(gè)32位數(shù)進(jìn)行后續(xù)計(jì)算,而硬件也將會(huì)重新生成新的隨機(jī)數(shù)填充這8個(gè)寄存器。

軟件支持

SDK為T(mén)RNG設(shè)計(jì)了驅(qū)動(dòng)程序,供開(kāi)發(fā)者使用。這里列寫(xiě)TRNG驅(qū)動(dòng)程序的API,讀者可以一窺TRNG驅(qū)動(dòng)程序的用法。至于具體用法,讀者可以體驗(yàn)一下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);
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7553

    瀏覽量

    151426
  • 振蕩器
    +關(guān)注

    關(guān)注

    28

    文章

    3832

    瀏覽量

    139094
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3248

    瀏覽量

    114821
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    315

    瀏覽量

    21011
  • 時(shí)鐘源
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    15967
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TC389芯片上HSM的TRNG隨機(jī)數(shù)功能,如何判斷其隨機(jī)能力呢?

    想咨詢一下,TC389芯片上HSM的TRNG隨機(jī)數(shù)功能,如何判斷其隨機(jī)能力呢?有什么資料或者測(cè)試內(nèi)容嗎?
    發(fā)表于 03-05 07:20

    關(guān)于隨機(jī)數(shù)生成器復(fù)用的問(wèn)題

    本人最近用verilog寫(xiě)了一個(gè)隨機(jī)數(shù)生成器RNG,生成一個(gè)32bits的隨機(jī)數(shù),然后加入到信道仿真的模塊中,在信道仿真的
    發(fā)表于 07-27 16:59

    用PIC16F87Aa怎么制作隨機(jī)數(shù)生成器

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

    Kintex上的隨機(jī)數(shù)生成器測(cè)試失敗的原因有哪些?

    我想在Kintex-7上生成真正的隨機(jī)數(shù)。我正在關(guān)注Xilinx發(fā)表的論文,其中環(huán)形振蕩器用于隨機(jī)數(shù)生成,LHCA已被用作擾碼器。但是,每當(dāng)我捕獲11兆字節(jié)的數(shù)據(jù)(
    發(fā)表于 04-26 11:06

    YIE002-STM32的隨機(jī)數(shù)生成器構(gòu)建

    font color=#ff5555 size=2>YIE002開(kāi)發(fā)探索之隨機(jī)數(shù)生成器1 隨機(jī)數(shù)生成器構(gòu)建2 YIE002-STM32的隨機(jī)數(shù)
    發(fā)表于 01-17 07:40

    新手求助怎樣去使用隨機(jī)數(shù)生成器RNG呢

    新手求助怎樣去使用隨機(jī)數(shù)生成器RNG呢?
    發(fā)表于 01-20 06:24

    i.MX8QM隨機(jī)數(shù)生成器符合什么要求?

    大家好, 我們的客戶要求我們指定一個(gè)真正的隨機(jī)數(shù)生成器。 i.MX8QM 隨機(jī)數(shù)生成器符合什么要求? 以下是對(duì) SE050 中的
    發(fā)表于 05-18 06:13

    Arm隨機(jī)數(shù)生成器固件接口1.0平臺(tái)設(shè)計(jì)文件

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

    Arm隨機(jī)數(shù)發(fā)生器(TRNG)表征應(yīng)用說(shuō)明

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

    STM32L4隨機(jī)數(shù)生成器模塊(RNG)介紹

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

    如何使用隨機(jī)數(shù)生成器來(lái)生成私鑰

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

    在Arduino開(kāi)放平臺(tái)上用隨機(jī)數(shù)生成器控制眼睛動(dòng)作

    隨機(jī)數(shù)生成器計(jì)算每只眼睛的新位置,給人一種自然又可怕的眼睛動(dòng)作~
    的頭像 發(fā)表于 05-24 06:20 ?3878次閱讀

    YIE002開(kāi)發(fā)探索10-隨機(jī)數(shù)生成器

    生成器1 隨機(jī)數(shù)生成器構(gòu)建2 YIE002-STM32的隨機(jī)數(shù)生成器編程2.1 隨機(jī)數(shù)
    發(fā)表于 01-17 13:06 ?2次下載
    YIE002開(kāi)發(fā)探索10-<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>生成器</b>

    Arduino Lotto隨機(jī)數(shù)生成器

    電子發(fā)燒友網(wǎng)站提供《Arduino Lotto隨機(jī)數(shù)生成器.zip》資料免費(fèi)下載
    發(fā)表于 11-02 10:59 ?0次下載
    Arduino Lotto<b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>生成器</b>

    隨機(jī)數(shù)生成器開(kāi)源分享

    電子發(fā)燒友網(wǎng)站提供《隨機(jī)數(shù)生成器開(kāi)源分享.zip》資料免費(fèi)下載
    發(fā)表于 11-11 11:57 ?0次下載
    <b class='flag-5'>隨機(jī)數(shù)</b><b class='flag-5'>生成器</b>開(kāi)源分享
    主站蜘蛛池模板: 免费看毛片网| 成人在线免费电影| 在线视频一本| 999久久精品国产| 国产成人精品高清在线| 欧美性色生活片天天看99| 免费在线观看a视频| 手机在线亚洲| 亚洲欧美日韩动漫 | 性欧美高清久久久久久久| 久久精品人人爽人人爽| 国产精品www视频免费看| 午夜毛片视频| 亚洲激情婷婷| 欧美1314www伊人久久香网| 日本在线黄色网址| 欧美性aaa| 激情综合网五月婷婷| 二区久久国产乱子伦免费精品| 亚洲色图国产精品| bt在线天堂| 亚洲专区一路线二| 麻豆国产三级在线观看| 久久草精品| 亚洲a影院| 亚洲精品久| 在线免费观看色片| 正在播放国产巨作| 国产免费播放| 91视频免费观看| 欧美精品首页| 国产特黄| 影音先锋ady69色资源网站| 国产三级在线视频观看| 啪啪免费网站视频观看| 奇米视频在线观看| 在线观看深夜观看网站免费| 一区二区三区高清在线| 四虎国产视频| 日日操夜夜骑| 性欧美暴力猛交69hd|