¿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?


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

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


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.


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 .



-5

Creo que estás buscando:

cat /proc/sys/kernel/random/entropy_avail

Lo siento, no, estoy al tanto de entropy_avail. Estoy tratando de medir la calidad de esa entropía.
Dustin Kirkland
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.