Cryptographie basée sur les codes correcteurs d erreurs Alain Couvreur INRIA & LIX, École Polytechnique Gt Codes et Cryptographie Journées du GdR IM 2016 A. Couvreur Cryptographie basée sur les codes GdR IM 2016 1 / 30
Plan 1 Codes Cryptographie 2 Notions de théorie des codes 3 Faire de la cryptographie avec des codes 4 Propositions, attaques, enjeux A. Couvreur Cryptographie basée sur les codes GdR IM 2016 2 / 30
Codes Cryptographie 1 Codes Cryptographie A. Couvreur Cryptographie basée sur les codes GdR IM 2016 3 / 30
Codes Cryptographie On les confond souvent Problématiques classiques de la Théorie des codes : Comment communiquer efficacement via un canal bruité? Comment stocker des données sur un support qui vieillira et se dégradera? A. Couvreur Cryptographie basée sur les codes GdR IM 2016 4 / 30
Codes Cryptographie On les confond souvent Problématiques classiques de la Théorie des codes : Comment communiquer efficacement via un canal bruité? Comment stocker des données sur un support qui vieillira et se dégradera? Problématiques de la cryptographie : lorsque l on communique comment se protéger des oreilles indiscrètes? comment s assurer que notre interlocuteur n est pas un usurpateur? A. Couvreur Cryptographie basée sur les codes GdR IM 2016 4 / 30
Codes Cryptographie On les confond souvent Problématiques classiques de la Théorie des codes : Comment communiquer efficacement via un canal bruité? Comment stocker des données sur un support qui vieillira et se dégradera? Problématiques de la cryptographie : lorsque l on communique comment se protéger des oreilles indiscrètes? comment s assurer que notre interlocuteur n est pas un usurpateur? En résumé, en théorie des codes, on se protège contre le bruit ; en cryptographie on se protège contre les méchants. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 4 / 30
Codes Cryptographie Pourquoi les confond-on? La langue française (et probablement d autres) n aide pas... on parle de message codé, code secret, décoder un message, A. Couvreur Cryptographie basée sur les codes GdR IM 2016 5 / 30
Codes Cryptographie Pourquoi les confond-on? La langue française (et probablement d autres) n aide pas... on parle de message codé, on devrait dire message chiffré ; code secret, décoder un message, A. Couvreur Cryptographie basée sur les codes GdR IM 2016 5 / 30
Codes Cryptographie Pourquoi les confond-on? La langue française (et probablement d autres) n aide pas... on parle de message codé, on devrait dire message chiffré ; code secret, on devrait dire mot de passe ; décoder un message, A. Couvreur Cryptographie basée sur les codes GdR IM 2016 5 / 30
Codes Cryptographie Pourquoi les confond-on? La langue française (et probablement d autres) n aide pas... on parle de message codé, on devrait dire message chiffré ; code secret, on devrait dire mot de passe ; décoder un message, on devrait dire décrypter. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 5 / 30
Codes Cryptographie Le grand schtroumpf dit toujourd qu il ne faut pas dire "schtroumpfer" mais "schtroumpfer" La langue française (et probablement d autres) n aide pas... on parle de message codé, on devrait dire message chiffré ; code secret, on devrait dire mot de passe ; décoder un message, on devrait dire décrypter. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 6 / 30
Notions de théorie des codes 2 Notions de théorie des codes A. Couvreur Cryptographie basée sur les codes GdR IM 2016 7 / 30
Notions de théorie des codes Codes correcteurs d erreurs L idée fondamentale : ajouter de la redondance à l information. Noise Sender Receiver Encoder Decoder Message m Encoded c e Decoded message c message m Définition Un encodeur est une application linéaire injective : F q k F q n. Un code correcteur est l image d une telle application, i.e. un sous-espace vectoriel C F q n. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 8 / 30
Notions de théorie des codes Distance de Hamming Définition La distance de Hamming sur F q n est définie par d H (x, y) def = {i x i y i }. Par exemple d H ((0, 1, 0, 1, 0, 1), (0, 1, 1, 1, 0, 0)) = 2. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 9 / 30
Notions de théorie des codes Distance de Hamming Définition La distance de Hamming sur F q n est définie par d H (x, y) def = {i x i y i }. Par exemple d H ((0, 1, 0, 1, 0, 1), (0, 1, 1, 1, 0, 0)) = 2. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 9 / 30
Notions de théorie des codes Paramètres et décodeurs À un code C F n q on associe : sa longeur n sa dimension k. Le ratio k n est appelé rendement sa distance minimale est min {d H(x, y)}. x y C A. Couvreur Cryptographie basée sur les codes GdR IM 2016 10 / 30
Notions de théorie des codes Paramètres et décodeurs À un code C F n q on associe : sa longeur n sa dimension k. Le ratio k n est appelé rendement sa distance minimale est min {d H(x, y)}. x y C Un algorithme de décodage t correcteur prend en entrée y F n q et renvoie c C s il existe un unique c C tel que d H (c, y) t ;? sinon. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 10 / 30
Notions de théorie des codes Tous les codes sont bons mais... Theorème Soit C F n q un code aléatoire de longueur n et dimension k, alors où δ = 1 H q ( k n ). Proba(d min C δn) = O(2 n ), Autrement dit : presque tous les codes ont une distance minimale linéaire en la longueur. Mais... A. Couvreur Cryptographie basée sur les codes GdR IM 2016 11 / 30
Notions de théorie des codes Tous les codes sont bons mais... Theorème Soit C F n q un code aléatoire de longueur n et dimension k, alors où δ = 1 H q ( k n ). Proba(d min C δn) = O(2 n ), Autrement dit : presque tous les codes ont une distance minimale linéaire en la longueur. Mais... Déterminer la distance minimale est un problème difficile ; A. Couvreur Cryptographie basée sur les codes GdR IM 2016 11 / 30
Notions de théorie des codes Tous les codes sont bons mais... Theorème Soit C F n q un code aléatoire de longueur n et dimension k, alors où δ = 1 H q ( k n ). Proba(d min C δn) = O(2 n ), Autrement dit : presque tous les codes ont une distance minimale linéaire en la longueur. Mais... Déterminer la distance minimale est un problème difficile ; On ne sait pas décoder un code aléatoire en temps polynomial. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 11 / 30
Les instances faciles Notions de théorie des codes Les constructions algébriques Codes de Reed Muller ; Codes de Reed Solomon ; Codes BCH ; Codes géométriques ; etc... Les constructions probabilistes codes LDPC (codes de Gallager) ; Turbo-codes. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 12 / 30
Notions de théorie des codes Codes de Reed Solomon Définition Soient x 1,..., x n des éléments distincts de F q. Un code de Reed Solomon est défini par RS k (x) def = {(f (x 1 ),..., f (x n )) f F q [X ] <k }. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 13 / 30
Notions de théorie des codes Codes de Reed Solomon Définition Soient x 1,..., x n des éléments distincts de F q. Un code de Reed Solomon est défini par RS k (x) def = {(f (x 1 ),..., f (x n )) f F q [X ] <k }. Un code de Reed Solomon est de dimension k ; et de distance minimale n (k 1). A. Couvreur Cryptographie basée sur les codes GdR IM 2016 13 / 30
Notions de théorie des codes Décodage L algorithme de Berlekamp Welch Soit c = (f (x 1 ),..., f (x n )) RS k (x). Soit y = c + e avec d H (y, c) t. y est connu ; on veut calculer c. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 14 / 30
Notions de théorie des codes Décodage L algorithme de Berlekamp Welch Soit c = (f (x 1 ),..., f (x n )) RS k (x). Soit y = c + e avec d H (y, c) t. Soit On a : y est connu ; on veut calculer c. E(X ) def = i tels que e i 0 (X x i ) i {1,..., n}, y i E(x i ) = f (x i )E(x i ). A. Couvreur Cryptographie basée sur les codes GdR IM 2016 14 / 30
Notions de théorie des codes Décodage L algorithme de Berlekamp Welch On a i {1,..., n}, y i E(x i ) = f (x i )E(x i ). où : les x i, y i sont connus ; E, f sont inconnus mais on sait que deg E t et deg f < k. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 15 / 30
Notions de théorie des codes Décodage L algorithme de Berlekamp Welch On a i {1,..., n}, y i E(x i ) = f (x i )E(x i ). où : les x i, y i sont connus ; E, f sont inconnus mais on sait que deg E t et deg f < k. On pose N(X ) def = f (X )E(X ) et on résout le système linéaire d inconnues E (de degré t) et N (de degré < t + k) : i {1,..., n}, y i E(x i ) = N(X i ). A. Couvreur Cryptographie basée sur les codes GdR IM 2016 15 / 30
Notions de théorie des codes Décodage L algorithme de Berlekamp Welch On a i {1,..., n}, y i E(x i ) = f (x i )E(x i ). où : les x i, y i sont connus ; E, f sont inconnus mais on sait que deg E t et deg f < k. On pose N(X ) def = f (X )E(X ) et on résout le système linéaire d inconnues E (de degré t) et N (de degré < t + k) : i {1,..., n}, y i E(x i ) = N(X i ). On ramène le problème du décodage à un problème d algèbre linéaire. Cet algorithme permet de corriger jusqu à n k 2 erreurs. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 15 / 30
Où sont-ils? Notions de théorie des codes Pour corriger des erreurs : Programme Voyager ; A. Couvreur Cryptographie basée sur les codes GdR IM 2016 16 / 30
Où sont-ils? Notions de théorie des codes Pour corriger des erreurs : Programme Voyager ; CD, DVD, Blu Ray ; A. Couvreur Cryptographie basée sur les codes GdR IM 2016 16 / 30
Où sont-ils? Notions de théorie des codes Pour corriger des erreurs : Programme Voyager ; CD, DVD, Blu Ray ; ADSL ; A. Couvreur Cryptographie basée sur les codes GdR IM 2016 16 / 30
Où sont-ils? Notions de théorie des codes Pour corriger des erreurs : Programme Voyager ; CD, DVD, Blu Ray ; ADSL ; codes barres, QR codes ; A. Couvreur Cryptographie basée sur les codes GdR IM 2016 16 / 30
Où sont-ils? Notions de théorie des codes Pour corriger des erreurs : Programme Voyager ; CD, DVD, Blu Ray ; ADSL ; codes barres, QR codes ; etc... A. Couvreur Cryptographie basée sur les codes GdR IM 2016 16 / 30
Où sont-ils? Notions de théorie des codes Pour corriger des erreurs : Programme Voyager ; CD, DVD, Blu Ray ; ADSL ; codes barres, QR codes ; etc... Pour d autres choses : Partage de secret (avec menteurs), calcul multi parti ; fonctions de hachage ; etc... A. Couvreur Cryptographie basée sur les codes GdR IM 2016 16 / 30
Faire de la cryptographie avec des codes 3 Faire de la cryptographie avec des codes A. Couvreur Cryptographie basée sur les codes GdR IM 2016 17 / 30
Faire de la cryptographie avec des codes Le schéma de McEliece (1978) Schéma de chiffrement à clé publique reposant sur la difficulté de décoder un code aléatoire. On se donne une famille de triplets (C, t, A), où C est un code [n, k] q de matrice génératrice G ; t N ; A est algorithme rapide corrigeant jusqu à t erreurs A. Couvreur Cryptographie basée sur les codes GdR IM 2016 18 / 30
Faire de la cryptographie avec des codes Principe du schéma de McEliece Fonctionnement : A. Couvreur Cryptographie basée sur les codes GdR IM 2016 19 / 30
Faire de la cryptographie avec des codes Principe du schéma de McEliece Fonctionnement : Clé publique : (G, t) ; A. Couvreur Cryptographie basée sur les codes GdR IM 2016 19 / 30
Faire de la cryptographie avec des codes Principe du schéma de McEliece Fonctionnement : Clé publique : (G, t) ; Clé secrète : A. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 19 / 30
Faire de la cryptographie avec des codes Principe du schéma de McEliece Fonctionnement : Clé publique : (G, t) ; Clé secrète : A. Chiffrement : m F k q c = mg C A. Couvreur Cryptographie basée sur les codes GdR IM 2016 19 / 30
Faire de la cryptographie avec des codes Principe du schéma de McEliece Fonctionnement : Clé publique : (G, t) ; Clé secrète : A. Chiffrement : m F k q c = mg C On génère e F n q aléatoire tel que w H (e) t ; A. Couvreur Cryptographie basée sur les codes GdR IM 2016 19 / 30
Faire de la cryptographie avec des codes Principe du schéma de McEliece Fonctionnement : Clé publique : (G, t) ; Clé secrète : A. Chiffrement : m F k q c = mg C On génère e F n q aléatoire tel que w H (e) t ; message chiffré : def m chiffr = c + e A. Couvreur Cryptographie basée sur les codes GdR IM 2016 19 / 30
Faire de la cryptographie avec des codes Principe du schéma de McEliece Fonctionnement : Clé publique : (G, t) ; Clé secrète : A. Chiffrement : m F k q c = mg C On génère e F n q aléatoire tel que w H (e) t ; message chiffré : def m chiffr = c + e Déchiffrement : On applique A et on retrouve c puis m. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 19 / 30
Faire de la cryptographie avec des codes Avantages et inconvénients Avantages chiffrement et déchiffrement rapides. Par exemple, [Canteaut Sendrier 1998] chiffrement 5 fois plus rapide que RSA 1024 (exposant public = 17) déchiffrement 150 fois plus rapide que RSA 1024. Post quantique. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 20 / 30
Faire de la cryptographie avec des codes Avantages et inconvénients Avantages chiffrement et déchiffrement rapides. Par exemple, [Canteaut Sendrier 1998] chiffrement 5 fois plus rapide que RSA 1024 (exposant public = 17) déchiffrement 150 fois plus rapide que RSA 1024. Post quantique. Inconvénients Nécessite souvent de grandes tailles de clé La proposition historique (McEliece 1978) : 67ko key (pour une sécurité inférieure à RSA 1024). Mais des améliorations récentes (c.f. plus loin...) A. Couvreur Cryptographie basée sur les codes GdR IM 2016 20 / 30
Propositions, attaques, enjeux 4 Propositions, attaques, enjeux A. Couvreur Cryptographie basée sur les codes GdR IM 2016 21 / 30
Propositions, attaques, enjeux Comment proposer une famille de codes On doit avoir une large famille de codes (éviter les attaques par recherche exhaustive) ; des codes de grande dimension (résister aux attaques sur les chiffrés) des codes dont la structure est masquable (pour résister aux attaques sur la clé). A. Couvreur Cryptographie basée sur les codes GdR IM 2016 22 / 30
Familles proposées Propositions, attaques, enjeux Codes de Goppa Binaires [McEliece, 1977] (RS /F2 m F n 2 ) Paramètres Clé Sécurité [1024, 524, 101] 2 67ko 2 62 [2048, 1608, 48] 2 412ko 2 96 A. Couvreur Cryptographie basée sur les codes GdR IM 2016 23 / 30
Familles proposées Propositions, attaques, enjeux Codes de Goppa Binaires [McEliece, 1977] (RS /F2 m F n 2 ) Paramètres Clé Sécurité [1024, 524, 101] 2 67ko 2 62 [2048, 1608, 48] 2 412ko 2 96 Pas d attaque structurelle connue à ce jour A. Couvreur Cryptographie basée sur les codes GdR IM 2016 23 / 30
Familles proposées Propositions, attaques, enjeux Codes de Reed Solomon Généralisés (GRS) [Niederreiter, 1986] Paramètres Clé Sécurité [256, 128, 129] 256 67ko 2 95 A. Couvreur Cryptographie basée sur les codes GdR IM 2016 24 / 30
Familles proposées Propositions, attaques, enjeux Codes de Reed Solomon Généralisés (GRS) [Niederreiter, 1986] Paramètres Clé Sécurité [256, 128, 129] 256 67ko 2 95 [Sidelnikov Shestakov, 1992] Attaque en O(n 3 ) A. Couvreur Cryptographie basée sur les codes GdR IM 2016 24 / 30
Familles proposées Propositions, attaques, enjeux Codes de Reed Muller Binaires [Sidelnikov, 1994] Paramètres Clé Sécurité [1024, 176, 128] 2 22.5ko 2 72 [2048, 232, 256] 2 59.4ko 2 93 A. Couvreur Cryptographie basée sur les codes GdR IM 2016 25 / 30
Familles proposées Propositions, attaques, enjeux Codes de Reed Muller Binaires [Sidelnikov, 1994] Paramètres Clé Sécurité [1024, 176, 128] 2 22.5ko 2 72 [2048, 232, 256] 2 59.4ko 2 93 [Minder Shokrollahi, 2007] Attaque sous-exponentielle. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 25 / 30
Familles proposées Propositions, attaques, enjeux Codes géométriques [Janwa Moreno, 1996] Paramètres Clé Sécurité [171, 109, 61] 128 16ko 2 66 A. Couvreur Cryptographie basée sur les codes GdR IM 2016 26 / 30
Familles proposées Propositions, attaques, enjeux Codes géométriques [Janwa Moreno, 1996] Paramètres Clé Sécurité [171, 109, 61] 128 16ko 2 66 Attaques Polynomiales [Faure Minder, 2008], genre 2 [C-, Márquez Corbella, Pellikaan, 2014], genre quelconque A. Couvreur Cryptographie basée sur les codes GdR IM 2016 26 / 30
Familles proposées Propositions, attaques, enjeux Variantes avec clés compactes [Gaborit, 2005], codes BCH ; ( 1.5 ko, Sécurité : 2 80 ) [Berger, Cayrel, Gaborit, Otmani, 2009], codes alternants quasi-cycliques ; ( 750 o, Sécurité : 2 80 ) [Misoczki, Baretto, 2009], codes alternants quasi-diadiques. ( 2.5 ko, Sécurité : 2 80 ) A. Couvreur Cryptographie basée sur les codes GdR IM 2016 27 / 30
Familles proposées Propositions, attaques, enjeux Variantes avec clés compactes [Gaborit, 2005], codes BCH ; ( 1.5 ko, Sécurité : 2 80 ) [Berger, Cayrel, Gaborit, Otmani, 2009], codes alternants quasi-cycliques ; ( 750 o, Sécurité : 2 80 ) [Misoczki, Baretto, 2009], codes alternants quasi-diadiques. ( 2.5 ko, Sécurité : 2 80 ) [Otmani, Tillich, Dallot, 2008] [Faugère, Otmani, Perret, Tillich, 2010] [Faugère, Perret, Otmani, Portzamparc, Tillich 2015] A. Couvreur Cryptographie basée sur les codes GdR IM 2016 27 / 30
Familles proposées Propositions, attaques, enjeux Codes de Goppa q aires [Bernstein, Lange, Peters, 2010] Des clés de 78 à 200ko d une sécurité > 2 128. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 28 / 30
Familles proposées Propositions, attaques, enjeux Codes de Goppa q aires [Bernstein, Lange, Peters, 2010] Des clés de 78 à 200ko d une sécurité > 2 128. Non cassé, mais... [C. Otmani, Tillich, 2014] sous-corps d indice 2 [Faugere, Perret, de Portzamparc 2015] codes sur des corps non premiers de petite caractéristique A. Couvreur Cryptographie basée sur les codes GdR IM 2016 28 / 30
Conclusion Propositions, attaques, enjeux Les codes qui restent en course : Constructions algébriques : Les codes de Goppa (RS /Fq m F n q) avec m > 3 ; Leurs généralisations géométriques. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 29 / 30
Conclusion Propositions, attaques, enjeux Les codes qui restent en course : Constructions algébriques : Les codes de Goppa (RS /Fq m F n q) avec m > 3 ; Leurs généralisations géométriques. Constructions probabilistes [Baretto, Misoczki, Tillich, Sendrier] Codes MDPC (quasi cycliques) : clés 10000 bits pour 128 bits de sécurité. A. Couvreur Cryptographie basée sur les codes GdR IM 2016 29 / 30
Propositions, attaques, enjeux Merci! A. Couvreur Cryptographie basée sur les codes GdR IM 2016 30 / 30