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:

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, nur dass für die Sicherheit noch einige zusätzliche Bedingungen erfüllt sein müssen. Die von ihm erzeugte Zahlenfolge sollte für einen Beobachter nicht von einer echten Zufallszahlenfolge unterscheidbar sein. Außerdem soll 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 Technische Richtlinie BSI TR-03116. Dort werden Funktionsklassen unterschieden und genannt. Die verwendeten Bezeichnungen (PTG.1, PTG2,… DRG.1, DRG.2,…, NTG.1) werden im mathematisch-technischen Anhang aufgelistet. Im Wesentlichen werden dort physikalische RNG (PTG.) von deterministischen RNG (DRG) unterschieden, mit weiterer Unterteilung nach Fehlerdetektion und stochastischer Nachverarbeitung und somit zu den hybriden RNGs gehören, die in dieser Definition keine namentliche Klassen darstellen.