我正在研究一个基于CMOS相机传感器的镜头噪声的量子随机数发生器。图像中的镜头噪声是由每单位时间内撞击传感器的光子数的变化引起的。这种分布遵循泊松分布。为了收集拍摄噪音,我必须用扩散光源照亮传感器。
在讨论如何从镜头噪声中提取随机性的许多论文中,通常都采用等频率的二值化方法。下面的图像说明了使用两个回收箱进行随机提取的情况。如果当前示例大于平均值,则输出1,如果当前示例小于平均值,则输出0。
这种方法的问题是很难确定切点,或者在这种情况下,平均值。我试着用移动平均法,但光源的电压有时会下降几秒钟,这是因为我房间里的其他电子设备造成的,这会使我的RNG产生的输出有时偏置几秒钟。我使用NIST统计测试套件测试生成的数据,它只通过了5/15测试。
虽然当我应用von去偏法时,它通过了14/15测试,但是原始数据的质量确实很差这一事实仍然困扰着我。所以我尝试了一种不同的提取方法。以下是使用一个像素的工作原理
Let Brightness(t) be a function that returns the brightness of the pixel at time t
if Brightness(0) < Brightness(1) then
output 1
if Brightness(0) > Brightness(1) then
output 0
else
don't output anything
基本上,取两个不重叠的样本,如果第二个样本比第一个样本亮,输出1,如果第二个样本比第一个样本暗,输出0。
使用该方法生成的数据通过了15/15 NIST测试。但是,由于我从未见过任何论文讨论过这样的方法,我需要确认这个方法是否真的像它看起来的那么好,也许还需要一些解释为什么它是好的。谢谢。
发布于 2020-05-21 22:47:22
如果没有源的模型,问题的方法是不安全的。特别地,应用于在时间上演化的源,如此锯齿
假设周期是Brightness(0)
和Brightness(1)
之间采样时间的几倍,由于函数大部分时间都在减小,输出将严重偏于0 (随着高斯噪声的增加,采样间隔减小)。
另一个问题是多个像素可以输出相关位。
这两种影响很可能发生在实践中,由于各种原因:开关调节器的电源电源的gizmo,或LED光源的环境照明。在密码学方面,对手通常有一定程度的访问RNG的权限,并且可能会故意产生这种影响(例如改变电源或光源)。根据墨菲定律的必然结果,在这种情况下,这样的事情会在没有明确的对手(如电源电容器老化的影响)的情况下发生,在最坏的时候也会发生。
使用此方法生成的数据通过了15/15 NIST测试。
如果某一来源未能通过任何统计检验,则从密码学的角度,这一结论最终证明了来源是有害的。但是,如果源通过了所有测试,从密码学的角度来看,它仍然可能是非常糟糕的;可以合理地说,最好的情况是,经过测试的源没有测试设计要检测的特定缺陷。
我用锯齿进行的实验表明,在不同的实际条件下,源可能会失效。设计一个通过所有测试的位源是很简单的,但在密码学上却是非常弱的。
更多的情况是测试的p-value预测,测试设计、实现和应用都是正确的。
发布于 2021-01-09 19:20:54
如果有其他人提出这个问题,有一篇被普遍引用的2007年论文,描述随机数产生的方式与OP所描述的完全相同:https://arxiv.org/abs/quant-ph/0609043
重要引语:
随机比特提取方法的基本思想是考虑由后续随机事件定义的一对非重叠随机时间间隔( t1,t2),如图2a所示,生成二进制值“0”( t1 < t2 )或“1”(t1> t2 )。接下来的两个间隔将被考虑生成下一个随机比特。由于确定时间间隔的事件在定义上是相互独立的,因此t1 < t2不可能以与t1 > t2不同的概率出现,因此生成“0”的概率与生成“1”的概率完全相等。换句话说,t2i−t2i−1的分布,i= 1,2,3。。。是对称的。此外,比特是相互独立的(即不相关的),因为使用独立的事件对来生成不同的比特。
https://crypto.stackexchange.com/questions/80868
复制相似问题