Wieso sind Zufallsgenerator Modul bis heute bei fast keinem Mainboard ausgestattet?
Hallo.
Also die Zufallsgenerator am PC ist schon beliebt (Vorallem beim Spiele). Um so wichtige wäre es schon das wenigstens bei jedem Gaming Mainboard eine Spezialle Modul intergriert für echtes Zufallsgenerator. Weil ich finde Pseudozufallszahlen nicht so ganz praktisch wegen begränzte Seedgröße. Denn ich befürchte das alle Normale Windows Programme eine Maximale Seedgröße von -2147483647 bis 2147483647 (Also insgesammt Maximale Seedgröße von 4294967294 nur durch Integer 32). Und das ist gerade bei Rießen Weltgenerator oder große Playlist Generator viel zu wenig. Denn da hast du dort nicht alle möglichgkeiten.
Ok bei Java hat man glück das er größere Seeds liefert, aber leider nicht groß genug für alle möglichgkeiten.
Und das ist beim solche Seed begränzung das problem. Hat man ein Spiel mit zufällig Generierte Welt, somit hat man in wahrheit wie nur 4294967294 Welten zum Auswahl. Und das ist sehr sehr wenig.
Und deshalb muss ich dazu sagen: Nein Pseudo Zufallsgenerator ist nicht gut. Es muss endlich ein Spezialle Hardware Modul auf jeden Mainboard drauf sein, der wirklich ganz ohne Seed echtes Zufallszahl Generiert (Vielleicht mit Speziallen Rauschen). Oder denn Seed Begränzung noch größer machen (Also anstatt 10 nähmlich 100 oder 10000 Stellige Zahlbereich).
6 Antworten
Für die meisten Anwendungen reicht ein Pseudo-Zufallsgenerator, gerade bei Spielen. Solange der Spieler es nicht Vorhersagen kann, ist der Zweck erfüllt. Kein Spieler könnte den Unterschied zwischen echtem und pseudo Zufall feststellen, kein Spieler hätte einen Vorteil dadurch, müsste aber mehr zahlen. Wo du dir diese Seed-Zahlen hernimmst, weiß ich auch nicht. In Minecraft gibt es beispielsweise 18446744073709551616 Seeds.
Lediglich für Kryptographie-Zwecke ist echter Zufall sinnvoll. Da aber die wenigsten Menschen irgendwelche kryptographischen Anwendungsfälle haben (und wenn doch, dann meist über's Internet) macht es keinen Sinn, in Desktop-Rechnern sowas zu verbauen und es reicht nach wie vor aus, sowas nur z.B. in Servern zu haben.
Deine Fixierung auf Hardware-RNG ist völlig realitätsfern. Zumal man eben jederzeit beliebig viele echte Zufallszahlen über das Internet aufrufen kann.
Dann wirst du bestimmt überrascht sein, wenn du auf die Webseite Random.org gehst, und dort echte Zufallszahlen bekommst (auch als API). Denn tatsächlich reicht es, sich über das Internet mit einem Rechner zu verbinden, der echte Zufallszahlen durch physikalische Prozesse generieren kann und man muss nicht, wie der Fragesteller es darstellt, in jedem Rechner Zufalls-Hardware haben.
Was relativ egal ist, da man für Spiele keinen echten Zufall braucht. Solange der Spieler es nicht vorhersagen kann, ist es egal, ob es echter oder pseudo Zufall ist.
Einen Pseudo-Zufallsgenerator kann man statistischen Tests unterziehen, und erhält reproduzierbare Ergebnisse, ob diese Tests bestanden sind. Bei einem hardware-gebundenen Zufallsgenerator sind derartige Tests in keiner Weise reproduzierbar. Da hängt das Ergebnis nicht nur von der Realisierung durch den jeweiligen Mainboard-Hersteller ab, sondern eventuell noch von weiteren Faktoren, die auf die Arbeitsweise der Hardware einwirken, die überhaupt nicht nachvollziehbar sind.
Der Laie (ich) denkt
in keiner Weise reproduzierbar.
.
nicht nachvollziehbar
ist doch prima ,das ist echter Zufall .
Ist denn ein physikalischer ZFG reproduzierbar .
Zufall ja, aber man erwartet von Zufallszahlen auch, daß sie beispielsweise über ihren Wertebereich gleichmäßig gestreut sind. Und nicht, daß das vom Rechnermodell oder sogar von der Umgebungstemperatur abhängt.
Ich habs zwar erst nach dem zweiten mal lesen kapiert, aber ein sehr guter Punkt!
Die Erzeugung von gutem Zufall braucht (sehr) viel Zeit, genau deswegen nimmt man geseedete PRNGs, weil es in vielen Anwendungen vor allem schnell gehen soll.
Das Problem mit HW ist, daß Fehler nicht korrigiert werden können. Ich sage nur RDRAND.
Übrigens ist eine vermeintlich zu kleine Seed kein echtes Problem, man kann das durch einen Vorlauf eleminieren, sofern die Periode ausreichend groß ist. Andererseits kann man auch einfach einen ordentlichen Generator mit ausreichend großer Seed nutzen, daran wird niemand gehindert.
Es gibt doch sichere Zufallsgeneratoren wie z.B. unter Linux
/dev/random
dort werden interrupts, welche nicht vorhersehbar sind zusammengeschaltet.
Für Spiele wäre im falle von linux "urandom" auch völlig aussreichend.
Zu deiner Seed Problematik: warum nicht den Seed mithilfe eines anderen Seeds oder per "/dev/random" mittendrinn verändern?
Du siehst da ein Problem, wo in Wirklichkeit keins ist.
Wer eine größere Zufallszahl benötigt, um zB mehr Spiele-Welten generieren zu können, wählt einfach eine Funktion, die eine Zufallszahl mit einer größeren Bitlänge liefert ( LONG INT 64 Bit ).
Die heute üblichen Pseudozufallsgeneratoren haben Zyklenlängen von 10 hoch 1000 und mehr. Das ist jenseits von Gut und Böse.
"Echte" Zufallszahlen braucht man nur in der Kryptografie und in der Statistik.
echt jetzt ? Das ist mir neu , ich dachte da muss man auf echte physikalische Prozesse zurückgreifen.