Zum Hauptinhalt springen

7.1.3. Windows CryptGenRandom

7.1.3. Windows CryptGenRandom

Microsofts Empfehlung an Benutzer des weit verbreiteten Windows-Betriebssystems ist im Allgemeinen, den CryptGenRandom-Pseudo-Zufallszahlengenerierungsaufruf mit dem CryptAPI-Kryptographie-Service-Provider zu verwenden. Dieser nimmt ein Handle zu einer Kryptographie-Service-Provider-Bibliothek, einen Zeiger auf einen Puffer, über den der Aufrufer Entropie bereitstellen kann und in den die generierte Pseudo-Zufälligkeit zurückgegeben wird, und eine Angabe, wie viele Oktette Zufälligkeit gewünscht sind.

Der Windows CryptAPI-Kryptographie-Service-Provider speichert eine Seed-Zustandsvariable bei jedem Benutzer. Wenn CryptGenRandom aufgerufen wird, wird diese mit jeglicher Zufälligkeit kombiniert, die im Aufruf bereitgestellt wird, und mit verschiedenen System- und Benutzerdaten wie der Prozess-ID, Thread-ID, Systemuhr, Systemzeit, Systemzähler, Speicherstatus, freien Festplatten-Clustern und gehashtem Benutzerumgebungsblock. Diese Daten werden alle an SHA-1 übergeben, und die Ausgabe wird verwendet, um einen RC4-Schlüsselstrom zu seeden. Dieser Schlüsselstrom wird verwendet, um die angeforderten Pseudo-Zufallsdaten zu produzieren und die Seed-Zustandsvariable des Benutzers zu aktualisieren.

Benutzer von Windows ".NET" werden es wahrscheinlich einfacher finden, die RNGCryptoServiceProvider.GetBytes-Methodenschnittstelle zu verwenden.

Für weitere Informationen siehe [WSC].