2009-08-20 7 views
3

Je fais face à quelques problèmes de sécurité informatique à l'école en ce moment et je suis intéressé par la programmation générale des préférences publiques, des douanes, des idées etc. Si vous devez utiliser un générateur de nombres aléatoires ou un extracteur, lequel choisir? Pourquoi le choisissez-vous? Les propriétés mathématiques, déjà implémentées en package ou pour quelle raison? Est-ce que vous écrivez le vôtre ou utilisez un paquet?Pourquoi utilisez-vous un générateur/extracteur de nombres aléatoires?

+0

Il existe déjà des * piles * de questions PRNG. Qu'est-ce qui rend celui-ci différent? – dmckee

+0

http://stackoverflow.com/questions/1266261/what-is-a-good-fast-prng-non-cryptographically-secure http://stackoverflow.com/questions/167735/fast-pseudo-random-number- générateur-pour-procédural-contenu http://stackoverflow.com/questions/1247129/fast-generation-of-random-set-monte-carlo-simulation et ainsi de suite. Essayez cette recherche: http://stackoverflow.com/questions/tagged/random-number-generator – dmckee

+1

Aucun de ces trois prétendus doublons ne demande un PRNG sécurisé. Le premier dit explicitement non-crypto, le troisième est pour la simulation de Monte Carlo, et le milieu est pour générer des paysages. Les préoccupations sont complètement différentes. –

Répondre

0
+0

Vous savez que quand ce lien meurt, cette réponse sera complètement inutile. – tvanfosson

+0

C'est un serveur qui vous donne des bits. Si le lien meurt, le serveur est parti, donc bien sûr la réponse serait alors inutile. –

4

Si le temps de calcul n'est pas un objet, alors vous ne pouvez pas vous tromper avec Blum Blum Shub (http://en.wikipedia.org/wiki/Blum_blum_shub). De manière informelle, il est au moins aussi sûr (difficile à prévoir) que la factorisation entière.

2

dev/random, ou l'équivalent sur votre plateforme.

Renvoie des bits d'un pool d'entropie alimenté par des pilotes de périphérique. Pas besoin de s'inquiéter des propriétés mathématiques.

Si vous recherchez une PRNG cryptographiquement sécurisée, l'application répétée d'un hachage sécurisé à une grande graine est généralement la meilleure solution. Ne pas inventer votre propre algorithme, cependant, optez pour une version de Fortuna ou quelque chose d'autre raisonnablement bien passé en revue.

2

Les clés pour le cryptage des appels téléphoniques entre les présidents des États-Unis et de l'URSS étaient censées être générées par les rayons cosmiques. Nous l'avons vérifié dans le laboratoire de physique à l'univocité - leurs énergies donnent une vraie distribution gaussienne. ;-) Donc, pour le meilleur cryptage, vous devriez les utiliser, car une telle séquence aléatoire ne peut pas être rejouée. À moins, bien sûr, que votre adversaire construise secrètement un accélérateur de particules près de votre générateur de nombres aléatoires.

Ah ... à propos des ordinateurs ... Eh bien, acquérir un flux qui vient de quelque chose de physique, non calculé./dev/random est la solution la plus simple, mais votre compteur Geiger fabriqué à la main et connecté à l'USB vous donnera le meilleur rendu possible.

1

Pour un projet de petite école, j'utiliserais tout ce que le système d'exploitation fournit pour la génération de nombres aléatoires.

Pour une application de sécurité sérieuse (par exemple: COMSEC-cryptage de niveau), j'utilise un générateur de nombres aléatoires matériel. Les algorithmes purs sans accès matériel par définition ne produisent pas de nombres aléatoires.

Questions connexes