Entropy adalah istilah teknis untuk "Keacakan". Komputer tidak benar-benar menghasilkan entropi tetapi mengumpulkannya dengan melihat hal-hal seperti variasi kecepatan rotasi hard drive (Fenomena fisik yang sangat sulit diprediksi karena gesekan, dll.) Ketika komputer ingin menghasilkan data acak semu, ia akan seed formula matematika dengan entropi sejati yang ditemukan dengan mengukur mouse, variasi putaran hard drive dll. Secara kasar entropy_avail
adalah ukuran bit yang saat ini tersedia untuk dibaca dari/dev/random
Butuh waktu bagi komputer untuk membaca entropi dari lingkungannya kecuali ia memiliki perangkat keras yang keren seperti dioda berisik atau sesuatu.
Jika Anda memiliki 4096 bit entropi yang tersedia dan Anda /dev/random
dapat menggunakannya, Anda dapat berharap untuk dapat membaca 512 byte entropi (4096 bit) sebelum blok file sementara menunggu lebih banyak entropi.
Misalnya jika Anda " cat /dev/random
" entropi Anda akan menyusut ke nol. Pada awalnya Anda akan mendapatkan 512 byte sampah acak tetapi itu akan berhenti dan sedikit demi sedikit Anda akan melihat lebih banyak data acak mengalir.
Ini bukan bagaimana orang harus beroperasi /dev/random
. Biasanya pengembang akan membaca sejumlah kecil data, seperti 128 bit, dan menggunakannya untuk menyemai semacam algoritma PRNG. Adalah sopan untuk tidak membaca entropi lebih dari yang /dev/random
Anda butuhkan karena membutuhkan waktu lama untuk membangun dan dianggap berharga. Jadi jika Anda mengeringkannya dengan cat
ting file seperti di atas Anda akan menyebabkan aplikasi lain yang perlu dibaca /dev/random
untuk diblokir. Pada satu sistem di tempat kerja kami memperhatikan bahwa banyak fungsi crypto sedang macet. Kami menemukan bahwa pekerjaan cron memanggil skrip python yang terus diinisialisasiramdom.random()
pada setiap lari yang berjalan setiap beberapa detik. Untuk memperbaikinya kami menulis ulang skrip python sehingga dijalankan sebagai daemon yang diinisialisasi hanya sekali dan tugas cron akan membaca data melalui XMLRPC sehingga tidak akan terus membaca dari /dev/random
saat startup.