Ich habe Informationen gefunden, die /proc/sys/kernel//random/entropy_avail
die Anzahl der verfügbaren Bits in angeben /dev/random
. Ich wollte überprüfen, ob der nächste Messwert von /dev/random
blockiert wird, und mein naiver Ansatz bestand darin, nur die entropy_avail
Anzahl der erforderlichen Zufallsbits zu vergleichen, aber es funktioniert nicht gut. Als ich ein einfaches dummes Experiment machte, stellte ich fest, dass die Entropie gepuffert ist. Der 64-Bit-Entropiepuffer liefert 6 Bytes zufälliger Daten.
Ich habe die entropy_avail über diesen einfachen Befehl überwacht:
while true
do
cat /proc/sys/kernel//random/entropy_avail
sleep 1
done
Und ich habe versucht, ein zufälliges Byte per Befehl zu erhalten
dd if=/dev/random bs=1 count=1 > /dev/null
Der dd
Befehl wird blockiert, wenn die Entropie 63 oder weniger beträgt. Wenn die Entropie 64 erreicht und ich ein Byte lese, sinkt die Entropie auf 0, aber ich kann weitere 5 Bytes lesen, ohne zu blockieren. Dann dd
Blöcke wieder bis Entropie erreicht 64.
Was ist die genaue Bedeutung von entropy_avail und wie kann ich die tatsächliche Anzahl verfügbarer Zufallsbits ermitteln?