Tôi đã tìm thấy thông tin /proc/sys/kernel//random/entropy_availchỉ ra số lượng bit có sẵn trong /dev/random. Tôi muốn kiểm tra xem lần đọc tiếp theo /dev/randomcó bị chặn hay không và cách tiếp cận ngây thơ của tôi chỉ là so sánh entropy_availvà số lượng bit ngẫu nhiên cần thiết nhưng nó không hoạt động tốt. Khi tôi làm một thí nghiệm ngu ngốc đơn giản, tôi nhận ra rằng entropy được đệm. Bộ đệm entropy 64 bit cung cấp 6 byte dữ liệu ngẫu nhiên.
Tôi đã theo dõi entropy_avail thông qua lệnh đơn giản này:
while true
do
cat /proc/sys/kernel//random/entropy_avail
sleep 1
done
Và tôi đã cố gắng để có được một byte ngẫu nhiên thông qua lệnh
dd if=/dev/random bs=1 count=1 > /dev/null
Các ddlệnh bị chặn nếu entropy là 63 hoặc thấp hơn. Khi entropy đạt 64 và tôi đọc một byte thì entropy giảm xuống 0 nhưng tôi có thể đọc thêm 5 byte mà không bị chặn. Sau đó, ddkhối lại cho đến khi entropy đạt 64.
Ý nghĩa chính xác của entropy_avail là gì và làm cách nào tôi có thể phát hiện số bit ngẫu nhiên có sẵn thực sự?