UNIX 系统上正确的可用熵是多少?

syn*_*gma 14 linux random

我有三个与 UNIX 系统上的熵相关的问题:

  1. 我检查熵在Linux上使用:cat /proc/sys/kernel/random/entropy_avail。这是有关 POSIX 中定义的可用熵信息的标准位置吗?
  2. 我应该期待什么是正确的可用?我听说熵应该等于或大于100,如果熵一直低于100,可能会有问题。
  3. 这个熵是被 使用/dev/random还是与它有任何关系/dev/urandom

Gil*_*il' 9

/dev/random不规范。POSIX 不提供任何生成加密安全随机数据的方法,也没有任何熵的概念。

Linux 内核的熵计算对应于熵的信息理论模型,与实际使用无关。唯一与此相关的情况是在从未有时间积累熵的新设备上(这包括实时分发;已安装的系统从一次启动到下一次启动时保存它们的熵)。除了这种情况,总是有足够的熵,因为熵不会耗尽。由于 Linux/dev/random在认为它没有足够的熵时会阻塞,因此请使用/dev/urandom,它从不阻塞。使用/dev/urandom对一切都有好处,包括生成加密密钥(除非,如上所述,在新铸造的设备上)。

总之:

  1. 不,这不是标准的。
  2. 你不在乎。
  3. 使用/dev/urandom.

许多,但不是所有的 Unix 系统都有/dev/urandom/dev/random. 有关更详细的讨论,请参阅维基百科页面