新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于振荡器采样法的随机数发生器设计

基于振荡器采样法的随机数发生器设计

作者:时间:2012-03-07来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/190678.htm

偏差纠正器

的工作基于这样一个事实,即高频一直保持50%的占空比,而低频每个周期都有明显变化。如果情况不是这样(尽管绝大部分情况下是这样),所获得的位码便会出现偏差,既可能是“1”,也可能是“0”,这称为偏移。幸运的是我们可以采取有效的后处理方法来纠正偏差,以一种确定的方式产生分布更均匀的位流。其中两种最简单的技术分别称为奇偶生成和转换映射,此外还有一些较复杂的偏差纠正方法,包括使用快速傅利叶变换函数和更复杂的位混排技术,它们通常采用延迟元件和反馈通路组合来去除位与位之间的相关性。

偏差纠正的目标是对位流进行均衡分配,以便以相同的概率产生“1”和“0”,其做法基本上是从有偏差的位序列中提取出更随机的数值。这种后处理功能并非振荡器采样技术所独有,其应用对原始噪声源没有要求,要实现这种功能也并不复杂。一种简单方法是奇偶生成,它具有鲁棒性强的优点,可用于更大范围的偏差分布。用硬件来实现固定长度位采样序列一般非常简单,例如简单的级联XOR链便可有效用作一个奇偶生成器并完成适当的偏差纠正(图5)。图5:一个级联XOR链可作为一个简单有效的偏差纠正器。

转换映射也叫做冯·诺依曼纠正器,它将一对采样输入位转换成一个输出位,例如把输入对[0,1]转换成1,把[1,0]转换成0,而在输入为[0,0]或[1,1]时什么也不输出。这种技术可以完全消除偏差,但其代价是必须在输入位之间创建一个不定量的延迟,并产生一个输出位长的任意数。

混合函数

即使采用了所有上述技术,仍然存在这样一些担忧,即由于存在多种非随机数据源(如前面提及的多个振荡器源组合),系统固有的随机性可能受到影响。采用功能强大的混合函数可以确保随机源的随机性,这些函数将两个或更多采样位进行组合,然后产生一个输出位,该输出位是先前各输入位的复杂非线性函数。当然,这样获得的输出随机位数不可能多于输入位数。对这个函数期望的功能是任何输入位的改变都会引起大约一半输出位的改变,这些混合函数也可作为更复杂的纠偏方法去除位流偏差,如同前面讨论的那样。

一般情况下,混合函数功能越强,它所占用的芯片面积也越大,前面提到的级联XOR便是很简单的一例。DES加密/解密算法则是更为复杂的例子,因为它需要120个输入位,产生64个输出位,每一个输出位都依赖一个涉及所有输入位的复杂非线性函数,其它加密/解密算法的工作方式也类似。混排函数也可用作强大的混合函数,它们使用任意长度的输入位,并产生一定长度的信息摘要。同样,设计工程师需要进行权衡,要在额外开销与所生成的位流无法达到期望随机度之间做选择。

统计评估

美国商业部创建了多种用来评估加密应用中随机程度的标准,美国国家标准技术研究所(NIST)出版的“800-22特刊”推荐了一种全面的统计测试方法,并严格规定了满足各种程度随机性的衡量标准。测试工程师可在验证过程中使用这种测试方法或其它类似测试,检验设计是否具有非随机特征,从而判断是否达到了某种程度的随机性。NIST统计测试套件中规定了16种不同类型的测试,以便能发现被测的缺陷。

NIST FIPS 140-2是美国商业部颁发的另一份文件,它定义了设计者在安全应用中采用加密设备时必须遵守的一系列要求。其中一个最重要的要求是任何使用随机数发生器的实时加密模块必须提供加电能力并可对RNG功能进行持续的实时测试,确保它在工作过程中不出现故障,如果在规定的统计测试中出现任何失败,RNG模块都必须进入一种错误状态。对于SoC设计来说,这意味着如果最终产品希望获得美国政府安全标准许可的话,那么进行测试的测试器模块必须集成在设备本身之中并满足规定的要求。

某些产生非确定性噪声源的技术也许并不适用,这取决于是使用标准单元设计还是使用客户定制布局设计。的确可以保证一项设计达到期望的随机度,但这种保证的代价是增加芯片尺寸以便实现冗余结构或更为复杂的后处理功能。即便是精心规划的设计,最后阶段也必须通过统计测试套件的验证,只有这样才能说设计达到了期望的随机度。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭