IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La génération matérielle de nombres aléatoires
Un tutoriel de Guy Grave

Le , par LittleWhite

37PARTAGES

8  0 
Bonjour à tous,

J'ai le plaisir de vous proposer un tutoriel écrit par Guy Grave, alias mewtow, sur la génération matérielle de nombres aléatoires.

Bonne lecture.

Lire le tutoriel
Voir les autres cours et tutoriels de la rubrique Hardware

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de
https://www.developpez.com
Le 05/08/2016 à 13:12
Citation Envoyé par Epok__ Voir le message
Tout d'abord, si on décale vers la *gauche*, c'est le bit de poids *faible* qui prend une nouvelle valeur. Vu la suite de l'exemple, je suppose que le décalage dont on parle est en réalité un décalage vers la *droite*.
C'est bien un décalage vers la gauche, mais j'ai inversé bit de poids fort et bit de poids faible.

Citation Envoyé par Epok__ Voir le message
Une petite question, par contre, concernant la génération par désynchronisation d'horloge : je suppose qu'il faut deux sources d'horloges indépendantes pour obtenir ce résultat ; si on génère l'horloge lente à partir de l'horloge rapide, on a une synchronisation implicite ? Si oui, cette technique est-elle possible si un seul quartz est présent ? je prends un exemple concret sur une carte que j'utilise : est-ce possible à mettre en œuvre sur une carte de type ZedBoard, où, il me semble, il n'y a qu'une seule source d'horloge ? (Je peux me tromper sur ce point).
Ça peut marcher, vu que le circuit qui multiplie la fréquence de base n'est pas fabriqué avec des composants parfaits, qu'il est soumis à des variations de température, et ainsi de suite : cela créera des déphasages transitoire, qui seront à l'origine d'une dérive d'horloge.
2  0 
Avatar de Epok__
Nouveau membre du Club https://www.developpez.com
Le 05/08/2016 à 10:56
Bonjour,

Une première remarque après avoir lu uniquement l'intro ; il y a déjà une confusion sur la notion de décalage :
- Tout d'abord, si on décale vers la *gauche*, c'est le bit de poids *faible* qui prend une nouvelle valeur. Vu la suite de l'exemple, je suppose que le décalage dont on parle est en réalité un décalage vers la *droite*.
- Ensuite, pour pinailler, lorsque l'on décale, en réalité, on ne met pas toujours un 1 ou toujours un 0. Cela dépends de si l'on fait un décalage logique ou arithmétique. Un décalage logique fera toujours rentrer un 0, quel que soit le sens du décalage, tandis qu'un décalage arithmétique fera rentrer un 0 lors d'un décalage vers la gauche, mais fera rentrer un bit dont la valeur est égale au bit de poids fort lors d'un décalage vers la droite, ceci afin de préserver le signe de l'opérande, et de conserver la signification mathématique (division par 2) y compris pour les nombres négatifs en complément à 2. Après, on peut bien sûr avoir un registre à décalage customisé, dans une situation particulière, qui ferait toujours rentrer un 1 ou un 0 (par exemple dans un buffer). Mais c'était juste pour faire remarquer que le *toujours* un 1 ou *toujours* un 0 est un raccourci un peu rapide...

Voilà pour mon petit grain de sel ;-). Je continue la lecture de l'article, je suis justement à la recherche d'un générateur matériel aléatoire, merci donc pour cet article qui tombe bien.

EDIT : J'ai terminé la lecture, très bon article qui explique les choses assez clairement. Je ne pensais pas que le fonctionnement des générateurs aléatoires à registre à décalage était si simple. Merci donc pour cet article.
Une petite question, par contre, concernant la génération par désynchronisation d'horloge : je suppose qu'il faut deux sources d'horloges indépendantes pour obtenir ce résultat ; si on génère l'horloge lente à partir de l'horloge rapide, on a une synchronisation implicite ? Si oui, cette technique est-elle possible si un seul quartz est présent ? je prends un exemple concret sur une carte que j'utilise : est-ce possible à mettre en œuvre sur une carte de type ZedBoard, où, il me semble, il n'y a qu'une seule source d'horloge ? (Je peux me tromper sur ce point).
0  0 
Avatar de Epok__
Nouveau membre du Club https://www.developpez.com
Le 05/08/2016 à 13:23
@mewtow:

Ok, merci pour ces précisions.
0  0 
Avatar de
https://www.developpez.com
Le 05/08/2016 à 12:59
Si tu veux les défaillances physiques et logiques proposent parfois un meilleur système aléatoire, surtout si elles ne sont pas manipulé de façons volontaire.
C'est une façon de sortir de l'algorithme connu pour tombé sur l'imprévu.

Il m'a souvent été dit que l'aléatoire dépendait de l'échelle. Exemple : compliqué à déterminer pour des humains ayant moins de moyens pour le déterminer ou plus facile avec l'usage d'outils informatisé connaissant parfaitement l'environnement de génération du "facteur" aléatoire. Se n'est pas forcément un nombre.

Je comparerais le vrai aléatoire à une mesure sans temporel et non mathématique, puisque seul l'échantillonnage donne un chiffre ou un nombre.
0  2 
Avatar de
https://www.developpez.com
Le 05/08/2016 à 10:06
Sa m'a rappelé beaucoup de souvenir d'étude.
0  3