ATmega1 28單片機的真隨機數發(fā)生矗
2 實驗結果和分析
經實驗,得到兩位不確定二進制數的概率分布。
5 min后數據分布:P(00)=16%,P(01)=19%,P(10)=37%,P(11)=28%。
10 min后的數據分布:P(00)=16%,P(01)=21%,P(10)=38%,P(11)=25%。
22 min后的數據分布:P(00)=14%,P(01)=23%,P(10)=38%,P(11)=25%。
37 min后的數據分布:P(00)=16%,P(01)=26%,P(10)=36%,P(11)=22%。
以上數據由單片機統計后經串口直接輸出到超級終端的顯示參數。
25℃下產生的3 500個8位數據的分布如圖3所示。
從圖中可以看出,有4個區(qū)間分布概率較大,分別是[0,32]、[40,90]、[160,225]、[230,255]。產生這樣的分布和具體使用的元器件特性以及測試現場的環(huán)境有關。在采集得到大量的序列后,通過計算機分析沒有發(fā)現有周期重復性。
3 提高性能的措施
在實際應用中,若采用該方法產生的隨機數進行數據加密時,為防止解密者拆除、短接RC電路或更改RC電路參數,可利用測得的充放電時間來確定外部RC電路的存在和參數的穩(wěn)健。如若充放電時間不在程序預先設定的區(qū)間內,單片機立即銷毀相關數據并停止程序運行,從而達到加密的效果。
提高隨機數產生速率。采用本文的方法產生的隨機數的速率和RC充放電時間有關系,由于RC充放電速率影響,在產生高速率隨機數的時候不合適。針對該問題,可將得到的真隨機數作為種子來產生一定數量的偽隨機數,這樣可大大提高產生隨機數的速率。
結 語
設計和實現了一種基于AVR單片機的真隨機數發(fā)生器,利用RC充放電電路的不穩(wěn)定性完成了真隨機數的產生。該隨機數發(fā)生器利用AVR單片機少量硬件資源完成,具有設計簡單,成本低廉的優(yōu)點。最后提出了軟硬件結合的方式,提高了該隨機數發(fā)生器的性能,拓展了該真隨機數發(fā)生器的應用范圍。
評論