當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]引 言 隨機數(shù)已廣泛地應(yīng)用于仿真、抽樣、數(shù)值分析、計算機程序設(shè)計、決策、美學(xué)和娛樂之中。常見的隨機數(shù)發(fā)生器有兩種:使用數(shù)學(xué)算法的偽隨機數(shù)發(fā)生器和以物理隨機量作為發(fā)生源的真隨機數(shù)發(fā)生器。要獲取真正隨


引 言
    隨機數(shù)已廣泛地應(yīng)用于仿真、抽樣、數(shù)值分析、計算機程序設(shè)計、決策、美學(xué)和娛樂之中。常見的隨機數(shù)發(fā)生器有兩種:使用數(shù)學(xué)算法的偽隨機數(shù)發(fā)生器和以物理隨機量作為發(fā)生源的真隨機數(shù)發(fā)生器。要獲取真正隨機的真隨機數(shù),常使用硬件隨機數(shù)發(fā)生器的方法來獲取。這些真隨機數(shù)都是使基于特定的真隨機數(shù)發(fā)生源(如熱噪聲、電流噪聲等),每次獲取的真隨機數(shù)都是不可測的,具有很好的隨機性。
    真隨機數(shù)因其隨機性強,在數(shù)據(jù)加密、信息輔助、智能決策和初始化向量方面有著廣泛應(yīng)用,構(gòu)建一種基于硬件真隨機數(shù)發(fā)生源,具有廣泛的應(yīng)用價值。但目前硬件真隨機數(shù)發(fā)生源均較復(fù)雜,而且很少有基于單片機的真隨機數(shù)發(fā)生器。本文利用RC充放電的低穩(wěn)定度,根據(jù)AVR單片機的特點設(shè)計了一種性價比極高的真隨機數(shù)發(fā)生器。該隨機數(shù)發(fā)生器使用元件很少,穩(wěn)定性高,對一些價格敏感的特殊場合,如金融、通信、娛樂設(shè)備等有較大的應(yīng)用意義。


1 基本原理和方法
1.1 基本原理
    串聯(lián)的RC充放電電路由于受到漏電流、電阻熱噪聲、電阻過剩噪聲、電容極化噪聲等諸多不確定性因素的影響,其充放電穩(wěn)定度一般只能達(dá)到10-3。利用這種RC充放電的低穩(wěn)定度特性實現(xiàn)廉價的真隨機數(shù)發(fā)生源。
    Atmel公司AVR單片機ATmega 128以其速度快、功能強、性價比高等優(yōu)點廣泛應(yīng)用于各種嵌入式計算場合。利用AVR單片機引腳配置靈活多樣的特點,使用Amnega128兩個I/O口作為真隨機數(shù)的電氣接口。
    其原理如圖1所示。主要原理是利用串聯(lián)RC電路的不確定性產(chǎn)生真隨機數(shù)源,收集數(shù)據(jù),通過AVR單片機ATmega128和主時鐘電路量化RC電路的充放電時問,獲得不確定的2位二進(jìn)制數(shù)據(jù),再利用程序?qū)⒚?次采集的數(shù)據(jù)綜合,最后產(chǎn)生1個8位的真隨機數(shù)。

1.2 方 法
1.2.1 RC電路充放電過程
    I/O口配置策略為:PG3 口(第18腳)作為充電輸出口,PG4 口(第19腳)作為檢測輸入口。當(dāng)PG3輸出為高時,輸出電流通過電阻對電容進(jìn)行充電;當(dāng)PG3輸出為低時,電容通過電阻放電。PG4用于檢測電容上的電平狀態(tài)。充放電過程如圖2所示。

1.2.2 AVR單片機獲得不確定的2位二進(jìn)制數(shù)據(jù)
    AVR單片機主時鐘采用普通晶體振蕩器。用該主時鐘來測量RC電路的充放時間,用AVR單片機的定時器(1個16位定時器)來量化充放電時間。由于主時鐘的周期遠(yuǎn)遠(yuǎn)小于RC充放電時間,觀察實驗數(shù)據(jù),最低2位二進(jìn)制有效數(shù)字具有不確定性。以下為AVR單片機定時器對外部RC電路進(jìn)行3次充電和2次放電所花時間的量化值:
    1597 1588 1584 1588 1588
    1589 1588 1589 1584 1589
    1589 1589 1589 1584 1589
    1584 1588 1588 1588 1588
    1588 1588 1589 1589 1587
    1596 1588 1588 1589 1589
    1589 1588 1588 1588 1589
    1588 1584 1589 1589 1589
    1589 1589 1588 1588 1588
    1588 1589 1588 1588 1588
    1588 1584 1589 1588 1588
    1588 1589 1589 1588 1589
    1589 1589 1588 1588 1588
    1588 1588 1589 1588 1590
    1588 1589 1588 1588 1588
    1597 1589 1588 1597 1587
    1588 1588 1587 1588 1588
    1588 1588 1588 1588 1588
    1589 1589 1589 1588 1589
    1588 1588 1589 1588 1588
    1588 1588 1588 1588 1588
    1588 1588 1589 1588 1589
    1596 1589 1588 1589 1588
    1588 1588 1588 1589 1584
    1589 1589 1589 1588 1585
    1589 1588 1588 1588 1589
    1589 1588 1589 1588 1588
    1589 1589 1589 1588 1597
    1589 1588 1589 1589
1.2.3 程序設(shè)計
    由以上數(shù)據(jù)統(tǒng)計特征可見,每次測量結(jié)果僅有兩位不確定二進(jìn)制數(shù)據(jù)。為了產(chǎn)生1個8位數(shù)據(jù),設(shè)計了C語言程序控制專用函數(shù)測量4次,每次得到了2個二進(jìn)制隨機數(shù),這樣調(diào)用該函數(shù)1次即可得到1字節(jié)的隨機數(shù)。
    主要程序如下:


 
2 實驗結(jié)果和分析
    經(jīng)實驗,得到兩位不確定二進(jìn)制數(shù)的概率分布。
    5 min后數(shù)據(jù)分布:P(00)=16%,P(01)=19%,P(10)=37%,P(11)=28%。
    10 min后的數(shù)據(jù)分布:P(00)=16%,P(01)=21%,P(10)=38%,P(11)=25%。
    22 min后的數(shù)據(jù)分布:P(00)=14%,P(01)=23%,P(10)=38%,P(11)=25%。
    37 min后的數(shù)據(jù)分布:P(00)=16%,P(01)=26%,P(10)=36%,P(11)=22%。
    以上數(shù)據(jù)由單片機統(tǒng)計后經(jīng)串口直接輸出到超級終端的顯示參數(shù)。
    25℃下產(chǎn)生的3 500個8位數(shù)據(jù)的分布如圖3所示。

    從圖中可以看出,有4個區(qū)間分布概率較大,分別是[0,32]、[40,90]、[160,225]、[230,255]。產(chǎn)生這樣的分布和具體使用的元器件特性以及測試現(xiàn)場的環(huán)境有關(guān)。在采集得到大量的序列后,通過計算機分析沒有發(fā)現(xiàn)有周期重復(fù)性。


3 提高性能的措施
    在實際應(yīng)用中,若采用該方法產(chǎn)生的隨機數(shù)進(jìn)行數(shù)據(jù)加密時,為防止解密者拆除、短接RC電路或更改RC電路參數(shù),可利用測得的充放電時間來確定外部RC電路的存在和參數(shù)的穩(wěn)健。如若充放電時間不在程序預(yù)先設(shè)定的區(qū)間內(nèi),單片機立即銷毀相關(guān)數(shù)據(jù)并停止程序運行,從而達(dá)到加密的效果。
    提高隨機數(shù)產(chǎn)生速率。采用本文的方法產(chǎn)生的隨機數(shù)的速率和RC充放電時間有關(guān)系,由于RC充放電速率影響,在產(chǎn)生高速率隨機數(shù)的時候不合適。針對該問題,可將得到的真隨機數(shù)作為種子來產(chǎn)生一定數(shù)量的偽隨機數(shù),這樣可大大提高產(chǎn)生隨機數(shù)的速率。


結(jié) 語
    設(shè)計和實現(xiàn)了一種基于AVR單片機的真隨機數(shù)發(fā)生器,利用RC充放電電路的不穩(wěn)定性完成了真隨機數(shù)的產(chǎn)生。該隨機數(shù)發(fā)生器利用AVR單片機少量硬件資源完成,具有設(shè)計簡單,成本低廉的優(yōu)點。最后提出了軟硬件結(jié)合的方式,提高了該隨機數(shù)發(fā)生器的性能,拓展了該真隨機數(shù)發(fā)生器的應(yīng)用范圍。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉