7.1.3. Windows CryptGenRandom
7.1.3. Windows CryptGenRandom
La recommandation de Microsoft aux utilisateurs du système d'exploitation Windows largement déployé est généralement d'utiliser l'appel de génération de nombres pseudo-aléatoires CryptGenRandom avec le fournisseur de services cryptographiques CryptAPI. Cela prend un handle vers une bibliothèque de fournisseur de services cryptographiques, un pointeur vers un tampon par lequel l'appelant peut fournir de l'entropie et dans lequel le pseudo-aléa généré est retourné, et une indication du nombre d'octets d'aléa désirés.
Le fournisseur de services cryptographiques CryptAPI de Windows stocke une variable d'état de graine avec chaque utilisateur. Lorsque CryptGenRandom est appelé, cela est combiné avec tout aléa fourni dans l'appel et avec diverses données système et utilisateur telles que l'ID de processus, l'ID de thread, l'horloge système, le temps système, le compteur système, le statut de mémoire, les clusters de disque libres et le bloc d'environnement utilisateur haché. Toutes ces données sont alimentées à SHA-1, et la sortie est utilisée pour amorcer un flux de clés RC4. Ce flux de clés est utilisé pour produire les données pseudo-aléatoires demandées et pour mettre à jour la variable d'état de graine de l'utilisateur.
Les utilisateurs de Windows ".NET" trouveront probablement plus facile d'utiliser l'interface de méthode RNGCryptoServiceProvider.GetBytes.
Pour plus d'informations, voir [WSC].