Outil pour exploiter un registre à décalage à rétroaction linéaire (LFSR) et génération de bits pseudo-aléatoires via opérateur XOR.
Registre à Décalage à Rétroaction Linéaire - dCode
Catégorie(s) : Informatique
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Un registre à décalage à rétroaction linéaire ou LFSR (pour linear feedback shift register en anglais) est un système générant des bits à partir d'un registre et d'une fonction de rétroaction.
Après plusieurs itérations, le registre revient à un état antérieur déjà connu et repart en boucle dont le nombre d'itération est appelé sa période.
En pratique, ce genre de registre LFSR est utile en cryptographie car il permet la génération de nombres pseudo-aléatoires lorsque la période est suffisamment longue.
A partir d'un état actuel du registre binaire, une sélection de bit à basculer est choisie pour lui appliquer une opération XOR.
Le résultat est alors concaténé au début du registre (à gauche) tandis que la valeur finale (à droite) est supprimée du registre et affichée en sortie.
Exemple : Le registre est 1010, un XOR ⊕ est appliqué sur les bits 0 et 2 (numérotés de gauche à droite à partir de 0)
Etape | Registre | Calcul XOR | Sortie |
---|---|---|---|
0 | _______0101 | 0 ⊕ 0 = 0 | |
1 | ______0010_ | 0 ⊕ 1 = 1 | 1 |
2 | _____1001__ | 1 ⊕ 0 = 1 | 0 |
3 | ____1100___ | 1 ⊕ 0 = 1 | 1 |
4 | ___1110____ | 1 ⊕ 1 = 0 | 0 |
5 | __0111_____ | 0 ⊕ 1 = 1 | 0 |
6 | _1011______ | 0 ⊕ 1 = 1 | 1 |
7 | 0101_______ | 0 ⊕ 0 = 0 | 1 |
Pour utiliser un LFSR, l'utilisateur doit configurer la longueur du registre, déterminer la configuration initiale des bascules, choisir une fonction de rétroaction linéaire appropriée (XOR) et spécifier le nombre d'itérations/cycles nécessaires pour générer la séquence désirée.
La période d'un LFSR est le nombre d'itérations nécessaires pour que la séquence générée revienne à son état initial.
Si le registre est à rétroaction maximale, il n'y a pas de répétition, sauf au bout de 2^n - 1 itération, avec n la longueur du registre.
dCode se réserve la propriété du code source pour "Registre à Décalage à Rétroaction Linéaire". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Registre à Décalage à Rétroaction Linéaire", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Registre à Décalage à Rétroaction Linéaire" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "Registre à Décalage à Rétroaction Linéaire" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Registre à Décalage à Rétroaction Linéaire" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Registre à Décalage à Rétroaction Linéaire sur dCode.fr [site web en ligne], consulté le 21/12/2024,