rndos2.dll ist ein Port der verschiedenen /dev/random Devices von OpenBSD, realisiert als DLL.
rndos2 wurde zwar für den GnuPG Port entwickelt, ist aber in keiner Weise an GnuPG gebunden und kann deshalb auch in eigenen Projekten verwendet werden.
Um den Entropy Pool zu füttern, werden von Zeit zu Zeit Statusdaten des Betriebssystems wie IP Stack Statistiken, Information über laufende Prozesse und offene Dateien und ähnliches abgefragt. Zur Zeit werden folgende APIs benutzt:
Um rndos2 Kompilieren zu können sind ist das OS/2 Developer's Toolkit 4.5 nötig (wegen DosQuerySysState() und sysctl()). Das Makefile ist für IBM VisualAge C++ geschrieben, aber vom Compiler her sollte auch EMX GCC gehen.
Zum Ausführen wird OS/2 Warp 4 FP13+, Warp Server for eBusiness oder eCS (wegen DosQuerySysState()) und ein 32-Bit TCP/IP Stack (TCP/IP 4.1+, wegen sysctl()) benötigt.
Im rndos2 Archiv ist das Programm rndos2dmn dabei, dass Zufallszahlen über folgende Named Pipes zur Verfügung stellt.
rndos2 ist Work-In-Progress. Gegenwärtig sollte es schon recht brauchbare Zufallszahlen liefern, aber es ist noch viel Platz für Verbesserungen, hauptsächlich im Bereich des Entropy Pool Feeding.
Wer die Qualität von rndos2 messen möchte, kann dies anhand des DIEHARD Tests tun. Laden Sie die Executables für DOS runter, es handelt sich dabei um Win32 Programme, die problemlos unter Odin laufen. Für den Test brauchen Sie eine mindestens 10 - 15 Megabyte große Datei mit Zufallszahlen. Um diese Testdatei eine zu erzeugen, nutzen Sie am einfachsten das Programm rndos2dmn.exe. Starten Sie im Hintergrund rndos2dmn.exe und geben Sie folgenden Befehl ein:
Sie können auch \pipe\srandom als Quelle nehmen, aber dann dürften Sie wahrscheinlich ein paar Tage warten bis die Datei groß genug ist. \pipe\srandom wird in meinem GnuPG Port zur Keyerzeugung verwendet.
Je nach Rechnergeschwindigkeit dauert es ein paar Minuten bis ausreichend Zufallsdaten geschrieben sind. Mein AMD Athlon XP 1800+ benötigt circa 2 Minuten um eine 10 Megabyte Testdatei zu erzeugen. Brechen Sie copy mit Strg-C ab, sobald die Datei genügend groß ist.
Starten Sie den DIEHARD Test mit "pec diehard" und folgen Sie den Anweisungen. Erläterungen des Ergebnisses finden Sie in den ersten Zeilen der Datei mit den Resultaten.
Eine Anmerkung: soweit ich das verstehe, untersucht der DIEHARD Test nur die Qualität des Algorithmus, mit dem die Zufallszahlen erzeugt werden und nicht die Qualität der Zahlen im Entropy Pool. Echte Mathematiker mögen mich bitte korrigieren, falls ich da was falsches behaupte.
rndos2 unterliegt der BSD Lizenz.
| © 2003-2005, Tobias Hürlimann <tobias@tobiashuerlimann.de>. My PGP key can be found here. | Impressum (German) |