Zufallszahlen finden in vielen Bereichen Anwendung. Aber wie werden sie eigentlich erzeugt und sind Zufallszahlengeneratoren sicher?
Heutzutage generieren Computer Zufallszahlen für alle möglichen Bereiche, von Videospielen bis hin zu Glücksspiel oder der Kryptografie. Zu unterscheiden ist dabei zwischen „echten“ Zufallszahlen und Pseudozufallszahlen. Für die Sicherheit der Verschlüsselungssysteme ist dieser Unterschied wichtig.
Nicht alle Menschen glauben daran, dass Zufallszahlengeneratoren wirklich zuverlässig arbeiten. Wir haben uns dafür einmal angesehen, wie Zufallszahlen überhaupt generiert werden und wo genau sie zum Einsatz kommen.
Wo sind Zufallszahlen wichtig?
Bereits seit tausenden von Jahren nutzt man Zufallszahlen oder zufällige Ergebnisse. Man denke nur einmal an den klassischen Münzwurf. Das Ergebnis überlässt man hier dem Zufall. Die Zufallszahlen, die in Computern zum Einsatz kommen, sind ähnlich. Sie stellen einen Versuch dar, ein zufälliges und unvorhersehbares Ergebnis zu erzeugen.
Genutzt werden können Zufallszahlen für unterschiedliche Zwecke. Offensichtlich ist zum Beispiel die Anwendung bei Glücksspielen oder zur Erzeugung zufälliger Ergebnisse bei Computerspielen. Im Bereich der Kryptografie wiederum benötigt man Zahlen, welche Angreifer nicht erraten können. Entsprechend können nicht immer wieder dieselben Zahlen genutzt werden. Stattdessen sollen Zahlen auf eine unvorhersehbare Weise generiert werden, sodass es Angreifern unmöglich wird, sie zu erraten. Diese Zufallszahlen sind bei sicheren Verschlüsselungen essentiell. Dabei ist es egal, ob man eigene Daten verschlüsseln möchte oder auf eine beliebige Webseite im Internet zugreift.
Interessant dabei ist, dass es ein Missverständlich darüber gibt, wie zufällig generierte Zahlungen funktionieren. Denn eigentlich sind sie alles andere als zufällig, sondern das Ergebnis komplizierter mathematischer Algorithmen.
Pseudo-Zufallszahlengeneratoren
In der Regel handelt es sich bei Zufallszahlengeneratoren um eine Software, die keine echten Zufallszahlen ausspuckt. Stattdessen nutzen diese Zufallszahlengeneratoren Algorithmen, welche die Auswahl eines Werts limitieren. So nähert man sich der echten Zufälligkeit an. Der Benutzer kann hier den Bereich oder die Verteilung festlegen, aus denen die Zufallszahl gewählt wird. Es kann also zum Beispiel ein niedrigster und höchster Wert festgelegt werden. Der Zufallszahlengenerator ist dann in der Lage, sofort eine Zahl auszugeben.
Für die meisten Anwendungen sind die so erzeugten Zufallszahlen ausreichend. Bei sicheren kryptografischen Implementierungen sollte man sich aber nicht einfach so auf sie verlassen. Hier ist ein besonders sicherer Peudo-Zufallszahlgengenerator von Nöten.
Echte Zufallszahlen
Man unterteilt die von Computern erzeugten Zufallszahlengeneratoren für gewöhnlich in zwei Arten. Neben den beschriebenen Pseudo-Zufallszahlen gibt es dann die „echten“ Zufallszahlen. Um eine „echte“ Zufallszahl zu generieren, wird am Computer eine Art physikalisches Phänomen gemessen. Dieses findet außerhalb der Maschine statt, also etwa den radioaktiven Zerfall eines Atoms, den wir noch aus dem Schulunterricht kennen. Hier legt die Quantentheorie fest, dass es keine Gewissheit darüber gibt, wann genau der Zerfall eintreten wird. Es handelt sich also eigentlich um eine reine Zufallszahl des Universums. Es lässt sich nicht genau vorhersagen, wann der Zeitpunkt eintritt – einen Zufallswert kann man also nicht kennen.
Vereinfacht ausgedrückt heißt das, dass ein echter Zufallszahlgenerator kryptografisch sicher ist und physikalische Eigenschaften wie thermische oder atmosphärische Bedingungen berücksichtigt. Hierbei können auch Messfehler berücksichtigt werden. Auch physikalische Verfahren wie der Würfelwurf gehören dazu. Ein weiteres Beispiel findet sich im Alltag: Der Computer könnte erfassen, wann auf der Tastatur getippt wird. Sammelt er genug Daten, kann das als Grundlage zur Erzeugung einer echten Zufallszahl genutzt werden. So ergibt sich eine Entropie-Quelle, die zur Generierung echter Zufallszahlen verwendet werden kann.
Schauen wir uns ein weiteres Beispiel an: Entwickler soll die Arbeit erleichtert werden, indem bei Intel-Chips Zufallszahlengeneratoren integriert werden, die sichere Zufallszahlen generieren können. Das Ganze nennt sich RdRand. Der Chip nutzt eine Entropiequelle, die auf dem Prozessor angelegt ist, und stellt der Software zufällige Zahlen bereit, wenn diese sie anfordert.
Kritiker sagen, dass es sich hierbei um eine Art schwarzes Loch handelt, da wir nicht wissen, was genau im Inneren passiert. Gibt es zum Beispiel eine „Hintertür“, dann könnte die Regierung in der Lage sein, Verschlüsselungen zu knacken.
Alles in allem ist zu beachten, dass es keine echten Zufallszahlengeneratoren gibt. Sie erzeugen bloß Zahlen, welche für Normalsterbliche zufällig wirken.
Vor- und Nachteile von Zufallszahlengeneratoren
Zufallszahlengeneratoren, auf RNGs genannt, bieten für verschiedene Systeme ein hohes Maß an Sicherheit. Dabei sind Pseudo-Zufallszahlengeneratoren einfacher zu implementieren und können im Vergleich zu den echten Zufallszahlen zügiger generiert werden. Ist der Ausgangspunkt bekannt, dann ist eine Reproduktion der bestehenden Sequenz möglich.
Doch wo es Vorteile gibt, da lassen auch Nachteile nicht lange auf sich warten: Die echten Zufallszahlengeneratoren sind sehr teuer in der Implementierung. Nutzt man einen linearen kongruenten Generator, dann hängen die erzeugten Zufallszahlen zudem von der Bitposition ab. Das wiederum heißt, dass die oberen Bits zufälliger sind als die unteren.
Mit all diesen Informationen stehen wir noch recht am Anfang, denn hinter Zufallszahlengeneratoren steckt komplexe Mathematik, die je nach Umfang und Anwendungsgebiet nicht leicht zu begreifen ist. Wer sich mit den Grundlagen auseinandersetzt, merkt aber schnell, dass sie in vielen verschiedenen Bereichen zum Einsatz kommen. Für viele Anwendungen genügen einfache RNGs, doch Experten stehen auch immer wieder vor neuen Herausforderungen, wenn es darum geht, besonders sichere Systeme zu entwickeln, die vor Hacker-Angriffen möglichst geschützt sein müssen.