测量熵质量的工具?


26

是否有可用于Linux系统的工具,可以测量系统上熵的“质量”?

我知道如何计算熵:

cat /proc/sys/kernel/random/entropy_avail

而且我知道有些系统具有“良好”的熵源(硬件熵密钥),而有些则没有(虚拟机)。

但是,有没有一种工具可以提供有关系统上熵的“质量”的度量?


我有兴趣,为什么要计算系统的熵?
whoami 2012年

Answers:


26

http://www.fourmilab.ch/random/为我工作。

sudo apt-get install ent
head -c 1M /dev/urandom > /tmp/out
ent /tmp/out

4
很酷的工具。您可以使用dd if=/dev/urandom bs=1M count=1 | ent
l0b0

7
注意,运行熵估计器/dev/urandom是完全没有用的。/dev/urandom是加密质量的PRNG的输出,并且熵估算器将始终对任何半体面的PRNG给予满分。您需要在无条件熵源上运行熵估计器,Linux不会在内核外部公开该熵源。抄送@DustinKirkland
别再成为邪恶了

@吉尔斯有没有办法?
费利佩2015年

@FelipeMicaroniLalli没办法做什么?从/dev/urandom?的输出估计熵。是。的输出/dev/urandom(或者/dev/random,相同的问题)是一个加密的质量PRNG的输出,并且将始终拥有熵估计的最高分。如果要估计熵,则需要深入研究内核,弄清楚它用于熵源的时间,并且需要非常长时间的测量。
吉尔斯(Gilles)'所以

1
@FelipeMicaroniLalli不,熵源不会以可测量的方式影响PRNG。对于Unix和Linux来说,这是相当荒唐的话题,但是我知道我已经在密码学上看到了它的讨论,请尝试在其中搜索[熵]和[随机性]标签。
吉尔斯(Gilles)'所以

6

“ ent”是出色的命令行工具,可用于简单,快速地估计熵。

我用它来帮助学习线性同余生成器的工作原理。但是,如果用“测量熵”来表示“测量随机性”,则问题变得更加复杂。

对于更强大的随机性测试,您应该签出dieharder测试套件:http ://www.phy.duke.edu/~rgb/General/dieharder.php

它不像“ ent”那么容易使用,但是要严格得多。

对于更深入的研究,“ Ritter的密码”还提供了不错的链接选择:

http://www.ciphersbyritter.com/NETLINKS.HTM#RandomnessLinks


3

工具只能为您提供熵的上限。对于大多数用途,特别是与安全性相关的用途,您对下限更感兴趣。

从数学上来说,计算任意文件的熵是不可能的,因此,没有工具可以做到这一点。

我可以轻松地编写一个文件生成器,该文件生成器会生成非常低的熵文件,但仍会通过您的熵测试。只需使用带有小种子的加密PRNG。




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.