Kecuali saya benar-benar bingung dan tidak melakukan itu.
Saya ingin tahu apakah / dev / urandom akan mendapatkan peningkatan entropi jika saya mengambil RNG perangkat keras dan memasukkan entropinya ke / dev / acak.
Jadi, ulangi, jika saya meningkatkan entropi / dev / acak dengan X bit / detik (yaitu, / dev / acak setelah injeksi memungkinkan Anda sampel X bit / detik) apakah itu akan meningkatkan transfer entropi ke urandom?
Jawaban:
Itu tidak benar-benar akurat untuk mengatakan bahwa
/dev/urandom
sampel dari/dev/random
. Sebaliknya, dua kumpulan didukung oleh sumber entropi yang sama. Ketika jumlah entropi kumpulan mencapai nol, mereka kembali dari kumpulan input bersama. Jadi jika Anda memberikan entropi input kernel dengan beberapa cara, ia dapat menggunakannya untuk salah satu/dev/random
atau/dev/urandom
, tergantung pada yang dibaca.Namun,
/dev/urandom
juga terbatas pada seberapa sering ia dapat meminta pengerjaan ulang. Secara default ini hanya dapat diulang sekali setiap 60 detik.Tidak ada yang benar-benar penting dalam praktik, karena selama kumpulan awalnya diunggulkan dengan setidaknya 128 bit atau lebih entropi, memprediksi output apa pun akan membutuhkan tidak hanya melihat output sebelumnya tetapi juga melanggar algoritma yang digunakan, termasuk setidaknya resistensi preimage dari SHA-1 ( yang tetap tidak terputus ).
sumber
Tergantung implementasinya. Tapi biasanya,
/dev/random
dan/dev/urandom
tarik entropi dari kolam yang sama, jadi itu akan terjadi.sumber
Di Linux, semua data yang ditulis ke / dev / random atau / dev / urandom disalin ke kedua blocking pool (sumber keacakan / dev / random) dan nonblocking pool (sumber keacakan untuk / dev / urandom).
Lihat saja fungsi random_write .
Tetapi data yang ditulis ke / dev / acak tidak dihitung oleh estimator entropi internal (setelah semua, beberapa musuh lokal dapat mencoba untuk hanya mengarahkan / dev / nol atau beberapa sumber yang sangat non-acak ke / dev / acak), jadi jika Anda memiliki masalah dengan memblokir / dev / acak, hanya menulis ke / dev / acak tidak membantu.
Di Linux menulis ke / dev / random (atau / dev / urandom, tidak ada perbedaan), tetapi baca selalu dari / dev / urandom (setelah diunggulkan - sebenarnya cara terbaik adalah menggunakan getrandom panggilan sistem baru ).
Saya tidak tahu cara kerjanya di Unix lain.
sumber