/dev/random

/dev/random

/dev/random to wirtualne urządzenie występujące w systemach operacyjnych z rodziny Unix, które działa jako generator losowych liczb. Jego losowość pochodzi z danych zbieranych ze sterowników urządzeń oraz innych dostępnych źródeł. Podczas odczytu z /dev/random otrzymuje się przypadkowe bajty. To urządzenie jest idealne w sytuacjach, gdy potrzebna jest wysoka jakość przypadkowości danych oraz silna odporność na przewidywalność następnych wartości, na przykład podczas generowania kluczy kryptograficznych.

Odczyt z /dev/random polega na pobieraniu danych z bufora. Kiedy bufor się opróżni, wątek odczytujący dane z tego pliku zostaje zatrzymany. Można to łatwo zweryfikować, wpisując w wierszu poleceń:

$ cat /dev/random

Z tego względu /dev/random nie jest odpowiednie do generowania dużej liczby losowych liczb w krótkim czasie. Alternatywą dla /dev/random w kontekście generowania większej ilości danych pseudolosowych (charakteryzujących się mniejszą przypadkowością i odpornością na przewidywalność) jest /dev/urandom (od unblock). To urządzenie korzysta z funkcji haszujących. Niemniej jednak, wiele programów kryptograficznych, takich jak OpenSSL, PGP oraz GnuPG, korzysta z własnych generatorów losowych danych, które pobierają tzw. seed z /dev/random.

Zobacz też

  • /dev/null
  • /dev/zero
  • /dev/full