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 ? Ecrire à 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ération, 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 suffisament longue.
A partir d'un état actuel du registre, une sélection de bit est choisie pour lui appliquée 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 |
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, tablette, appli iPhone ou Android !
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 la source en ligne
Rappel : dCode est gratuit.