482 / 691CSPRNG

CSPRNG

Kryptografisch sicherer Pseudozufallszahlengenerator

Ein CSPRNG erzeugt Ausgaben aus einem geheimen Zustand, sodass bekannte Werte keine praktisch nutzbare Vorhersage anderer ermöglichen. Auch Anfangsentropie, Zustandswiederherstellung und korrekte Schnittstellennutzung bestimmen die Sicherheit.

Ein CSPRNG ist ein deterministischer Generator für kryptografische Zwecke. Pseudozufällig bedeutet nicht schwach: Entscheidend ist der Widerstand gegen einen Angreifer unter den genannten Annahmen. Algorithmus, Entropiequelle und verarbeitender Code sind getrennt zu prüfen.

RFC 4086 unterscheidet kryptografisch starke Folgen von üblichen Simulationsgeneratoren. Ein bekannter Teil der Ausgabe darf den Rest nicht vorhersagbar machen. Statistische Tests allein beweisen das nicht; ein vorhersehbarer Seed kann auch komplex wirkende Ausgaben entwerten. [RFC 4086 — Cryptographically strong sequences]

NIST SP 800-90A Rev. 1 spezifiziert Hash_DRBG, HMAC_DRBG und CTR_DRBG. Die Bezeichnung CSPRNG zertifiziert nicht jede Implementierung. Mechanismus, Parameter und Entropiebeschaffung müssen feststehen, nicht nur der Name einer Hashfunktion. [NIST SP 800-90A Rev. 1 — DRBG mechanisms and compromise resistance]

Backtracking resistance schützt frühere Ausgaben nach Offenlegung des aktuellen Zustands. Prediction resistance betrifft zukünftige Ausgaben; NIST SP 800-90A verknüpft sie mit wirksamer Zuführung frischer Entropie. Keine Eigenschaft impliziert automatisch die andere oder Erholung durch einen weiteren Aufruf. [NIST SP 800-90A Rev. 1 — DRBG mechanisms and compromise resistance]

OpenSSL 3.5 nennt für RAND_bytes() und RAND_priv_bytes() 1 bei Erfolg, 0 bei sonstigen Fehlern und -1 bei nicht unterstützter Methode. Bei Ausfall der Entropiequelle kann die Erzeugung verweigert werden. Anwendungen müssen den Rückgabewert prüfen, statt einen ungeprüften Puffer zu verwenden. [OpenSSL 3.5 — RAND_bytes return values and errors]

libsodium randombytes_buf_deterministic() erzeugt mit demselben Seed dieselbe Folge, etwa für Tests. Das Wiederherstellen eines VM-Snapshots kann Zustand und Ausgabe wiederholen. Reproduzierbare Tests garantieren keine voneinander unabhängigen Geheimnisse in Kopien. [libsodium — Random data and deterministic testing]

libsodium randombytes_uniform() wählt gleichverteilt unter einer Obergrenze, ohne die Verzerrung einer einfachen Restbildung. Gute Eingabebytes garantieren noch keine korrekte Abbildung auf den Zielbereich. Für Schlüssel gelten zusätzlich die Regeln des jeweiligen Algorithmus. [libsodium — Random data and deterministic testing]

RFC 8439 fordert, einen Nonce mit demselben Schlüssel nicht zu wiederholen; zufälliges Aussehen beweist keine Eindeutigkeit. RFC 6979 beschreibt dagegen die deterministische Erzeugung des Signaturwerts k. Ein CSPRNG ersetzt Protokollregeln daher nicht allgemein. [RFC 8439 — Nonce uniqueness] [RFC 6979 — Deterministic signing]

Erfassen Sie Bibliotheksversion, Mechanismus, Initialisierung, Fehler sowie Verhalten nach Wiederherstellung oder Klonen des Zustands. OpenSSL und libsodium dokumentieren bestimmte Funktionen, nicht die Sicherheit beliebiger Wallets. Gute Erzeugung verhindert auch kein späteres Offenlegen einer Sicherung. [OpenSSL 3.5 — RAND_bytes return values and errors] [libsodium — Random data and deterministic testing]

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Cryptographic Entropy, Random Number Generator, Deterministic RNG, Seed Generation. Auf diesen Eintrag verweisen außerdem Dice Roll Entropy, Cryptographic Entropy, Random Number Generator, Deterministic RNG.

DOC · 001RFC 4086 — Cryptographically strong sequencesSpezifikation ↗DOC · 002NIST SP 800-90A Rev. 1 — DRBG mechanisms and compromise resistanceSpezifikation ↗DOC · 003OpenSSL 3.5 — RAND_bytes return values and errorsDokumentation ↗DOC · 004libsodium — Random data and deterministic testingDokumentation ↗DOC · 005RFC 8439 — Nonce uniquenessSpezifikation ↗DOC · 006RFC 6979 — Deterministic signingSpezifikation ↗
Quellenbasiert · Keine Anlageberatung