Echte Zufallszahlen vs. Pseudozufallszahlen

Wenn Sie auf einer Website auf eine Schaltfläche „Generieren“ klicken, erwarten Sie ein völlig zufälliges Ergebnis. In der Informatik ist echte Zufälligkeit jedoch überraschend schwer zu erreichen. Die meiste digitale Zufälligkeit ist in Wahrheit „pseudozufällig“. In diesem Ratgeber erklären wir den Unterschied zwischen echten Zufallszahlengeneratoren (TRNG) und Pseudozufallszahlengeneratoren (PRNG) – und warum diese Unterscheidung für die Cybersicherheit entscheidend ist.

Probieren Sie es selbst

Sie möchten einen pseudozufälligen Algorithmus in Aktion sehen? Nutzen Sie unseren kostenlosen Zufallszahlengenerator, um sofort eigene Sequenzen zu generieren.

Inhaltsverzeichnis

Was ist Zufälligkeit?

In der Mathematik gilt eine Zahlenfolge als zufällig, wenn sie keine erkennbaren Muster oder Ordnung enthält. Echte Zufälligkeit bedeutet: Das Wissen um die vorherigen Zahlen der Folge verschafft Ihnen keinerlei Vorteil bei der Vorhersage der nächsten Zahl.

Während Menschen notorisch schlecht darin sind, Zufallszahlen zu erzeugen (wir vermeiden wiederholte Ziffern und bevorzugen bestimmte Muster), sind Computer von Natur aus deterministische Maschinen. Sie führen Anweisungen exakt wie programmiert aus. Wie also erzeugt eine Maschine, die nur „1“ und „0“ versteht, Zufälligkeit?

Pseudozufallszahlengeneratoren (PRNG)

Die große Mehrheit der Web-Tools, Videospiele und Softwareanwendungen nutzt PRNGs. Ein PRNG ist ein mathematischer Algorithmus, der einen Anfangswert (genannt „Seed“) nimmt und durch komplexe Gleichungen jagt, um eine Zahlenfolge zu erzeugen, die zufällig aussieht.

Nächste Zahl = MathAlgorithm(Vorherige Zahl, Seed)

Weil PRNGs auf Mathematik beruhen, sind sie deterministisch. Geben Sie einem PRNG heute, morgen und in zehn Jahren exakt denselben Seed, wird er jedes Mal exakt dieselbe Zahlenfolge ausgeben.

Das ist äußerst effizient. PRNGs sind unglaublich schnell und können Millionen Zahlen pro Sekunde generieren. Für Dinge wie das Mischen einer Spotify-Playlist, das Würfeln digitaler Würfel in einem Spiel oder statistische Simulationen ist ein PRNG völlig ausreichend. Die Standardfunktion Math.random() in JavaScript ist ein PRNG. Testen Sie das mit unserem Zufallszahlengenerator 1–10.

Sie generieren Passwörter?

Sicherheit erfordert echte Unvorhersehbarkeit. Nutzen Sie niemals einen Standard-PRNG für Passwörter. Verwenden Sie stattdessen unseren sicheren Passwortgenerator.

Echte Zufallszahlengeneratoren (TRNG)

Echte Zufallszahlengeneratoren verlassen sich nicht auf Mathematik. Stattdessen gewinnen sie Zufälligkeit aus unvorhersehbaren physikalischen Phänomenen der realen Welt.

Moderne TRNGs messen Dinge wie thermisches Rauschen in elektronischen Schaltkreisen, den photoelektrischen Effekt oder sogar das Timing von Tastatureingaben. Der berühmteste TRNG-Dienst, Random.org, nutzt atmosphärisches Rauschen (Funkrauschen), um seine Zahlen zu erzeugen.

Weil diese physikalischen Ereignisse der Quantenmechanik unterliegen, sind sie grundsätzlich unvorhersehbar. Ein TRNG verwendet keinen Seed, und die Zahlenfolge lässt sich unter keinen Umständen reproduzieren.

Warum der Unterschied für die Sicherheit entscheidend ist

Wenn Sie nur einen Verlosungsgewinner ziehen oder Spieler mit unserem Zufalls-Team-Generator in Teams aufteilen, ist ein PRNG völlig sicher. Die „Pseudo“-Zufälligkeit spielt keine Rolle.

In der Kryptografie gilt jedoch: Vorhersehbarkeit gleich Verwundbarkeit. Kann ein Hacker den mathematischen Seed Ihres PRNG herausfinden, kann er jede „zufällige“ Zahl reproduzieren, die Ihr Computer erzeugt – einschließlich Ihrer privaten Verschlüsselungsschlüssel und Passwörter.

Deshalb haben Browser kryptografisch sichere Pseudozufallszahlengeneratoren (CSPRNG) entwickelt, wie window.crypto.getRandomValues(). Diese Algorithmen nutzen zwar weiterhin Mathematik, beziehen ihren „Seed“ jedoch aus hochgradig unvorhersehbaren Systemvariablen (wie Mausbewegungen oder CPU-Temperatur) und erfüllen mathematisch garantiert strenge statistische Zufälligkeitstests. Das ist die Backend-Technologie, die sichere Tools wie unseren Passwortgenerator antreibt.

Wenn Sie für eine Veranstaltung garantiert einzigartige Zahlen ohne Wiederholungen generieren müssen, sind PRNGs perfekt. Das können Sie mit unserem Zufallszahlengenerator ohne Wiederholungen ausprobieren.

Häufig gestellte Fragen (FAQ)

Ist die Funktion Math.random() in JavaScript wirklich zufällig?

Nein, Math.random() ist ein Pseudozufallszahlengenerator (PRNG). Sie nutzt einen mathematischen Algorithmus und einen anfänglichen Seed-Wert, um eine Zahlenfolge zu erzeugen, die zufällig erscheint, aber tatsächlich vollständig deterministisch und vorhersagbar ist.

Was ist der Unterschied zwischen PRNG und TRNG?

PRNGs (Pseudozufallszahlengeneratoren) nutzen Mathematik, um Zahlen zu erzeugen, die zufällig wirken, aber deterministisch sind. TRNGs (echte Zufallszahlengeneratoren) gewinnen Zufälligkeit aus unvorhersehbaren physikalischen Phänomenen wie atmosphärischem Rauschen oder radioaktivem Zerfall – und sind dadurch wirklich unvorhersehbar.

Kann ich einen Pseudozufallszahlengenerator für Passwörter verwenden?

Nein, für Passwörter oder kryptografische Schlüssel sollten Sie niemals einen Standard-PRNG verwenden. Da PRNGs deterministisch sind, kann ein Hacker, der den Seed errät, Ihr exaktes Passwort reproduzieren. Nutzen Sie immer einen kryptografisch sicheren Pseudozufallszahlengenerator (CSPRNG) oder einen TRNG.