Outil pour utiliser un registre à décalage à rétroaction linéaire ou LFSR (linear feedback shift register) et générer des bits pseudo-aléatoires avec des 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 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 |
Choisir quels bits seront utilisés par la fonction XOR et lancer la ou les itérations.
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 tant que vous citez dCode !
Citer comme source bibliographique :
Registre à Décalage à Rétroaction Linéaire sur dCode.fr [site web en ligne], consulté le 08/02/2023,