Ein Zufallsgenerator ist eine elektronische Schaltung oder ein Algorithmus, der Zufallswerte beziehungsweise zufällig wirkende Zahlenfolgen bereitstellt.
Wie ein Zufallsgenerator arbeitet
Zufallsgeneratoren lassen sich grundsätzlich in zwei Gruppen einteilen. Pseudozufallszahlengeneratoren berechnen ihre Werte deterministisch aus einem Startwert. Physikalische Zufallsgeneratoren erfassen dagegen schwer vorhersagbare Vorgänge und wandeln diese in digitale Werte um.
Ein algorithmisches Verfahren kann beispielsweise ein Linear Feedback Shift Register (LFSR) verwenden. Es erzeugt lange Bitfolgen mit statistisch brauchbaren Eigenschaften, bleibt aufgrund seiner festen Rechenregeln jedoch reproduzierbar. Deshalb eignet sich ein einfaches LFSR nicht allein für alle sicherheitskritischen Zwecke.
Quelle erfassen
Ein schwer vorhersagbares physikalisches oder statistisches Ereignis liefert das Rohsignal.
Signal aufbereiten
Verstärkung und Schwellwertbildung machen die Schwankungen digital auswertbar.
Werte gewinnen
Impulse oder Bits werden gesammelt, geprüft und zu Zufallszahlen zusammengesetzt.
Physikalische Zufallsquellen
Echte Zufallswerte können aus statistischen Ereignissen oder physikalischen Vorgängen abgeleitet werden. Als Quelle kommt etwa elektronisches Rauschen infrage. Auch andere aus einem stochastischen Prozess gewonnene Signale können verwendet werden.
Eine mögliche Schaltung verstärkt zunächst kleine Rauschspannungen. Ein nachgeschalteter Schmitt-Trigger formt die unregelmäßigen Schwankungen zu klaren Impulsen. Anschließend kann ein Zähler diese Ereignisse innerhalb definierter Zeitfenster erfassen und daraus Zahlenwerte bilden.
Gibt ein Generator einzelne Binärwerte statt vollständiger Zahlen aus, wird er als Random Bit Generator (RBG) bezeichnet. Das erzeugte Bit ist dabei die elementare Einheit für nachfolgende kryptografische oder statistische Verfahren.
Echter Zufall und Pseudozufall
Pseudozufallszahlengenerator
Ein Pseudozufallszahlengenerator startet mit einem sogenannten Seed und berechnet daraus eine Folge. Derselbe Seed führt bei unverändertem Algorithmus wieder zur gleichen Sequenz. Diese Reproduzierbarkeit ist bei Simulationen und Softwaretests nützlich.
Physikalischer Zufallsgenerator
Ein physikalischer Generator gewinnt Entropie aus einem gemessenen Vorgang. Die Rohdaten müssen auf Verzerrungen, Ausfälle und Abhängigkeiten geprüft werden. Häufig werden sie zusätzlich nachbearbeitet, bevor sie als Zufallswerte dienen.
Typische Anwendungen
Zufallsgeneratoren werden in der Informationstechnik überall dort benötigt, wo Vorhersagbarkeit vermieden oder eine realistische Streuung modelliert werden soll. Dazu zählen Simulationen, Mess- und Testverfahren sowie Systeme für Sicherheit und Authentifizierung.
In kryptografischen Anwendungen liefern geeignete Generatoren Ausgangswerte für Schlüssel, Nonces, Salt-Werte oder Passphrasen. Weitere Einsatzfelder sind Verschlüsselungsverfahren, Hardware Security Modules (HSM) und Scrambling. Für solche Aufgaben sind geprüfte Generatoren und ausreichend Entropie entscheidend.