如何估计此输入的熵内容?

问题描述 投票:2回答:3

我有一个1KHZ三角波发生器,我使用模拟输入从PIC微控制器测量。三角波和模拟捕获的频率源是独立的频率源。 ADC以100ksps的速度捕获12个[编辑:10]可用的精度位。

我想估计模拟样本中包含的熵,以便生成真正的随机数。我已经确定的两个熵源是开尔文噪声和频率源偏移。

从捕获的波形中,我可以连续地区分每秒两个频率,并且我将平均每秒捕获一个开尔文输入阈值镦粗事件。所以我的估计是每秒两位熵。

任何人都可以想出一种方法来证明更大的熵估计值吗?

基于已在S.O.上发布的类似问题的答案,我将添加以下说明:

我对其他关于熵源的想法并不特别感兴趣,因为我仍然必须回答这些替代来源的同样问题。

对自相关或其他随机性测量的数据本身的分析不是正确的答案,因为它们将非常乐观。

encryption random pic entropy analog-digital-converter
3个回答
0
投票

NIST出版物SP800-90B建议使用最小熵作为熵测量。然而,测试熵源的最小熵是非平凡的。有关这种测试的一种方法,请参见NIST SP800-90B。


1
投票

我取得了一些进步,可能对其他人有所帮

主要资源http://en.wikipedia.org/wiki/Johnson%E2%80%93Nyquist_noise

引脚电容会将可测量的热噪声量限制在ADC的带宽范围内,达到20uV。对于各种各样的控制器,这应该或多或少相同。在信号和引脚之间使用~10K电阻。较小的值将降低噪声,但会增加可能的采样率。

信号不需要是随机的。它只需要在至少几个离散输入步骤的范围内均匀分布。请注意,在与输入相同的时钟域上输出到GPIO可能不符合此要求。

采用10b ADC,动态范围为3.3V,每个离散步长为3mV。每个样品的熵约为20uV / 3mV =每个样品0.006位。

另请注意,这不需要模拟输入。您可以使用数字输入来实现,但是bin大小会大得多(1V?),答案将更像每个样本0.000018位。因此,每毫秒采用一个输入样本,生成64位随机种子大约需要一个小时。


-1
投票

如果我们谈论的是“物理学”熵,那么你的问题就是偏离主题的。但我们可以轻松地对您的模拟信号进行采样,将其转换为数字波形,然后在信息理论背景下讨论干扰。

用于测量数字信号中的熵的简单且令人惊讶的准确方法是尝试使用可用的最佳方法对其进行压缩。压缩率越高,信息内容越小。

如果您的目标是生成随机位以生成种子(如其他答案中提到的那样),一种有用的方法是使用常见压缩来压缩从环境中采样的随机性(键盘敲击,鼠标移动,模拟系统)算法,然后丢弃字典。剩下的,将有重要的信息内容。

© www.soinside.com 2019 - 2024. All rights reserved.