Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 5
  • 692
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 5

Obydwa pseudourządzenia służą do generowania liczb losowych, które wykorzystywane są przez różne programy i algorytmy kryptograficzne. Oba generatory pobierają dane losowe z tzw. puli entropii (entropy pool). Dane do puli entropii zbierane są z kolei z wielu źródeł, takich jak np. sterowniki urządzeń. Na losowość danych mają więc wpływ np. ruchy myszką, wciskane klawisze klawiatury, dane przechodzące przez interfejsy sieciowe, itp.

Różnica pomiędzy /dev/random i /dev/urandom polega na sposobie przetwarzania danych pobranych z puli entropii. /dev/random generuje dokładnie tyle danych losowych ile znajduje się w danej chwili w puli. Jeżeli dane się wyczerpią, generator blokuje się, czekając aż kolejne dane pojawią się w puli. Działanie /dev/random można zaobserwować wpisując na terminalu następujące polecenie:

cat /dev/random

Generator wygeneruje kilkanaście do kilkudziesięciu znaków losowych, po czym zatrzyma się oczekując na pojawienie się nowych danych w puli entropii. Wystarczy wykonać teraz kilka ruchów myszką i generator wygeneruje kolejne znaki.

Urządzenie /dev/urandom działa identycznie, z tą różnicą, że nie blokuje się ("u" w nazwie urandom pochodzi od słowa "unblocking" - nieblokujący się) po wyczerpaniu puli entropii, ale używa jej po raz kolejny. Dzięki temu urandom może generować dużą ilość danych losowych w krótkim czasie.

Działanie generatora /dev/urandom można zaobserwować wpisując na terminalu następujące polecenie:

cat /dev/urandom

Dane generowane przez urandom są jednak zdecydowanie mniej losowe niż dane generowane przez /dev/random, ze względu na ich częściową powtarzalność. Z tego też powodu danych losowych z urządzenia urandom używa się do mniej ważnych zastosowań: np. nadpisywania danych na dysku przy pomocy polecenia dd, tworzenia dużych plików wypełnionych losowymi danymi, itp.

Urządzenia /dev/random używa się natomiast wszędzie tam, gdzie wymagana jest wysoka i możliwie nieprzewidywalna losowość danych, np. do generowania kluczy w algorytmach kryptograficznych.

  • Odpowiedział
  • @ | 05.07.2013
  • TRENER ALTKOM AKADEMII