关于在 Linux 熵估计器中使用 Deltas

信息安全 linux 随机的
2021-09-08 06:43:02

最近,我对应用密码学产生了兴趣,偶然发现了一个解释 Linux 如何估计熵的链接

在某些时候,我们被告知熵估计是基于某些系统事件的时间戳的一、二和三差。很公平。我不明白的是这背后的直觉,在链接中解释如下:

增量的这种使用与尝试将 n 次多项式拟合到先前的 n+1 个点大致相同,然后查看新点与基于先前 n 点的最佳预测之间的距离。使用 deltas 的最小值,它具有获取 0 次、1 次或 2 次多项式的最佳拟合并使用该多项式的效果。

为了澄清,这就是我所理解的(我认为)。以链接中的鼠标事件为例:

Mouse event times       1004   1012    1024    1025    1030    1041

1st differences              8      12       1       5      11

2nd differences                  4       11      4       6

3rd differences                      7       7       2

将 n 次多项式拟合到前 n+1 个点:我猜这将采用第 (i+1) 个差异,这是第 i 个差异的第一个差异。这些可用于预测第 i 个差异的下一个值,因此是“拟合”。例如,第一个差异解释了鼠标事件行(第 0 个差异)的连续值如何变化。

新点与基于前 n 个点的最佳预测相差多远:我猜这是由第 (i+2) 个差异给出的?例如,在最后一个鼠标事件时间 1041 之后,第二个差异为 6,即1041(新点)与 1035(最佳预测)的距离预测是通过将之前的第 0 个 diff 值 1030 添加到之前的第 1 个 diff 值 5 来获得的。

使用最小增量:我最好的猜测是熵估计器选择最小值,因为它最适合第 (i-1) 次差异(或第 (i-1) 次多项式)。我想我理解这种方法是如何选择最合适的,但我真的不明白“为什么”。

我的疑问/问题是:

  • 我可能忽略了一些明显的东西,但我仍然看不到我对 n 次多项式拟合的想法之间的关系(例如,使用最小二乘法的多项式回归)。
  • 选择最小增量的实际理由是什么?为什么它可以很好地衡量下一个数据点的意外程度?是因为最小增量是最保守的吗?
1个回答

估计器使用最小三次增量,因为它的拟合多项式的次数是数据集的熵。在第一个示例中,最小 delta 为 2,其以 2 为底的 log 为 1,因此数据整体增加了 1 位熵。为什么是最小增量?这是因为使用它可以将整个数据集的熵(换句话说,不可预测性)表示为一位数。如果您查看前两个示例(1 位和 2 位)中的熵测量值,您可以看到它们分别转换为大约 10 和 100 的第一个增量值。因此,熵为 3 意味着第一个增量约为 1,000、4 - 10,000 等等。总之,在我们的 delta 表示中,我们通过使用最小第三个 delta 的多项式次数从多个数字变为单个数字。