ГСЧ Zufallslabor

Technologie

Generator,
den man ruhig zeigen kann

Die meisten Websites schreiben Math.random() und nennen das Zufall. Wir mischen drei unabhängige Entropiequellen über SHA-256 und zeigen, wie man das prüfen kann.

SHA-256-Mixer 3 Quellen Live-Test
CSPRNG des Browsers crypto.getRandomValues
Deine Bewegungen Koordinaten, Zeitpunkte, Taps
Öffentliches Beacon drand #6588549
SHA-256-Mixer seed = H(CSRNG ∥ Pool ∥ Beacon)
Zahlenstrom CSPRNG ⊕ SHA-256 keystream
Alle Werkzeuge Zahlen, Münze, Würfel, Auswahl

Ist das externe Beacon nicht erreichbar, bricht die Website nicht: Es bleiben zwei unabhängige Quellen – der kryptografische Generator und die Entropie deiner Aktionen.

Drei Schichten

Warum das besser ist als eine einzelne Quelle

Jede Schicht deckt die Schwäche der anderen ab. Zusammen liefern sie, was kein Generator allein kann: Unvorhersagbarkeit, physikalische Natur und Nachprüfbarkeit.

01

Kryptografischer CSPRNG

crypto.getRandomValues() – dieselbe Quelle, die TLS-Verbindungen und die Schlüsselerzeugung schützt. Sie garantiert Unvorhersagbarkeit: Selbst mit Kenntnis aller anderen Schichten lässt sich das Ergebnis nicht berechnen.

Unvorhersagbarkeit
02

Entropie deiner Aktionen

Jede Mausbewegung, jeder Tap und jeder Tastendruck liefert Koordinaten mit Mikrometer-Genauigkeit und Zeitpunkte mit Nanosekunden-Streuung. Wir hashen sie in einen Pool aus 256 Bit, der bei jedem Ereignis aktualisiert wird. Die Daten verlassen den Browser nicht.

physische Natur
03

Öffentliches Zufalls-Beacon

drand – ein verteiltes Netz unabhängiger Organisationen (Cloudflare, EPFL, Protocol Labs u. a.), das alle paar Sekunden einen signierten Block Zufallsdaten veröffentlicht. Jeder kann die Signatur prüfen und sich überzeugen, dass der Wert nicht manipuliert wurde.

Nachprüfbarkeit
Status des Beacons drand #6588549
Zufall der aktuellen Runde efffe8437d5cf2f6c8f59a346a8abed17619db5c976d22323189fa36050614e7
6588549 drand-Runde
10:51:58 Veröffentlichungszeit
32 Byte Entropie

Prüfen kann man es auf dem Server des Beacons: https://api.drand.sh/public/6588549. Die BLS-Signatur wird von einem verteilten Komitee erstellt – allein lässt sie sich nicht fälschen.

Live-Entropiesammlung 30 %

Öffentliches Zufalls-Beacon wird abgefragt…

CSPRNG Deine Bewegungen Beacon

Prüfung

Überzeug dich selbst: Test mit 65.536 Zahlen

Wir erzeugen eine große Stichprobe mit demselben Generator, den die Werkzeuge nutzen, und prüfen sie mit statistischen Tests: Gleichverteilung der Bytes (Chi-Quadrat), Bit-Balance, serielle Korrelation.

Prüfergebnis Test nicht gestartet
— Werte
— Chi-Quadrat (255 Freiheitsgrade)
— p-value
— Bit-Balance
— serielle Korrelation

Der Chi-Quadrat-Test prüft, wie gleichmäßig die Bytes der erzeugten Zahlen verteilt sind. Bei 255 Freiheitsgraden gilt ein Wert um 255 als normal; ein p-Wert über 0,05 bedeutet, dass statistisch keine Abweichung vom Zufall gefunden wurde.

Vergleich mit einem „gewöhnlichen“ Generator

Was sich genau ändert, wenn man sich nicht auf Math.random() beschränkt.

EigenschaftMath.random()Unser Generator
QuellePseudozufällig, wird einmal initialisiertCSPRNG + physische Entropie + öffentliches Beacon
VorhersagbarkeitAus mehreren Werten rekonstruierenNicht rekonstruierbar
NachprüfbarkeitNeinSignierte drand-Runden
Quelle offlineJaEs bleiben CSPRNG + Bewegungen
QualitätskontrolleNeinOffener statistischer Test
Was du wissen solltest
Mausbewegungen werden lokal verarbeitet: Im Browser bleibt nur ein Hash des Entropiepools. Weder Koordinaten noch Verlauf gehen an den Server.
Die Mischung ist so aufgebaut, dass selbst die vollständige Kenntnis des öffentlichen Beacons keine Vorhersage erlaubt: Das Ergebnis wird zusätzlich mit dem Geheimnis des CSPRNG vermischt.
Der Generator ist ein Werkzeug für faire Auswahl und Unterhaltung. Das ist kein Glücksspiel und keine Lotterie: Es werden keine Einsätze angenommen, keine Gewinne ausgezahlt.
Rechtliche Hinweise
↑↓ Navigation Enter öffnen Esc schließen