Co oznacza litera „u” w / dev / urandom?


87

Rozumiem, że odczyty /dev/randommogą blokować, podczas gdy /dev/urandomgwarantuje się, że nie blokują.

Skąd się ubierze ten list ? Co to znaczy?

Przestrzeń użytkownika? Odblokować? Mikro?

Aktualizacja:

Na podstawie wstępnego sformułowania pytania, nastąpiła pewna dyskusja nad przydatnością /dev/randomVS /dev/urandom. Link Mity na temat / dev / urandom został opublikowany trzy razy poniżej i został streszczony w tej odpowiedzi na pytanie Kiedy używać / dev / random vs / dev / urandom .


13
Odblokowanie, w przeciwieństwie do /dev/randomktórego jest blokowanie.
Satō Katsura

3
Rozdział i wiersz?
Tom Hale,

11
Pomysł, który /dev/randombył jakoś lepszy niż /dev/urandomjest już dawno przestarzały i dla większości przypadków użycia, /dev/urandom jest teraz preferowany .
David Schwartz

@SatoKatsura Source? Odpowiedź Toma stoi w sprzeczności z twoją odpowiedzią.
noɥʇʎԀʎzɐɹƆ

Oto link do strony ze szczegółowymi informacjami na temat kopii zapasowej komentarza @DavidSchwartz. 2uo.de/myths-about-urandom
Walter

Odpowiedzi:


86

Nieograniczony.

W systemie Linux porównanie nazwanych funkcji jądra random_readi random_read_unlimited wskazuje, że etymologia litery uw urandomjest unlimited.

Potwierdza to wiersz 114 :

Urządzenie / dev / urandom nie ma tego limitu [...]

Aktualizacja:

Jeśli chodzi o to, co było pierwsze dla Linuksa, /dev/randomlub /dev/urandom@ Stéphane Chazelas podał post z oryginalną łatką, a @StephenKitt pokazał, że oba zostały wprowadzone jednocześnie .


7
Dlaczego więc nie ma /dev/randomnazwy /dev/lrandom? :)
Satō Katsura

13
Historyczny. Początkowo istniała tylko wersja limitowana / blokująca. Analogiczna funkcja „nieograniczona” nazywa się random_read:)
Tom Hale,

10
Znalazłem jeden z linków za pośrednictwem Wikipedii, ale cytuję źródło bezpośrednio zamiast cytować Wikipedię. Uznałbym to za analogiczne do znalezienia czegoś za pośrednictwem Google, a nie cytowania google ... chyba że mam coś do nauczenia się o cytowaniu na StackExchange?
Tom Hale,

5
@TomHale The historyczny argument randomv. lrandomNie posiada zbyt dobrze, ponieważ zarówno randomi urandomzostały wprowadzone jednocześnie w jądrze Linux.
Stephen Kitt

7
Zobacz także łatkę na usenet przesłaną przez autora oryginalnej implementacji w 1995 r.
Stéphane Chazelas

18

To zależy od tego, o jakim systemie „Unix” mówisz.

W FreeBSD, / dev / urandom i / dev / random są tym samym urządzeniem. Litera u jest teraz historycznym dziedzictwem, które istnieje dla kompatybilności wstecznej. Podczas uruchamiania blokują się, dopóki nie zostanie zgromadzona wystarczająca liczba entropii, a następnie nigdy nie blokują się ponownie. Zobacz Mity o urandomie, aby uzyskać szczegółowe informacje.

We współczesnym świecie Linuksa (począwszy od jądra 4.8) oba urządzenia pobierają z tego samego CSPRNG, więc jedyną różnicą jest to, że niektórzy spekulują na temat ataku. Ten atak jest jak podróż FTL [Faster than Light]. Łatwe do spekulacji, raczej trudne do zaprojektowania.

TLDR to po prostu użyj / dev / urandom.


2
Na podstawie linku warto zauważyć, żeFreeBSD does the right thing: they don't have the distinction between /dev/random and /dev/urandom, both are the same device. At startup /dev/random blocks once until enough starting entropy has been gathered. Then it won't block ever again.
Tom Hale,

-5

Mundur. Liczby losowe równomiernie rozmieszczone między 0 a 1. Rozkład płaski ... w przeciwieństwie do rozkładu szczytowego, takiego jak Poisson lub Normalny / Gaussowski.


3
Masz jakieś źródło tego?
GnP

7
To zdecydowanie nie jest poprawne - /dev/randomi /dev/urandomoba dają taki sam rozkład, aw żadnym prawdziwym sensie nie jest równomiernie rozłożone między 0 a 1.
Chris

Przepraszam ... prawdopodobnie w oparciu o inny język, którego użyłem (R lub coś takiego)
bbneo,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.