新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 使用 MSP430 內(nèi)部時鐘生成隨機(jī)數(shù)字

使用 MSP430 內(nèi)部時鐘生成隨機(jī)數(shù)字

作者: 時間:2008-12-11 來源:網(wǎng)絡(luò) 收藏

不管是生成隨機(jī)器件地址、強(qiáng)化加密算法還是創(chuàng)建獨立產(chǎn)品密鑰,可靠地生成隨機(jī)數(shù)字都變得日益重要。這些隨機(jī)數(shù)字對于日常嵌入式系統(tǒng)特別有用,比如車庫門接收機(jī)必須一一對應(yīng)地正確識別遠(yuǎn)程控制的隨機(jī)數(shù)字,以防止非授權(quán)訪問。為了生成隨機(jī)數(shù)字,開發(fā)人員可以使用高級 16 位 確保將所有信號都控制在 內(nèi)部,而且與昂貴的模擬硬件相比,這種解決方案成本更低、安全性也更高。

雙時鐘芯片架構(gòu)可以支持 TI 超低功耗 的隨機(jī)數(shù)字生成能力。超低頻振蕩器 (VLO) 與數(shù)控振蕩器 (DCO) 是兩個獨立的時鐘系統(tǒng),可以利用二者間的計時差生成隨機(jī)位流。一個 VLO 時鐘周期中的DCO 時鐘數(shù)量大致相同。然而,由于 VLO 與 DCO 時鐘源彼此獨立變化,無法預(yù)測生成的數(shù)字是奇數(shù)還是偶數(shù),因此這種器件更安全。更重要的是,即使在前面生成的數(shù)字為已知的情況下,也不可能預(yù)測之后的結(jié)果。

由于 VLO 的靈活性很高,其速度可降至 DCO 以下。然后可以將定時器配置為升序計數(shù),將 DCO 作為源時鐘,從而觸發(fā)對下一次 VLO 從低到高升序的采集。這次采集將記錄一個 VLO 時鐘周期中的 DCO 時鐘周期數(shù)。由于時鐘源的變化,每次采集將導(dǎo)致單位 VLO 周期內(nèi)的 DCO 時鐘數(shù)略有差異。正是這種差異才產(chǎn)生了隨機(jī)數(shù)字。例如,為了生成 16 位隨機(jī)數(shù)字,需要進(jìn)行 16 次采集,每個被采集數(shù)字的最低有效字節(jié)轉(zhuǎn)換成存儲器中的一個字。

設(shè)計人員可以使用定時器外設(shè)收集隨機(jī) LSB,通過在每個采集周期中確保 CPU 處于關(guān)閉狀態(tài),可以實現(xiàn)超低功耗。只需要短暫使用 CPU,即可將 LSB 轉(zhuǎn)換為存儲單元。

盡管上述方法是隨機(jī)數(shù)字的主要來源,但是, 時鐘系統(tǒng)還是允許設(shè)計人員結(jié)合使用反饋法。在要求進(jìn)行 FIPS 140-2 測試的情況下,這些方法可提高算法性能。

第一個反饋機(jī)制是,在每個采樣位后使 DCO 略微加速。時鐘控制寄存器在每個位后加上數(shù)字 5。這種相加或額外變化導(dǎo)致在每個環(huán)路時 DCO 的速度均高于 VLO。雖然可以使用任何數(shù)字,但數(shù)字 5 可以產(chǎn)生足夠大的階躍變化,以至于 DCO 與 VLO 之間發(fā)生很大的差異。

另外,每次轉(zhuǎn)換 LSB 時,兩個以前采樣的隨機(jī)位被按位加至?xí)r鐘控制寄存器的除法器位。這些位在到達(dá)計時器之前將控制用于 VLO 的除法器,同時還改變了計時器測定的VLO 與 DCO 之間的關(guān)系。

最后,每個得出的位實際上是 5 個環(huán)路“多數(shù)原則”的結(jié)果。如前所述,每個環(huán)路都從 CCR 生成其自身的 LSB,但 5 的“多數(shù)原則”用于選擇最終位。

通過這種方式, MCU 能夠以極低的功耗生成隨機(jī)位的連續(xù)流。這種位流可以用于創(chuàng)建隨機(jī)數(shù)字;如果不需要對運(yùn)行的應(yīng)用時鐘架構(gòu)進(jìn)行修改,將針對偽隨機(jī)數(shù)字生成器 (PRNG) 生成初始種子。

借助該技術(shù),就可以生成通過 FIPS 140-2 隨機(jī)性測試的位流。這就是說,該技術(shù)可廣泛用于需要生成隨機(jī)數(shù)字的各種應(yīng)用領(lǐng)域。特別是隨著無線技術(shù)的推廣,這種隨機(jī)數(shù)字生成技術(shù)將有很好的前景。另外,由于該技術(shù)采用目前的 MSP430 MCU 架構(gòu)內(nèi)部信號,具有成本低與安全性高等優(yōu)勢。



關(guān)鍵詞: MSP430 MCU

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉