Zum Hauptinhalt springen

7.2.3. DSS Pseudo-random Number Generation (DSS Pseudo-Zufallszahlengenerierung)

7.2.3. DSS Pseudo-random Number Generation (DSS Pseudo-Zufallszahlengenerierung)

Anhang 3 des NIST Digital Signature Standard [DSS] bietet eine Methode zur Erzeugung einer Sequenz von Pseudo-Zufalls-160-Bit-Größen zur Verwendung als private Schlüssel oder dergleichen. Dies wurde durch Change Notice 1 [DSS_CN1] modifiziert, um den folgenden Algorithmus zur Generierung von Allzweck-Pseudo-Zufallszahlen zu erzeugen:

t = 0x 67452301 EFCDAB89 98BADCFE 10325476 C3D2E1F0

XKEY = initial seed
0

For j = 0 to ...

XVAL = ( XKEY + optional user input ) (Mod 2^512)
j

X = G( t, XVAL )
j

XKEY = ( 1 + XKEY + X ) (Mod 2^512)
j+1 j j

Die so erzeugten Größen X sind die Pseudo-Zufallssequenz von 160-Bit-Werten. Zwei Funktionen können für "G" oben verwendet werden. Jede erzeugt einen 160-Bit-Wert und nimmt zwei Argumente, einen 160-Bit-Wert und einen 512-Bit-Wert.

Die erste basiert auf SHA-1 und funktioniert, indem die 5 Verknüpfungsvariablen, bezeichnet mit H mit Indizes in der SHA-1-Spezifikation, auf das erste Argument geteilt durch Fünftel gesetzt werden. Dann werden die Schritte (a) bis (e) von Abschnitt 7 der NIST SHA-1-Spezifikation über das zweite Argument ausgeführt, als ob es ein 512-Bit-Datenblock wäre. Die Werte der Verknüpfungsvariable nach diesen Schritten werden dann verkettet, um die Ausgabe von G zu erzeugen [SHA*].

Als alternative Methode definierte NIST auch eine alternative G-Funktion basierend auf mehrfachen Anwendungen der DES-Verschlüsselungsfunktion [DSS].