23.04.2014 Aufrufe

Kompakte Notebooks Kompakte Notebooks - Wuala

Kompakte Notebooks Kompakte Notebooks - Wuala

Kompakte Notebooks Kompakte Notebooks - Wuala

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!