环形振荡器:真随机数发生器 (TRNG) 与物理上不可克隆函数 (PUF)

信息安全 硬件 随机的
2021-08-18 17:45:18

环形振荡器可用于硬件真随机数发生器(TRNG),也可用于物理不可克隆函数(PUF)。

这些设计看起来非常相似:

基于环形振荡器的 TRNG: 基于振荡器环的 TRNG

环形振荡器 PUF: 环形振荡器 PUF

PUF 的想法是它为每个挑战创建相同的预定义(但看似随机)响应,而 TRNG 的想法是它创建真正随机的输出。

我的问题是:

  • 环形振荡器如何成为这两种功能的主要元素?一种似乎依赖于可以预测振荡器状态的事实,而另一种则依赖于相反的情况。这对我来说似乎很矛盾。
  • 它是否与 XOR 有关,在 TRNG 的情况下(半)随机组合输出,而 PUF 中的多路复用器调节输出?或者它与振荡器运行多长时间有关?
  • 如果是这样,环形振荡器 TRNG 真的是随机的吗?
2个回答

在 TRNG 结构中,环没有共同的使能信号,它们同步的唯一时间点是加电时。然后他们自由奔跑,每个人都有自己的节奏。这本身并不会产生大量随机性,但会在触发器输入端产生很多毛刺。希望是从亚稳定性中创造更多的随机性。对于 PUF,有一个共同的使能,因此环形振荡器在开始时以一个共同的同步点相互竞争。挑战输入选择哪些实例正在竞争。对于给定的挑战和给定的筹码,比赛的结果往往总是相同的结果,因为每个环的精确频率取决于每个阶段的精确物理特性。

这与 RO 运行的时间无关,这只是输出的使用方式造成了差异。您甚至可以移除 PUF 中的启用信号,这仍然可以工作,因为重要的是频率差异,而对于 TRNG,这是重要的采样时的实际输出值。

该 TRNG 可能是真正随机的,但要正确(以获得高数据速率)是很棘手的。其他依赖异步环或混沌映射的结构是更安全的选择。

PUF 测量振荡器频率,这取决于器件制造过程中原子的排列方式。RNG 在短时间内使用振荡器频率和相位的随机性。

随机性从何而来

正如设计人员所知,任何计时设备(钟摆、石英谐振器、RC 振荡器等)都有一些固有的“噪声”或“抖动”。如果我们构建一个输出为脉冲流的振荡器,则脉冲间时间并不完全一致。这种噪声与更熟悉的噪声类型具有相似的特性和行为,并且是随机的。

在此处输入图像描述

在环形振荡器 TRNG 中,每个振荡器相对于采样时钟的相位随时间漂移。大多数漂移是由于振荡器和采样频率之间的差异造成的,但也有一些是由抖动引起的。

换句话说,想象一个带有使能输入的环形振荡器。它打开,然后在一段时间后采样T每个时期持续(1/f)+jitter很长一段时间后,大量的抖动值被添加到相位中。输出可以是等概率的 1 或 0。不幸的是,对于高斯抖动,N抖动值加在一起的N^0.5标准偏差只有大一倍。

RNGs 有效地捕捉随机性

这种方案效率低下,每比特需要许多抖动样本。相位分布必须宽到几乎均匀。对环形振荡器的输出N进行异或采样比在 处采样相同的N环形振荡器可以产生更多的随机位F/N有一些统计分析说明了原因,但可以通过考虑抖动值必须移动振荡器相位足以引起位翻转的机会数量来直观地理解它。过采样会为每个振荡器产生大量相关的位。Xoring 将它们组合成一个白化的输出流。

PUF 减少随机性的影响

PUF 旨在减少随机噪声源对其结果的影响。理想的 PUF 仅取决于器件制造过程中原子的着陆方式。您展示的 PUF 设计在某个时间不会“预测”环形振荡器的输出值T它对输出脉冲进行计数。输出大致为:"Is the frequency of the first selected ring oscillator higher than that of the second selected ring oscillator?". 对于相当长的运行时间,这不会受到抖动值的显着影响。抖动效应按 0.5 次方缩放,而计数线性增加。更长的运行时间收敛于完美的频率比较。对于频率非常接近的振荡器,抖动会在结果中发挥重要作用。这就是为什么某些 PUF 质询值在给定设备上可能没有确定10答案的原因。