¿Herramienta para medir la calidad de la entropía?

26

¿Existe una herramienta disponible para sistemas Linux que pueda medir la "calidad" de la entropía en el sistema?

Sé contar la entropía:

cat /proc/sys/kernel/random/entropy_avail

Y sé que algunos sistemas tienen "buenas" fuentes de entropía (claves de entropía de hardware) y otras no (máquinas virtuales).

¿Pero hay una herramienta que pueda proporcionar una métrica en cuanto a la "calidad" de la entropía en el sistema?

Dustin Kirkland
fuente
Estoy interesado, ¿por qué querrías calcular la entropía de un sistema?
whoami

Respuestas:

26

http://www.fourmilab.ch/random/ funciona para mí.

sudo apt-get install ent
head -c 1M /dev/urandom > /tmp/out
ent /tmp/out
Marcin
fuente
44
Herramienta genial Puede verificar un dispositivo en un solo comando condd if=/dev/urandom bs=1M count=1 | ent
l0b0
77
Tenga en cuenta que ejecutar un estimador de entropía /dev/urandomes completamente inútil. /dev/urandomes la salida de un PRNG de calidad criptográfica, y un estimador de entropía siempre otorgará una calificación completa a cualquier PRNG semidecente. Debe ejecutar el estimador de entropía en la fuente de entropía no condicionada , que Linux no expone fuera del núcleo. Cc @DustinKirkland
Gilles 'SO- deja de ser malvado'
@Gilles no hay manera?
Felipe
@FelipeMicaroniLalli ¿No hay forma de hacer qué? Estime la entropía a partir de la salida de /dev/urandom? Sí. La salida de /dev/urandom(o /dev/random, el mismo problema) es la salida de un PRNG de calidad criptográfica, y eso siempre tendrá las mejores calificaciones para la estimación de entropía. Si desea estimar la entropía, debe profundizar en el núcleo, descubrir qué utiliza para las fuentes de entropía y medir durante mucho tiempo.
Gilles 'SO- deja de ser malvado'
1
@FelipeMicaroniLalli No, la fuente de entropía no afecta al PRNG de manera que se pueda medir. Esto es bastante fuera de tema para Unix y Linux, pero sé que lo he visto discutido en Criptografía , intente buscar las etiquetas [entropía] y [aleatoriedad] allí.
Gilles 'SO- deja de ser malvado'
6

"ent" es una excelente herramienta de línea de comandos para una estimación simple y rápida de la entropía.

Lo he usado para ayudar a aprender cómo funcionan los generadores congruenciales lineales. Pero si por "medir la entropía" quieres decir "medir la aleatoriedad" ... el problema se vuelve más complejo.

Para una prueba de aleatoriedad más sólida, debe consultar el conjunto de pruebas de dieharder: http://www.phy.duke.edu/~rgb/General/dieharder.php

No es tan fácil de usar como "ent", pero es mucho más riguroso.

Para un estudio más profundo, "Cipher's by Ritter" también proporciona una buena selección de enlaces:

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

Morgan
fuente
3

Las herramientas solo pueden darte un límite superior en la entropía. Para la mayoría de los usos, en particular los usos relacionados con la seguridad, está más interesado en un límite inferior.

Calcular la entropía de un archivo arbitrario es matemáticamente imposible, por lo que no puede haber ninguna herramienta que pueda hacerlo.

Puedo escribir fácilmente un generador de archivos que genera archivos de muy baja entropía, pero aún pasará sus pruebas de entropía. Simplemente use un cripto PRNG con una pequeña semilla.

CodesInChaos
fuente
0

Puedes usar Binwalk con la -Eopción:

# binwalk -E data

DECIMAL       HEXADECIMAL     ENTROPY
--------------------------------------------------------------------------------
0             0x0             Falling entropy edge (0.000000)
2443264       0x254800        Rising entropy edge (0.988510)

Puede obtener el código fuente de su repositorio GitHub .

Mateusz Piotrowski
fuente
0

ncomputers.org/entropyarray realiza una prueba de entropía más rápida que entcon las pruebas de correlación en serie de 16, 32, 64, 128, 256 y 512 bits.

con la herramienta ncomputers.org/entropy , también puede realizar pruebas visuales de frecuencia y distribución, trazando las salidas entropy.freq y entropy.gaus

Como ejemplo, puede realizar una prueba en línea de hasta 1 GB con servertest.online/entropytest

entropy.freq entropy.gaus

ncomputadoras
fuente
-5

Creo que estás buscando:

cat /proc/sys/kernel/random/entropy_avail
ramonovski
fuente
Lo siento, no, estoy al tanto de entropy_avail. Estoy tratando de medir la calidad de esa entropía.
Dustin Kirkland