Cryptographie I Introduction : chi rement symétrique I Registre à rétroaction linéaire Principes et exemples, Propriétés statistiques, Algorithme de Berlekamp-Massey, Connexion avec les corps finis. I Cryptanalyse Linéarisation, Attaque par corrélation, Exemples. 1 Introduction Chi rement Alice Canal Bob m c c m Eve m? 2
Chi rement I E est un algorithme de chi rement : c = E K (m) ; I D est un algorithme de déchi rement : m = D K 0(c) ; I K est la clef de chi rement (Alice) ; I K 0 est la clef de déchi rement (Bob). I m est le texte clair ; I c est le texte chi ré (ou simplement chi ré). 3 Chi rement symétrique I On a : K = K 0. I Il existe 2 types de chi rement symétrique : chi rement par bloc, chi rement par flot. I La sécurité d un algorithme de chi rement repose uniquement sur le secret de la clef! 4
Comparaison I Chi rement par flot : opère sur n importe quelle taille de texte clair ; état interne ; E = D ; modèle de sécurité : one-time pad. I Chi rement par bloc : opère sur des blocs de taille fixe (padding + mode) ; sans état interne ; modèle : di usion et confusion. 5 I Chi rement par bloc : DES, AES. Exemples I Chi rement par flot : RC4 (WEP,SSL), E0 (Bluetooth), Crypto-1 (MiFare). 6
Chi rement par flot clef IV Seed f mn m i m 2 m 1 k t p t c t Principe : Machine à états finis Composants : n bits d état ; f transition ; filtrage. Questions : Combien de choix possibles pour? Combien de choix possibles pour f? 7 Registre à rétroaction linéaire c 1 c 2 c n 1 cn mn m n 1 m 1 m 0 I Fonction de rétroaction : m n = m n c 1 m n 1 c 2 m 1 c n I Tous les coe cients c i sont binaires. I La longueur du registre est n. 8
Définitions I Les bits (m 0,,m n 1 ) déterminent entièrement la suite produite. C est l état initial du registre (graine). I La suite (s p ) p 0 produite par un registre de longueur n est donc une suite à récurrence linéaire homogène d ordre n. Inversement, ce type de suite peut toujours être produite par un registre linéaire. I Question : combien existe t il de fonctions linéaires? 9 Définitions I Une telle suite est ultimement périodique, c est-àdire qu il existe une pré-période p 0 telle que la suite (s p ) p 0 est périodique. I La suite s est ultimement périodique, de période T apple 2 n 1 (i.e. il existe un entier i 0 tel que s i = s i+t pour tout i>i 0 ). Si, de plus, c n =1,lasuitesestpériodique (i.e. s i = s i+t pour tout i 0). 10
Démonstrations I On note M i =(s i,s i+1,,s i+n 1 ) l état du i-ème registre. Celui-ci détermine complètement les registres ultérieurs. Ce registre peut prendre au plus 2 n états. I L état 0=(0,, 0) est un point fixe. 11 Démonstrations I Si aucun M i n est nul parmi [M 0,M 1,...,M 2L 1 ],au moins deux registres sont identiques. Supposons que : R i0 = R i0 +T; alors la suite des registres [R i0,r i0 +1,...,R i0 +T répète indéfiniment. On a donc : 1] se s i = s i + T pour tout i i 0 avec T apple 2 n 1. 12
Complexité linéaire I Associons à la suite (s p ) p par : 0 la série génératrice définie s(x) = X p 0 s p X p I Soit un registre défini par la relation : m n = m n c 1 m n 1 c 2 m 1 c n. 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 n X n. 13 Fraction rationnelle I La suite (s n ) n 0 est produite par un registre ayant pour polynôme de rétroaction f(x) si et seulement si son développement en série formelle s(x) = P p 0 s px p s écrit : s(x) = g(x) f(x). 14
Fraction rationnelle I g est un polynôme de F 2 [X] tel que deg(g) <deg(f). I g est défini par l état initial du registre : g(x) = Xn 1 i=0 X i ix c i j m j. j=0 I Démonstration On a g(x) =s(x)f(x). 8i 0, g j = ix j=0 c i j m j 15 Complexité linéaire I Afin d obtenir une forme canonique de la série génératrice de (s p ) p 0, on définit le polynôme de rétroaction minimal de la suite (ou du registre) I Le polynôme de rétroaction minimal 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 registres possibles qui génèrent (s p ) p 0. 16
Complexité linéaire I Soit (s p ) p 0 une suite binaire à rétroaction linéaire d ordre n 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 2 F 2 [X], avec deg(g 0 ) <deg(f 0 ) et pgcd(g 0,f 0 )=1,vérifiant: s(x) = g 0(X) f 0 (X). 17 Complexité linéaire I La complexité linéaire d un registre produisant la suite (s p ) p 0, notée (s), est alors au degré de f 0. I En d autre terme, la complexité linéaire d un registre produisant une suite (s p ) p 0 est la longueur du plus petit registre permettant d engendrer (s p ) p 0. 18
Exemple 1 0 0 1 0 0 1 0 0 1 Questions : Calculer f(x). Calculer g(x). Calculer (s). 19 Exemple I f(x) =X 10 + X 7 + X 4 + X 3 + X +1 I Pour g(x), on a : 9X g(x) = X i ix i=0 j=0 c i = X 7 + X +1 j m j 20
Exemple I Calcul de (s) : s(x) = = = g(x) f(x) X 7 + X +1 X 10 + X 7 + X 4 + X 3 + X +1 1 X 3 +1 I On a donc f 0 (X) =X 3 +1, (s) =3 21 Période maximale I Un polynôme P appartenant à F 2 [X] est dit irréductible s il est de degré positif et si tout diviseur de P est une constante ou est produit de P par une constante. I Soit P un polynôme de F 2 [X]. Son ordre, noté ord(p ), est le plus petit entier t tel que X t 1 mod P (X). I Soit P un polynôme irréductible de F 2 [X], de degré m. Ilestditprimitif s il est d ordre 2 m 1. 22
Période maximale I Si le polynôme de rétroaction minimal d un registre est primitif et que son état initial est non nul, alors la suite produite (s p ) p 0 est de période maximale 2 (s) 1 et est dite suite de longueur maximale. 23 Vision matricielle A = 0 1 0 1 0 0 0 0 0 1 0 0............ 0 0 0 1 0 B C @ 0 0 0 0 1A c n c n 1 c 3 c 2 c 1 I En considérant les états successifs R i comme des vecteurs colonnes, on a du registre R i+1 = AR i. 24
Vision matricielle I On remarque que l on a : R i+n = A n R i. I Le polynôme caractéristique de A est défini par : f(x) =det(id AX). I De plus, on a : f(x) =X n f(x 1 ). 25 Propriétés statistiques I Démontrées par Golomb en 1982 : la séquence est équilibrée ; les séries sont équitables réparties ; la fonction d autocorrélation prend 2 valeurs. I Attention ces propriétés ne garantissent aucunement la sécurité de la séquence! 26
Equilibre I Dans chaque période, le nombre de 0 est approximativement égal au nombre de 1 : XT 1 ( 1) s i apple 1. i=0 I Dans une suite de longueur maximale 2 n 1, toute suite (s i,s i+1,,s i+n 1 ) de n éléments non tous nuls apparaît une et une seule fois par période. 27 Equilibre I La démonstration est simple : un registre donné R i =(s i,s i+1,,s i+n 1 ) ne peut apparaître qu une fois par période. Or il y a 2 n 1 états par période et les registres prennent au plus 2 n 1 valeurs. Donc ils prennent toutes les valeurs une fois. I Question : combien y a t il d états ayant la valeur s i à 1. Même question pour 0. Conclusion? 28
Série I Une série (de 0 ou de 1) est une succession de bits identiques, maximale (i.e. encadrée par des bits opposés). I Soit S l ensemble des séries. Dans chaque période, si 2 k apple S < 2 k+1, on trouve S /2 séries de longueur 1, S /4 séries de longueur 2,..., S /2 k séries de longueur k, et pour chaque longueur, autant de séries de 0 que de séries de 1. 29 Série I Démonstration. Comptons le nombre d occurence d une série d exactement k zéros. Cela revient à compter les occurences de (1, 0, {z, 0 }, 1). Comme tous les états R i =(s i,s i+1,,s i+n 1 ) apparaissent une et une seule fois, un registre composé de apparaît 2 n k 2. (1, 0, {z, 0 }, 1,s i+k+2,s i+n 1 ), k k 30
Corrélation I La fonction d autocorrélation s écrit : C( ) = XT 1 ( 1) s is i+. i=0 Questions : Démontrer la propriété d autocorrélation Exploiter la propriété d équilibre pour cela. 31 Cryptanalyse I Les attaques par recouvrement de clef, quivisent à retrouver la clef secrète du générateur à partir de la connaissance d un certain nombre de bits de sa sortie. I Attaque la plus puissante! 32
Cryptanalyse I Les attaques par recouvrement de l état initial, dont l objectif est de retrouver l initialisation du générateur (ou de façon équivalente un état interne complet). I La connaissance de la clef secrète su tnaturellement pour retrouver l initialisation, mais la réciproque n est pas nécessairement vraie. 33 Cryptanalyse I Les attaques par prédiction du bit suivant consistent à partir de la connaissance des n premiers bits de la suite engendrée par le générateur pour une certaine clef, à prédire la valeur du bit suivant 34
Cryptanalyse I Les attaques par distingueur déterminent si une suite de n bits correspond à la sortie du générateur pseudo-aléatoire considéré ou s il s agit d une suite véritablement aléatoire. 35 Cryptanalyse Compléxité I Temps : durée d exécution de la cryptanalyse. I Memoire : mémoire nécessaire pour l attaque. I Données : quantité de données nécessaires à l attaque. I On parle de compromis temps/memoire/donnée (TMD). 36
unsigned int v; unsigned int c; for (c = 0; v; c++) { v &= v - 1; } Algorithmique et TMD Questions : Que fait cette algorithme? Quel est sa complexité? 37 unsigned int v; unsigned int c; Algorithmique et TMD c = T[v & 0xff] + T[(v >> 8) & 0xff] + T[(v >> 16) & 0xff] + T[v >> 24]; Questions : Que fait cette algorithme? Quel est sa complexité? 38
unsigned int v; unsigned int c; Algorithmique et TMD v = v-((v>>1)&0x55555555); v = (v&0x33333333)+((v>>2)&0x33333333); c = ((v+(v>>4)&0xf0f0f0f)*0x1010101)>>24; Questions : Que fait cette algorithme? Quel est sa complexité? 39 Algorithme de Berlekamp Massey I À partir d un certain nombre de bits de (s p ) p 0, l algorithme de Berlekamp-Massey retrouve le polynôme minimal f(x) d un registre qui le génère. I Supposons que le polynôme f a un degré plus petit que n. Il est nécessaire de connaître 2n bits de la séquence pour trouver f. I L algorithme de Berlekamp-Massey a une complexité O(n 2 ). Il est possible d utiliser un algorithme plus simple mais dont la complexité est O(n 3 ). 40
Reconstruction par élimination de Gauss I On peut construire le système suivant : s n = c 1 s n 1 c 2 s n 2 c n s 0 s n+1 = c 1 s n c 2 s n 1 c n s 1 s n+2 = c 1 s n+1 c 2 s n c n s 2... s 2n 1 = c 1 s 2n 2 c 2 s 2n 1 c n s n 1 I Question : Donner la compléxité de cette méthode. 41 Berlekamp-Massey I Entrée : séquence de bits (s 0,s 1, ) générés par un registre linéaire. I Sorties : n et les c 0,c 1 c n tels que : c 0 s t = c 1 s t 1 + + c n s t n. 42
43 Berlekamp-Massey Exercice I Pour le prochain cour, exécutez cet algorithme pour la séquence (0, 1, 1, 1, 1, 0, 0). I Correction et explications au prochain cours 44
Connexion avec les corps finis I Un corps (K, +,, 0, 1 ) est défini par : deux opérations internes : +et. associatives et distributivité. Éléments neutres : 0 pour +, 1 pour x. Chaque u 2 K aunopposé pour la loi + : u tel que u u =0. Chaque u 2 K? auninverse pour : u 1 tel que u u 1 =1. I Les corps finis sont appelés corps de Galois. 45 Les corps finis I Exemples de corps finis : F p = Z/pZ avec p premier, F 2 =(0, 1,, ), F 256 = F 2 8. I Conseil de lecture : Finite Fields for Computer Scientists and Engineers de Robert J. McEliece 46
Extension de corps finis I Soit P un polynôme primitif de F 2 [X] défini par : P (X) =X m + a m 1 X m 1 + + a 1 X +1. Si on note une racine de P,alors engendre le sous-groupe multiplicatif d ordre 2 m 1 de F? 2 m. I On peut donc définir F 2 m comme le quotient F 2 [X]/P (X). 47 Extension de corps finis I On voit F m 2 comme un espace vectoriel (F m 2 ). I La construction de la base polynomiale consiste à prendre comme éléments de la base les puissances successives de : 1,, 2,, m 1. 48
Multiplication dans la base polynomiale I Pour réaliser une multiplication, on remarque que : n s = ( ( (...( {z } s))). n I L expression de s dans la base polynomiale (1,, 2,, m 1 ) est donnée par : s = s m 1 m 1 + + s 1 + s 0, avec s i 2 F 2 les coordonnées de s dans la base polynomiale. 49 Multiplication dans la base polynomiale I Le produit s peut s exprimer comme : s = s m 1 m + s m 2 m 1 + + s 1 2 + s 0. I Comme est une racine de P, on obtient l expression du produit : s =(s m 1 a m 1 + s m 2 ) m 1 + +(s m 1 a 1 + s 0 ) + s m 1. 50
Multiplication dans la base polynomiale I Si on note ( s) i les coordonnées du produit s alors on a : ( s) i = s m 1 a i + s i 1 si 0 <i<m; ( s) 0 = s m 1. a 1 a 2 a m 2 a m 1 s 0 s 1 s 2 s m 2 s m 1 51 Exemple I Soit P (X) = X 4 + X +1 un polynôme tel que F 16 = F 2 [ ] avec P ( ) =0. I Les coordonnées du produit s sont données par : s 0 = s 3 s 1 = s 0 + s 3 s 2 = s 1 s 3 = s 2 52
n ` s 0 s 1 s 2 s 3 0 15 1 0 0 1 1 14 1 0 0 0 2 13 0 1 0 0 3 12 0 0 1 0 4 11 0 0 0 1 5 10 1 1 0 0 6 9 0 1 1 0 7 8 0 0 1 1 8 7 1 1 0 1 9 6 1 0 1 0 10 5 0 1 0 1 11 4 1 1 1 0 12 3 0 1 1 1 13 2 1 1 1 1 14 1 1 0 1 1 15 0 1 0 0 1 n ` s 0 s 1 s 2 s 3 0 15 1 0 0 1 1 14 1 0 1 1 2 13 1 1 1 1 3 12 0 1 1 1 4 11 1 1 1 0 5 10 0 1 0 1 6 9 1 0 1 0 7 8 1 1 0 1 8 7 0 0 1 1 9 6 0 1 1 0 10 5 1 1 0 0 11 4 0 0 0 1 12 3 0 0 1 0 13 2 0 1 0 0 14 1 1 0 0 0 15 0 1 0 0 1 53 Division corps finis I Les coordonnées ( 1 s) i de la division sont données par : (s/ ) i = s 0 a i + s i+1 si 0 <i<m; (s/ ) m 1 = s 0. a 1 a 2 a m 2 a m 1 s 0 s 1 s 2 s m 2 s m 1 I Afaireenexercice! 54
Multiplication dans la base duale 1) de la base polyno- I La base duale ( 0, 1,, m miale est définie par : Tr( i j )= 1 si i = j 0 si i 6= j, I La trace de F 2 m dans F 2 d un élément a 2 F 2 m est définie par : Tr(a) =a + a 2 + a 4 + + a 2m 1. 55 Opérateur Trace I Pour tout a et tout b de F 2 m, on a : Tr(a + b) =Tr(a)+Tr(b) ; Tr(a 2 )=Tr(a) ; Tr( a) = Tr(a) avec 2 F 2. I Exemple : soit P (X) =X 5 + X 2 +1 un polynôme tel que F 32 = F 2 [X]/P(X) avec P ( ) =0.Labase ( 4 + 2 + +1, 4 + 3 +1, 3 +1, 4 + 2 +, 3 + +1) est la base duale de la base polynomiale (1,, 2, 3, 4 ). 56
Multiplication dans la base duale I Considérons l expression d un élément s de F 2 m dans la base duale : s = s? m 1 m 1 + + s? 1 1 + s? 0 0. avec s? j les coordonnées de s dans la base duale. On aalors: s? j = Tr(s j ),j =0,,m 1. 57 Multiplication dans la base duale I Les coordonnées ( s)? j définies par : du produit s sont donc I On obtient alors : ( s)? j = Tr(s j+1 ). ( s)? j = s? j+1,j =0, 1,,m 2 ( s)? m 1 = Tr(s m )=a m 1 s? m 1 + + a 1 s? 1 + s? 0 58
Multiplication dans la base duale a m 1 a m 2 a 2 a 1 s? m 1 s? m 2 s? m 3 s? 1 s? 0 I Ca doit vous rappeler quelque chose... 59 Exemple I Soit P (X) =X 4 + X +1 le polynôme tel que F 16 = F 2 [ ] avec P ( ) =0.Labase( 3 +1, 2,, 1) est la base duale de la base polynomiale (1,, 2, 3 ). I La valeur s dont les coordonnées s? j duale sont définies par : s? i = Tr(s i ) = P m 1 j=0 s jtr( i+j ) dans la base avec s j les coordonnées de s dans la base polynomiale. 60
Exemple I De plus on a : Tr(1) = 0,Tr( ) =0,Tr( 2 )= 0 et Tr( 3 )=1. I On obtient les formules de changement de base suivantes : s? 0 = s 3, s? 1 = s 2, s? 2 = s 1, s? 3 = s 0 + s 3 61 n ` s? 3 s? 2 s? 1 s? 0 0 15 1 0 0 1 1 14 1 1 0 0 2 13 0 1 1 0 3 12 1 0 1 1 4 11 0 1 0 1 5 10 1 0 1 0 6 9 1 1 0 1 7 8 1 1 1 0 8 7 1 1 1 1 9 6 0 1 1 1 10 5 0 0 1 1 11 4 0 0 0 1 12 3 1 0 0 0 13 2 0 1 0 0 14 1 0 0 1 0 15 0 1 0 0 1 n ` s? 3 s? 2 s? 1 s? 0 0 15 1 0 0 1 1 14 0 0 1 0 2 13 0 1 0 0 3 12 1 0 0 0 4 11 0 0 0 1 5 10 0 0 1 1 6 9 0 1 1 1 7 8 1 1 1 1 8 7 1 1 1 0 9 6 1 1 0 1 10 5 1 0 1 0 11 4 0 1 0 1 12 3 1 0 1 1 13 2 0 1 1 0 14 1 1 1 0 0 15 0 1 0 0 1 62
Equivalence I Configuration de Fibonacci : y 0 y 1 y 2 y 3 I Configuration de Galois : x 0 x 1 x 2 x 3 63 Equivalence I Soit (u t ) t 0 la suite produite par le dernier bit d une configuration de Galois définie par le polynôme P et initialisée par x. I Soit (v t ) t 0 la suite produite par le dernier bit d une configuration de Fibonacci définie par le polynôme P et initialisé par y. Soit x = P m 1 i=0 x i i où est une racine de P. Soit y = P m 1 i=0 y i i où ( 0, 1,, m) est le base duale de (1,,, m 1 ). I (u t ) t 0 et (v t ) t 0 sont égales si et seulement si : y = m 1 x. 64