Chiffrement à flot
Transcription
Chiffrement à flot
Introduction Chiffrement à flot Alea en crypto Introduction Chiffrement à flot Alea en crypto Introduction Chiffrement à flot Principes Exemples Génération d’alea à usage cryptographique Propriétés requises BBS LFSR Chiffrement à flot Éric Wegrzynowski Licence et Master mention informatique, Université de Lille 1 3 avril 2009 Chiffrement à flot Introduction Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Alea en crypto Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Chiffrement symétrique Introduction k Chiffrement à flot Principes Exemples m ? - E Alice Génération d’alea à usage cryptographique Propriétés requises BBS LFSR Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 k c ? - D - m Bob Chiffrement : Alice chiffre son message m à l’aide de la clé secrète k,c = E k (m), et envoie le chiffré c à Bob. Déchiffrement : Bob utilise la même clé k pour déchiffrer c, m = D k (c). Principe de Kerkhoffs : les algorithmes de chiffrement E et déchiffrement D sont connus. Seule la clé k est secrète et nécessite un échange préalable. Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Introduction Chiffrement à flot Alea en crypto Retour sur le masque jetable Introduction Système inconditionnellement sûr dans lequel chaque symbole mi du message clair est combiné à un symbole aléatoire si ci = mi + si , la suite (si ) n’étant jamais réutilisée. Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Chiffrement à flot Principes Exemples Génération d’alea à usage cryptographique Propriétés requises BBS LFSR Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Principes Principes Définition Générateur Pseudo-Aléatoire Alea en crypto GPA Définition On désigne par chiffrement à flot, ou parfois chiffrement en continu (stream-cipher en anglais), tout système de chiffrement (symétrique) dans lequel chaque symbole du texte clair subit une transformation variable dans le temps. La transformation que subit chaque symbole mi du texte clair est le plus souvent une combinaison additive avec un symbole si produit par un générateur pseudo-aléatoire (GPA). ci mi = mi +si (chiffrement) = ci −si (déchiffrement) Un générateur pseudo-aléatoire de symboles (GPA) est un automate à nombre fini d’états qui à partir de la donnée d’un nombre fini de symboles, que l’on appelle graine ou germe (seed en anglais) produit une suite potentiellement illimitée de symboles qui a l’apparence d’une suite aléatoire. Formellement, c’est un triplet (Q, Φ, f ) où I I I Q est un ensemble fini d’états ; Φ est une fonction (déterministe) de transition qui transforme l’état de l’automate ; f est une fonction (déterministe) de sortie Q → Σ qui associe un symbole à chaque état. Le germe est un état q0 ∈ Q qui doit être choisi au hasard. La suite de symboles produite par ce GPA est définie par z0 = f (q0 ) Dans le cas binaire, + = − = ⊕. et pour i > 0 La suite des symboles (si ) est appelée suite chiffrante ou masque. Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 zi Chiffrement à flot = f (qi ). Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Introduction Chiffrement à flot Principes Principes Initialisation d’un système de chiffrement à flot Chiffrement synchrone Alea en crypto Synchrone Le chiffrement est dit synchrone si les symboles produits par le GPA ne dépendent que de son état interne et non du message à chiffrer. Dans un système de chiffrement à flot, le germe du GPA est calculé à partir I de la clé k ; qi = Φ(qi−1 ), ∀i ≥ 1, I et d’un vecteur d’initialisation IV . zi = f (qi ), ∀i ≥ 0. q0 = g (k, IV ). k mi IV GPA zi ci Fig.: Schéma des systèmes de chiffrement à flot synchrones Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Introduction Alea en crypto Principes Exemples Chiffrement asynchrone Chiffrements par blocs en mode OFB, CFB et CTR Asynchrone Peuvent être considérés comme chiffrements à flot . . . Le chiffrement est dit asynchrone ou auto-synchronisant si les symboles produits par le GPA ne dépendent que de son état interne et d’un nombre fixé t de symboles du message à chiffrer. = Φ(qi−1 , ci−1 , ci−2 , . . . , ci−t ), ∀i ≥ 1, zi = f (qi ), ∀i ≥ 0. . . . en considérant que les symboles du clair sont les blocs. I synchrone avec les modes OFB et CTR ; VI VI k f mi m2 Ek c1 c2 c1 ci c2 ci Chiffrement Chiffrement I Ek Ek Ek Ek m2 Ek ci m1 zi mi GPA m1 IV mi qi asynchrone avec le mode CFB. VI Ek m1 m2 c1 Fig.: Schéma des systèmes de chiffrement à flot asynchrones Chiffrement à flot Ek Ek mi c2 ci Chiffrement Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Introduction Exemples Exemples A5/1 E0 Chiffrement à flot Alea en crypto E0 = système de chiffrement à flot synchrone utilisé dans le protocole de communication Bluetooth. A5/1 = système de chiffrement à flot synchrone utilisé par le GSM dans la plupart des pays européens. LFSR 1 x_t^1 s_t^1 LFSR 2 x_t^2 s_t^0 LFSR 3 x_t^3 c_t^1 LFSR 4 x_t^4 c_t^0 z_t b Fig.: Génération de la suite chiffrante de A5/1 Suite chiffrante produite par quatre LFSR de longueur 25, 31, 33 et 39 et de polynômes de rétroaction : Suite chiffrante produite par 3 LFSR de longueur 19, 22 et 23 bits et de polynômes de rétroaction : P1 (x) = x 19 +x 18 +x 17 +x 14 P1 (x) = x 25 + x 20 + x 12 + x 8 + 1, P2 (x) = x 31 + x 24 + x 16 + x 12 + 1, P3 (x) = x 33 + x 28 + x 24 + x 4 + 1, + 1, P4 (x) = x 39 + x 36 + x 28 + x 4 + 1. P2 (x) = x 22 + x 21 + 1, P3 (x) = x 23 + x 22 + x 21 + x 8 + 1. Au t-ième top d’horloge, ces 4 LFSR sont avancés et produisent chacun un bit xt1 , xt2 , xt3 et xt4 . La suite chiffrante zt est obtenue par les équations LFSR initialisés à partir d’une clé secrète de 64 bits et d’une chaı̂ne de 22 bits. Sur chacun d’eux, une cellule (un bit) du registre sert à déterminer un bit b (cellule 11 pour le registre de longueur 19, cellule 12 pour celui de longueur 22 et cellule 13 pour celui de longueur 23). Ce bit b est le bit majoritaire de ces trois bits. Chaque LFSR est avancé si et seulement si le bit de cette cellule coı̈ncide avec b. La suite chiffrante est obtenue par un ou-exclusif des trois sorties de LFSR. Chiffrement à flot Introduction zt = xt1 ⊕ xt2 ⊕ xt3 ⊕ xt4 ⊕ ct0 0 0 0 1 ct+1 = st+1 ⊕ ct0 ⊕ ct−1 ⊕ ct−1 1 1 0 ct+1 = st+1 ⊕ ct1 ⊕ ct−1 1 xt + xt2 + xt3 + xt4 + ct0 + 2ct1 2 0 1 (st+1 , st+1 ) = (le + désigne l’addition des entiers, et b. . .c désigne la partie entière) E0 peut utiliser des clés de tailles variables. Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Alea en crypto Chiffrement à flot Introduction Exemples Exemples RC4 Algorithmes de RC4 RC4 = système de chiffrement à flot dû à Ron Rivest, couramment utilisé dans les protocole SSL et WiFi. RC4 peut utiliser des clés de taille variables jusqu’à 2048 bits ( !). La description de RC4 n’est officiellement pas publique. La suite chiffrante est produite à partir d’un tableau S de 256 octets, initialisé à partir de la clé secrète, et dont l’état évolue au cours de la production. Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Entrée: clé K de l octets Sortie: initialisation du tableau S j ←0 pour i = 0 à 255 faire S[i] ← i fin pour pour i = 0 à 255 faire j ← j + S[i] + K [i mod l] échanger S[i] et S[j] fin pour i ←0 j ←0 Alea en crypto Production de la suite chiffrante Sortie: un octet de la suite chiffrante i ←i +1 j ← j + S[i] échanger S[i] et S[j] retourner S[S[i] + S[j]] les additions sont des additions modulo 256. Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Introduction Chiffrement à flot Alea en crypto Besoins Introduction Chiffrement à flot Principes Exemples Nécessité des GPA en cryptographie pour 1. génération de clés ; 2. initialisation (vecteurs IV ) ; 3. identification (défis) ; Génération d’alea à usage cryptographique Propriétés requises BBS LFSR Chiffrement à flot Introduction 4. . . . Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Alea en crypto Chiffrement à flot Introduction Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Propriétés requises Propriétés requises Constat Bonnes proriétés statistiques Théorème Toute suite produite par un GPA est ultimement périodique. ⇒ ces suites ne sont pas aléatoires. Chiffrement à flot Alea en crypto 1. Test de fréquences (répartition équitable entre tous les symboles) ; 2. Tests de séries sur n symboles (répartition équitable de tous les motifs de longueur n) ; 3. et de très nombreux autres. Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Introduction Propriétés requises Propriétés requises Postulats de Golomb GPACS Postulats Chiffrement à flot Alea en crypto Test du Prochain bit 1. dans une période les nombres de 0 et de 1 diffère d’au plus 1 ; Un GPA de bits passe le test du prochain bit si aucun algorithme polynomial ne peut prédire le k + 1-ème bit de s en connaissant les k bits précédents avec une probabilité significativement différente de 1/2. 2. dans une période la moitié des runs ont une longueur égale à 1, un quart ont une longueur égale à 2, un huitième une longueur égale à 3, etc. 3. la fonction d’autocorrélation C (t) ne prend que deux valeurs N · · · C (t) = N−1 X (2si − 1)(2si+t − 1) = i=1 N K GPACS si t = 0 si 1 ≤ t < N Un GPA est cryptographiquement sûr (GPACS) s’il passe le test du prochain bit. où K est un entier compris entre −(N − 1) et N − 1 Chiffrement à flot Introduction Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Alea en crypto Chiffrement à flot Introduction BBS BBS Blum-Blum-Shub Intérêt de BBS Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Alea en crypto Générateur BBS Entrée: n = pq entier produit de deux (grands) nombres premiers congrus à 3 modulo 4. g ∈ Σ = [[1, n − 1]] une graine telle que pgcd(g , n) = 1. k ≥ 1 le nombre de bits à produire Sortie: k bits de la suite chiffrante. x0 ← g 2 (mod n) pour i variant de 1 a k faire 2 xi ← xi−1 (mod n) si ← xi (mod 2) fin pour retourner s1 , s2 , . . . , sk Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 1. BBS est un GPACS, 2. mais très coûteux (opérations complexes pour produire un bit) 3. donc non utilisable en pratique pour le chiffrement à flot. Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Chiffrement à flot Introduction Alea en crypto LFSR LFSR Polynôme de rétroaction Définition Définition LFSR On appelle polynôme de rétroaction d’un LFSR de longueur L, le polynôme L X P(x) = 1 + ci x i Un registre à décalage à rétroaction linéaire, désigné par l’acronyme LFSR (Linear Feedback Shift Register), est la donnée i=1 où chaque ci est le coefficient utilisé pour le bit i du registre dans le calcul de la combinaison linéaire. 1. d’un registre de L cases contenant chacune un bit st , . . . , st+L−1 ; 2. et d’une fonction de rétroaction calculant un bit st+L par combinaison linéaire de certains bits du registre s= L X Exemple Le LFSR de longueur 4 ci-dessous cL−i+1 st+i−1 ; i=1 Au top t d’horloge, le bit st sort du registre, tous les bits sont décalés d’un rang vers la gauche, et le bit st+L entre dans le registre. st st+1 st+2 st+L−2st+L−1 a pour polynôme de rétroaction P(x) = 1 + x 2 + x 4 . Propriété 1. degré de P ≤ L ; 2. égalité si le bit le plus à gauche intervient dans la rétroaction. Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Chiffrement à flot Introduction Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot LFSR LFSR Exemple de suite chiffrante produite par un LFSR Cycles des états d’un LFSR Avec le LFSR de longueur 4 et de polynôme P(x) = 1 + x 2 + x 4 et à partir de l’état initial 1000, on obtient t qt st 0 1000 1 0001 1 2 0010 0 3 0101 0 4 1010 0 5 0100 1 6 1000 0 st st+1 st+2 1 0 0 0 st+L−2st+L−1 En 6 tops d’horloge on est revenu au point de départ. La suite produite est périodique de période 6. Chiffrement à flot 1 Alea en crypto Suite chiffrante : s = 1 s = 10 s = 100 s = 1000 s = 10001 s = 100010 s = 100010 Licence et Master mention informatique, Université de Lille 1 Fig.: Cycles des états d’un LFSR de longueur 3 et de polynôme de rétroaction 1 + x + x 3 Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Introduction Chiffrement à flot LFSR LFSR Cycles des états d’un LFSR Cycles des états d’un LFSR Fig.: Cycles des états d’un LFSR de longueur 4 et de polynôme de rétroaction 1 + x 2 + x 4 Fig.: Cycles des états d’un LFSR de longueur 4 et de polynôme de rétroaction 1 + x + x 3 Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Remarque : Certains sommets du graphe ont deux flèches entrantes. Cela arrive si et seulement si le degré du polynôme de Introduction Chiffrement à flot Alea en crypto rétroaction est plus petit que la longueur du LFSR. Alea en crypto Chiffrement à flot Introduction Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot LFSR LFSR Cycles des états d’un LFSR Cycles des états d’un LFSR Alea en crypto Fig.: Cycles des états d’un LFSR de longueur 4 et de polynôme de rétroaction 1 + x + x 4 Fig.: Cycles des états d’un LFSR de longueur 4 et de polynôme de rétroaction 1 + x + x 2 + x 4 Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Remarque : Ce graphe de transition des états du LFSR ne présente que deux cycles : l’un de longueur 1 sur l’état nul, et l’autre de longueur 216 − 1 = 15. C’est le cas si et seulement si le polynôme de rétroaction est primitif. Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Introduction Chiffrement à flot Alea en crypto Introduction Chiffrement à flot LFSR LFSR Cycle unique Sécurité des LFSR I Alea en crypto Les LFSR ne sont pas des GPACS car ils sont prédictibles. 1. Connaissant L bits consécutifs produits par un LFSR de longueur L et dont on connaı̂t le polynôme de rétroaction, on peut en déduire le L + 1-ème bit produit. 2. Connaissant 2L bits consécutifs produits par un LFSR de longueur L dont on ne connaı̂t pas le polynôme de rétroaction, on peut retrouver ce polynôme par l’algorithme de Berlekamp-Massey (cf TD). I Il ne faut pas utiliser les LFSR seuls pour un usage cryptographique. Fig.: Cycle unique des états d’un registre non linéaire de longueur 4 Chiffrement à flot Licence et Master mention informatique, Université de Lille 1 Chiffrement à flot Licence et Master mention informatique, Université de Lille 1