PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : /dev/random, wie bits auslesen?


Gast
2008-07-24, 14:56:00
hallo,
ich wüsste gerne wie ich eine gewisse anzahl an bits von /dev/random hole. per dd kann man ja nur komplette bytes kopieren, cat und cp schienen mir auch ungeeignet. da der entropiepool doch recht begrenzt ist, würd ich den ungern byteweise verheizen.

andere frage, selber zusammenhang: wie mache ich aus zufallsbits eine vernünftige zufallszahl. um eine zahl zwischen 1 und 10 zu bekommen brauch ich ja 4 bits. das heisst ich darf mich regelmäßig auch mit zahlen zwischen 11 und 16 rumärgern. runden darf ich nicht, ohne dass die zufälligkeit kaputtgeht. hilft da nur neuwürfeln? wieder jede menge verschwendete entropie :S

da.phreak
2008-07-24, 20:19:30
Ich glaube nicht, daß das vorgesehen ist. Kannst Du die zusätzlichen Bits nicht zwischenzeitlich speichern und später verwenden? Natürlich nicht auf Festplatte. Kommt halt auf Deine Anwendung drauf an.

Gast
2008-07-24, 20:31:28
Man kann selbst in ASM nicht mit einzelnen Bits arbeiten und in C/C++ schon garnicht.
Wenn man ein einzelnes Bit will muss man die CPU ein binäres UND machen lassen um es zu bekommen.
Aber addressieren lässt sich nun mal nur byteweise.

Gast
2008-07-24, 21:27:54
das heisst, selbst wenn ich eine simple münzwurfentscheidung brauche, muss ich den pool mindestens um ein byte berauben? das ja ärgerlich...

Gast
2008-07-24, 22:26:19
wenn du mehrere münzentscheidungen hintereinander brauchst kannst du ein byte auslesen und dann mit AND auf die einzelnen bits zugreifen

da.phreak
2008-07-25, 09:23:41
Also soooo klein ist der Pool nun auch wieder nicht, daß man sich über einzelne Bits Gedanken machen muß. Verschwenderisch sollte man natürlich nicht umgehen ... wie schon gesagt kann man ja ein oder mehrere Bits "raussortieren".

Ich würde allerdings in eine andere Richtung denken: Wenn Du eine Anwendung hast, bei der Dir ständig der Pool ausgeht, solltest Du über andere Quellen von Zufallzahlen nachdenken. Professionelle Hardware ist leider teuer, aber z. B. das Rauschen einer Webcam läßt sich verarbeiten.

Gast
2008-07-25, 11:09:07
oder einfach /dev/urandom nutzen.
Ist halt nicht so sicher wie random aber dafür bekommt man grundsätzlich immer daten geliefert auch wenn keine mehr im entropy pool drin sind.