2 votes

Est-il possible de créer des nombres aléatoires synchronisés sur deux appareils différents ?

Est-ce qu'il y a un moyen sûr de créer les mêmes nombres aléatoires sur deux appareils différents sous java sans que l'utilisateur/codeur puisse prédire le nombre suivant ou la série de nombres entiers ? J'ai pensé à une initiation synchronisée, par exemple les utilisateurs entrent les mêmes nombres au moment de l'exécution du programme. Ce nombre peut être traité avec des techniques cryptographiques ( ?) et ensuite générer la même série de nombres sur les deux appareils. Mais je ne sais vraiment pas comment faire et dans quelle mesure c'est sûr ?

Note : J'ai fait des recherches, mais je n'ai pas assez de connaissances pour cette situation spécifique.

1voto

rossum Points 7191

Vous voulez un RNG sécurisé. Malheureusement, les RNG sécurisés sont conçus pour ne pas produire les mêmes résultats sur différentes machines, car ils intègrent des flux d'entropie spécifiques à chaque machine.

Je vous suggère d'utiliser un AES en mode ECB et de crypter les nombres 0, 1, 2, 3, ... en utilisant la même clé sur les deux machines. Si vous ne voulez pas d'un résultat de 128 bits (un bloc AES est composé de 128 bits), acceptez d'utiliser soit les n premiers bits, soit les n derniers bits du bloc. Si les deux machines restent en phase, chacune produira le même résultat pseudo-aléatoire dans le même ordre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X