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 .

Tom Hale
źródło
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 .

Tom Hale
źródło
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.

Walter
źródło
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.

bbneo
źródło
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,