3.3. Ring Oscillator Sources (环形振荡器源)
3.3. Ring Oscillator Sources (环形振荡器源)
如果正在设计或现场可编程集成电路, 可以将奇数个门串联连接以产生自由运行的环形振荡器。通过以固定频率 (例如, 由稳定的晶体振荡器确定的频率) 对环中的一个点进行采样, 由于自由运行振荡器时序的变化, 可以提取一定量的熵。通过对来自几个具有相对质数长度的环形振荡器的采样值进行XOR, 可以提高熵的速率。有时建议使用奇数个环, 以便即使环以某种方式彼此同步锁定, 仍然会有采样的比特转换。另一个可能的采样源是噪声二极管的输出。
来自此类源的采样比特必须像磁盘旋转时序一样进行大量去偏斜 (参见第4节)。需要进行工程研究以确定根据特定设计产生的熵量。无论如何, 这些可以是良好的源, 其成本按现代标准来说是微不足道的硬件量。
作为一个例子, IEEE 802.11i建议下面的电路, 在设计中要适当注意环之间以及与时钟电路的隔离以避免不期望的同步等, 并进行广泛的后处理 [IEEE_802.11i]。
|\ |\ |\
+-->| >0-->| >0-- 19 total --| >0--+-------+
| |/ |/ |/ | |
| | |
+----------------------------------+ V
+-----+
|\ |\ |\ | | output
+-->| >0-->| >0-- 23 total --| >0--+--->| XOR |------>
| |/ |/ |/ | | |
| | +-----+
+----------------------------------+ ^ ^
| |
|\ |\ |\ | |
+-->| >0-->| >0-- 29 total --| >0--+------+ |
| |/ |/ |/ | |
| | |
+----------------------------------+ |
|
Other randomness, if available ---------+