483 / 736PRNG

Deterministic RNG

Deterministischer Pseudozufallszahlengenerator

Dasselbe Verfahren liefert bei gleichem Anfangszustand und gleichen Eingaben dasselbe Ergebnis. Bei einem deterministischen Generator ist das eine Eigenschaft, kein Fehler. Zur Sicherheit gehört außerdem, dass sich die Ausgabe ohne Kenntnis des geheimen Ausgangsmaterials nicht vorhersagen lässt.

Ein Deterministic RNG ist ein Pseudozufallszahlengenerator. Er berechnet Werte nach einem festen Verfahren, statt für jeden Wert ein neues zufälliges physikalisches Ereignis zu messen. Ausgangspunkt ist eine Eingabe namens Seed. Während der Arbeit hält er einen internen Zustand vor, also die für den nächsten Rechenschritt nötigen Daten. Wiederholt man den gesamten Ablauf mit denselben Eingaben, entstehen dieselben Ergebnisse. Das hilft beim Testen. Ein sicherer kryptografischer Generator braucht zusätzlich einen geeigneten Aufbau und genügend Entropie: Unsicherheit über die Eingabe aus Sicht eines Angreifers.

Stellen Sie sich vor, eine Berechnung wird angehalten und ihr Speicher gesichert. Setzt man sie am selben Punkt mit denselben weiteren Eingaben fort, kann sie identisch weiterlaufen. NIST SP 800-90A beschreibt solche Generatoren als DRBG. Algorithmus, Einstellungen und Reihenfolge der Anfragen sind entscheidend. Frische Entropie hinzuzufügen, das sogenannte Reseeding, verändert den Zustand. Ein gleicher Seed allein garantiert deshalb bei verschiedenen Programmen keine gleiche Ausgabe. [1]

Schon ein einfaches Simulationsprogramm kann zufällig wirkende Zahlen liefern. Für den Schutz einer Wallet reicht das nicht. RFC 4086 warnt, dass Angreifer manche solcher Folgen vorhersagen können, obwohl sie statistische Tests bestehen. Ein kryptografisch starker Generator soll auch nach Bekanntwerden eines Teils der Ausgabe praktisch unvorhersagbar bleiben. Entscheidend sind Aufbau, Qualität und Geheimhaltung des Ausgangsmaterials, nicht allein das Wort „deterministisch“. [2]

Bei der Fehlersuche hilft es, genau dieselbe Situation erneut durchzuspielen. Deshalb liefert libsodium mit randombytes_buf_deterministic() für denselben Seed dieselbe Folge. Entwickler können das erwartete Ergebnis veröffentlichen, damit andere es prüfen. Genau deshalb gehört ein öffentlicher Test-Seed aber nicht in eine echte Wallet: Jeder könnte daraus dasselbe „Geheimnis“ berechnen. [3]

BIP32 nutzt eine ähnliche Wiederholbarkeit zur Schlüsselableitung. Das ist jedoch nicht dasselbe Verfahren wie die allgemeine Erzeugung zufälliger Daten. Aus einem Seed entsteht ein verzweigter Schlüsselbaum; der Ableitungspfad wählt den verwendeten Zweig. Mit demselben Seed und Pfad lassen sich dieselben Schlüssel wiederherstellen. Eine weitere abgeleitete Adresse fügt dem ursprünglichen Geheimnis aber nicht von selbst neue, unabhängige Entropie hinzu. [4]

Bei BIP39 sind die Wiederherstellungswörter, Mnemonic genannt, nur ein Teil der Eingabe. PBKDF2 berechnet daraus zusammen mit einer Passphrase, einem optionalen zusätzlichen Geheimnis, den Seed für die weitere Ableitung. Eine andere Passphrase führt trotz gleicher Wörter zu einem anderen Ergebnis. Für dieselben Schlüssel braucht man daher alle ursprünglichen Eingaben und das passende Ableitungsverfahren. Gleiche Wörter allein reichen dafür nicht aus. [5]

Eine digitale Signatur belegt, dass der Inhaber des zugehörigen geheimen Schlüssels eine Transaktion autorisiert hat. RFC 6979 beschreibt, wie sich der Hilfswert k für die Signatur aus diesem Schlüssel und der signierten Nachricht berechnen lässt. In diesem Schritt muss nicht jedes Mal ein neuer Zufallswert beschafft werden. Die ursprüngliche Schlüsselerzeugung benötigt weiterhin guten Zufall. Ein korrektes Signaturverfahren repariert keinen von Anfang an erratbaren Schlüssel. [6]

Dieselben Schlüssel mit BIP32 wiederherzustellen ist gewollt. Unbeabsichtigt Werte zu wiederholen, die neu sein sollten, ist es nicht. Ein Snapshot einer virtuellen Maschine speichert den Rechnerzustand einschließlich Arbeitsspeicher. Wie libsodium warnt, kann seine Wiederherstellung auch Generatorzustand und Ausgaben wiederholen. Beim Kopieren einer Umgebung darf man deshalb nicht voraussetzen, dass jede laufende Kopie automatisch unabhängige Geheimnisse erzeugt. [3] [4]

Entwickler vergleichen Ergebnisse mit einem Testvektor: einer bekannten Eingabe samt erwarteter Ausgabe. Stimmen sie überein, berechnet das Programm dieses Beispiel korrekt. Die Entropiequalität des tatsächlichen Geräts ist damit nicht bewiesen. NIST SP 800-90A behandelt Verfahren und Anforderungen an ihre Eingaben getrennt. Auch Programmversion, Einstellungen und Entropiezufuhr sind wichtig. Die Bezeichnung Deterministic RNG allein sagt noch nicht, ob eine Wallet sicher ist. [1]

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit CSPRNG, Random Number Generator, HD Wallet, Seed Generation. Auf diesen Eintrag verweisen außerdem CSPRNG, COLDCARD RNG Incident (2026).

DOC · 001NIST SP 800-90A Rev. 1 — State, inputs and reseedingSpezifikation DOC · 002RFC 4086 — Pseudorandom sequences and unpredictabilitySpezifikation DOC · 003libsodium — Deterministic output and VM snapshotsDokumentation DOC · 004BIP32 — Hierarchical deterministic key derivationSpezifikation DOC · 005BIP39 — Mnemonic and passphrase to seedSpezifikation DOC · 006RFC 6979 — Deterministic signing and initial key generationSpezifikation
Überarbeitet: Quellenbasiert · Keine Anlageberatung