Was bedeutet der Buchstabe "u" in / dev / urandom?


87

Ich verstehe, dass das Lesen /dev/randomblockieren kann, während das Lesen /dev/urandomgarantiert nicht blockiert.

Wo kommt der Brief udazu? Was bedeutet es?

Benutzerraum? Entsperren? Mikro?

Aktualisieren:

Basierend auf der ursprünglichen Formulierung der Frage, hat es einige Diskussionen über den Nutzen gewesen /dev/randomvs /dev/urandom. Der Link Mythen über / dev / urandom wurde unten dreimal gepostet und ist in dieser Antwort auf die Frage zusammengefasst, wann / dev / random vs. / dev / urandom zu verwenden ist .


13
Entsperren im Gegensatz zu /dev/randomdem , was blockiert.
Satō Katsura

3
Kapitel und Vers?
Tom Hale

11
Die Idee, /dev/randomdie irgendwie besser war als die, die /dev/urandomlängst überholt ist und für die überwiegende Mehrheit der Anwendungsfälle gilt, /dev/urandom wird jetzt bevorzugt .
David Schwartz

@SatoKatsura Source? Toms Antwort widerspricht Ihrer Antwort.
noɥʇʎԀʎzɥʇʎԀʎ

Hier ist ein Link zur Seite mit Details zum Backup des Kommentars von @DavidSchwartz. 2uo.de/myths-about-urandom
Walter

Antworten:


86

Unbegrenzt.

In Linux, Vergleichen der Kernel - Funktionen genannt random_readund random_read_unlimited zeigen an, dass die Etymologie des Briefes uin urandomist unlimited.

Dies wird durch Zeile 114 bestätigt :

Das / dev / urandom-Gerät hat dieses Limit nicht [...]

Aktualisieren:

Was zuerst für Linux kam, /dev/randomoder /dev/urandom@ Stéphane Chazelas gab den Beitrag mit dem Original-Patch und @StephenKitt zeigte , dass beide gleichzeitig eingeführt wurden .


7
Warum wird nicht /dev/randomgenannt /dev/lrandom? :)
Satō Katsura

13
Historisches. Zunächst existierte nur die Limited / Blocking-Version. Und die analoge "nicht unbegrenzte" Funktion heißt random_read:)
Tom Hale

10
Ich habe einen der Links über Wikipedia gefunden, aber ich zitiere die Quelle direkt, anstatt Wikipedia zu zitieren. Ich würde es als analog betrachten, etwas über Google zu finden und nicht über Google zu zitieren ... es sei denn, ich muss etwas über das Zitieren in StackExchange lernen?
Tom Hale

5
Das historische Argument für @TomHale randomv. lrandomHält nicht ganz so gut , da beide randomund urandomwurden eingeführt , gleichzeitig in dem Linux - Kernel.
Stephen Kitt

7
Siehe auch den Usenet- Patch, den der Autor der ursprünglichen Implementierung 1995 gesendet hat
Stéphane Chazelas,

18

Es hängt davon ab, von welchem ​​"Unix" -System Sie sprechen.

Unter FreeBSD sind / dev / urandom und / dev / random dasselbe Gerät. Der Buchstabe u ist jetzt ein historisches Erbe, das aus Gründen der Abwärtskompatibilität existiert. Beim Start blockieren sie, bis genügend Entropie gesammelt wurde, und blockieren dann nie mehr. Siehe Mythen über Urandom für Details.

In der modernen Linux-Welt (beginnend mit Kernel 4.8) beziehen sich beide Geräte auf dasselbe CSPRNG, sodass der einzige Unterschied darin besteht, dass einige Leute über das Vorhandensein eines Angriffs spekulieren. Dieser Angriff ist wie FTL-Reisen. Leicht zu spekulieren, eher schwer zu entwerfen.

TLDR ist einfach use / dev / urandom.


2
Aus Ihrem Link ist es interessant festzustellen, dassFreeBSD 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

Uniform. Zufallszahlen gleichmäßig zwischen 0 und 1 verteilt. Eine flache Verteilung ... im Gegensatz zu einer Spitzenverteilung wie Poisson oder Normal / Gauß.


3
Haben Sie eine Quelle für diese?
GnP

7
Dies ist definitiv nicht richtig - /dev/randomund /dev/urandombeide geben dieselbe Verteilung an, und im eigentlichen Sinne ist sie nicht gleichmäßig zwischen 0 und 1 verteilt.
Chris

Sorry ... wahrscheinlich basierend auf einer anderen Sprache, die ich benutzt habe (R oder so)
bbneo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.