Kompakte Notebooks Kompakte Notebooks - Wuala
Kompakte Notebooks Kompakte Notebooks - Wuala
Kompakte Notebooks Kompakte Notebooks - Wuala
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Know-how | Zufallszahlen<br />
Wenn ein Zufallszahlengenerator an<br />
einem Test scheitert, ist das kein Grund,<br />
ihn zu verwerfen. Stattdessen sollte man<br />
den Test zunächst mit einem neuen Satz<br />
Zahlen wiederholen.<br />
als Startwert für einen Pseudozufallszahlengenerator<br />
herhielten. Zur Erhöhung der Ausfallsicherheit<br />
des Gesamtsystems waren<br />
sechs Lava-Lampen in Betrieb.<br />
Das Projekt wurde um die Jahrtausendwende<br />
eingestellt und einer der Schöpfer, Landon<br />
Curt Noll, setzte es eigenverantwortlich in<br />
Gestalt von LavaRnd (mit nur zwei a) fort. Die<br />
Lava-Lampen hat er gestrichen und setzt<br />
stattdessen ausschließlich auf eine einfache<br />
Webcam als Zufallsquelle. Der Zufall stammt<br />
aus dem elektronischen Rauschen, das der<br />
Bildsensor produziert und das umso stärker<br />
wird, je länger die Kamera ein Bild belichtet.<br />
Rauschen weist wichtige Eigenschaften<br />
der Zufälligkeit auf: Es lässt sich nicht vorhersagen,<br />
welche Amplitude ein Signal zu<br />
einem bestimmten Zeitpunkt hat. Beim thermischen<br />
Rauschen im Bildsensor handelt es<br />
sich annähernd um weißes Rauschen, das die<br />
gewünschte Eigenschaft hat, dass das Spektrum<br />
uniform ist und die zufälligen Abweichungen<br />
vom reinen Signal (Fehler) unabhängig<br />
voneinander.<br />
Je mehr Gekrissel, umso höher ist die Entropie<br />
(Informationsgehalt, siehe auch den<br />
Kasten auf S. 179) der Bilddaten. Im Gegensatz<br />
zum alltäglichen Einsatz von Bildsensoren<br />
etwa in Digitalkameras wünscht man<br />
sich also möglichst stark verrauschte Bilder.<br />
Zur Maximierung der Belichtungszeit – und<br />
damit der Entropie im Helligkeits-Kanal (Y-<br />
Kanal) – steckt Noll die Webcam in eine lichtdichte<br />
Dose und dreht die elektrische Verstärkung<br />
(gain) des Sensors auf Maximum.<br />
Die Farbkanäle U und V lässt seine Software<br />
unberücksichtigt, schließlich ist im Dunkeln<br />
nur sehr wenig Farbe zu sehen.<br />
Die Totalverdunkelung funktioniert allerdings<br />
nicht mit jeder Kamera: Eine Logitech<br />
Quick Pro 5000 zum Beispiel stellt sich auf<br />
stur, wenn der Sensor kein Licht sieht, und<br />
liefert rauschfreie, komplett schwarze Bilder<br />
– Entropie gleich null.<br />
Mit einem Digital Blender genannten,<br />
selbst entwickelten Verfahren beseitigt Nolls<br />
LavaRnd mögliche Tendenzen im Rauschen.<br />
Dazu mischt es die Y-Werte der Bilddaten<br />
byteweise im Reißverschlussverfahren, extrahiert<br />
daraus n Datenblöcke, berechnet für<br />
jeden einen SHA1-Hash, verknüpft die Datenblöcke<br />
in einer Kaskade per Exklusiv-Oder<br />
miteinander und rotiert sie in jedem Schritt<br />
um ein Bit. Aus einem Bild entstehen so<br />
nˇxˇ20 Bytes Zufallszahlen. Der Wert für n<br />
ergibt sich aus einem Koeffizienten, der<br />
umso höher ausfallen darf, je größer die im<br />
Bildrauschen vermutete Entropie ist.<br />
Standardmäßig verwendet die LavaRnd-<br />
Software nˇ=ˇ17. Bei 25 Bildern pro Sekunde<br />
ergibt sich eine Zufallszahlenrate von<br />
17ˇxˇ20ˇxˇ25 = 8500 Bytes pro Sekunde. Leider<br />
stellt Noll nur sehr wenig Testdaten zur<br />
Verfügung, sodass aussagekräftige statistische<br />
Analysen flachfallen mussten.<br />
RandCam<br />
Da uns Nolls Ansatz sehr vielversprechend<br />
vorkam und der Aufbau eines eigenen Hardware-gestützten<br />
Zufallszahlengenerators<br />
einen besonderen Reiz ausübt, haben wir<br />
uns zur Nachahmung entschlossen.<br />
Herausgekommen ist die c’t-<br />
RandCam. Die dazugehörige Software<br />
nebst C++-Quellcode inklusive<br />
Unix/Linux-Makefiles und Projektmappen<br />
für Visual Studio 2008<br />
Alle Tests bestanden – so soll es<br />
sein, wenn die Rabbit-Testsuite<br />
des ct-rng-analyzer mit der<br />
statistischen Untersuchung einer<br />
Zufallszahlenfolge letztinstanzlich<br />
fertig geworden ist.<br />
C++ (auch Express Edition) bekommen Sie<br />
wie alle anderen Programme über den Soft-<br />
Link am Ende des Artikels.<br />
Die Software ct-randcam verwendet zur<br />
Entropiesammlung allerdings nicht den Y-<br />
Kanal der Webcam-Bilder, sondern die Differenz<br />
aus allen drei Farbkanälen (RGB) zweier<br />
Bilder. Die Differenzbildung schaltet alles Unveränderliche<br />
(lies: Nichtrauschen) aus; übrig<br />
bleibt das Rauschen.<br />
Der Algorithmus zur Bildung von Zufallszahlen<br />
aus dem Datenwust jedes Differenzbildes<br />
(siehe die Klasse Masher) fügt die Bytes<br />
in der ersten Stufe wie bei LavaRnd im Reißverschlussverfahren<br />
zu n Blöcken neu zusammen.<br />
Daraus berechnet er n MD5-Hashes à 16<br />
Bytes.<br />
Den Wert von n ermittelt ct-randcam aus<br />
der Entropie für jedes Differenzbild nach der<br />
Formel nˇ=ˇ(Eˇ·ˇsˇ· α /ˇh) 1/2 neu, wobei E für<br />
die Entropie in Bits pro Bit, s für die Anzahl<br />
der im Bild enthaltenen Bytes und h für die<br />
Größe des Hash (in Bytes) steht. Die Variable<br />
α gibt einen Koeffizienten an, der sicherheitshalber<br />
im Bereich zwischen 0,1 und 1<br />
liegt, prinzipiell aber auch deutlich über 10<br />
liegen kann. Voreingestellt ist 1,0. Höhere<br />
Werte führen zu höheren Datenraten – aber<br />
auch gegebenenfalls schlechteren Ergebnissen<br />
bei den statistischen Tests. Die Zufallszahlen<br />
aus einer Logitech Quick Pro 5000<br />
hielten in unseren Versuchen selbst bei<br />
einem α von 30 noch den meisten statistischen<br />
Tests stand – was zu einer Zufallszahlenrate<br />
von 140 KByte/s führte.<br />
Wer nun glaubt, die Entropie durch eine<br />
Verlängerung der Belichtungszeit erhöhen<br />
zu können und damit die Zufallszahlenerzeugungsrate<br />
zu steigern, sägt an dem Ast, auf<br />
dem er sitzt: Die Anzahl der Bilder pro Sekunde<br />
geht mit längerer Belichtungszeit nämlich<br />
in den Keller – und mit ihr die Datenrate, weil<br />
die Entropie durch „Verdunkelungsmaßnahmen“<br />
kaum steigt. Das gilt zumindest für die<br />
von uns ebenfalls verwendeten Webcams<br />
vom Typ Logitech QuickCam Express und<br />
Philips ToUCam 740 Pro.<br />
Um das Rauschen ohne Verlängerung der<br />
Belichtungszeit zu verstärken, empfiehlt es<br />
sich, die elektrische Verstärkung auf Maximum<br />
zu drehen. Diese Option bietet jedoch<br />
nicht jeder Webcam-Treiber an.<br />
Zur Ansteuerung der Webcam setzt die<br />
Software auf die frei erhältliche Bibliothek<br />
OpenCV, die Intel ursprünglich entwickelt hat,<br />
um dem autonom fahrenden Auto „Stanley“<br />
174 c’t 2009, Heft 2<br />
©<br />
Copyright by Heise Zeitschriften Verlag GmbH & Co. KG. Veröffentlichung und Vervielfältigung nur mit Genehmigung des Heise Zeitschriften Verlags.