Wenn ich
cat /dev/random > /dev/dsp
eingebe (was die Zufallsgenerator-Ausgabe an die Soundkarte weiterleitet) eingebe, verändert sich der daraus folgende Sound bei Bewegungen der Mouse, bei Keyboardeingaben und Festplattenoperationen deutlich…
Welche Komponenten sind noch "verantwortlich" für die Zufallszahlenerzeugung? Ich konnte in meinem System keine Dokumentation darüber finden und hab keinen Plan, wo der verantwortliche Source klebt. Das interessiert mich aber. Weiss das einer hier?
Schau dir mal /usr/src/linux/drivers/char/random.c an. Hat am Anfang sogar nen schönen großen Kommentar zur Funktion [img]
http://www.fb18.de/gfx/28.gif[/img]
Im Prinzip, Keyboard, Maus, andere Interrupts (Netzwerk, Platte z.B.) dann eine Art CRC drüber und am Ende nochmal SHA-Hash
Nee, die hab ich nicht.. Trotzdem Danke. Ich hab /usr/include/linux/random.h grad entdeckt, ist aufschlussreich genug :)
Im Prinzip, Keyboard, Maus, andere Interrupts (Netzwerk, Platte z.B.) dann eine Art CRC drüber und am Ende nochmal SHA-Hash
Das fasst es gut zusammen, thx!
Und Du solltest /dev/urandom nehmen. /dev/random sollte Dir eigentlich viel Stille produzieren.
MoKrates
Wieso *sollte* es das? Has DU es etwa programmiert und genau diesen Satz als Comment in den Source geschrieben oder.. SCNR.
Aber wie auch immer, es produziert nicht ausschliesslich Stille. Es produziert erst Rauschen und dann Stille. Wenn ich dann die Maus bewege, knistert's (oder knirscht's, Interpretationssache). Wenn ich Keystrokes mache, knackts einmal (für einen Menschen akustisch nicht unterscheidbar von echo a > /dev/dsp
Und wenn ich find / -name "*"
parallel auf die Reise schicke, knirscht's und fiepst's.
Ich hab aber auch genau das erwartet; warum erwartest Du das nicht? Irgendwelche ominösen RFC's oder sowas? Weibliche Intuition? Schluss vom Spezialfall auf die Allgemeinheit? Oder eine Konvention, die in meiner Distri ignoriert wurde? Führ mich ein in die tiefen Geheimnisse von /dev/urandom… How intense. Und doch so banal.
auch wenn ich "anonym" bin, mit dem vorherigen beitrag hab ich nix zu tun :)
Ne "kleine" Aufklärung:
What is the /dev/random device?
Most modern Unix operating systems contain a /dev/random device which passes out more or less random numbers. These devices are referred to as Pseudo-Random Number Generators, or PRNG's. (Generating "truly" random numbers usually requires special hardware.) These random numbers are used for all sorts of things, like ssh keys, SSL keys, TCP/IP sequence numbers, etc.
What is the difference between /dev/random and /dev/urandom?
The /dev/random device hands out high-quality random bits, up to the limit of the "random" information it's been seeded with. The /dev/urandom device does not have this limitation. It continues to hand out bits of decreasing quality as long as it's polled.
Ich denke Mo ist wohl davon ausgegangen, dass dieses Vorwissen hier vorhanden ist. Das Gegenteil ist gerade bewiesen worden…
"Echte" Zufallszahlen kriegt man mit beiden devices nicht. Aber für die meisten/üblichen Anwendungen reicht das Gebotene. OpenSSH z.B. verwendet übrigens /dev/urandom.
glatt vergessen:
man 4 random
ist auch recht hilfreich.
Das ist ja schön und gut, aber /dev/urandom hätte den Nachteil, dass der Einfluss von Peripherie nicht so offenkundig wäre für rtfm-Ratschlag-Verschmäher. Ist also gar nicht so schlecht gewesen von Anonymous User No. 1, dass er DOCH /dev/random genommen hat. Obwohl /dev/urandom … blah
Wobei mir jemand erklaeren mag, inwiefern die Werte aus /dev/random nicht zufaellig sind. Dahinter steht doch ein Entropy-Collector, aber das nur am Rande.
Danke fuer die Verteidigung uebrigens, ich wusste nicht, wie ich das haette so freundlich formulieren koennen. [img]
http://www.fb18.de/gfx/22.gif[/img]
MoKrates
Mir fällt dazu nur ein, dass ich mit echo {foo,foo}{foo,foo}{foo,foo}{foo,foo}{foo,foo}{foo,foo}mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm{öö,äß} > /dev/dsp
mal die deutsch Nationalhymne nachgebastelt hab (Asche auf mein Haupt (das Original ist besser (wenn auch nicht SO toll))).
Ich hab die Anzahl der mmmmmmm's variiert. Nicht so doll, aber für 10 Minuten wars witzig.
…Eigentlich war's nicht witzig. Egal.
Und warum soll /dev/random nun Stille produzieren?
Was bedeutet denn das "up to the limit"; ist das quantitativ gemeint (wenn ich weiterhin gute Zufallszahlen will, muss ich staendig nachseeden) oder qualitativ (nur eine gute Initialisierung sorgt fuer gute Zufallswerte)?
Mindestens zu Anfang sollte /dev/random aber doch irgendwas sinnvolles ausgeben (d.h. Zufall :-), oder nicht?
Und warum soll /dev/random nun Stille produzieren?
Was bedeutet denn das "up to the limit"; ist das quantitativ gemeint (wenn ich weiterhin gute Zufallszahlen will, muss ich staendig nachseeden) oder qualitativ (nur eine gute Initialisierung sorgt fuer gute Zufallswerte)?
Mindestens zu Anfang sollte /dev/random aber doch irgendwas sinnvolles ausgeben (d.h. Zufall :-), oder nicht?
/dev/random speichert ein paar Zufallsbits (ich glaube 8 x 4096). Danach blockiert es jeden weiteren Leseversuch, bis es wieder Zufallsbits bekommen hat. Also ist "quantitativ" richtig.
Mindestens zu Anfang sollte /dev/random aber doch irgendwas sinnvolles ausgeben (d.h. Zufall :-), oder nicht?
Tut's auch, wie der AU schon erwähnte.