ATmega1 28單片機(jī)的真隨機(jī)數(shù)發(fā)生矗
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ù)由單片機(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)。在采集得到大量的序列后,通過計算機(jī)分析沒有發(fā)現(xiàn)有周期重復(fù)性。
3 提高性能的措施
在實際應(yīng)用中,若采用該方法產(chǎn)生的隨機(jī)數(shù)進(jìn)行數(shù)據(jù)加密時,為防止解密者拆除、短接RC電路或更改RC電路參數(shù),可利用測得的充放電時間來確定外部RC電路的存在和參數(shù)的穩(wěn)健。如若充放電時間不在程序預(yù)先設(shè)定的區(qū)間內(nèi),單片機(jī)立即銷毀相關(guān)數(shù)據(jù)并停止程序運行,從而達(dá)到加密的效果。
提高隨機(jī)數(shù)產(chǎn)生速率。采用本文的方法產(chǎn)生的隨機(jī)數(shù)的速率和RC充放電時間有關(guān)系,由于RC充放電速率影響,在產(chǎn)生高速率隨機(jī)數(shù)的時候不合適。針對該問題,可將得到的真隨機(jī)數(shù)作為種子來產(chǎn)生一定數(shù)量的偽隨機(jī)數(shù),這樣可大大提高產(chǎn)生隨機(jī)數(shù)的速率。
結(jié) 語
設(shè)計和實現(xiàn)了一種基于AVR單片機(jī)的真隨機(jī)數(shù)發(fā)生器,利用RC充放電電路的不穩(wěn)定性完成了真隨機(jī)數(shù)的產(chǎn)生。該隨機(jī)數(shù)發(fā)生器利用AVR單片機(jī)少量硬件資源完成,具有設(shè)計簡單,成本低廉的優(yōu)點。最后提出了軟硬件結(jié)合的方式,提高了該隨機(jī)數(shù)發(fā)生器的性能,拓展了該真隨機(jī)數(shù)發(fā)生器的應(yīng)用范圍。
評論