我有三个与 UNIX 系统上的熵相关的问题:
- 我使用以下命令检查 Linux 上的熵
cat /proc/sys/kernel/random/entropy_avail
:这是 POSIX 中定义的可用熵信息的标准位置吗? - 我应该期待什么是正确的可用信息?我听说熵应该等于或大于100,如果熵一直低于100可能会有问题。
- 这个熵是由 所使用的
/dev/random
还是与 也有关系/dev/urandom
?
答案1
/dev/random
没有标准化。 POSIX 不提供任何生成加密安全随机数据的方法,并且没有任何熵的概念。
Linux内核的熵计算对应于熵的信息论模型,与实际使用无关。唯一与此相关的情况是在从未有时间积累熵的新设备上(这包括实时发行版;已安装的系统从一次启动到下一次启动都会保存其熵)。除了这种情况之外,总是有足够的熵,因为熵不会耗尽。由于 Linux/dev/random
在认为它没有足够的熵时会阻塞,所以使用/dev/urandom
,它永远不会阻塞。使用/dev/urandom
对一切都有好处,包括生成加密密钥(如上所述,在新设备上除外)。
总之:
- 不,这不是标准的。
- 你不在乎。
- 使用
/dev/urandom
。
许多(但不是所有)Unix 系统都有/dev/urandom
和/dev/random
。请参阅维基百科页面进行更详细的讨论。