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个区间分布概率较大,分别是[0,32]、[40,90]、[160,225]、[230,255]。产生这样的分布和具体使用的元器件特性以及测试现场的环境有关。在采集得到大量的序列后,通过计算机分析没有发现有周期重复性。
3 提高性能的措施
在实际应用中,若采用该方法产生的随机数进行数据加密时,为防止解密者拆除、短接RC电路或更改RC电路参数,可利用测得的充放电时间来确定外部RC电路的存在和参数的稳健。如若充放电时间不在程序预先设定的区间内,单片机立即销毁相关数据并停止程序运行,从而达到加密的效果。
提高随机数产生速率。采用本文的方法产生的随机数的速率和RC充放电时间有关系,由于RC充放电速率影响,在产生高速率随机数的时候不合适。针对该问题,可将得到的真随机数作为种子来产生一定数量的伪随机数,这样可大大提高产生随机数的速率。
结 语
设计和实现了一种基于AVR单片机的真随机数发生器,利用RC充放电电路的不稳定性完成了真随机数的产生。该随机数发生器利用AVR单片机少量硬件资源完成,具有设计简单,成本低廉的优点。最后提出了软硬件结合的方式,提高了该随机数发生器的性能,拓展了该真随机数发生器的应用范围。