Hallo,
GerBra schrieb
/dev/random AFAIK eine Liste "zusammenhängender" Zufallszahlen aus einem vorgegebenen "Bereich" (?)
/dev/urandom Zufallszahlen die nicht "vorhersehbar" sind.
AFAIK ist es genau umgedreht.
/dev/urandom spuckt kontinuierlich pseudo-Zufallszahlen aus. Dazu wird ein Startseed in eine bestimmte mathematische Funktion gepackt, welche dann pseudo-zufällige Zahlen ausgibt. Sie sind deshalb pseudo-zufällig, weil jeder Seed nur eine bestimmte Menge von Zahlen ausgeben kann. Kennt man also den Seed, kann man die Menge aller möglichen Zufallszahlen bestimmen (was z.B. für Verschlüsselungen sehr schlecht wäre). IdR. benutzt man die Systemzeit in Milisekunden als Seed (ob der Linux-Kernel das auch so macht, weiß ich nicht) um relativ zuverlässige Zufallszahlen zu erhalten, weil sich dieser Seed sehr schnell ändert.
Je nach Systemgeschwindigkeit sind hier einige 10 MB/s drin.
/dev/random gibt "echt" zufällige Zahlen aus, dazu bezieht das System sog. "Entropiedaten" aus den Aktionen des Benutzers (Mausbewegung bzw. -klicks, Tastatureingaben usw.) in der Annahme, dass diese zufällig genug sind und füttert damit den Zufallsgenerator. Das kann man auch schön beobachten, wenn man das Programm pv installiert hat. pv zeigt einem den Datendurchsatz einer Pipe an:
$> pv /dev/random > /dev/null
So lange man etwas "macht", hat man einen konstanten Durchsatz (bei mir ca. 15 Byte/sek). Lässt man den Rechner einfach stehen, geht der Durchsatz auf 0 B/s, da der Kernel keine Entropie mehr beziehen kann.
Da der Durchsatz hier so extrem niedrig ist, eignet sich /dev/random nur für Anwendungen, bei denen echte Zufälligkeit kritisch ist (z.B. Schlüsselgenerierung usw.)
MfG,
Vrob