Kryptographisch sicherer Zufallszahlengenerator
Ein kryptographisch sicherer Zufallszahlengenerator (auch kryptographisch geeigneter Zufallszahlengenerator, bzw. englisch cryptographically secure pseudo-random number generator (CSPRNG)) ist ein für die Kryptologie geeigneter Generator für Pseudozufallszahlen. Solche Zufallszahlen werden in vielen Bereichen der Kryptologie benötigt, wie zum Beispiel bei:
- der Schlüsselgenerierung
- einmal genutzten Nonces (zufällige Bytefolgen)
- Stromverschlüsselung
- Salt
Die Qualitätsanforderungen für die Zufälligkeit solcher Zahlen sind sehr unterschiedlich. Für Nonces genügt es, die Einmaligkeit der Zahl im Zufallsexperiment zu garantieren; für die Erstellung eines Hauptschlüssels oder sogar eines One-Time-Pads sind die Anforderungen an die Zahl ungleich höher. So bleibt ein One-Time-Pad in der Theorie nur unknackbar, wenn er aus natürlichen Zufallszahlen erstellt wurde.
Grundsätzlich sind für einen CSPRNG dieselben Voraussetzungen wie für einen normalen Pseudozufallszahlengenerator vonnöten, allerdings müssen für die Sicherheit noch einige zusätzliche Bedingungen erfüllt sein. Zum einen darf die von ihm erzeugte Zahlenfolge nicht von einer echten Zufallszahlenfolge unterscheidbar sein. Zum anderen darf es nicht möglich sein, anhand der Ausgabe des Generators auf seinen internen Zustand zu schließen, auch wenn die genaue Funktionsweise bekannt ist.
Das BSI spezifiziert Anforderungen an Zufallszahlengeneratoren zur Verwendung in Projekten der Bundesregierung in der technischen Richtlinie BSI TR-03116 und teilt diese in Funktionsklassen ein. Im Wesentlichen werden dort physikalische echte (Klassen PTG.2, PTG.3) und nicht-physikalische echte Zufallszahlengeneratoren (Klasse NTG.1) von deterministischen bzw. pseudo Zufallszahlengeneratoren (Klassen DRG.2, DRG.3) unterschieden. Jene in den Klassen PTG.3 und NTG.1 verarbeiten die gewonnene Entropie wiederum mit einem deterministischen Zufallszahlengenerator der Klasse DRG.3 und sind somit als hybride Zufallszahlengeneratoren anzusehen. Die ehemaligen Klassen PTG.1 und DRG.1 finden seit 2022 keine Beachtung mehr.