Sembra (per un non esperto) che /dev/random
sia acclamato per essere utilizzabile come fonte di dati puramente casuali. Tuttavia, sono curioso dell'analisi del file /dev/random
.
/dev/random
è un punto di raccolta di dati rumorosi dall'hardware. Il file viene espanso quando viene raccolto più rumore dall'hardware; quando viene aggiunto un nuovo rumore, i vecchi dati vengono spostati in modo che il file nel suo complesso rappresenti una sorta di fonte di entropia.
Supporrò che /dev/random
sarà usato una sola volta per evitare problemi derivanti dal riutilizzo di una volta. Poi c'è una cosa che mi infastidisce ー come viene stimata l'entropia. Sono meno interessato alle risposte alle seguenti domande e più interessato alla questione se la ricerca passata abbia considerato queste domande e fornito qualcosa di rilevante.
Come viene calcolato il numero di bit di entropia nel file? Sospetto che non sia la dimensione del file, poiché stat
e ls -s
restituiscono 0
, ma il numero di bit di entropia è disponibile in /proc/sys/kernel/random/entropy_avail
. È qualcosa come il numero di bit che possono essere ottenuti senza imparare nulla se non il bit stesso?
Non ho davvero capito la spiegazione nel codice sorgente o in Gutterman et al. Sospetto che non si possa calcolare esattamente questo valore in modo esatto. Tuttavia, si può garantire che se leggo meno di entropy_avail
bit da /dev/random
, allora l'entropia in quella stringa è approssimativamente la lunghezza della stringa? In altre parole, il valore di entropy_avail
è un limite inferiore conservativo sul numero di bit casuali che è possibile ottenere leggendo /dev/random
?
Sarei molto interessato per un riferimento sull'ultimo!