メインコンテンツまでスキップ

7.1.3. Windows CryptGenRandom

7.1.3. Windows CryptGenRandom

Microsoftの広く展開されているWindowsオペレーティングシステムのユーザーへの推奨は, 一般的にCryptAPI暗号サービスプロバイダーでCryptGenRandom擬似乱数生成呼び出しを使用することです。これは, 暗号サービスプロバイダーライブラリへのハンドル, 呼び出し元がエントロピーを提供でき, 生成された擬似ランダム性が返されるバッファへのポインタ, および必要なランダム性のオクテット数の表示を取ります。

Windows CryptAPI暗号サービスプロバイダーは, すべてのユーザーでシード状態変数を保存します。CryptGenRandomが呼び出されると, これは呼び出しで提供されるランダム性と, プロセスID, スレッドID, システムクロック, システム時刻, システムカウンタ, メモリステータス, 空きディスククラスタ, ハッシュされたユーザー環境ブロックなどのさまざまなシステムおよびユーザーデータと結合されます。このデータはすべてSHA-1に供給され, 出力はRC4鍵ストリームをシードするために使用されます。その鍵ストリームは, 要求された擬似ランダムデータを生成し, ユーザーのシード状態変数を更新するために使用されます。

Windows ".NET"のユーザーは, RNGCryptoServiceProvider.GetBytesメソッドインターフェースを使用する方が簡単であると思うでしょう。

詳細については, [WSC]を参照してください。