/ Dev / random'den / dev / urandom örneği tohumlama ne sıklıkta yapılır?


15

Tamamen kafam karışmadıkça ve bunu yapmadıkça.

Bir donanım RNG alıp entropisini / dev / random'e takarsam / dev / urandom'un artan entropi kazanıp kazanmayacağını bilmek istiyorum.

Yani yeniden ifade etmek gerekirse, / dev / random entropisini X bit / sn (yani enjeksiyondan sonra / dev / random, X bit / sn örneklemenizi sağlar) arttıracak entropi urandom'a transfer olur mu?


2
Çok alakalı olmasa da , 2uo.de/myths-about-urandom ve blog.cloudflare.com/… (özellikle blog.cloudflare.com/content/images/image01.png adresindeki grafik ) yararlı bir okuma olabilir.
user1686

Gerçek bir donanım RNG'niz varsa, doğrudan kullanabilirsiniz.
Michael Hampton

Yanıtlar:


25

Bu /dev/urandomörnekleri söylemek gerçekten doğru değil /dev/random. Bunun yerine, iki havuz aynı entropi kaynağı ile desteklenmektedir. Havuzların entropi sayısı sıfıra ulaştığında, paylaşılan giriş havuzundan yeniden gönderilir. Çekirdek giriş entropisini bir şekilde verirseniz, bunu hangisi için /dev/randomveya /dev/urandomhangisinin okunduğuna bağlı olarak kullanabilir .

Bununla birlikte, /dev/urandom yeniden tohumlama için ne sıklıkta talep edilebileceği ile de sınırlı . Varsayılan olarak her 60 saniyede bir yeniden kullanılabilir.

Bunların hiçbiri pratikte önemli değildir, çünkü havuz başlangıçta en az 128 bitlik entropi ile tohumlandığı sürece, herhangi bir çıktıyı tahmin etmek için sadece önceki çıktıları görmek değil, aynı zamanda en azından preimage direnci de dahil olmak üzere kullanılan algoritmaları kırmak gerekir. SHA-1 ( kesintisiz kalır ).


7

Bu uygulamaya bağlıdır. Ama tipik olarak, /dev/randomve /dev/urandomaynı havuzdan entropi çekin, böylece olacak.

Https://blog.cloudflare.com/ensuring-randomness-with-linuxs-random-number-generator/ adresinden diyagram


4

Linux'ta / dev / random veya / dev / urandom'a yazılan tüm veriler hem engelleme havuzuna (/ dev / random için rastgele kaynak) hem de bloke olmayan havuza (/ dev / urandom için rastgele kaynak) kopyalanır.

Sadece bak random_write fonksiyonuna bakın.

Ancak / dev / random'a yazılan veriler dahili entropi tahmincisi tarafından sayılmaz (sonuçta, bazı yerel rakipler sadece / dev / zero veya başka bir derece rasgele olmayan kaynağı / dev / random'a yönlendirmeye çalışabilir), bu nedenle sorunlarınız varsa engelleme / dev / rastgele, sadece / dev / random yazmak yardımcı olmaz.

Linux'ta / dev / random (veya / dev / urandom, fark yok) yazın, ancak / dev / urandom'dan her zaman okuyun (tohumlandıktan sonra - aslında en iyi yol yeni sistem çağrısı kullanmaktır getrandom'u ).

Diğer Unices'te nasıl çalıştığını bilmiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.