《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > ATmega128單片機的真隨機數發生器
ATmega128單片機的真隨機數發生器
摘要: 本文利用RC充放電的低穩定度,根據AVR單片機的特點設計了一種性價比極高的真隨機數發生器。該隨機數發生器使用元件很少,穩定性高,對一些價格敏感的特殊場合,如金融、通信、娛樂設備等有較大的應用意義。
Abstract:
Key words :

  引 言

  隨機數已廣泛地應用于仿真、抽樣、數值分析、計算機程序設計、決策、美學和娛樂之中。常見的隨機數發生器有兩種:使用數學算法的偽隨機數發生器和以物理隨機量作為發生源的真隨機數發生器。要獲取真正隨機的真隨機數,常使用硬件隨機數發生器的方法來獲取。這些真隨機數都是使基于特定的真隨機數發生源(如熱噪聲、電流噪聲等),每次獲取的真隨機數都是不可測的,具有很好的隨機性。

  真隨機數因其隨機性強,在數據加密、信息輔助、智能決策和初始化向量方面有著廣泛應用,構建一種基于硬件真隨機數發生源,具有廣泛的應用價值。但目前硬件真隨機數發生源均較復雜,而且很少有基于單片機的真隨機數發生器。本文利用RC充放電的低穩定度,根據AVR單片機的特點設計了一種性價比極高的真隨機數發生器。該隨機數發生器使用元件很少,穩定性高,對一些價格敏感的特殊場合,如金融、通信、娛樂設備等有較大的應用意義。

  1 基本原理和方法

  1.1 基本原理

  串聯的RC充放電電路由于受到漏電流、電阻熱噪聲、電阻過剩噪聲、電容極化噪聲等諸多不確定性因素的影響,其充放電穩定度一般只能達到10-3。利用這種RC充放電的低穩定度特性實現廉價的真隨機數發生源。

  Atmel公司AVR單片機ATmega 128以其速度快、功能強、性價比高等優點廣泛應用于各種嵌入式計算場合。利用AVR單片機引腳配置靈活多樣的特點,使用Amnega128兩個I/O口作為真隨機數的電氣接口。

  其原理如圖1所示。主要原理是利用串聯RC電路的不確定性產生真隨機數源,收集數據,通過AVR單片機ATmega128和主時鐘電路量化RC電路的充放電時問,獲得不確定的2位二進制數據,再利用程序將每4次采集的數據綜合,最后產生1個8位的真隨機數。

電路原理圖

  1.2 方 法

  1.2.1 RC電路充放電過程

  I/O口配置策略為:PG3 口(第18腳)作為充電輸出口,PG4 口(第19腳)作為檢測輸入口。當PG3輸出為高時,輸出電流通過電阻對電容進行充電;當PG3輸出為低時,電容通過電阻放電。PG4用于檢測電容上的電平狀態。充放電過程如圖2所示。

充放電過程

  1.2.2 AVR單片機獲得不確定的2位二進制數據

  AVR單片機主時鐘采用普通晶體振蕩器。用該主時鐘來測量RC電路的充放時間,用AVR單片機的定時器(1個16位定時器)來量化充放電時間。由于主時鐘的周期遠遠小于RC充放電時間,觀察實驗數據,最低2位二進制有效數字具有不確定性。以下為AVR單片機定時器對外部RC電路進行3次充電和2次放電所花時間的量化值:

量化值

  1.2.3 程序設計

  由以上數據統計特征可見,每次測量結果僅有兩位不確定二進制數據。為了產生1個8位數據,設計了C語言程序控制專用函數測量4次,每次得到了2個二進制隨機數,這樣調用該函數1次即可得到1字節的隨機數。

  主要程序如下:

程序

程序

  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所示。

25℃下產生的3 500個8位數據的分布

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

  3 提高性能的措施

  在實際應用中,若采用該方法產生的隨機數進行數據加密時,為防止解密者拆除、短接RC電路或更改RC電路參數,可利用測得的充放電時間來確定外部RC電路的存在和參數的穩健。如若充放電時間不在程序預先設定的區間內,單片機立即銷毀相關數據并停止程序運行,從而達到加密的效果。

  提高隨機數產生速率。采用本文的方法產生的隨機數的速率和RC充放電時間有關系,由于RC充放電速率影響,在產生高速率隨機數的時候不合適。針對該問題,可將得到的真隨機數作為種子來產生一定數量的偽隨機數,這樣可大大提高產生隨機數的速率。

  結 語

  設計和實現了一種基于AVR單片機的真隨機數發生器,利用RC充放電電路的不穩定性完成了真隨機數的產生。該隨機數發生器利用AVR單片機少量硬件資源完成,具有設計簡單,成本低廉的優點。最后提出了軟硬件結合的方式,提高了該隨機數發生器的性能,拓展了該真隨機數發生器的應用范圍。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久99精品久久久久久三级 | 一级做a爱 | 午夜香蕉成视频人网站高清版 | 日本免费人成黄页网观看视频 | 婷婷丁香久久 | 宅男66lu国产乱在线观看 | 中文字幕日本不卡 | 国产欧美一区二区另类精品 | 最新理论三级中文在线观看 | 色熟| 欧美成人老熟妇暴潮毛片 | 欧美日韩亚洲一区二区三区在线观看 | 日本乱人伦毛片 | 国产欧美日韩综合二区三区 | 久久免费观看国产精品 | 加勒比色综合久久久久久久久 | yy6080午夜国产免费福利 | 国产成人亚洲精品无广告 | 亚洲午夜精品在线 | 国产亚洲欧美一区二区三区 | 国产精品久久久久精 | 福利岛国深夜在线 | 99久久精品费精品国产一区二 | 国产精品88 | 经典国产乱子伦精品视频 | 交视频在线观看国产网站 | 亚洲制服丝袜美腿亚洲一区 | 日韩高清在线不卡 | 亚洲永久免费 | 91情侣高清精品国产 | 国产一区二区三区国产精品 | 欧美一级毛片美99毛片 | 成人一级网站 | 99久久精品国产一区二区小说 | 久草视频2| 国产在线观看免费一级 | 99精品免费视频 | 欧美视频一区二区三区四区 | 天堂精品高清1区2区3区 | 久久精品国产在爱久久 | 成人网18免费网站在线 |