Le vrai générateur de nombres aléatoires sous Linux génère de vrais nombres aléatoires

J'ai trouvé un moyen d'obtenir un vrai nombre aléatoire en lisant le livre sur le noyau Linux.

Le noyau Linux place le bruit généré par le matériel physique de la machine (comme les coups de clavier, les temps d'interruption, la fréquence, la température, etc.) dans le pool d'entropie du système / dev / random et / dev / urandom, qui est le piscine d'entropie. Une partie des données aléatoires de / dev / random n'est placée dans le pool d'entropie que pour atteindre une certaine valeur d'entropie, par exemple, lorsqu'elle atteint une valeur d'entropie relativement élevée, les données sont les plus désordonnées à ce moment-là, donc lire le hasard dans / dev / random Les données seront bloquées (le caractère aléatoire du pool d'entropie, c'est-à-dire que la valeur d'entropie globale atteint un certain niveau, il y aura des données aléatoires), mais ses performances aléatoires sont meilleures que / dev / urandom et / dev / urandom peuvent déjà répondre aux exigences. Les exigences de chiffrement sont très élevées et des nombres aléatoires sont nécessaires.

[root @ test59 ~] # vi random.c

#include <stdio.h>

int main (int argc, char ** args)
{     unsigned long * seed = malloc (sizeof (unsigned long));     FICHIER * fichier = fopen ("/ dev / random", "r");     printf ("% d / n", sizeof (non signé));     int i;      for (i = 0; i <9999; ++ i)     {         fread (seed, 1, sizeof (unsigned long), file);         printf ("% lld / n", * valeur de départ);     }     return 1; }










[root @ test59 ~] # gcc random.c       
[root @ test59 ~] # ./a.out

Quatre
19941251665
19270289895
17908196899
19952896273
19796292007
20353450353
21115463529
20863995845
18673226572
18264664191
20194203122
17676988606
18187335585
17527617129
18539147318
17684736786
19253561163
17469991849

 

Je suppose que tu aimes

Origine blog.csdn.net/jrckkyy/article/details/6083845
conseillé
Classement