LFSR. 1 Le registre à décalage à rétroaction linéaire

Documents pareils
Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Polynômes à plusieurs variables. Résultant

Introduction à l étude des Corps Finis

Structures algébriques

Développements limités. Notion de développement limité

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Système binaire. Algèbre booléenne

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

3 Approximation de solutions d équations

Partie 1 - Séquence 3 Original d une fonction

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Continuité en un point

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

OPTIMISATION À UNE VARIABLE

Calculateur quantique: factorisation des entiers

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Image d un intervalle par une fonction continue

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Raisonnement par récurrence Suites numériques

Amphi 3: Espaces complets - Applications linéaires continues

Théorie et codage de l information

Couples de variables aléatoires discrètes

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Représentation d un entier en base b

Cours 02 : Problème général de la programmation linéaire

FONCTIONS À CROISSANCE RÉGULIÈRE

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples


Cryptographie et fonctions à sens unique

Chapitre 7. Récurrences

Université Montpellier II Sciences et Techniques du Languedoc MÉMOIRE DE STAGE DE MASTER M2

Calcul fonctionnel holomorphe dans les algèbres de Banach

6. Les différents types de démonstrations

ÉPREUVE COMMUNE DE TIPE Partie D

Recherche dans un tableau

Capes Première épreuve

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Licence Sciences et Technologies Examen janvier 2010

Équations non linéaires

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Chapitre 1 : Introduction aux bases de données

NOTATIONS PRÉLIMINAIRES

Résolution d équations non linéaires

D'UN THÉORÈME NOUVEAU

Représentation des Nombres

CH.6 Propriétés des langages non contextuels

Carl-Louis-Ferdinand von Lindemann ( )

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Programmation linéaire et Optimisation. Didier Smets

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Chapitre 1. Une porte doit être ouverte et fermée. 1.1 Les enjeux de l'informatique quantique

Mathématiques Algèbre et géométrie

Etude de fonctions: procédure et exemple

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Une introduction aux codes correcteurs quantiques

Correction de l examen de la première session

Pourquoi l apprentissage?

Intégration et probabilités TD1 Espaces mesurés Corrigé

Université Paris-Dauphine DUMI2E 1ère année, Applications

CHAPITRE IX : Les appareils de mesures électriques

Conversion d un entier. Méthode par soustraction

Axiomatique de N, construction de Z

4. NOMBRES COMPLEXES ET TRIGONOMÉTRIE

Vers l'ordinateur quantique

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

INF 4420: Sécurité Informatique Cryptographie II

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Peut-on tout programmer?

Programmation linéaire

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

IV- Equations, inéquations dans R, Systèmes d équations

Les travaux doivent être remis sous forme papier.

chapitre 4 Nombres de Catalan

Cryptographie Quantique

Leçon 01 Exercices d'entraînement

aux différences est appelé équation aux différences d ordre n en forme normale.

Chapitre VI - Méthodes de factorisation

Quelques tests de primalité


Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Algorithmique avec Algobox

Algorithmes d'apprentissage

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Continuité et dérivabilité d une fonction

Construction de l'intégrale de Lebesgue

Compte rendu des TP matlab

Algorithmes de recherche

Transcription:

1 Univ. Lille 1 - Master Info 2010-2011 Principes et Algorithmes de Cryptographie LFSR 1 Le registre à décalage à rétroaction linéaire Dénition 1.1. Un registre à décalage à rétroaction linéaire (LFSR : Linear Feedback Shift Register) binaire de longueur L est composé d'un registre à décalage contenant une suite de L bits (s i,..., s i+l 1 ) et d'une fonction de rétroaction linéaire. s i s i+1 s i+l 1 c L c L 1 c 1 Figure 1 Un LFSR de longueur L à l'instant i Le fonctionnement d'un LFSR binaire de longueur L est le suivant : à chaque top d'horloge, le bit de gauche s i constitue la sortie du registre, et les autres sont décalés vers la gauche ; le nouveau bit s i+l placé dans la cellule de droite du registre est donné par une fonction linéaire : s i+l = c 1 s i+l 1 + c 2 s i+l 2 + + c L 1 s i+1 + c L s i (1) où les coecients c i sont binaires. Dénition 1.2. Les bits (s 0,..., s L 1 ) qui déterminent entièrement la suite produite constituent l'état initial du registre. La suite (s n ) n 0 produite par un LFSR de longueur L est donc une suite à récurrence linéaire homogène d'ordre L. Inversement, ce type de suite peut toujours être produite par un LFSR. On peut remarquer qu'une telle suite est ultimement périodique, i.e. il existe une pré-période n 0 telle que la suite (s n ) n n0 est périodique. Théorème 1.1. Toute suite binaire à récurrence linéaire homogène d'ordre L est ultimement périodique, et sa plus petite période T est inférieure ou égale à 2 L 1. De plus, si le coecient c L est non nul, alors la suite est périodique. Je vais maintenant m'intéresser à la complexité linéaire des LFSRs. Pour ce faire, associons à la suite (s n ) n 0 la série géneratrice s(x) = n 0 s nx n. Cette approche a été introduite par N. Zierler en 1959 et fait intervenir le polynôme de rétroaction du registre. Dénition 1.3. Soit un LFSR dont la fonction de rétroaction est donnée par la relation (1). Son polynôme de rétroaction f est le polynôme de F 2 [X] f(x) = 1 + c 1 X + c 2 X 2 +... + c L X L. On peut alors écrire le développement en série formelle de la suite (s n ) n 0 sous forme d'une fraction rationnelle. Dans la suite, je noterai deg(f) le degré d'un polynôme f F 2 [X]. Théorème 1.2. La suite (s n ) n 0 est produite par un LFSR dont le polynôme de rétroaction est f(x) = 1 + c 1 X +... + c L X L si et seulement si son développement en série formelle s(x) = n=0 s nx n s'écrit s(x) = g(x) f(x)

2 où g est un polynôme de F 2 [X] tel que deg(g) < deg(f). En outre, le polynôme g est entièrement déterminé par l'état initial du registre : L 1 g(x) = i=0 X i i c i j s j. An d'obtenir une forme canonique de la série génératrice de (s n ) n 0, on dénit le polynôme de rétroaction minimal de la suite (ou du registre) : c'est un diviseur de f(x), qui de plus est le polynôme de plus bas degré parmi les polynômes de rétroaction de tous les LFSRs possibles qui génèrent la suite (s n ) n 0. Dénition 1.4. Soit (s n ) n 0 une suite binaire à rétroaction linéaire d'ordre L dont l'état initial est non nul. Son polynôme de rétroaction minimal est l'unique polynôme unitaire f 0 de F 2 [X] tel qu'il existe g 0 F 2 [X], avec deg(g 0 ) < deg(f 0 ) et pgcd(g 0, f 0 ) = 1, vériant j=0 s(x) = g 0(X) f 0 (X). La complexité linéaire du LFSR produisant la suite (s n ) n 0, notée Λ(s), est alors égale au degré de f 0. En clair, la complexité linéaire d'un LFSR produisant une suite (s n ) n 0 est la longueur du plus petit LFSR permettant d'engendrer (s n ) n 0. Exemple 1-1. Soit (s n ) n 0 la suite produite par le LFSR de longueur 10, de polynôme de rétroaction f(x) = X 10 + X 7 + X 4 + X 3 + X + 1, et qui commence par 1001001001. Soit g le polynôme déterminé par l'état initial du registre : g(x) = La série génératrice de (s n ) n 0 est : s(x) = n=0 9 n=0 X n n c n i s i = X 7 + X + 1. i=0 s n X n = g(x) f(x) = X 7 + X + 1 X 10 + X 7 + X 4 + X 3 + X + 1 = 1 X 3 + 1. On a donc f 0 (X) = X 3 + 1, et (s n ) n 0 peut être générée par un LFSR de longueur 3. La complexité linéaire du LFSR est donc 3. 2 Du choix du polynôme de rétroaction Il est clair, au vu de ce qui précède, que si l'on a pris soin d'utiliser un polynôme de rétroaction irréductible, alors la fraction ne pourra être réduite, et l'on est certains de ne pas pouvoir générer la même suite avec un registre plus court! Voyons maintenant comment inuer sur la période de la suite produite. Dénition 2.1. Soit f un polynôme de F 2 [X]. Son ordre, noté ord(f), est le plus petit entier t tel que X t 1 mod f(x). Théorème 2.1. Soit (s n ) n 0 une suite binaire à récurrence linéaire de polynôme de rétroaction minimal f 0, et dont l'état initial est non nul. Alors sa plus petite période est égale à l'ordre de f 0.

3 On peut donc contrôler la période de la suite produite en contrôlant l'ordre du polynôme de rétroaction. Dénition 2.2. Soit f(x) un polynôme irréductible de F 2 [X], de degré L. Il est dit primitif s'il est d'ordre 2 L 1. Ainsi, si l'on veut construire un LFSR optimal (au regard de la période de la suite produite) de longueur L, il faut s'assurer que le polynôme de rétroaction choisi est de degré L et primitif. On sera alors assuré d'obtenir une période maximale, pour peu que l'on prenne un état initial non nul. Un autre intérêt des polynômes de rétroaction primitifs est la qualité statistique des suites produites. Théorème 2.2. Considérons la suite produite par un LFSR de longueur L. Si le poltnôme de rétroaction f est de degré n et primitif, et si l'état intitial est non nul, alors : toutes les suites binaires de longueur l < L se retrouvent avec la même fréquence dans la suite produite : les sous-suites non nulles apparaissent chacune 2 L l 1 fois, et les sous-suites nulle apparaissent chacune 2 L l fois ; toutes les suites binaires non nulles de longueur n apparaissent également avec la même fréquence. Ainsi, les suites produites par des LFSR utilisant des polynômes de rétroaction primitifs sont particulièrement intéressantes. Elles sont appelées suites ML (Maximum Length Sequences). On peut noter qu'elles présentent des propriétés de corrélations particulière, et sont à ce titre très utilisées également dans les techniques de télécommunications. Revenons maintenant sur cette notion de primitivité. Soit f(x) le polynôme irréductible de F 2 [X] en question. On peut contruire le corps F 2 L comme F 2 L = F 2 [X]/f(X) (polynômes réduits modulo f(x)). On peut alors donner une dénition équivalente de la primitivité, que nous utiliserons pour tester si tel ou tel polynôme est primitif ou non. Rappelons tout d'abord que le sous-groupe multiplicatif d'un corps ni est cyclique. Autrement dit, pour tout α F 2 L = F 2 L\{0}, on a α 2L 1 = 1. Dénition 2.3. Soit f(x) un polynôme irréductible de F 2 [X], de degré L. Il est dit primitif si l'une de ses racines engendre le sous-groupe multiplicatif F 2 L. Soit α une racine de f ; on a f(α) = 0. Dire que α génère le groupe multiplicatif, c'est dire que les éléments α, α 2, α 3,... correspondent bien à tous les éléments non nuls du corps, et donc qu'il y en a 2 L 1 distincts. Dénition 2.4. En fait, on peut dénir l' ordre d'un élément α comme le plus petit t tel que α t = 1. L'ordre d'un élément divise le cardinal du groupe (théorème de Lagrange). Ceci signie ici que l'ordre d'un élément divise 2 L 1. Ce qu'on cherche à savoir, c'est si l'ordre de α est égal à 2 L 1 (polynôme primitif) ou non (polynôme non primitif). Exemple 2-2. Soit f(x) = X 3 + X + 1 irréductible, et soit α tel que f(α) = 0. Enumérons les puissances de α : α 1 = α α 2 = α 2 α 3 = α + 1 α 4 = α 2 + α α 5 = α 3 + α 2 = α 2 + α + 1 α 6 = α 3 + α 2 + α = α 2 + 1 α 7 = α 3 + α = 1 On peut en conclure que le polynôme X 3 + X + 1 est primitif.

4 On peut remarquer que puisque l'on sait que l'ordre de α divise 2 L 1, il sut de regarder les α t pour tous les diviseurs 1 < t < 2 L 1 de 2 L 1, et de voir si ces α t sont égaux à 1 ou non. Le polynôme est primitif si et seulement si aucun de ces α t n'est égal à 1. Exemple 2-3. Reprenons l'exemple ci-dessus. L = 3, donc 2 L 1 = 7. Comme 7 est un nombre premier, il n'y a aucun diviseur 1 < t < 7 de 7, et donc on est certain que le polynôme est primitif. 3 Une attaque : algorithme de Berlekamp-Massey En 1968, E. Berlekamp a proposé dans son livre un algorithme pour le décodage des codes BCH. En 1969, J.L. Massey a montré que ce dernier permet également de trouver le plus petit LFSR générant la suite (s n ) n 0 à partir uniquement de ses 2Λ(s) premiers bits. Ce résultat repose sur le lemme suivant : Lemme 3.1. Soit L N la longueur minimale d'un LFSR qui génère les bits s 0, s 1,..., s N 1 mais qui ne génère pas s 0, s 1,..., s N. Alors la longueur minimale L N+1 d'un LFSR générant s 0, s 1,..., s N vérie L N+1 max(n + 1 L N, L N ). L'algorithme de Berlekamp-Massey permet de construire pour des valeurs successives de N un LFSR de longueur minimale L N et de polynôme de rétroaction f N qui génère les N premiers bits de (s n ) n 0. Par convention, on suppose que la suite nulle est générée par le LFSR de longueur 0 et de polynôme de rétroaction f(x) = 1. Théorème 3.1. Soit (s n ) n 0 une suite binaire à récurrence linéaire. Considérons un LFSR de longueur minimale L N et de polynôme de rétroaction f N (X) = 1 + L N i=1 c N i Xi qui génère les N premiers bits de (s n ) n 0. On pose L 0 = 0 et f 0 (X) = 1. Soit d N = s N + L N i=1 c N i s N i mod 2. Alors on a : si d N = 0, alors L N+1 = L N ; si d N = 1, alors L N+1 = max(n + 1 L N, L N ). De plus, on a : si d N = 0, alors f N+1 (X) = f N (X) ; si d N = 1, alors f N+1 (X) = f N (X)+f m (X)X N m, où m est le plus grand entier inférieur à N tel que L m < L N. Je ne donnerai pas ici la preuve de ce résultat. Cependant elle est constructive et donne un algorithme qui permet de trouver un LFSR de taille minimale générant une suite donnée.

5 Algorithme 1 Algorithme de Berlekamp-Massey Entrée: Une suite binaire s = s 0,..., s n 1 de longueur n Sortie: Le LFSR de longueur minimale produisant la suite s f(x) 1, L 0, m 1, g(x) 1 pour N allant de 0 à n 1 faire d s N + L i=1 c is N i mod 2 avec f(x) = 1 + L i=1 c ix i si d = 1 alors t(x) f(x) f(x) f(x) + g(x)x N m si 2L N alors L N + 1 L, m N, g(x) t(x) n si n si n pour Exemple 3-4. Appliquons l'algorithme de Berlekamp-Massey à la suite 0110010101 de longueur 10. Voici les résultats fournis par l'algorithme : N s N d L f(x) m g(x) 0 1 1 1 0 0 0 0 1 1 1 1 1 1 2 1 + X 2 1 1 2 1 1 2 1 + X + X 2 1 1 3 0 0 2 1 + X + X 2 1 1 4 0 1 3 1 + X + X 2 + X 3 4 1 + X + X 2 5 1 0 3 1 + X + X 2 + X 3 4 1 + X + X 2 6 0 1 4 1 + X + X 4 6 1 + X + X 2 + X 3 7 1 1 4 1 + X 2 + X 3 6 1 + X + X 2 + X 3 8 0 1 5 1 + X 4 + X 5 8 1 + X 2 + X 3 9 1 0 5 1 + X 4 + X 5 8 1 + X 2 + X 3 Ainsi un LFSR de taille minimale générant la suite 0110010101 a pour longueur 5 et polynôme de rétroaction 1 + X 4 + X 5. Théorème 3.2. Soit (s n ) n 0 une suite binaire à récurrence linéaire de complexité linéaire Λ(s). L'algorithme de Berlekamp-Massey détermine l'unique LFSR de longueur Λ(s) qui génère (s n ) n 0 à partir de n'importe quelle suite de 2Λ(s) bits consécutifs de (s n ) n 0. La complexité linéaire d'un LFSR est donc un paramètre déterminant pour sa sécurité cryptographique : l'observation d'un petit nombre de bits seulement de la suite permet en eet de la reconstituer entièrement si Λ(s) est petit. Ceci amène à l'étude de la combinaison ou du ltrage de un ou plusieurs LFSR, à l'aide de fonctions booléennes. Bien évidemment, ces fonctions doivent être choisies avec beaucoup de soin. Ce contexte donne encore lieu aujourd'hui à une activité de recherche importante, tant dans la recherche d'attaques que dans la recherche de bonnes fonctions.