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". Tout algorithme pour "Registre à Décalage à Rétroaction Linéaire", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes 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 toute base de données, ou accès API à "Registre à Décalage à Rétroaction Linéaire" ou tout autre élément ne sont pas publics (sauf licence open source explicite type Creative Commons). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Registre à Décalage à Rétroaction Linéaire" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source.
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Registre à Décalage à Rétroaction Linéaire sur dCode.fr [site web en ligne], consulté le 22/04/2025,