Utilisateur:Jérôme Desroziers/Brouillon

Une page de Wikipédia, l'encyclopédie libre.

Cette page a été fusionnée avec la page Registre à décalage à rétroaction linéaire et n'est plus mise à jour depuis le 17 décembre 2013.


Les registres à décalage à rétroaction linaire, souvent notés par l'acronyme anglophone LFSR venant de Linear Feedback Shift Register dans la littérature scientifique sont exploités depuis longtemps dans les domaines de l'informatique et plus spécialement dans les domaines du codage et de la cryptographie. L’étendue des applications est très large (chiffrement des communications, auto-test des composants électroniques, gestion des erreurs lors des copies de données,...) Bien qu'ils existent sous forme logiciel, c'est la configuration matérielle qui est la plus populaire car c'est une solution simple, peu couteuse et très efficace (un registre à décalage associé à une fonction d'opération logique) Ils sont décrits par des fonctions mathématiques.


Principe[modifier | modifier le code]

Principe de base d'un registre à décalage 8 bits à rétroaction linéaire à base de XOR initialisé avec 01110101.

Un LFSR est un dispositif dérivé du registre à décalage de type SIPO, Serial In - Parallel Out, dans lequel un ou plusieurs « étages » du registre subissent une transformation pour être réinjectés en entrée de celui-ci[1].

Il est dit de longueur «  » lorsqu'il est composé de éléments appelés « étages » ou « cellules », le contenu de l'ensemble de ces éléments à un moment «  » est l'état du LFSR à ce moment[2]. A chaque top d'horloge le contenu d'un étage est transféré au suivant et le premier est rempli par le résultat d'une fonction linéaire qui prend en compte l'état d'un ou de plusieurs étages[2].

Exemple[modifier | modifier le code]

LFSR à 4 bits[3]
Horloge Etat du LFSR Sortie
0 0 1 1 0 -
1 1 0 1 1 0
2 0 1 0 1 1
3 0 0 1 0 1
4 0 0 0 1 0
5 1 0 0 0 1
6 1 1 0 0 0
7 0 1 1 0 0

Exemple des états successifs d'un LFSR à 4 bits avec une connexion des bits 1, 2 et 4 au niveau de la fonction de retour :

  • à l'état initial du LFSR est 0 1 1 0,
  • à le bit d'entrée vaut 1 , l'état du LFSR est 1 0 1 1 et le bit de sortie vaut 0,
  • à le bit d'entrée vaut 0 , l'état du LFSR est 0 1 0 1 et le bit de sortie vaut 1,
  • ...
  • à le bit d'entrée vaut 1 , l'état du LFSR est 1 1 0 0 et le bit de sortie vaut 0,
  • à le bit d'entrée vaut 1 , l'état du LFSR est 0 1 1 0 et le bit de sortie vaut 0.


Au septième top d'horloge l'état du registre est identique à son état initial. On dit que le LFSR est de période 7[3].

Modèles mathématiques[modifier | modifier le code]

Conception[modifier | modifier le code]

Conception d'un LFSR

Un LFSR est défini comme suit sur [4] :

  • un entier qui est sa taille
  • un état initial à éléments sur
  • une fonction linéaire de retour
  • on calcul
  • on fait entrer et fait sortir
  • on obtient une nouvelle séquence de sortie

Définitions[modifier | modifier le code]

Taille

Si un LFSR a étages alors il est de taille .

Coefficients de connexion

Soit éléments dans notés . Ils sont appelés les coefficients de connexion du LFSR[5].

Fonction de retour

est définie par [2].

Séquence

La séquence d'un LFSR est l'état des étages à un moment .

Elle satisfait la récursivité suivante : [5].

On peut la trouver aussi écrite sous la forme suivante : [1].

Triplet

Un LFSR peut être défini comme un triplet ou [5].

Fonction génératrice

L'étude des LFSRs via les série formelle permet de connaître leur fonction génératrice. Elle est définie par sur [6],[7].


Remarque : en général on construit les LFSRs sur et est alors une fonction booléenne.

Représentation polynomiale[modifier | modifier le code]

Polynôme de rétroaction

Soit un LFSR défini par le triplet . Son polynôme de rétroaction, appelé aussi polynôme caractéristique, est [8].

Exemple : Un LFSR aura comme polynôme de rétroaction .


Polynôme de connexion

Pour un LFSR défini par le triplet , le polynôme de connexion est dans [6],[7].

Exemple : Un LFSR aura comme polynôme de connexion .

Périodicité[modifier | modifier le code]

Puisque la prochaine valeur d'entrée d'un LFSR dépend uniquement des valeurs de certains étages de celui-ci et que l'état « tout à zéro » ne génère jamais de changement sa séquence est de période maximale sur est la taille du registre[9],[10].

Une séquence d'un LFSR sur avec une période est la taille du registre est appelé une « m-sequence (en) »[3],[9].

Exemple : Un LFSR aura une période maximale de .

Algorithme de Berlekamp-Massey[modifier | modifier le code]

Introduit en 1969 par James Massey l'algorithme de Berlekamp-Massey (en) permet d'obtenir le plus petit LFSR possible pour une séquence de sortie choisie[11]. Il suffit de capter bits consécutifs d'une m-séquence de période pour pouvoir reconstruire la séquence entièrement[12].


Description de l'algorithme[13] :

En entrée : Les éléments d'une séquence récurrente de manière linéaire définie sur avec donnés par la liste . Le polynôme minimal est de degré limite .

En sortie : Le polynôme caractéristique minimal de la séquence.

Début

Variables locales
sont des polynômes de .
Initialisation
Boucle, tant que faire :
quotient de la division de par
reste de la division de par
Fin boucle
Retour
.

Fin


Modes de connexion[modifier | modifier le code]

Le mode le plus naturel pour représenter la connexion entre les différents étages du registre est le mode dit de « Fibonacci ». Il est appelé ainsi car la suite de Fibonacci se représente dans ce mode. En 2002 Andy Klapper et Mark Goresky mettent en place le mode dit de « Galois »[14],[15].

Fibonacci[modifier | modifier le code]

LFSR de Fibonacci à 8 bits

Un registre en mode Fibonacci applique strictement la définition d'un LFSR : les contenus des différents étages sont ajoutés ou non les uns aux autres, le résultat de cette addition est ensuite placé dans l'étage d'entrée du registre et tous les étages subissent un décalage vers la sortie[14],[16].

Galois[modifier | modifier le code]

Exemple d'un LFSR Galois à 8 bits

Dans le mode dit de Galois le contenu de l'étage de sortie est ajouté ou non au contenu des étages du registre puis tous les étages subissent un décalage vers la sortie et le contenu de l'étage sortant est réinjecté dans l'étage d'entrée[17].

Au niveau matériel les LFSRs sont souvent mis en œuvre en utilisant ce mode car celui-ci est plus rapide et présente moins de latence que le mode Fibonacci puisque les étages sont mis à jour simultanément[18],[19].

Applications[modifier | modifier le code]

Les LFSRS existent sous deux formes: matériel et logiciel, mais c'est surtout la première configuration qui est utilisée car elle est simple à mettre en œuvre (matériel peu onéreux associé à un algorithme de traitement simple). [15]

L'usage de cette technologie peut se retrouver dans les domaines suivants : [3]


Cryptographie[modifier | modifier le code]

Schéma du A5/1 et ses trois registres à décalage. Un registre est décalé si le bit en orange correspond à la majorité des trois bits orange. On insère alors un bit correspondant à un XOR entre les bits en bleu.
Schéma d'un tour de RC4

Les LFSR sont utilisés depuis longtemps dans la cryptographie (principalement militaire) car ils sont faciles à mettre en œuvre. Cependant, ce système de type linéaire devient de plus en plus vulnérable et les nouveaux systèmes de cryptage l'utilisant encore sont combinés à d'autres technologies comme les FPGA[pas clair][20]

Les LFSRs sont des candidats naturels de générateur de nombres pseudo-aléatoires qui assurent un chiffrement de flux utilisé par la cryptographie[réf. nécessaire].

Le registre est initialisé avec une valeur n qui constitue la clé secrète[évasif][réf. nécessaire].

L’inconvénient est que système est facilement cassable, c'est[style à revoir] J.Massey qui a montré que l'algorithme proposé par Berlekamp (décodage BCH) permet aussi de retrouver le polynôme de rétroaction à partir de 2n bits consécutifs[réf. nécessaire].

Exemples d'algorithmes cryptographique utilisant les LFSRs :

  • A5/1: Chiffrement des communications GSM, il est basé sur 3 LFSRs de 19,22 et 23 bits
  • RC4: Chiffrement SSL ou WEP

Contrôle de redondance cycliques[modifier | modifier le code]

Le Contrôle de redondance cyclique que l'on retrouve sous le nom de CRC est un dispositif de contrôle d'erreur lors des transmissions de donnés brutes dans le domaine du réseau, le stockage numérique ou encore dans la compression de donnée.[21]

Les composants hardware LFSR sont un des moyens facile et bon marché pour generer des suite pseudo-aléatoire utilisées par ces procédés. [21]

Il existe plusieurs type de CRC selon les applications: [3]

Application Type taille LFSR
CRC CRC-12 12
CRC-16 16
réseau ATM CRC-32 32

Auto-test des matériels informatique[modifier | modifier le code]

Le test des circuits électroniques a été longtemps problématique car les solutions existantes donnant des temps de réponses corrects étaient souvent très onéreux. Le coût n'est pas le seul problème, il faut aussi que le dispositif puisse répondre à 2 problématiques :

  • Le temps

Il ne faut pas que le que le mécanisme consomme trop de temps à générer échantillonnage de test au détriment de l'efficacité du composant

  • Le volume de donnée

La taille de échantillonnage peut devenir tellement grande que le test n'est plus efficace.[22]

La technologie Built-in self-test ou BIST est une méthode de test des composants électroniques qui s'appuie sur plusieurs mécanismes :

  • Technique de parité
  • Technique de comptage
  • LFSRs [23]

Les tests aléatoires sur une partie du composant suppose de pouvoir agir sur un échantillonnage des données du composant. [24]

Compteurs[modifier | modifier le code]

Les compteurs binaires sont à la base de nombreux circuits électroniques. Les LFSRs peuvent être utilisés en remplacement des compteurs binaires traditionnels.[25] Ils sont beaucoup plus rapide car ils sont une architecture plus simple (bascule synchrone et XOR) et pour les compteurs standards (bascule synchrone, logique de porte et carry chain circuit)

Traitement numérique du signal[modifier | modifier le code]

Télécommunications[modifier | modifier le code]

Les LFSR sont utilisés dans les télécommunications pour certain type de brouilleur


Autres[modifier | modifier le code]

Les suites pseudo-aléatoire générées par les LFSR sont utilisées dans des programmes informatiques (jeux vidéos, graphisme,..)

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Document utilisé pour la rédaction de l’article : document utilisé comme source pour la rédaction de cet article.

  • (en) W. Liang et Jing Long, « A cryptographic algorithm based on Linear Feedback Shift Register », Computer Application and System Modeling (ICCASM), 2010 International Conference on,‎ (DOI 10.1109/ICCASM.2010.5622523) Document utilisé pour la rédaction de l’article
  • (en) Bernard Elspas, « The Theory of Autonomous Linear Sequential Networks », Circuit Theory, IRE Transactions on,‎ , p. 45-60 (ISSN 0096-2007, DOI 10.1109/TCT.1959.1086506) Document utilisé pour la rédaction de l’article
  • (en) N.P. Cagigal et S. Bracho, « Algorithmic determination of linear-feedback in a shift register for pseudorandom binary sequence generation », Electronic Circuits and Systems, IEE Proceedings G,‎ , p. 191-194 (ISSN 0143-7089, DOI 10.1049/ip-g-1:19860031) Document utilisé pour la rédaction de l’article
  • (en) Lauradoux, « From Hardware to Software Synthesis of Linear Feedback Shift Registers », Parallel and Distributed Processing Symposium, 2007. IPDPS 2007. IEEE International,‎ , p. 1-8 (DOI 10.1109/IPDPS.2007.370643) Document utilisé pour la rédaction de l’article
  • (en) « Optical linear feedback shift register », Lasers and Electro-Optics Europe (CLEO EUROPE/EQEC), 2011 Conference on and 12th European Quantum Electronics Conference,‎ , p. 1 (ISSN Pending[à vérifier : ISSN invalide], DOI 10.1109/CLEOE.2011.5942992)
  • (en) « A multiple seed linear feedback shift register », Computers, IEEE Transactions on,‎ , p. 250-252 (ISSN 0018-9340, DOI 10.1109/12.123404)
  • (en) « Linear feedback shift register design using cyclic codes », Computers, IEEE Transactions on,‎ , p. 1302-1306 (ISSN 0018-9340, DOI 10.1109/12.5994)
  • (en) « Deterministic built-in self-test using multiple linear feedback shift registers for test power and test volume reduction », Computers & Digital Techniques, IET,‎ , p. 317-324 (ISSN 1751-8601, DOI 10.1049/iet-cdt.2009.0092)
  • (en) « Analysis of the Berlekamp-Massey Linear Feedback Shift-Register Synthesis Algorithm », IBM Journal of Research and Development,‎ , p. 204-212 (ISSN 0018-8646, DOI 10.1147/rd.203.0204)
  • (en) D.G. Maritsas, A.C. Arvillias et A.C. Bounas, « Phase-Shift Analysis of Linear Feedback Shift Register Structures Generating Pseudorandom Sequences », Computers, IEEE Transactions on,‎ , p. 660-669 (ISSN 0018-9340, DOI 10.1109/TC.1978.1675166)
  • (en) Arvind M Patel, « A multi-channel CRC register », AFIPS '71 (Spring) Proceedings of the May 18-20, 1971, spring joint computer conference,‎ , p. 11-14 (DOI 10.1145/1478786.1478789)
  • (en) J. Lawrence Carter, « The theory of signature testing for VLSI », STOC '82 Proceedings of the fourteenth annual ACM symposium on Theory of computing,‎ , p. 66-76 (DOI 10.1145/800070.802178)
  • (en) W.B. Jone et C.A. Papachristou, « A coordinated approach to partitioning and test pattern generation for pseudoexhaustive testing », DAC '89 Proceedings of the 26th ACM/IEEE Design Automation Conference,‎ , p. 525-534 (DOI 10.1145/74382.74470)
  • (en) Salvatore Filippone, Paolo Santangelo et Marcello Vitaletti, « A vectorized long-period shift-register random number generator », Supercomputing '90: Proceedings of the 1990 ACM/IEEE conference on Supercomputing,‎ , p. 676-684
  • (en) Li-Ren Huang, Sy-Yen Kuo et Ing-Yi Chen, « A Gauss-elimination based PRPG for combinational circuits », EDTC '95 Proceedings of the 1995 European conference on Design and Test,‎ , p. 212
  • (en) Laurence Goodby et Alex Orailoğlu, « Pseudorandom-pattern test resistance in high-performance DSP datapaths », DAC '96 Proceedings of the 33rd annual Design Automation,‎ , p. 813-818 (DOI 10.1145/240518.240671)
  • (en) D.V. Sarwate, « Mean-square correlation of shift-register sequences », Communications, Radar and Signal Processing, IEE Proceedings F,‎ , p. 101-106 (ISSN 0143-7070, DOI 10.1049/ip-f-1:19840018)
  • (en) Ahmad Zawawi, Bin Seman Kamaruzzaman et Nurzi Juana Mohd Zaizi, « Randomness analysis on grain - 128 stream cipher », International Conference on Mathematical Sciences and Statistics 2013,‎ (DOI 10.1063/1.4823866)
  • (en) A. Ahmad, Sameer Al-Busaidi et Ahmed Al-Naamany, Measurement techniques of lfsr sequences, . Ouvrage utilisé pour la rédaction de l'article
  • (en) M. Goresky et A.M. Klapper, « Fibonacci and Galois representations of feedback-with-carry shift registers », Information Theory, IEEE Transactions on,‎ , p. 2826-2836 (ISSN 0018-9448, DOI 10.1109/TIT.2002.804048) Document utilisé pour la rédaction de l’article
  • (en) Andreas Klein, « Linear Feedback Shift Registers », Stream Ciphers,‎ , p. 17-58 (DOI 10.1007/978-1-4471-5079-4) Document utilisé pour la rédaction de l’article
  • (en) J.L. Massey, « Shift-Register Syntheses and BCH Decoding », Information Theory, IEEE Transactions on,‎ , p. 122-127 (ISSN 0018-9448, DOI 10.1109/TIT.1969.1054260)
  • Anne Canteaut, Attaques de cryptosystèmes à mots de poids faible et construction de fonctions t-résilientes, , 147-167 p. (lire en ligne)
  • (en) P.H. Bardell et W.H. McAnney, « Pseudorandom Arrays for Built-In Tests », Computers, IEEE Transactions on,‎ , p. 653-658 (ISSN 0018-9340, DOI 10.1109/TC.1986.1676810)
  • (en) T.K. Moon, « Chapter 4. Cyclic Codes, Rings, and Polynomials », Error Correction Coding: Mathematical Methods and Algorithms,‎ , p. 154-170 (DOI 10.1002/0471739219.ch4) Document utilisé pour la rédaction de l’article
  • (en) Dai Zongduo et Wan Zhexian, « A relationship between the Berlekamp-Massey and the euclidean algorithms for linear feedback shift register synthesis », Acta Mathematica Sinica,‎ , p. 55-63 (ISSN 1439-8516, DOI 10.1007/BF02560313)
  • (en) Nadia Ben Atti, Gema M. Diaz–Toca et Henri Lombardi, « The Berlekamp-Massey Algorithm revisited », Applicable Algebra in Engineering, Communication and Computing,‎ , p. 75-82 (ISSN 0938-1279, DOI 10.1007/s00200-005-0190-z) Document utilisé pour la rédaction de l’article
  • (en) S.B. Gashkov et I.B. Gashkov, « Berlekamp—Massey Algorithm, Continued Fractions, Pade Approximations, and Orthogonal Polynomials », Mathematical Notes,‎ , p. 41-54 (ISSN 0001-4346, DOI 10.1007/s11006-006-0004-z)
  • (en) Antoine Joux et Pascal Delaunay, « Galois LFSR, Embedded Devices and Side Channel Weaknesses », Progress in Cryptology - INDOCRYPT 2006,‎ , p. 436-451 (ISSN 0302-9743, DOI 10.1007/11941378_31) Document utilisé pour la rédaction de l’article
  • Abdelaziz Marjane, Conception Vectorielle de Registre à rétroaction avec retenue sur les corps finis, (lire en ligne). Ouvrage utilisé pour la rédaction de l'article
  • (en) J.A. Reeds et J.A. Sloane, « Shift Register Synthesis (Modulo m) », SIAM Journal on Computing,‎ , p. 505-513 (ISSN 00975397[à vérifier : ISSN invalide], DOI 10.1137/0214038) Document utilisé pour la rédaction de l’article
  • (en) T.N. Rajashekhara, « Signature analyzers in built-in self-test circuits: a perspective », Southern Tier Technical Conference,‎ , p. 275-281 (DOI 10.1109/STIER.1990.324654)
  • (en) M. Koutsoupia, E. Kalligeros et X. Kavousianos, « LFSR-based test-data compression with self-stoppable seeds », Design, Automation & Test in Europe Conference & Exhibition,‎ , p. 1482-1487 (ISSN 1530-1591, DOI 10.1109/DATE.2009.5090897)
  • (en) A. Ajane, P.M. Furth et E.E. Johnson, « Comparison of binary and LFSR counters and efficient LFSR decoding algorithm », Circuits and Systems (MWSCAS), 2011 IEEE 54th International Midwest Symposium on,‎ , p. 1548-3746 (ISSN 1548-3746, DOI 10.1109/MWSCAS.2011.6026392) Document utilisé pour la rédaction de l’article
  • (en) H Rizk, C Papachristou et F Wolff, « Designing self test programs for embedded DSP cores », Design, Automation and Test in Europe Conference and Exhibition, 2004. Proceedings,‎ , p. 816 - 821 (ISSN 1530-1591, DOI 10.1109/DATE.2004.1268982)
  • (en) T. Jamil et A. Ahmad, « An investigation into the application of linear feedback shift registers for steganography », SoutheastCon, 2002. Proceedings IEEE,‎ , p. 239-244 (DOI 10.1109/.2002.995594)
  • (en) T Siegenthaler, « Decrypting a Class of Stream Ciphers Using Ciphertext Only », Computers, IEEE Transactions on,‎ , p. 81 - 85 (ISSN 0018-9340, DOI 10.1109/TC.1985.1676518)
  • (en) J. E. Meggitt, « Error correcting codes and their implementation for data transmission systems », Information Theory, IRE Transactions on,‎ , p. 234-244 (ISSN 0096-1000, DOI 10.1109/TIT.1961.1057659)
  • (en) R. David, « Testing by Feedback Shift Register », Computers, IEEE Transactions on,‎ , p. 668-673 (ISSN 0018-9340, DOI 10.1109/TC.1980.1675641)
  • (en) W. Daehn et J. Mucha, « A hardware approach to self-testing of large programmable logic arrays », Circuits and Systems, IEEE Transactions on,‎ , p. 1033-1037 (ISSN 0098-4094, DOI 10.1109/TCS.1981.1084933)
  • (en) S. Pupolin et Carlo Tomasi, « Moments of the Weights of Pseudo-Noise Subsequences », Military Communications Conference - Progress in Spread Spectrum Communications, 1982. MILCOM 1982. IEEE,‎ , p. 15.3-1-15.3-4 (DOI 10.1109/MILCOM.1982.4805920)
  • (en) T. Siegenthaler, « Decrypting a Class of Stream Ciphers Using Ciphertext Only », Computers, IEEE Transactions on,‎ , p. 81-85 (ISSN 0018-9340, DOI 10.1109/TC.1985.1676518)
  • (en) E.J. McCluskey, « Built-In Self-Test Techniques », Design & Test of Computers, IEEE,‎ , p. 21-28 (ISSN 0740-7475, DOI 10.1109/MDT.1985.294856)
  • (en) W.G. Chambers, « Clock-controlled shift registers in binary sequence generators », Computers and Digital Techniques, IEE Proceedings E,‎ , p. 17-24 (ISSN 0143-7062)
  • (en) S. Sastry et M. Breuer, « Detectability of CMOS stuck-open faults using random and pseudorandom test sequences », Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on,‎ , p. 933-946 (ISSN 0278-0070, DOI 10.1109/43.7792)
  • (en) A. Ahmad, N. Nanda et K. Garg, « The use of irreducible characteristic polynomials in an LFSR based testing of digital circuits », TENCON '89. Fourth IEEE Region 10 International Conference,‎ , p. 494-496 (DOI 10.1109/TENCON.1989.176866)

Notes et références[modifier | modifier le code]

Notes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. a et b Klein 2013, p. 17
  2. a b et c Cagigal 1986, p. 191
  3. a b c d et e Ahmad 2003, p. 2
  4. Marjane 2011, p. 80-81
  5. a b et c Marjane 2011, p. 81
  6. a et b Klein 2013, p. 19
  7. a et b Marjane 2011, p. 83
  8. Ahmad 2003, p. 3
  9. a et b Klein 2013, p. 18
  10. Moon 2005, p. 154
  11. Reeds 1985, p. 505
  12. Marjane 2011, p. 14
  13. Ben Atti 2006, p. 76
  14. a et b Marjane 2011, p. 22
  15. a et b Lauradoux 2007, p. 2
  16. Goresky 2002, p. 2827
  17. Goresky 2002, p. 2828
  18. Joux 2006, p. 437
  19. Marjane 2011, p. 152
  20. Liang 2011, p. 1
  21. a et b PATEL 1971, p. 11
  22. McCluskey 1985, p. 21
  23. McCluskey 1985, p. 25
  24. Erreur de référence : Balise <ref> incorrecte : aucun texte n’a été fourni pour les références nommées A49p933
  25. Ajane 2011, p. 1

Liens externes[modifier | modifier le code]