Strumento per misurare la qualità dell'entropia?


26

Esiste uno strumento disponibile per i sistemi Linux in grado di misurare la "qualità" dell'entropia sul sistema?

So contare l'entropia:

cat /proc/sys/kernel/random/entropy_avail

E so che alcuni sistemi hanno "buone" fonti di entropia (chiavi di entropia hardware) e altre no (macchine virtuali).

Ma esiste uno strumento in grado di fornire una metrica sulla "qualità" dell'entropia nel sistema?


Sono interessato, perché dovresti voler calcolare l'entropia di un sistema?
whoami,

Risposte:


26

http://www.fourmilab.ch/random/ lavora per me.

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

4
Strumento interessante. Puoi controllare un dispositivo con un solo comando condd if=/dev/urandom bs=1M count=1 | ent
l0b0

7
Si noti che eseguire uno stimatore entropico su /dev/urandomè completamente inutile. /dev/urandomè l'output di un PRNG di qualità crittografica e uno stimatore entropico darà sempre il massimo dei voti a qualsiasi PRNG semi-decente. È necessario eseguire lo stimatore entropico sulla sorgente entropia incondizionata , che Linux non espone al di fuori del kernel. Cc @DustinKirkland
Gilles 'SO- smetti di essere malvagio' il

@Gilles non c'è modo?
Felipe,

@FelipeMicaroniLalli Non c'è modo di fare cosa? Stimare l'entropia dall'output di /dev/urandom? Sì. L'output di /dev/urandom(o /dev/random, stesso problema) è l'output di un PRNG di qualità crittografica e che avrà sempre il massimo dei voti per la stima dell'entropia. Se vuoi stimare l'entropia, devi scavare nel kernel, capire cosa usa per le fonti di entropia e misurare per un tempo MOLTO lungo.
Gilles 'SO- smetti di essere malvagio' il

1
@FelipeMicaroniLalli No, la fonte entropica non influenza il PRNG in un modo che può essere misurato. Questo è piuttosto fuori tema per Unix e Linux, ma so di averlo visto discusso sulla crittografia , prova a cercare i tag [entropia] e [casualità] lì.
Gilles 'SO- smetti di essere malvagio' il

6

"ent" è un eccellente strumento da riga di comando per una stima semplice e rapida dell'entropia.

L'ho usato per aiutare a capire come funzionano i generatori congruenziali lineari. Ma se per "misurare l'entropia" intendi "misurare la casualità" ... il problema diventa più complesso.

Per un test più solido di casualità dovresti dare un'occhiata alla suite di test dieharder: http://www.phy.duke.edu/~rgb/General/dieharder.php

Non è facile da usare come "ent" ma è molto più rigoroso.

Per uno studio più approfondito, "Cipher's by Ritter" offre anche una buona selezione di collegamenti:

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


3

Gli strumenti possono solo darti un limite superiore all'entropia. Per la maggior parte degli usi, in particolare per gli usi legati alla sicurezza sei più interessato a un limite inferiore.

Calcolare l'entropia di un file arbitrario è matematicamente impossibile, quindi non può esserci nessuno strumento in grado di farlo.

Posso facilmente scrivere un generatore di file che genera file di entropia molto bassi, ma supererà comunque i test di entropia. Basta usare un PRNG crittografico con un piccolo seme.


0

Puoi usare Binwalk con l' -Eopzione:

# binwalk -E data

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

Puoi ottenere il codice sorgente dal suo repository GitHub .



-5

Penso che tu stia cercando:

cat /proc/sys/kernel/random/entropy_avail

Spiacente, no, sono ben consapevole di entropy_avail. Sto cercando di misurare la qualità di quell'entropia.
Dustin Kirkland,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.