thÉorie.des.codes

354
 Cours et exercices avec solutions SCIENCES SUP THÉORIE DES CODES Compression, cryptage, correction Jean-Guillau me Dumas Jean-Louis Roch Éric Tannier Sébastien Varrette Master • Écoles d’ingénieurs

Upload: youssef-arras

Post on 08-Jul-2015

384 views

Category:

Documents


4 download

TRANSCRIPT

SCIENCES SUP

Cours et exercices avec solutionsMaster coles dingnieurs

THORIE DES CODESCompression, cryptage, correctionJean-Guillaume Dumas Jean-Louis Roch ric Tannier Sbastien Varrette

THORIE DES CODESCompression, cryptage, correction

Jean-Guillaume DumasMatre de confrences luniversit Grenoble 1

Jean-Louis RochMatre de confrences lENSIMAG

ric TannierChercheur de lINRIA Rhne-Alpes luniversit Lyon 1

Sbastien VarretteDoctorant luniversit du Luxembourg

Illustration de couverture : Antenne-relais de transmission sur le mont Pisgah dans les Appalaches. Photographie de Jean-Guillaume Dumas.

Dunod, Paris, 2007 ISBN 9-78-210-050692-7

Prambule eCet ouvrage a t initi au printemps 2000, avec la cration du Dpartement ee e e e ENSIMAG-ENSERG Tlcommunications ` lInstitut National Polytechnique ee a de Grenoble et la construction dun cours gnral de premi`re anne (niveau e e e e Licence troisi`me anne dans le schma LMD) dintroduction aux codes et ` e e e a leurs applications. e Edit initialement sous forme de polycopi, il a volu en devenant un support e e e de cours de rfrence pour dirents cours des universits de Grenoble, ` la ee e e a fois ` lInstitut National Polytechnique de Grenoble (INPG) et ` lUniversit a a e Joseph Fourier (UJF). Nous remercions nos coll`gues qui ont particip ` ces enseignements et ont e e a contribu par leurs commentaires ` amliorer notre support de cours : Gilles e a e Debunne, Yves Denneulin, Dominique Duval, Grgory Mouni et Karim Sae e mak. e

Grenoble, Lyon, Luxembourg, le 19 dcembre 2006. e Jean-Guillaume Dumas, Jean-Louis Roch, Eric Tannier, Sbastien Varrette. e

SommaireIntroduction 1 Thorie des codes e 1.1 De Jules Csar ` la tlcopie . . . . . . . . . . . . . . . . e a ee 1.1.1 La source : de limage ` la suite de pixels . . . . . a 1.1.2 La compression du message . . . . . . . . . . . . . 1.1.3 La dtection derreurs . . . . . . . . . . . . . . . . e 1.1.4 Le chirement . . . . . . . . . . . . . . . . . . . . 1.1.5 Le dcodage . . . . . . . . . . . . . . . . . . . . . . e Lattaque et le dchirement . . . . . . . . . . . . e La dcompression et les pertes . . . . . . . . . . . e 1.1.6 Les dfauts de ce code . . . . . . . . . . . . . . . . e 1.1.7 Ordres de grandeur et complexit des algorithmes e Taille des nombres . . . . . . . . . . . . . . . . . . La vitesse des ordinateurs . . . . . . . . . . . . . . Taille et ge de lunivers . . . . . . . . . . . . . . . a Complexit des algorithmes . . . . . . . . . . . . . e 1.2 Codage par ot et probabilits . . . . . . . . . . . . . . . e 1.2.1 Le code de Vernam . . . . . . . . . . . . . . . . . . 1.2.2 Un peu de probabilits . . . . . . . . . . . . . . . . e enements et mesure de probabilit . . . . . . . . Ev` e Probabilits conditionnelles et Formule de Bayes . e 1.2.3 Entropie . . . . . . . . . . . . . . . . . . . . . . . . Source dinformation . . . . . . . . . . . . . . . . . Entropie dune source . . . . . . . . . . . . . . . . Entropies conjointe et conditionnelle . . . . . . . . Extension dune source . . . . . . . . . . . . . . . 1.2.4 Chirement parfait . . . . . . . . . . . . . . . . . . 1.2.5 Mise en pratique du chirement parfait ? . . . . . . 1.3 Codage par blocs, alg`bre et arithmtique . . . . . . . . . e e 13 19 19 19 20 21 22 23 23 24 24 26 26 26 27 27 28 29 30 30 31 32 32 33 34 35 36 37 37

. . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . .

6 1.3.1

Sommaire Blocs et modes de cha nage . . . . . . . . . . . . . . . Le mode ECB : Electronic Code Book . . . . . . . . . Le mode CBC : Cipher Bloc Chaining . . . . . . . . . Le mode CFB : Cipher FeedBack . . . . . . . . . . . . Le mode OFB : Output FeedBack . . . . . . . . . . . . Le mode CTR : Counter-mode encryption . . . . . . . 1.3.2 Structures algbriques des mots de codes . . . . . . . e Groupes . . . . . . . . . . . . . . . . . . . . . . . . . . Anneaux . . . . . . . . . . . . . . . . . . . . . . . . . Corps . . . . . . . . . . . . . . . . . . . . . . . . . . . Espaces vectoriels . . . . . . . . . . . . . . . . . . . . Alg`bre linaire . . . . . . . . . . . . . . . . . . . . . . e e 1.3.3 Codage bijectif dun bloc . . . . . . . . . . . . . . . . Inverse modulaire : algorithme dEuclide . . . . . . . . Lindicatrice dEuler et le thor`me de Fermat . . . . e e Lexponentiation modulaire et le logarithme discret . . Fonctions ` Sens Unique . . . . . . . . . . . . . . . . . a 1.3.4 Construction des corps premiers et corps nis . . . . . Tests de primalit et gnration de nombres premiers . e e e Arithmtique des polynmes . . . . . . . . . . . . . . e o Lanneau V [X]/P et les corps nis . . . . . . . . . . . Polynmes irrductibles . . . . . . . . . . . . . . . . . o e Constructions des corps nis . . . . . . . . . . . . . . 1.3.5 Implmentations des corps nis . . . . . . . . . . . . . e Oprations sur les polynmes . . . . . . . . . . . . . . e o Utilisation des gnrateurs . . . . . . . . . . . . . . . e e Racines primitives . . . . . . . . . . . . . . . . . . . . 1.3.6 Gnrateurs pseudo-alatoires . . . . . . . . . . . . . . e e e Les gnrateurs congruentiels . . . . . . . . . . . . . . e e Les registres ` dcalage linaire . . . . . . . . . . . . . a e e Gnrateurs cryptographiquement srs . . . . . . . . . e e u Quelques tests statistiques . . . . . . . . . . . . . . . . Dcoder, dchirer, attaquer . . . . . . . . . . . . . . . . . . e e 1.4.1 Dcoder sans ambigu e . . . . . . . . . . . . . . . . . e t Proprit du prxe . . . . . . . . . . . . . . . . . . . ee e Larbre de Human . . . . . . . . . . . . . . . . . . . Reprsentation des codes instantans . . . . . . . . . . e e Thor`me de McMillan . . . . . . . . . . . . . . . . . e e 1.4.2 Les codes non injectifs . . . . . . . . . . . . . . . . . . Lempreinte de vrication . . . . . . . . . . . . . . . e Les fonctions de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 39 39 40 40 41 41 42 42 43 44 45 46 46 49 52 54 55 55 58 59 60 63 64 64 65 66 69 71 71 74 74 76 77 78 80 81 81 82 82 83

1.4

Thorie des codes e

7

1.4.3

Transformations avec perte . . . . . . . . . . . . . . . . 87 Transforme de Fourier et transforme discr`te . . . . . 87 e e e Algorithme de la DFT . . . . . . . . . . . . . . . . . . . 89 e DFT et racines ni`mes de lunit dans un corps ni . . . 90 e Produit rapide de polynmes par la DFT . . . . . . . . 92 o Cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . 93 Attaque des gnrateurs congruentiels linaires . . . . . 93 e e e Algorithme de Berlekamp-Massey pour la synth`se de e registres ` dcalage linaire . . . . . . . . . . . 94 a e e Le paradoxe des anniversaires . . . . . . . . . . . . . . . 97 Attaque de Yuval sur les fonctions de hachage . . . . . . 98 Factorisation des nombres composs . . . . . . . . . . . 98 e Nombres premiers robustes . . . . . . . . . . . . . . . . 103 Rsolution du logarithme discret . . . . . . . . . . . . . 104 e . . . . . . . . . . . . . . . . . . . . . . . . . 107 108 108 109 110 111 111 114 117 117 119 120 122 122 123 124 125 126 126 127 128 129 132 132 136 137

2 Thorie de linformation et compression e 2.1 Thorie de linformation . . . . . . . . . . . . . . . . . . . . . e 2.1.1 Longueur moyenne dun code . . . . . . . . . . . . . . 2.1.2 Lentropie comme mesure de la quantit dinformation e 2.1.3 Thor`me de Shannon . . . . . . . . . . . . . . . . . . e e 2.2 Codage statistique . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Algorithme de Human . . . . . . . . . . . . . . . . . Lalgorithme de Human est optimal . . . . . . . . . . 2.2.2 Codage arithmtique . . . . . . . . . . . . . . . . . . . e Arithmtique ottante . . . . . . . . . . . . . . . . . . e Arithmtique enti`re . . . . . . . . . . . . . . . . . . . e e En pratique . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Codes adaptatifs . . . . . . . . . . . . . . . . . . . . . Algorithme de Human dynamique pack . . . . . . Compression dynamique . . . . . . . . . . . . . . . . . Dcompression dynamique . . . . . . . . . . . . . . . . e Codage arithmtique adaptatif . . . . . . . . . . . . . e 2.3 Heuristiques de rduction dentropie . . . . . . . . . . . . . . e 2.3.1 RLE Run Length Encoding . . . . . . . . . . . . . . Le code du fax (suite et n) . . . . . . . . . . . . . . . 2.3.2 Move-to-Front . . . . . . . . . . . . . . . . . . . . . . 2.3.3 BWT : Transformation de Burrows-Wheeler . . . . . . 2.4 Codes compresseurs usuels . . . . . . . . . . . . . . . . . . . . 2.4.1 Algorithme de Lempel-Ziv et variantes gzip . . . . . 2.4.2 Comparaison des algorithmes de compression . . . . . 2.4.3 Formats GIF et PNG pour la compression dimages .

8 2.5 La compression avec perte . . . . . . . . . . . . . . . . 2.5.1 Dgradation de linformation . . . . . . . . . . e 2.5.2 Transformation des informations audiovisuelles 2.5.3 Le format JPEG . . . . . . . . . . . . . . . . . 2.5.4 Le format MPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 137 138 139 141 143 143 143 145 146 146 147 147 147 149 149 151 151 152 152 153 153 155 156 156 158 161 165 168 168 168 169 172 174 175 176 176 179 180 181

3 Cryptologie 3.1 Principes gnraux et terminologie . . . . . . . . . . e e 3.1.1 Terminologie . . . . . . . . . . . . . . . . . . ` 3.1.2 A quoi sert la cryptographie ? . . . . . . . . . 3.2 Attaques sur les syst`mes cryptographiques . . . . . e 3.2.1 Principes de Kerckhos . . . . . . . . . . . . 3.2.2 Les grands types de menaces . . . . . . . . . Attaques passives/actives . . . . . . . . . . . Cryptanalyse et attaques sur un chirement . 3.3 Syst`me cryptographique ` clef secr`te . . . . . . . . e a e 3.3.1 Principe du chirement ` clef secr`te . . . . . a e 3.3.2 Classes de chirements symtriques . . . . . e Les chirement symtriques par ot . . . . . e Les chirements symtriques par blocs . . . . e Chirement inconditionnellement sr . . . . . u 3.3.3 Le syst`me DES (Data Encryption Standard) e Prsentation exhaustive du syst`me DES . . e e Diversication de la clef dans DES . . . . . . Avantages et applications de DES . . . . . . Cryptanalyse de DES . . . . . . . . . . . . . 3.3.4 Le nouveau standard AES (Rijndael) . . . . . Principe de lalgorithme . . . . . . . . . . . . La diversication de la clef dans AES . . . . Scurit de AES . . . . . . . . . . . . . . . . e e 3.4 Syst`me cryptographique ` clef publique . . . . . . . e a 3.4.1 Motivations et principes gnraux . . . . . . e e 3.4.2 Chirement RSA . . . . . . . . . . . . . . . . Ecacit et robustesse de RSA. . . . . . . . . e Attaques sur RSA . . . . . . . . . . . . . . . 3.4.3 Chirement El Gamal . . . . . . . . . . . . . 3.5 Authentication, Intgrit, Non-rpudiation . . . . . e e e 3.5.1 Fonctions de hachage cryptographiques . . . MD5 . . . . . . . . . . . . . . . . . . . . . . . SHA-1 . . . . . . . . . . . . . . . . . . . . . . SHA-256 . . . . . . . . . . . . . . . . . . . .

Thorie des codes e Whirlpool . . . . . . . . . . . . . . . . . . . . . . . . Etat des lieux sur la rsistance aux collisions . . . . e 3.5.2 La signature lectronique . . . . . . . . . . . . . . . e Contrle dintgrit par les fonctions de hachage . . o e e Codes dauthentication, ou MAC . . . . . . . . . . Les signatures lectroniques . . . . . . . . . . . . . . e Signature RSA . . . . . . . . . . . . . . . . . . . . . Standard DSS - Digital Signature Standard . . . . . Protocoles usuels de gestion de clefs . . . . . . . . . . . . . 3.6.1 Gnration de bits cryptographiquement sre . . . . e e u 3.6.2 Protocole dchange de clef secr`te de Die-Hellman e e attaque Man-in-the-middle . . . . . . . . . . . . . . 3.6.3 Kerberos : un distributeur de clefs secr`tes . . . . . e Prsentation gnrale du protocole Kerberos . . . . e e e Dtail des messages Kerberos . . . . . . . . . . . . . e Les faiblesses de Kerberos . . . . . . . . . . . . . . . 3.6.4 Authentication ` clef publique . . . . . . . . . . . . a 3.6.5 Infrastructures ` clefs publiques : PGP et PKI X . . a Principe gnral . . . . . . . . . . . . . . . . . . . . e e Les lments de linfrastructure . . . . . . . . . . . . ee Les certicats lectroniques . . . . . . . . . . . . . . e Le mod`le PKIX . . . . . . . . . . . . . . . . . . . . e Architectures non hirarchiques, PGP . . . . . . . . e Dfauts des PKI . . . . . . . . . . . . . . . . . . . . e 3.6.6 Un utilitaire de scurisation de canal, SSH . . . . . . e SSH, un protocole hybride . . . . . . . . . . . . . . . Authentication du serveur . . . . . . . . . . . . . . Etablissement dune connexion scurise . . . . . . . e e Authentication du client . . . . . . . . . . . . . . . Scurit, intgrit et compression . . . . . . . . . . . e e e e Dirences majeures entre SSH-1 et SSH-2 . . . . . e 3.6.7 Projets de standardisation et recommandations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . et . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9 181 182 183 183 184 186 187 188 189 189 190 192 192 194 195 197 198 198 200 202 204 208 209 210 211 212 212 214 214 215 215 217 218 218 219 220 221 222 222

3.6

4 Dtection et correction derreurs e 4.1 Principe de la dtection et de la correction derreurs . . . e 4.1.1 Codage par blocs . . . . . . . . . . . . . . . . . . . 4.1.2 Un exemple simple de dtection par parit . . . . . e e 4.1.3 Correction par parit longitudinale et transversale e 4.1.4 Schma de codage et probabilit derreur . . . . . e e 4.1.5 Deuxi`me thor`me de Shannon . . . . . . . . . . e e e Rendement dun code et ecacit . . . . . . . . . e

10

Sommaire Capacit de canal . . . . . . . . . . . . . . . . . . . . . e Transmission sans erreur sur un canal de capacit xe . e e Dtection derreurs par parit - codes CRC . . . . . . . . . . . e e 4.2.1 Contrle de parit sur les entiers : ISBN, EAN, LUHN . o e Code barre EAN . . . . . . . . . . . . . . . . . . . . . . Code ISBN . . . . . . . . . . . . . . . . . . . . . . . . . Cl RIB . . . . . . . . . . . . . . . . . . . . . . . . . . . e Carte bancaire : LUHN-10 . . . . . . . . . . . . . . . . . 4.2.2 Codes de redondance cyclique (CRC) . . . . . . . . . . Codage CRC . . . . . . . . . . . . . . . . . . . . . . . . Dcodage CRC . . . . . . . . . . . . . . . . . . . . . . . e Nombre derreurs de bit dtectes . . . . . . . . . . . . e e Exemples de codes CRC . . . . . . . . . . . . . . . . . . Distance dun code . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Code correcteur et distance de Hamming . . . . . . . . 4.3.2 Codes quivalents, tendus et raccourcis . . . . . . . . e e Codes quivalents . . . . . . . . . . . . . . . . . . . . . e Code tendu . . . . . . . . . . . . . . . . . . . . . . . . e Code poinonn . . . . . . . . . . . . . . . . . . . . . . c e Code raccourci . . . . . . . . . . . . . . . . . . . . . . . 4.3.3 Code parfait . . . . . . . . . . . . . . . . . . . . . . . . 4.3.4 Codes de Hamming binaires . . . . . . . . . . . . . . . . Codes linaires et codes cycliques . . . . . . . . . . . . . . . . . e 4.4.1 Codes linaires et redondance minimale . . . . . . . . . e 4.4.2 Codage et dcodage des codes linaires . . . . . . . . . . e e Codage par multiplication matrice-vecteur . . . . . . . . Dcodage par multiplication matrice-vecteur . . . . . . e 4.4.3 Codes cycliques . . . . . . . . . . . . . . . . . . . . . . . Caractrisation : polynme gnrateur . . . . . . . . . . e o e e Opration de codage . . . . . . . . . . . . . . . . . . . . e Dtection derreur et opration de dcodage . . . . . . . e e e 4.4.4 Codes BCH . . . . . . . . . . . . . . . . . . . . . . . . . Distance garantie . . . . . . . . . . . . . . . . . . . . . . Construction des polynmes gnrateurs BCH . . . . . . o e e Codes BCH optimaux : codes de Reed-Solomon . . . . . Dcodage des codes de Reed-Solomon . . . . . . . . . . e Paquets derreurs et entrelacement . . . . . . . . . . . . . . . . 4.5.1 Paquets derreur . . . . . . . . . . . . . . . . . . . . . . 4.5.2 Entrelacement . . . . . . . . . . . . . . . . . . . . . . . 4.5.3 Entrelacement avec retard et table dentrelacement . . . 4.5.4 Code entrelac crois et code CIRC . . . . . . . . . . . e e 222 224 225 226 226 227 228 228 228 229 229 229 230 230 230 234 234 235 235 235 236 237 240 240 243 243 244 246 247 249 250 251 251 252 253 254 258 258 259 260 261

4.2

4.3

4.4

4.5

Thorie des codes e Application : code CIRC . . . . . . . . . . . . . . Codes convolutifs et turbo-codes . . . . . . . . . . . . . 4.6.1 Le codage par convolution . . . . . . . . . . . . . 4.6.2 Le dcodage par plus court chemin . . . . . . . . e Le diagramme dtat . . . . . . . . . . . . . . . . e Le treillis de codage . . . . . . . . . . . . . . . . Lalgorithme de Viterbi . . . . . . . . . . . . . . Codes systmatiques, rendement et poinonnage e c Codes convolutifs rcursifs . . . . . . . . . . . . . e 4.6.3 Les turbo-codes . . . . . . . . . . . . . . . . . . . Composition parall`le . . . . . . . . . . . . . . . e Dcodage turbo . . . . . . . . . . . . . . . . . . . e Turbo-codes en blocs et turbo-codes hybrides . . Performances et applications des turbo-codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11 262 265 265 266 267 267 268 270 270 271 271 272 273 274 275 . . . . . . . . . . . . . . . 279 279 289 296 315 329 331 et . . . . . . algorithmes 335 . . . . . . . . . . . . . . . . . . . . . . 335 . . . . . . . . . . . . . . . . . . . . . . 337 . . . . . . . . . . . . . . . . . . . . . . 338 341

4.6

Compression, cryptage, correction : en guise de conclusion Solutions des exercices Solutions des exercices proposs e Solutions des exercices proposs e Solutions des exercices proposs e Solutions des exercices proposs e Solution de lexercice du casino Bibliographie Liste des gures, tableaux Liste des gures . . . . . . Liste des tableaux . . . . Liste des algorithmes . . . Index au au au au . . chapitre chapitre chapitre chapitre . . . . . 1 2 3 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

IntroductionCe livre a pour objet la transmission automatique dinformations numriques, e et se focalisera sur la structure de linformation, indpendamment du type e de support de transmission. Linformation peut tre de nimporte quel type e pourvu quon puisse en donner une reprsentation numrique : textes, images, e e sons, vidos par exemple. La transmission de ces types de donnes est omnie e prsente dans la technologie, et spcialement dans les tlcommunications. Il e e ee est donc ncessaire de sappuyer sur de bonnes bases thoriques pour que cette e e transmission soit able, ce dernier terme se voyant donner plusieurs signications qui sont les objectifs qui nous guideront tout au long de louvrage. Les canaux de transmission peuvent galement tre de tous types (rseaux e e e de cbles ou dondes), via ventuellement un support de stockage. Nous ne a e considrons pas les probl`mes physiques que posent la transmission, qui font e e lobjet de la thorie dite du signal . La thorie des codes, elle, traite de la e e forme de linformation elle-mme quand elle doit tre transmise, ou stocke. e e ePERTURBATION

SOURCE

Codage

CANAL

Dcodage

DESTINATION

Efficacit de la transmission : compression des donnes Scurit de linformation : cryptage, authentification Intgrit du message : correction derreurs

Fig. 1: Schma fondamental du codage. e

La communication dune information commence par sa formulation par un metteur, se poursuit par un transit via un canal, et se termine par la reconse titution du message par le destinataire. Parfois lmetteur et le destinataire e sont confondus, sil sagit dun processeur ou dune personne qui enregistre des donnes dans un registre, une mmoire ou un disque puis les lit ultrieurement. e e e

14

Introduction

Linformation doit tre reue par son destinataire dans son intgralit, en se c e e e curit, et le plus rapidement possible. Or quel que soit le canal considr, avec e ee des variations selon le support, on ne peut jamais le supposer sr , dans u plusieurs sens du terme : il y a toujours des erreurs au cours des transmissions, et le message est susceptible dtre lu, voire altr, par des tiers plus ou moins e ee bien intentionns. Il sagit alors pour lmetteur denvoyer ses messages sous e e une forme qui permette au destinataire de les reconstituer en tenant compte dventuelles altrations au cours du transfert ou de la condentialit de cere e e taines informations, tout en minimisant la taille des donnes. Ces contraintes e sont les points de dparts de plusieurs champs dtude en mathmatiques et e e e en informatique, souvent dvelopps indpendamment les uns des autres bien e e e quils traitent des mmes objets. Le but de ce livre est de les rassembler en e un seul volume an de prsenter une seule thorie, dont lobjet est la forme e e donne ` linformation au cours de sa transmission, cest-`-dire une thorie e a a e gnrale des codes. e e En 1948, Claude Shannon posait la premi`re pierre de ce quil a appel une e e thorie mathmatique de linformation . On raconte que sa thorie est ne e e e e de rexions sur la langue (langlais, en loccurrence) : Shannon samusait ` e a masquer une proportion variable des textes quil lisait, et ` les reconstituer ` a a partir de la partie visible. En enlevant quelques mots, il pouvait reconstituer le sens de la phrase de faon certaine. Cest que ces mots cachs taient redonc e e dants, ils napportaient rien au sens du message. Si il en enlevait trop, il lui tait impossible de reconstituer le message avec certitude. Shannon mit alors e au point une thorie qui serait ` mme de calculer la quantit dinformae a e e tion dans nimporte quel type de message, ce qui revient ` dterminer son a e taux de redondance. Rduire cette redondance est ce quaujourdhui nous appelons la compression, e ou thorie de linformation , par dlit historique, et bien que ce titre e e e puisse convenir ` louvrage entier, qui dpasse largement cette thorie. Dans a e e un souci decacit, qui rel`ve de loptimisation de lespace de stockage, et e e plus encore de la rapidit de transmission, il sagit de rendre le message le plus e court possible, en ne gardant que ce qui est indispensable ` sa comprhension, a e ou mieux, en le reformulant sans redondance. La condentialit dont on veut entourer la transmission dune information e est une proccupation beaucoup plus ancienne que celle de lecacit. Pare e tant du principe que les routes (comme les canaux numriques) ne sont pas e sres, et quun message peut tre intercept au cours de sa transmission, il u e e faut transformer le texte, le dcorrler de sa signication, en ne laissant qu` e e a ses destinataires la clef de son dchirement. Les histoires de codes secrets, et e des batailles entre inventeurs de codes et briseurs de codes (qui cherchent ` a conna la signication dun message sans en avoir la clef) pars`ment lhistre e

Thorie des codes e

15

toire des socits et des tats. Shannon contribua galement ` ce domaine en ee e e a apportant pour la premi`re fois, en 1949, une preuve thorique de condentiae e lit. Une discipline scientique est aujourdhui consacre aux codes secrets, la e e cryptologie. Non seulement les mthodes actuelles garantissent le secret sur la e signication dun message, mais elles permettent aussi de signer des documents ou didentier un metteur. e Tous les canaux permettant de transmettre une information numrique peue vent tre soumis ` des perturbations qui sont susceptibles daltrer une partie e a e des messages, et donc den modier le sens. Si les informations sont envoyes e sans redondance, la plus petite altration peut en eet entra e ner des fausses interprtations ` larrive. Dans le cas dun texte en langue naturelle, la plue a e part des erreurs naltreront pas la perception du lecteur, car la redondance lui e permettra de reconstituer le message original. Shannon, lui encore, a montr e un rsultat sensationnel en 1948 : mme sur des canaux dont le taux derreur e e est tr`s important, il est possible dajouter susamment de redondance pour e que le message soit reu dans son intgralit. Mais sa dmonstration nest pas c e e e constructive et ce thor`me motive toujours la construction de mthodes ine e e cluant de faon ordonne et optimise de la redondance an que le destinataire c e e puisse soit sapercevoir que le message a t altr (codes dtecteurs), soit coree ee e riger lui-mme les erreurs ventuelles (codes correcteurs). Toutes ces mthodes e e e sont paramtrables, cest-`-dire adaptables au type de support considr, et ` e a ee a son taux derreur. Ce sont ces trois proccupations lecacit, la scurit, lintgrit qui e e e e e e retiennent lattention des concepteurs de mthodes de transmission de line formation. Lintrt de les prsenter ensemble repose sur leur objet commun, ee e le code, qui structure linformation dans tous les supports technologiques actuels, et sur lutilit de disposer dans un seul volume de toutes les faons de e c manipuler linformation avant de lenvoyer ou de la recevoir. Le socle sur lequel sappuie la thorie des codes est issu de lalg`bre linaire, e e e de larithmtique, des probabilits, de lalgorithmique et de la combinatoire. e e Les mod`les mathmatiques et les premiers dveloppements algorithmiques e e e qui structurent la notion de code sont introduits dans le premier chapitre de cet ouvrage. La prsentation de ces mod`les est assortie dintroductions des e e mathmatiques utiles ` leur manipulation, ainsi que de notions gnrales sur e a e e lecacit des mthodes de calcul, dont nous ferons un usage intensif tout au e e long de louvrage. Il sera utile pour lire ce chapitre de disposer dun bagage thorique de base en alg`bre linaire, ce qui rend ce livre accessible apr`s une e e e e licence scientique. Certains lments dpassent les connaissances classiques ee e des tudiants non mathmaticiens, ils sont donc prsent en dtails ici. Le e e e e e lecteur se rendra rapidement compte de leur relle ecacit pratique, le plus e e souvent au moment mme de leur introduction. Pour clarier encore lutilit e e

16

Introduction

et les dpendances entre les notions introduites, la gure 2 les reprsente. e eProbabilits Structures algbriques Arithmtique, Fonction dEuler Thormes chinois et de Fermat Entropie Algorithme dEuclide Fonction Puissance Modulo Test de primalit Gnrateurs pseudoalatoires Test dirreductibilit Arithmtique des polynmes Complexit des algorithmes

Transforme de Fourier discrte Construction des corps finis

Compression

Dtection/Correction

Cryptologie

Fig. 2: Schma des notions introduites dans le premier chapitre, avec leurs dpene e dances.

Cette gure permettra aussi au lecteur press ou intress par une partie de e e e louvrage seulement de retrouver son chemin, la lecture linaire ntant pas e e obligatoire. Mme si ce premier chapitre est conu pour introduire la thorie e c e des codes, il peut servir de bo ` outils de rfrence lors de la lecture des te a ee chapitres suivants. Ceux-ci reprennent sparment la compression, la cryptoe e graphie, et les codes dtecteurs et correcteurs derreur. Ils prsentent les re e e sultats thoriques fondamentaux et les algorithmes qui en dcoulent. Chacun e e de ces trois chapitres est illustr par des exemples dutilisation pratique dans e le contexte des tlcommunications. Nous nous sommes eorcs de prsenter ` ee e e a la fois les thories classiques du codage et les dveloppements les plus rcents e e e sur le sujet, dans la mesure o` un tel livre dintroduction le permettait. u En plus de runir des thories mathmatiques qui partagent le mme objet, e e e e le credo de cet ouvrage est algorithmique. Ici, les proprits mathmatiques ee e des fonctions servent ` rendre ecaces leurs calculs. Les mthodes de calcul a e sont toujours donnes de faon dtaille, et immdiatement implmentables e c e e e e en nimporte quel langage de programmation. Lecacit des mthodes est e e toujours calcule et discute, les implmentations existantes compares. Nos e e e e sciences sont ` la fois les hriti`res des mathmatiques grecques, qui faisaient a e e e de lesthtique de leurs noncs leur principale qualit, et des mathmatiques e e e e e

Thorie des codes e

17

orientales, mues plus souvent par lutilit et le calcul. Cest encore ce qui e peut unir toutes les thories des codes, et cest un de leurs grands mrites, de e e faire appel ` des mathmatiques rigoureuses et apprcies des esth`tes pour a e e e e construire des mthodes ecaces appliques dans la communication courante. e e Ce livre est ainsi au conuent de ces euves, il attirera les frus de technologie e autant que les amateurs de thorie des nombres, sans compter ceux que les e histoires de dchirement de langages obscurs, de machines qui corrigent leurs e propres erreurs et de codes secrets font toujours rver. e

Chapitre 1

Thorie des codes eOn appellera un code une mthode de transformation qui convertit la reprsene e tation dune information en une autre. Cette dnition est susamment large e pour accueillir plusieurs objets mathmatiques (fonctions, algorithmes, transe formes), dont nous ferons usage tout au long de ce texte. Le mot code servira e aussi ` dsigner le produit de ces transformations, cest-`-dire linformation a e a code et sa structure. e Mais pour commencer ` se retrouver dans ces dnitions et comprendre ce a e quest vraiment le code, voici un exemple simple mlangeant les technologies e et les poques. e

1.1

De Jules Csar ` la tlcopie e a ee

Pour introduire toutes les proprits importantes des codes, en voici un consee truit ` partir dexemples rellement utiliss, actuellement ou par le pass. a e e e Supposons que nous voulions envoyer une information par fax tout en assurant le secret de la transmission. Voici ce que pourrait tre un code qui raliserait e e cette opration. e

1.1.1

La source : de limage ` la suite de pixels a

La transmission par fax permet de faire transiter des images par un canal tlphonique. Ce quon demandera ` ce code sera dassurer les transformaee a tions ncessaires pour obtenir ` larrive une image semblable ` loriginale, e a e a rapidement et secr`tement, dans un format qui puisse transiter par le canal. e Le premier procd de transformation sera assur par le scanner de lappareil. e e e Il consiste ` lire limage et ` la transformer en une suite de pixels, quon peut a a se reprsenter comme des petits carrs soit noirs, soit blancs. Cest un code, e e

20

e Chapitre 1 : Thorie des codes

selon la dnition que nous en avons donne, et nous lcrirons comme un e e e algorithme, dans un format que nous adopterons tout au long de cet ouvrage. Algorithme de codage Entres Une image e Sorties Une suite de pixels Lentre de lalgorithme est aussi appele la source, et la sortie le code1 . e e La mthode adopte sera la suivante : la largeur de limage source est divise e e e en 1728 parties gales ; la longueur est ensuite divise en lignes, de faon ` e e c a former des carrs de mme taille. Ces carrs seront les pixels. e e e Chaque pixel se voit attribuer la couleur noire si ` cet endroit limage est sufa samment fonce, et la couleur blanche si limage est claire. Cest la premi`re e e partie de notre code.

1.1.2

La compression du message

Pour formaliser les messages sources et les codes, on dnit le langage dans e lequel ils sont exprims. On appelle alphabet un ensemble ni V = {v1 , . . . , vk } e dlments appels caract`res. Le cardinal dun ensemble ni V est son nombre ee e e dlments, not |V |. ee e Une suite de caract`res de V est une cha On note V lensemble des cha e ne. nes sur V , et V + lensemble des cha nes de longueur non nulle. Comme lalphabet du code et lalphabet de la source peuvent direr, on parle dalphabet source e et dalphabet du code. Par exemple, pour la mthode de compression que nous e allons voir maintenant, lalphabet source est le rsultat du scanner, ` savoir e a {pixel blanc, pixel noir}, et lalphabet du code sera lensemble de bits {0, 1}. On pourrait envoyer la suite de pixels sous forme de bits numriques, puisquils e sont immdiatement traduisibles en 0 (pour un pixel blanc) et 1 (pour un pixel e noir). Mais on peut alors appliquer quelques principes simples ` cette suite de 0 et de a 1, an de la compresser. Si on imagine que la page ` envoyer ne comporte que a quelques lignes de texte, et quune bonne partie est blanche, ce qui arrive tr`s e souvent dans les fax, alors ny a-t-il pas de meilleur moyen de transmettre une suite de, mettons, 10000 zros, que demployer eectivement les 10000 zros ? e e Bien sr, il y a un meilleur moyen, et nous venons dailleurs de lemployer, u car nous avons voqu cette longue suite sans lcrire explicitement. Il sagit e e e simplement dindiquer que le code est compos de 10000 zros plutt que de e e oLe mot code est tr`s accueillant. Il dsigne aussi bien lensemble des transformations e e que leur rsultat, ainsi que, souvent, un programme informatique. Cette apparente confusion e permet en fait de saisir les liens entre divers procds mathmatiques et informatiques, et e e e cest pourquoi nous conservons le terme dans ses multiples acceptions.1

1.1 De Jules Csar ` la tlcopie e a ee

21

les crire tous. Le code du fax ralise ce principe de compression ligne par e e ligne, cest ` dire par blocs de 1728 pixels. Pour une ligne, on peut dcrire a e prcisment lalgorithme de codage par lalgorithme 1. e e Algorithme 1 Codage fax simpli. e Entres Une suite de 1728 pixels, not M e e Sorties Le message M compress e Soit n un compteur de pixels conscutifs, initialis ` 0 e ea Pour un indice i parcourant la ligne de pixels (de 1 ` 1728) Faire a Si le pixel dindice i est le mme que le pixel dindice i 1 Alors e nn+1 Sinon Ecrire n et la couleur du dernier pixel dans M n0 Fin Si Fin Pour Ainsi, par exemple, une ligne enti`rement blanche ne sera plus code par une e e suite de 1728 zros, mais par le code 1728 0, soit, dans un format numrique e e qui pourra tre envoy par le canal, 11011000000 0, puisque cest la repre e e sentation de 1728 en binaire. On a donc remplac un message de 1728 bits en e un message de 12 bits, ce qui est nettement plus court. Cest donc un principe dit de compression des messages, appel RLE pour Run-Length Encoding, et e que nous dtaillerons dans le chapitre 2.3.1. Nous nous sommes servis dun e caract`re despacement dans notre reprsentation (entre 1728 et 0), pour une e e meilleure visibilit, mais ce caract`re ne fait pas partie de lalphabet du code. e e En pratique, il faudra donc le supprimer. Nous verrons les contraintes que cela implique un peu plus tard dans ce chapitre. Exercice 1.1. Une image pixelise destine ` tre faxe contient beaucoup de e e ae e paires de pixels conscutifs 01. e Que pensez-vous du code fax prsent plus haut ? e e Solution page 279. Proposez un code plus ecace.

1.1.3

La dtection derreurs e

Tous nos lecteurs qui ont dj` utilis un canal tlphonique ne seront pas tonea e ee e ns dapprendre que sa abilit nest pas innie. Tout message est susceptible e e dtre altr, et il nest pas impossible que si 11011000000 0 est envoy sur e ee e le canal numrique, 11010000000 0 (altration dun bit) ou 1101000000 0 e e (destruction dun bit) soit reu. Habituellement, les canaux tlphoniques ont c ee un taux derreur variant de 104 ` 107 , selon leur nature, ce qui veut dire a

22

e Chapitre 1 : Thorie des codes

quils peuvent commettre en moyenne une erreur tous les 10000 bits. Cest loin dtre ngligeable, quand on envoie de longs messages, et cela peut videme e e ment en altrer le sens. Pour une image, si le 1728 envoy est devenu 1664 ` e e a cause de laltration dun seul bit, il va se produire un dcalage de limage ` e e a larrive qui rendra le rsultat inexploitable. e e Le code du fax permet de dtecter de telles erreurs de transmission. En cas e derreur dtecte sur une ligne, ceci permet de redemander la transmission de e e la mme ligne pour avoir une conrmation, et comme il est tr`s peu probable e e quune erreur se produise deux fois exactement au mme endroit, le message e pourra tre corrig. e e Le principe de la dtection derreur dans le code du fax est le suivant : on e fait prcder et suivre dans le message chaque ligne par une suite identiable. e e Mme si ce ne sont pas exactement ces nombres-l` qui sont utiliss en pratique, e a e mettons, pour expliquer le principe, que 0 est ajout au dbut de chaque e e ligne, et 1729 est ajout ` la n de chaque ligne. ea On peut alors, pour chaque ligne reue, vrier quelle est de la forme 0 n1 c e b1 . . . nk bk 1729, o` ni est un nombre entier qui donne le nombre de bits u conscutifs, et bi la couleur de ces bits. En particulier, on doit avoir n1 + e + nk = 1728, et les bi doivent tre alterns. Ainsi, on rep`re facilement e e e laltration ou la perte dun bit, d`s que ce format nest pas respect. e e e Les principes de dtection et correction derreur, tudis plus en dtail au e e e e chapitre 4, sont tous bass sur ce mme principe : ajouter de linformation e e pour vrier la cohrence du message reu. e e c

1.1.4

Le chirement

Supposons maintenant, apr`s avoir compress le message et apport un format e e e qui permette la dtection derreurs, que nous voulions garder le message secret e pour toute personne except son destinataire. Le canal tlphonique, comme e ee la plupart des canaux, ne permet pas le secret en lui-mme. Tout message qui e y transite peut tre facilement lu par un tiers. La mise en uvre du secret e consiste ` transformer le message, le mettre sous une forme incomprhensible, a e et ` le retransformer dans sa forme originelle ` larrive. a a e Cest une technique employe par les hommes depuis quils communiquent. e Dans les codes secrets employs dans lantiquit, le secret rsidait dans la e e e technique mise en uvre, quon appelle aujourdhui algorithme de chirement. Ainsi, les historiens ont retrouv des messages cods par les services de Jules e e Csar. Les messages taient des textes, et lalgorithme substituait chaque lettre e e du message initial M par celle situe 3 positions plus loin dans lalphabet. Pour e les deux derni`res lettres de lalphabet, il fallait renvoyer aux deux premi`res. e e Par exemple le mot T ROY EN devenait W U RBHQ. Ainsi, le texte navait

1.1 De Jules Csar ` la tlcopie e a ee

23

plus de signication immdiate. Cest ce quon appelle un principe de sube stitution mono-alphabtique, car chaque lettre est remplace par une autre, e e toujours la mme, dans le message. e Si Csar avait voulu envoyer un fax, il aurait adapt son code au format nue e mrique, ce qui aurait donn la fonction f (x) = x + 3 mod n pour tous les e e nombres envoys sur le canal. Le nombre n est la taille de lalphabet utilis, e e ici par exemple 1730, puisquaucun nombre suprieur ne peut thoriquement e e tre employ. e e Ces fonctions de codage et dcodage furent ensuite paramtres par une simple e e e clef K, un nombre entier choisi secr`tement entre les communiquants. Cela e revient ` construire une fonction fK (x) = x + K mod n. Les spartiates utilia saient eux un algorithme de chirement totalement dirent, le chirement par e transposition : la scytale tait un bton sur lequel tait enroul un parchemin. e a e e Le message tait crit sur le parchemin enroul mais le long du bton et non e e e a le long du parchemin. Ainsi les lettres successives du message apparaissait sur une circonvolution dirente du parchemin. Pour le dchirer, le destinataire e e devait possder un bton dun diam`tre identique ` celui utilis pour lencoe a e a e dage. Dautres syst`mes cryptographiques, plus labors, virent alors le jour e e e (chirements anes fa,b (x) = a.x + b mod n - tudis dans les exercices 1.2 e e et 3.1 ; chirements par substitution o` chaque lettre est remplace par un u e symbole dun autre alphabet comme le code morse etc. . .). Exercice 1.2. Marc-Antoine intercepte un message envoy par Csar, crype e t par chirement ane. Sans conna la clef (a, b), comment dcode-t-il le e tre e message ? Solution page 279.

1.1.5

Le dcodage e

Nous avons vu dans ce qui prc`de toutes les techniques pour coder un message e e et en assurer lecacit de transmission et le secret. Cette description ne serait e pas compl`te sans un mot pour prsenter les principes de lopration comple e e e mentaire, le dcodage. e Lattaque et le dchirement e Le message arrive crypt. Il sagit de le dcoder. Pour qui ne poss`de pas e e e la clef ou la mthode de chirement, on parle dattaque sur le code, ou de e cassage de code. La discipline qui consiste ` inventer des mthodes dattaque a e pour briser les codes existants ou pour construire des codes plus rsistants e est la cryptanalyse. Pour le destinataire du message qui conna la clef, il t sagit de dchirement. On parlera de lattaque bientt. Pour linstant, la e o mthode de dchirement est tr`s simple et consiste ` appliquer la fonction e e e a

24

e Chapitre 1 : Thorie des codes

inverse de la fonction de codage, ventuellement paramtre par une clef, soit e e e 1 fK (x) = x K mod n. Le message est alors dchir.Il reste ` appliquer toutes les autres transfore e a mations en sens inverse. Tout dabord, vrier le format de chaque ligne pour e dtecter dventuelles erreurs (en cas derreur, redemander une mission), puis e e e appliquer un algorithme de dcodage, qui, tant donne une suite de nombres, e e e renverra la suite de pixels initiale. Cest ce qui est formalis pour une ligne e dans lalgorithme 2. Algorithme 2 Dcodage fax. e Entres Une suite de nombres, sous la forme 0 n1 b1 . . . nk bk 1729 e Sorties La suite des 1728 pixels correspondants Pour un indice i de 1 ` k Faire a Dessiner ni pixels de couleur bi Fin Pour

La dcompression et les pertes e En appliquant cet algorithme pour toutes les lignes, on obtient une suite de pixels, qui est la mme que celle de dpart, en laquelle nous avions transform e e e limage. Il ne reste plus qu` restituer limage. Ou plutt une image semblable a o ` limage de dpart. En eet, la seule information dont nous disposons est a e la valeur des pixels, et la mthode consiste donc ` imprimer sur une feuille e a la suite de carrs noirs ou blancs correspondants. Limage de dpart sera de e e grade, puisque les carrs dorigine ntaient pas enti`rement noirs ou blancs, e e e e ce qui donne toujours aux fax un aspect peu esthtique, mais lessentiel de e linformation est conserv. e Quand, comme ici, linformation initiale nest pas enti`rement restitue, mais e e arrive sous une forme sen rapprochant, on parle de codage avec perte. On utilise souvent des codes qui permettent un certain niveau de perte, quand on estime que linformation importante nest pas altre. Cest souvent le cas ee pour les informations audiovisuelles (voir la section 2.5).

1.1.6

Les dfauts de ce code e

Nous avons enti`rement dcrit un procd de codage et son pendant, le de e e e e codage, en respectant les principales contraintes que nous rencontrerons en thorie des codes (lecacit de la compression, la dtection derreur, le see e e cret). Mais les principes utiliss dans ce code-l` ne sont gu`re utilisables en e a e pratique dans les communications numriques courantes, pour plusieurs raie sons :

1.1 De Jules Csar ` la tlcopie e a ee

25

La compression : le principe RLE tel quil est appliqu ici a plusieurs dfauts. e e Dabord, si le message est constitu de pixels blancs et noirs alterns, la e e taille du message compress sera plus grande que la taille du message e original. Le principe na donc aucune garantie de compression. De plus, inclure les bits bi est quasiment inutile puisquils sont alterns et que la e valeur du premier surait ` dterminer tous les autres. Le code du fax les a e limine. Il devient alors une suite de nombres n1 . . . nk . Mais cette suite, e code en bits (chaque nombre a sa traduction binaire) est plus dicile ` e a dcoder. En eet, en recevant une suite de bits 1001011010010, comme e savoir sil sagit dun nombre ni , ou de plusieurs nombres concatns ? e e On peut par exemple coder tous les nombres sur le mme nombre de bits e pour rsoudre ce probl`me, mais le principe de compression nest alors e e pas optimal. Il oblige ` coder 2 par 00000000010, ce qui augmente a la taille du message. Nous verrons dans la suite de ce chapitre comme sassurer de la dchirabilit, et dans le chapitre suivant comment en e e dduire de bons principes de compression. e La dtection derreurs : ce principe oblige ` demander un renvoi de linformae a tion ` chaque erreur dtecte, alors quon pourra concevoir des codes qui a e e corrigent automatiquement les erreurs du canal (chapitre 4). De plus, aucune garantie thorique ne vient assurer que ce codage est bien adapt e e au taux derreur des canaux tlphoniques. On ne sait pas quel est le ee taux derreur dtect par ce code, ni sil pourrait accomplir la mme e e e performance en ajoutant moins dinformation dans les messages. Lecacit de la transmission peut dpendre de la qualit des principes de e e e dtection et de correction derreurs. e Le secret : le code de Csar est cassable par un dbutant en cryptographie. e e Pour tous les principes de substitution mono-alphabtique, il est facile de e dcoder, mme sans conna la clef. Une cryptanalyse simple consiste e e tre a e ` tudier la frquence dapparition des lettres au sein du texte chir e e et den dduire la correspondance avec les lettres du texte clair. Le tae bleau 1.1 prsente par exemple la rpartition statistique des lettres dans e e ce manuscrit crit en LaTeX (les codes de mise en forme LaTeX sont e pris en compte en sus des mots du texte). Comme ce manuscrit est assez long, on peut supposer que ces frquences sont assez reprsentatives e e dun texte scientique franais crit en LaTeX. Il est bien sr possible c e u davoir des tables de frquences reprsentatives de textes littraires frane e e ais, scientiques anglais, etc. c Exercice 1.3. Scipion trouve un papier sur lequel se trouve le message chir e suivant : HJXFW FZWFNY JYJ HTSYJSY IJ ATZX! Aide Scipion ` dchirer ce message. a e Solution page 279.

26 E I T N R S A O L D U C M 14.90 % 7.82 % 7.52 % 7.49 % 6.91 % 6.76 % 6.28 % 5.88 % 4.86 % 4.75 % 4.72 % 4.71 % 3.33 %

e Chapitre 1 : Thorie des codes P F B G X H Q V Y K W J Z 3.20 1.82 1.60 1.59 1.47 1.20 0.97 0.89 0.51 0.37 0.16 0.15 0.14 % % % % % % % % % % % % %

Tab. 1.1: Rpartition des lettres dans ce manuscrit LaTeX. e

1.1.7

Ordres de grandeur et complexit des algorithmes e

Nous avons dcrit un code et expos ses qualits et ses dfauts. Il est une qualit e e e e e cruciale des codes que nous navons pas encore voque, celle de la rapidit ` e e ea coder et dcoder. Elle dpend de la vitesse des ordinateurs, et surtout de la e e complexit des algorithmes. e

Taille des nombres Nous considrons des nombres et leurs tailles, soit en chires dcimaux, soit en e e bits. Ainsi, un nombre m possdera log10 (m) chires et log2 (m) bits. Pour e xer les ides, 128 bits font 39 chires dcimaux ; 512 bits font 155 chires et e e 1024 bits sont reprsentables par 309 chires. e

La vitesse des ordinateurs Aujourdhui nimporte quel PC est cadenc ` au moins 1 GHz, cest-`-dire quil ea a ` eectue 1 milliard (109 ) doprations par seconde. A titre de comparaison, la e vitesse la plus fantastique de lunivers est celle de la lumi`re : 300000 km/s e = 3.108 m/s. Il ne faut que dix milliardi`mes de seconde ` la lumi`re pour e a e traverser une pi`ce de 3 m`tres ! Eh bien, pendant ce temps l`, votre ordinateur e e a a donc eectu 10 oprations ! ! ! On peut donc dire que les ordinateurs actuels e e calculent ` la vitesse de la lumi`re. a e

1.1 De Jules Csar ` la tlcopie e a ee Taille et ge de lunivers a

27

Cette vitesse de calcul est vritablement astronomique ; pourtant la taille des e nombres que lon manipule reste norme. En eet, rien que pour compter juse qu` un nombre de 39 chires il faut numrer 1039 nombres. Pour se convaincre a e e ` quel point cest norme, calculons lge de lunivers en secondes : a e a ge Univers a 15 milliards annes 365.25 24 60 60 5.1017 secondes. e

Ainsi, un ordinateur cadenc ` 1 GHz mettrait plus de deux millions de fois ea lge de lunivers pour simplement compter jusqu` un nombre de seulea a ment 39 chires ! Quant ` un nombre de 155 chires (ce quon utilise courama ment en cryptographie), cest tout simplement le carr du nombre dlectrons e e contenus dans lunivers. En eet, notre univers contiendrait environ 3.1012 galaxies chacune renfermant grosso modo 200 milliards dtoiles. Comme notre e soleil p`se ` la louche 2.1030 kg et quun lectron ne p`se que 0, 83.1030 kg, e a e e on obtient : Univers = (2.1030 /0, 83.1030 ) 200.109 3.1012 1084 lectrons. e Ce sont pourtant des nombres que nous aurons ` manipuler. Leur taille sera a lun des ds algorithmiques que nous aurons ` relever, en mme temps quune e a e assurance de secret de nos messages, si pour les dcoder sans en possder la clef, e e il faut des millions dannes de calcul en mobilisant le milliard dordinateurs e disponibles sur la Terre dont les plus rapides. Nous allons voir dans la suite comment construire des algorithmes capables de travailler avec de tels nombres entiers. Complexit des algorithmes e Malgr la puissance des ordinateurs, un algorithme mal conu pourra se rve c e e ler inexploitable. La complexit dun algorithme est une mesure du temps que e mettra un ordinateur, sur lequel on implmentera lalgorithme, pour terminer e son calcul. La vitesse des ordinateurs augmentant constamment, une bonne mesure pour estimer ce temps est de compter le nombre doprations arithe mtiques que ncessite lalgorithme. En gnral, il sagit donc de compter les e e e e quatre oprations classiques (addition, soustraction, multiplication, division, e mais parfois galement des oprations binaires comme les dcalages de bits) e e e et seulement celles-ci, par souci de simplication. Bien sr, ce nombre dopu e rations dpend de la taille des nombres quon fournit en entre, cest pourquoi e e lecacit est toujours une fonction de la taille de lentre de lalgorithme. e e Pour pouvoir calculer cette taille dans tous les cas, on suppose que lentre e est une suite de bits, et la taille de lentre est la longueur de cette suite. Ce e

28

e Chapitre 1 : Thorie des codes

qui suppose que pour calculer lecacit dun algorithme, on doit concevoir e un code qui transforme son entre en suite de bits. Cest une opration soue e vent assez simple. Par exemple, pour coder un entier a, il faut de lordre de log2 (a) bits (on les crit simplement en base 2). La taille dun entier est donc e son logarithme en base 2. La taille dune suite de pixels noirs et blancs est la longueur de cette suite. Comme il nest souvent pas possible de compter exactement toutes les oprae tions ralises lors de lexcution dun programme, on encadre la complexit e e e e dun algorithme par des majorants et minorants asymptotiques en utilisant la notation dite de Landau. Si k(n) est le nombre doprations arithmtiques e e eectues par lordinateur qui excute lalgorithme sur une entre de taille e e e n, et f une fonction quelconque, on dit que k(n) = O(f (n)) sil existe une constante c telle que pour tout n assez grand, k(n) c f (n). On peut alors dire que la complexit de lalgorithme est au plus de lordre de f (n). e Exercice 1.4. Quelle est la complexit du code fax, prsent plus haut ? e e e Solution page 279. Comme la notation de Landau permet de donner la complexit ` une constanea te pr`s, il est par exemple possible dcrire O(log(n)) sans donner la base du e e logarithme, puisque la base ne modiera la fonction que dune constante (le logarithme de la base). En pratique tous les algorithmes devront prsenter une complexit quasie e linaire O(n), o` n est la taille du message source, pour pouvoir prtendre e u e ` une ecacit temps-rel , cest-`-dire pour pouvoir tre utilis dans une a e e a e e transmission o` un temps dattente long nest pas acceptable (tlphonie, auu ee diovisuel. . .). Une partie de la cryptographie repose sur lhypoth`se quil existe des probl`mes e e pour lesquels on ne conna aucun algorithme dune telle complexit. Tous les t e algorithmes connus ncessitent des temps de calcul astronomiques qui rendent e lapproche du probl`me impossible. e Dans ce livre, nous considrons quun probl`me est impossible ` rsoudre (on e e a e emploie simplement parfois leuphmisme dicile ) si on ne conna pas e t dalgorithme qui le rsolvent en un temps humainement raisonnable, soit par e exemple si sa rsolution ncessiterait plus de 1050 opration. e e e

1.2

Codage par ot et probabilits e

An dobtenir des mthodes ecaces, cest-`-dire linaires en fonction de la e a e taille du message, on peut considrer le message comme un ot de bits, cest e ` dire une succession potentiellement innie de caract`res, quon codera un a e par un. Cette technique est notamment utilise en cryptographie, et permet e

1.2 Codage par ot et probabilits e

29

dobtenir des messages dits inconditionnellement srs, i.e. pour lesquels la u connaissance du message chir napporte aucune information sur le message e clair. On parle alors de chirement parfait. Ainsi, la seule attaque possible est la recherche exhaustive de clef secr`te. On utilise galement le mod`le du e e e codage par ot pour construire des principes de dtection et correction derreur e (voir les codes convolutifs dans le chapitre 4). Le code dit de Vernam, ou code ` clef jetable - en Anglais one-time-pad - est a un exemple de code par ot ` vise cryptographique dont on peut prouver a e la scurit inconditionnelle, moyennant lintroduction de quelques bases de e e probabilits et de thorie de linformation. e e

1.2.1

Le code de Vernam

En 1917, pendant la premi`re guerre mondiale, la compagnie amricaine AT&T e e avait charg le scientique Gilbert Vernam dinventer une mthode de chiree e ment que les Allemands ne pourraient pas casser. Le chirement jetable que celui-ci a conu est le seul code connu ` lheure actuelle comme mathmatic a e quement prouv sr. e u Le syst`me ` clef jetable est un syst`me cryptographique dit ` clef secr`te, e a e a e cest-`-dire que le secret rside dans un param`tre des fonctions de codage et a e e de dcodage connu uniquement de lmetteur et du destinataire. Cest aussi le e e cas du chirement de Csar, dans lequel le param`tre est la taille du dcalage e e e des lettres ou des nombres. Dans un syst`me ` clef jetable, cette clef nest utilise quune fois. Le secret e a e repose sur le fait quune clef est associe ` un seul message et est de mme e a e longueur que celui-ci. Le dcodage seectue grce ` la proprit que pour tous e a a ee messages M et clefs K de mme longueur, on a : e (M K) K = M o` (quon note aussi xor) dsigne lopration logique ou exclusif bit ` u e e a bit. Il sagit donc dune addition modulo 2 de chaque bit. Cest cette utilisation du ou exclusif qui a t brevete par Vernam 1919. Pour envoyer un message ee e M de n bits, il faut avoir une clef K secr`te de n bits. Le message chir M e e = M K. Pour dchirer, il sut de calculer M K. est donn par M e e Exercice 1.5. Pourquoi faut-il jeter la clef apr`s lavoir utilise, i.e. changer e e de clef pour chaque nouveau message ? Solution page 279. Sous rserve que la clef K ait bien t gnre de faon totalement alatoire, e ee e ee c e indpendamment de M et quelle nait jamais t utilise auparavant, un obe ee e servateur tiers nobtient aucune information sur le message clair sil intercepte le message chir (hormis la taille de M ). Cest Joseph Mauborgne, capitaine e

30

e Chapitre 1 : Thorie des codes

au service secret de larme amricaine qui le premier a propos dans les annes e e e e 1920 que la clef soit gnre alatoirement et cest ensuite, Claude Shannon e ee e qui a prouv la scurit inconditionnelle de ce code, comme nous le verrons e e e section 1.2.4. Exercice 1.6. Construire un protocole, ` base de clefs jetables, permettant ` a a un utilisateur de se connecter depuis un ordinateur quelconque sur internet ` a un serveur scuris. Le mot de passe doit tre crypt pour ne pas circuler de e e e e faon visible sur internet ni tre captur par la machine utilise. c e e e Solution page 280. Evidemment, il reste ` formaliser ce que veut dire gnrer un nombre alatoire, a e e e donner des bons moyens de le faire et, pour prouver que le syst`me est sr, e u prciser ce que veut dire obtenir de linformation sur le message clair. Pour e cela, nous introduisons maintenant les principes fondamentaux de la thorie e de linformation, qui servent galement de base aux principes de compression e des messages.

1.2.2

Un peu de probabilits e

Dans un syst`me cryptographique, si on utilise une clef gnre au hasard, e e ee toute dviance par rapport au vrai hasard sera un angle dattaque pour e la cryptanalyse. Le hasard a aussi sa part dans les mthodes de compression, e car d`s quil y a un ordre visible, une redondance, une organisation dans un e message, non seulement les casseurs de codes vont sen servir, mais les crateurs e de codes vont y voir un moyen dexprimer le message de faon plus dense. c Mais quappelle-t-on une dviance par rapport au hasard, et plus simplement e quappelle-t-on le hasard ? Par exemple, si les numros 1 2 3 4 5 6 tombent e au Loto, on doutera beaucoup quils aient t vraiment gnrs au hasard, ee e ee bien que stricto sensu cette combinaison ait autant de chance dtre gnre e e ee que nimporte quelle autre. Si nous nirons pas bien loin dans la philosophie, cette section apportera quelques moyens mathmatiques daborder le hasard e et ses eets, puis de crer quelque chose qui se rapprocherait du hasard. e e Ev`nements et mesure de probabilit e Un v`nement est le rsultat possible dune exprience alatoire. Par exemple, e e e e e si lexprience est un jet de d ` six faces, lobtention du nombre 6 est un e e a v`nement. Les oprateurs sur les ensembles (, , \) sont utiliss pour les e e e e v`nements (ils signient ou, et, sauf). e e On note lensemble de tous les v`nements possibles pour une exprience e e e donne. e

1.2 Codage par ot et probabilits e

31

Une mesure de probabilit P est une application dnie sur , ` valeur dans e e a [0, 1], qui vrie : e 1. P () = 1 et P () = 0 ; 2. quels que soient A, B des v`nements disjoints (A B = ), P (A B) = e e P (A) + P (B). Si lensemble des v`nements est un ensemble discret ou ni, on parle de e e probabilit discr`te. e e Par exemple, si lexprience alatoire est le jet dun d ` six faces non pip, e e ea e lensemble des v`nements est {1, 2, 3, 4, 5, 6}, et la probabilit doccurrence e e e de chacun 1/6. Lensemble des valeurs prises par la fonction de probabilit est la distribution e des probabilits, ou loi de probabilit. Une distribution est dite uniforme si tous e e les v`nements ont une mme probabilit doccurrence. e e e e Le lemme dit de Gibbs est un rsultat sur les distributions discr`tes qui nous e e sera utile plusieurs fois dans cet ouvrage. Lemme 1 (de Gibbs). Soient (p1 , . . . , pn ), (q1 , . . . , qn ) deux lois de probabilit discr`tes. e e n qi 0. pi log pii=1

Preuve. On sait que pour tout x R+ , ln(x) n

x 1. Donc

pi lni=1

qi pi

n

pi (i=1

qi 1) . pin i=1 pi q ( pi 1) = i n i=1 qi

Soit puisque n pi = i=1 n pi = 0 . Par suite, i=1

n i=1 qi = 1, alors n qi 0. i=1 pi log pi

P

Probabilits conditionnelles et Formule de Bayes e On dit que deux v`nements sont indpendants si P (A B) = P (A)P (B). On e e e appelle probabilit conditionnelle de lv`nement A par rapport ` lv`nement e e e a e e B, la probabilit que A se produise, sachant que B sest dj` produit. Elle est e ea note P (A|B) et dnie par : e e P (A|B) = P (A B) P (B)

Par rcurrence, on montre facilement que pour un ensemble dv`nements e e e A1 , . . . , An ,P (A1 . . . An ) = P (A1 |A2 . . . An )P (A2 |A3 . . . An ) . . . P (An1 |An )P (An )

32

e Chapitre 1 : Thorie des codes

La formule dite de Bayes permet de calculer pour un ensemble dv`nements e e A1 , . . . , An , B les probabilits P (Ak |B) en fonction des P (B|Ak ). e P (Ak |B) = P (B|Ak )P (Ak ) P (Ak B) = P (B) i P (B|Ai )P (Ai )

Exercice 1.7. On propose le code secret suivant, permettant de coder deux caract`res a et b avec trois clefs direntes k1 , k2 et k3 : si la clef est k1 alors e e a 1 et b 2, si la clef est k2 alors a 2 et b 3, sinon a 3 et b 4. On suppose en outre que lon a des connaissances a priori sur le message M envoy et la clef K utilise : P (M = a) = 1/4 ; P (M = b) = 3/4 et e e P (K = k1 ) = 1/2 ; P (K = k2 ) = P (K = k3 ) = 1/4. Quelles sont les probabilits dobtenir les chires 1, 2 ou 3 ? Quelles sont les e probabilits conditionnelles que le message soit a ou b sachant la valeur du e chire ? Peut-on dire intuitivement si ce code secret est un chirement parfait ? Solution page 280. Ces brefs rappels tant faits sur la thorie de base permettant dtudier des e e e v`nements alatoires, voyons ce que lalatoire signie pour des ordinateurs. e e e e

1.2.3

Entropie

Source dinformation On appelle S lalphabet du message source. Un message est alors un lment de ee S + . Pour tout message, on peut calculer les frquences dapparition de chaque e lment de lalphabet, et construire ainsi une distribution de probabilits sur S. ee e Une source dinformation est constitue du couple S = (S, P) o` S = (s1 , . . . , e u sn ) est lalphabet source et P = (p1 , . . . , pn ) est une distribution de probabilits sur S, cest-`-dire que pi est la probabilit doccurrence de si dans une e a e mission. On peut construire une source dinformation ` partir de nimporte e a quel message, en construisant la distribution de probabilits ` partir de la e a frquence des caract`res dans le message. e e La source dinformation S = (S, P) est dite sans mmoire lorsque les v`nee e e ments (occurrences dun symbole dans une mission) sont indpendants et que e e leur probabilit reste stable au cours de lmission (la source est stationnaire). e e La source est dite markovienne si les probabilits doccurrence des caract`res e e dpendent des caract`res mis prcdemment. Dans le cas dun seul prdcese e e e e e e seur, P = {pij }, o` pij est la probabilit doccurrence de si sachant que sj u e vient dtre mis. On a alors pi = j pij . e e Par exemple, un texte en franais est une source, dont lalphabet est lenc semble des lettres latines et les probabilits doccurrence sont les frquences e e

1.2 Codage par ot et probabilits e

33

dapparition de chaque caract`re. Comme les probabilits dpendent dans ce e e e cas fortement des caract`res qui viennent dtre mis (un U est beaucoup plus e e e probable apr`s un Q quapr`s un autre U), le mod`le markovien sera plus e e e adapt. e Une image induit aussi une source, dont les caract`res de lalphabet sont des e niveaux de couleurs. Un son est une source dont lalphabet est un ensemble de frquences et dintensits. e e Une source S est dite sans redondance si sa distribution de probabilits est e uniforme. Ce qui nest videmment pas le cas pour les messages courants, o` e u certaines lettres ou certains mots sont beaucoup plus employs que dautres. e Ce sera langle dattaque des mthodes de compression mais aussi des pirates e qui chercheraient ` lire un message sans y tre autoriss. a e e Entropie dune source Lentropie est une notion fondamentale pour la manipulation dun code. Cest en eet une mesure, ` la fois de la quantit dinformation quon peut attribuer a e ` une source (ce qui sera utile pour la compression des messages), et du degr a e dordre et de redondance dun message, ce qui est une information cruciale pour la cryptographie. Lentropie dune source S = (S, P), S = (s1 , . . . , sn ), P = (p1 , . . . , pn ) est :n n

H(S) = H(p1 , . . . , pn ) = i=1

pi log2 (pi ) =i=1

pi log2 (

1 ). pi

On dsigne par extension lentropie dun message comme lentropie de la source e induite par ce message, la distribution de probabilits tant calcule ` partir e e e a des frquences dapparition des caract`res dans le message. e e Proprit 1. Soit S = (S, P) une source. e e 0 H(S) log2 n .

1 Preuve. Appliquons le lemme de Gibbs ` la distribution (q1 , . . . , qn ) = ( n , a 1 . . ., n ), on obtient H(S) log2 n quelle que soit la source S. Enn, la positivit e est vidente puisque les probabilits pi sont infrieures ` 1. e e e a P Remarquons que pour une distribution uniforme, lentropie atteint donc son maximum. Elle baisse quand on sloigne de la distribution. Cest pour cette e raison quon lappelle mesure du dsordre , en supposant que le plus grand e dsordre est atteint par la distribution uniforme. e

Exercice 1.8. Quelle est lentropie dune source qui met un caract`re 1 avec e e une probabilit 0.1 et le caract`re 0 avec une probabilit 0.9 ? Pourquoi une e e e faible entropie est-elle un bon augure pour la compression ? Solution page 280.

34

e Chapitre 1 : Thorie des codes

Entropies conjointe et conditionnelle On tend facilement la dnition de lentropie ` plusieurs sources. Soient S1 = e e a (S1 , P1 ) et S2 = (S2 , P2 ) deux sources sans mmoire, dont les v`nements ne e e e sont pas forcment indpendants. On note S1 = (s11 , . . . , s1n ), P1 = (pi )i=1..n , e e S2 = (s21 , . . . , s2m ) et P2 = (pj )j=1..m ; puis pi,j = P (S1 = s1i S2 = s2j ) la probabilit doccurrence conjointe de s1i et s2j et pi|j = P (S1 = s1i |S2 = s2j ) e la probabilit doccurrence conditionnelle de s1i et s2j . e On appelle lentropie conjointe de S1 et S2 la quantit en m

H(S1 , S2 ) = i=1 j=1

pi,j log2 (pi,j )

Par exemple, si les sources S1 et S2 sont indpendantes, alors pi,j = pi pj pour e tous i, j et donc dans cas on montre facilement que H(S1 , S2 ) = H(S1 )+H(S2 ). Au contraire, il peut arriver, si les v`nements de S1 et S2 ne sont pas ine e dpendants, quon veuille conna e tre la quantit dinformation contenue dans e une source, connaissant un v`nement de lautre. On calcule alors lentropie e e conditionnelle de S1 relativement ` la valeur de S2 , donne par a en

H(S1 |S2 = s2j ) = i=1

pi|j log2 (pi|j )

Enn, on tend cette notion ` une entropie conditionnelle de S1 connaissant e a S2 , qui est la quantit dinformation restant dans S1 si la loi de S2 est connue : em

H(S1 |S2 ) =j=1

pj H(S1 |S2 = s2j ) =i,j

pi,j log2

pj pi,j

Cette notion est cruciale en cryptographie. En eet, il est tr`s important que e tous les messages crypts aient une entropie forte, pour ne pas que les traces e dorganisation dans un message donnent des informations sur la mani`re dont e il a t crypt. Mais il est aussi important que lentropie reste forte si on arrive ee e ` conna des informations dpendantes, par exemple mme la connaissance a tre e e dun message et de son cryptage ne devrait pas donner dinformation sur la clef utilise. e On a alors les relations simples mais importantes suivantes : H(S1 ) H(S1 |S2 )

avec galit si et seulement si S1 et S2 sont indpendantes ; et encore : e e e H(S1 , S2 ) = H(S2 ) + H(S1 |S2 )

1.2 Codage par ot et probabilits e

35

Mais lentropie dune source sans mmoire ` elle seule ne capture pourtant e a pas tout lordre ou le dsordre contenu dans un message. Par exemple, les e messages 1 2 3 4 5 6 1 2 3 4 5 6 et 3 1 4 6 4 6 2 1 3 5 2 5 ont la mme e entropie, et pourtant le premier est susamment ordonn pour quon puisse e le dcrire par une formule, du type 1. . .6 1. . .6, ce qui nest sans doute pas le e cas du second. Pour prendre en compte ce type dorganisation, on fait appel aux extensions de sources. Extension dune sourcee Soit une source S sans mmoire. La k i`me extension S k de S est le doublet e (S k , P k ), o` S k est lensemble des mots de longueur k sur S, et P k est la u distribution de probabilit ainsi dnie : pour un mot s = si1 . . . sik S k , e e k (s) = P (s . . . s ) = p . . . p . alors P i1 ik i1 ik 1 3 Exemple : S = (s1 , s2 ), P = ( 4 , 4 ) alors S 2 = (s1 s1 , s1 s2 , s2 s1 , s2 s2 ) et 2 =( 1 , 3 , 3 , 9 ) . P 16 16 16 16 Si S est une source markovienne, on dnit de la mme faon S k , et pour un e e c mot s = si1 . . . sik S k , alors P k (s) = pi1 pi2 i1 . . . pik ik1 . e Proprit 2. Soient S une source, et S k sa k i`me extension. e e

H(S k ) = kH(S) . Autrement dit, cette proprit exprime que la quantit dinformation dune ee e source tendue ` k caract`res est exactement k fois celle de la source originelle. e a e Cela semble tout ` fait naturel. a Cependant, il faut distinguer une source dun message (un chier par exemple). Tout dabord, ` partir dun chier il est possible de dnombrer les occurrences a e des caract`res et de donner une entropie correspondant ` la source qui aurait e a les caractristiques probabilistes identiques. Cela permet dutiliser la thorie e e de linformation pour compresser des chiers, nous verrons cela plus en dtails e dans la section 2. Ensuite, dans le cas dun message, il est possible de regrouper les caract`res du message k par k. Attention, l` nous ne sommes plus du e a tout dans le cadre de la proprit 2 ! Au contraire, lentropie de la source ee correspondant ` cette extension de message est alors forcment infrieure a e e ` lentropie correspondant au message initial. a Exemple : Les messages 1 2 3 4 5 6 1 2 3 4 5 6 et 3 1 4 6 4 6 2 1 3 5 2 5 correspondent ` la mme entropie en prenant la premi`re extension de la a e e source : 6 caract`res de probabilit un sixi`me chacun, donnent une entropie e e e 1 de 6 6 log2 (6) = log2 (6) 2.585. Avec la deuxi`me extension de la source e i=1

36

e Chapitre 1 : Thorie des codes

1 1 1 1 1 1 ( 6 , 6 , 6 , 6 , 6 , 6 ), on obtient 36 groupes possibles chacun de probabilit 36 et e 1 dentropie conforme ` la proprit 2 : log2 (36) = log2 (62 ) = 2 log2 (6). a ee Toutefois, en regroupant les messages par exemple par blocs de deux caract`res, on obtient : e (12)(34)(56)(12)(34)(56) : trois couples distincts de probabilit un tiers chae cun correspondent ` une entropie de log2 (3) 1.585. a De mme (31)(46)(46)(21)(35)(25) donnent 5 couples distincts dentropie e 6 2 1 1 log2 (6) + 6 log2 ( 2 ) + 3 6 log2 (6) 2.252. 6 Dans les deux cas lentropie obtenue est bien infrieure ` deux fois celle du e a message initial. Nous prcisons ceci dans la proprit 3. e ee

Proprit 3. Soient M un message de taille n et SMk la source dont les e e probabilits correspondent aux occurrences des k-uplets conscutifs de M . Alors e e H(SMk ) log2 n k .

Preuve. Il y a n k-uplets dans le message M . En outre lentropie est maxik male pour le plus grand nombre de k-uplets distincts possibles doccurrences gales. Dans ce cas la source quivalente serait dau plus n caract`res tous e e e k 1 distincts et de probabilit doccurrence n . Ce qui donne une entropie de e P log2 n . k Ceci nous am`ne au probl`me du hasard et de sa gnration. Une suite de e e e e nombres gnre au hasard devra rpondre ` des crit`res forts, et en particulier e ee e a e avoir une haute entropie. On ne serait pas satisfait de la suite 1 2 3 4 5 6 1 2 3 4 5 6, qui prsente une forme dorganisation aisment dtectable. On e e e le serait plus si on rencontrait 3 1 4 6 4 6 2 1 3 5 2 5, qui a une entropie suprieure, mais parfois les modes dorganisation et les biais sont plus subtils, e et pourtant ils sont de bons angles dattaque pour les casseurs de codes.k

1.2.4

Chirement parfait

Nous disposons maintenant de lattirail thorique pour prciser ce que nous e e entendons par chirement inconditionnellement sr, ou chirement parfait. Un u chirement est parfait si le message chir C ne fournit aucune information e sur le message initial M ; en terme dentropie, puisque cest la mesure de la quantit dinformation que nous avons adopte, on aura : e e H(M |C) = H(M ) Exercice 1.9 (Preuve de la perfection du code de Vernam). 1. Dmontrer que pour un code secret o` la clef K est gnre alatoirement e u e e e e pour chaque message M on a H(M |K) = H(M ).

1.3 Codage par blocs, alg`bre et arithmtique e e

37

2. En utilisant les entropies conditionnelles et la dnition du code de Vere nam, dmontrer que dans un code de Vernam (C = M K), on a e toujours H(M, K, C) = H(M, C) = H(M, K) = H(C, K) ; en dduire e des relations entre les entropies conditionnelles de M , C et K. 3. Dmontrer que le chirement ` clef jetable de Vernam est un chirement e a parfait. Solution page 280.

1.2.5

Mise en pratique du chirement parfait ?

On dispose dune mthode de cryptage dont on poss`de la preuve de la scue e e rit. Cest dailleurs la seule mthode connue pour laquelle on ait prouv son e e e caract`re parfait. e Mais pour se servir de cette mthode en pratique, il faut savoir gnrer des e e e clefs alatoires, et ce probl`me est loin dtre trivial. Dautre part, comme la e e e clef nest pas rutilisable, les protocoles dchange des clefs entre metteurs et e e e destinataires restent problmatiques. e Nous allons voir dans la section suivante comment construire des codes qui rutilisent une clef unique et rendent le protocole dchange moins fastidieux. e e Sans tre parfaits, ces codes tendent vers cette proprit. La premi`re ide e ee e e sera de dcouper le message en blocs et de chirer chaque bloc sparment. e e e La deuxi`me ide est de gnrer des nombres alatoires de bonne qualit, ou e e e e e e plus prcisment des nombres pseudo-alatoires. Cela permet de raliser un e e e e chirement bit ` bit (par ot) comme illustr sur la gure 1.1. a eki mn ... m i+1 m i ci ... c1 c0

Fig. 1.1: Chirement bit ` bit (par ot). a

1.3

Codage par blocs, alg`bre et arithmtique e e

Le chirement de Vernam est aujourdhui le seul algorithme cryptographique ` clef secr`te prouv inconditionnellement sr. Ainsi tous les autres syst`mes a e e u e sont thoriquement cassables. e Pour ces syst`mes, on utilise des chirements pratiquement srs : la connaise u sance du message chir (ou de certains couples message clair/message chir) e e

38

e Chapitre 1 : Thorie des codes

ne permet de retrouver ni la clef secr`te ni le message clair en un temps hue mainement raisonnable (voir les ordres de grandeur et les limites des machines ` la section 1.1.7). a On peut dcider par exemple, pour viter des protocoles dchange de clef e e e trop frquents, de choisir une clef unique, et de la rutiliser. Ceci impose le e e dcoupage des messages sources en blocs dune certaine taille, fonction de la e taille de la clef. Le chirement par blocs est un standard qui sera galement e largement utilis pour la dtection et la correction derreurs. e e Cest aussi le principe de lun des codes les plus cl`bres, le code ASCII (pour ee American Standard Code for Information Interchange ), pour la reprsene tation numrique des lettres et signes de lalphabet latin. Dans le code ASCII, e lalphabet source est lalphabet latin, et lalphabet du code est V = {0, 1}. Les mots de code sont tous les mots de longueur 8 sur V : C = {00000000, 00000001, . . . , 11111111} . Chacun des 28 = 256 caract`res (majuscules, minuscules, caract`res spciaux, e e e caract`res de contrle) est reprsent par un mot de longueur 8 sur V suivant e o e e une fonction de codage dont un extrait est donn par la table 1.2 ci-dessous. e A B C D E F G H I 01000001 01000010 01000011 01000100 01000101 01000110 01000111 01001000 01001001 J K L M N O P Q R 01001010 01001011 01001100 01001101 01001110 01001111 01010000 01010001 01010010 S T U V W X Y Z espace 01010011 01010100 01010101 01010110 01010111 01011000 01011001 01011010 00100000

Tab. 1.2: Un extrait du code ASCII.

Par exemple, le codage ASCII du message : UNE CLEF, est la cha : ne 0101010101001110010001010010000001000011010011000100010101000110.

1.3.1

Blocs et modes de cha nage

On peut coder chaque bloc dun message par un mme algorithme de faon e c indpendante pour chaque bloc. Cest ce qui est appel le mode de codage e e ECB, pour Electronic Code Book . Plus gnralement, cette indpendance e e e de codage entre les blocs nest pas requise et les direntes faons de combiner e c les blocs sont appels modes de chirement. e

1.3 Codage par blocs, alg`bre et arithmtique e e Le mode ECB : Electronic Code Book

39

Dans ce mode, le message M est dcoup en blocs mi de taille xe. e e Chaque bloc est alors crypt spae e ci = Ek (mi ) (1.1) rment par une fonction Ek , parae mtre par une clef k comme sur la e e ... m1 m2 mn gure 1.2. Ainsi un bloc de message donn mi e Ek Ek Ek sera toujours cod de la mme mae e ni`re. Ce mode de chirement est le e plus simple mais ne prsente donc e c1 c2 cn aucune scurit et nest normalee e ment jamais utilis en cryptogra- Fig. 1.2: Mode de chirement par blocs e phie. ECB.

Le mode CBC : Cipher Bloc Chaining Le mode CBC a t introduit pour quun bloc ne soit pas cod de la mme ee e e mani`re sil est rencontr dans deux messages dirents. Il faut ajouter une e e e valeur initiale C0 (ou IV pour initial value ), alatoire par exemple. Chaque e bloc est dabord modi par XOR avec le bloc crypt prcdent avant dtre e e e e e lui mme crypt conformment ` la gure 1.3 par : e e e a ci = Ek (mi ci1 )m1 m2 ... mn

(1.2)

IV = c0

Ek

Ek

Ek

c1

c2

cn

Fig. 1.3: Mode de chirement par blocs CBC.

Cest le mode de chirement le plus utilis. Le dchirement ncessite linverse e e e 1 de la fonction de codage Dk = Ek pour dchirer : mi = ci1 Dk (ci ). e

40 Le mode CFB : Cipher FeedBack

e Chapitre 1 : Thorie des codes

Pour ne pas avoir besoin de la fonction inverse pour dcrypter, il est possible e de faire un XOR apr`s le cryptage, cest le principe du mode CFB, comme on e peut le voir sur la gure 1.4. ci = mi Ek (ci1 )m1 m2 ... mn

(1.3)

IV = c0

Ek

Ek

Ek

c1

c2

cn

Fig. 1.4: Mode de chirement par blocs CFB.

Lintrt de ce mode est que le dchirement ne ncessite pas limplmentation ee e e e de la fonction Dk : mi = ci Ek (ci1 ). Ce mode est donc moins sr que le u CBC et est utilis par exemple pour les cryptages rseaux. e e Le mode OFB : Output FeedBack Une variante du mode prcdent permet davoir un codage et un dcodage e e e totalement symtrique, cest le mode OFB suivant la gure 1.5. e z0 = c0 ; zi = Ek (zi1 ) ; ci = mi zim1 m2 ... mn

(1.4)

IV = c0

1 Ek 0 1 0

1 Ek 0 1 0

1 Ek 0 1 0

c1

c2

cn

Fig. 1.5: Mode de chirement par blocs OFB.

Ce qui se dchire par : zi = Ek (zi1 ) ; mi = ci zi . Ce mode est utile dans les e satellites pour lesquels minimiser le nombre de circuits embarqus est crucial. e

1.3 Codage par blocs, alg`bre et arithmtique e e Le mode CTR : Counter-mode encryption

41

Ce mode est galement totalement symtrique, mais en outre facilement pae e ralllisable. Il fait intervenir le chirement dun compteur de valeur initiale T : e

ci = mi Ek (T + i)T+1

(1.5)T+n

m1

T+2

m2

...

mn

Ek

Ek

Ek

c1

c2

cn

Fig. 1.6: Mode de chirement par blocs CTR.

Le dchirement est identique : mi = ci Ek (T + i). Lintrt dun tel mode e ee est que les dirents calculs sont indpendants, comme pour le mode ECB, e e mais quun mme bloc nest a priori jamais cod de la mme faon. e e e c Exercice 1.10. Un message M est dcoup en n blocs M = M1 , . . . , Mn e e qui sont crypts dans un schma par blocs en C = C1 , . . . Cn . Bob reoit les e e c blocs Ci , mais malheureusement, il ne sait pas quun et un seul des blocs a t ee transmis incorrectement (par exemple, des 1 ont t changs en 0 et vice versa ee e durant la transmission du bloc C1 ). Montrer que le nombre de blocs du message mal dcrypts par Bob est gal ` e e e a 1 si lun des modes ECB, OFB ou CTR a t utilis et gal ` 2 si CBC ou ee e e a CFB a t utilis. ee e Solution page 281.

1.3.2

Structures algbriques des mots de codes e

Llaboration des codes par blocs ncessite de pouvoir faire des oprations et e e e des calculs sur les blocs. Par exemple, lopration sur un bloc de bits est e laddition modulo 2 de deux vecteurs de bits. Dautre part, les fonctions de codage doivent tre inversibles, ce qui ncessitera des structures o` lon peut e e u facilement calculer linverse dun bloc. Pour pouvoir faire ces calculs sur des bases algbriques solides, rappelons les structures fondamentales. e

42 Groupes

e Chapitre 1 : Thorie des codes

Un groupe (G, ) est un ensemble muni dun oprateur binaire interne vriant e e les proprits suivantes : ee 1. est associative : pour tous a, b, c G, a (b c) = (a b) c. 2. Il existe un lment neutre e G, tel que pour tout a G, on trouve ee a e = e a = a. 3. Tout lment a un inverse : pour tout a G, il existe a1 G tel que ee a a1 = a1 a = e. De plus, si la loi est commutative (a b = b a pour tous a, b G), alors G est dit ablien. On dit quun sous-ensemble H de G est un sous-groupe de e G lorsque les restrictions des oprations de G conf`rent ` H une structure de e e a groupe. Pour un lment a dun groupe G, on note an la rptition de la loi , ee e e a a, portant sur n termes gaux ` a pour tout n N . e a Si un lment g G est tel que pour tout a G, il existe i Z, tel que a = g i , ee alors g est un gnrateur du groupe (G, ) ou encore une racine primitive. Un e e groupe est dit cyclique sil poss`de un gnrateur. Par exemple, pour un entier e e e n x, lensemble des entiers Zn = {0, 1, . . . , n 1}, muni de la loi daddition e modulo n est un groupe cyclique gnr par 1 ; si n = 7, et si on choisit pour loi e ee de composition la multiplication modulo 7, lensemble {1, . . . , 6} est un groupe cyclique gnr par 3, car 1 = 30 , 2 = 32 = 9, 3 = 31 , 4 = 34 , 5 = 35 , 6 = 33 . e ee Soient un groupe (G, ) et a G. Lensemble {ai , i N} est un sous-groupe de G, not < a > ou Ga . Si ce sous-groupe est ni, son cardinal est lordre de e a. Si G est ni, le cardinal de tout sous-groupe de G divise le cardinal de G. Proprit 4. (Lagrange) Dans un groupe ni ablien (G, , e) de cardinal n, e e e pour tout x G : xn = e. Preuve. Soit a un lment du groupe G, alors a est inversible. Donc, lappliee cation fa : x ax dnie de G dans G est une bijection. Donc Im(fa ) = G ; e do` yIm(fa ) y = xG x. Or yIm(fa ) y = xG a x = an xG x (comu u P mutativit de ). Ainsi an xG x = xG x, do` an = e. e Anneaux Un anneau (A, +, ) est un ensemble muni de deux oprateurs binaires internes e vriant les proprits suivantes : e ee 1. (A, +) est un groupe ablien. e 2. est associative : pour tous a, b, c A, a (b c) = (a b) c. 3. est distributive sur + : pour tous a, b, c A, a(b+c) = (ab)+(ac) et (b + c) a = (b a) + (c a).

1.3 Codage par blocs, alg`bre et arithmtique e e

43

Si de plus poss`de un neutre dans A, A est dit unitaire. Si de plus est e commutative, A est dit commutatif. Tous les lments de A ont un oppos, ee e cest leur inverse pour la loi +. Ils nont cependant pas forcment un inverse e pour la loi . Lensemble des inversibles pour la loi est souvent not A . e Pour un lment a dun anneau A, on note n a (ou plus simplement na) la ee somme a + + a portant sur n termes gaux ` a pour tout n N . e a : k 1 = 0} nest pas vide, le plus petit lment de cet Si lensemble {k N ee ensemble est appel la caractristique de lanneau. Dans le cas contraire, on e e dit que lanneau est de caractristique 0. Par exemple, (Z, +, ) est un anneau e unitaire commutatif de caractristique 0. e Deux anneaux (A, +A , A ) et (B, +B , B ) sont isomorphes lorsquil existe une bijection f : A B vriant pour tous x et y dans A : e f (x +A y) = f (x) +B f (y) et f (x A y) = f (x) B f (y). (1.6)

Si E est un ensemble quelconque et (A, +, ) un anneau tel quil existe une bijection f de E sur A, alors E peut tre muni dune structure danneau : e x +E y = f 1 (f (x) + f (y)) et x E y = f 1 (f (x) f (y)) . (1.7)

Lanneau (E, +E , E ) ainsi dni est videmment isomorphe ` A. Lorsque e e a deux anneaux sont isomorphes, on peut identier lun ` lautre. Cest ce que a nous ferons le plus souvent. Un anneau commutatif est int`gre si il ne poss`de pas de diviseur de zro, e e e autrement dit si pour deux lments x et y vriant xy = 0 alors forcment ee e e lun deux au moins est nul. Un idal I est un sous-groupe dun anneau A pour e la loi + qui est absorbant pour la loi : pour g I, le produit a g reste dans I pour nimporte quel lment a de lanneau A. Pour tout x A la partie ee Ax = {ax; a A} est un idal de A appel idal engendr par x. Un idal I e e e e e de A est dit principal sil existe un gnrateur x (tel que I = Ax). Un anneau e e est principal si et seulement si tout idal y est principal. e Corps Un corps (A, +, ) est un ensemble muni de deux oprateurs binaires internes e vriant les proprits suivantes : e ee 1. (A, +, ) est un anneau unitaire. 2. (A \ {0}, ) est un groupe. Si (A, +, ) est commutatif, cest donc un corps commutatif ; linverse (ou oppos) de x par la loi + est not x ; linverse de x par la loi est not e e e x1 . La caractristique dun corps est sa caractristique en tant quanneau. e e Par exemple, (Q, +, ) est un corps commutatif de caractristique 0. e

44

e Chapitre 1 : Thorie des codes

Puisque tous les anneaux et corps qui nous intressent dans ce cours sont come mutatifs, nous dirons dsormais anneau (respectivement corps) pour dsigner e e un anneau unitaire commutatif (respectivement un corps commutatif). Deux corps sont isomorphes lorsquils sont isomorphes en tant quanneaux. On dit quun sous ensemble W dun corps V est un sous-corps de V lorsque les restrictions des oprations de V ` W conf`rent ` W une structure de corps. e a e a Espaces vectoriels Un ensemble E est un espace vectoriel sur un corps V sil est muni dune loi de composition interne + et dune loi externe ., telles que : 1. (E, +) est groupe commutatif. 2. Pour tout u E, alors 1V .u = u. 3. Pour tous , V et u E, alors .(.u) = ( ).u. 4. Pour tous , V et u E, alors .u + .u = ( + ).u. 5. Pour tous V et u, v E, alors .(u + v) = .u + .v. Un lment dun espace vectoriel est appel un vecteur, et les lments du ee e ee corps V sont des scalaires. Lensemble {0, 1} muni des oprations daddition e et de multiplication est un corps commutatif not F2 . Lensemble des tableaux e de bits de taille n peut donc tre muni dune structure despace vectoriel. e Lensemble des mots de code est alors Fn . 2 Selon la structure choisie, on peut manipuler les mots de code par des additions et des multiplications, enti`res ou vectorielles. Toutes ces structures sont e tr`s gnrales, et classiques en alg`bre. Une particularit des codes est quils e e e e e constituent des ensembles nis. Les groupes et corps nis ont des proprits ee additionnelles que nous utiliserons intensment au ls de cet ouvrage. e On note Z lensemble des entiers, Q le corps des rationnels, R le corps des rels, e N lensemble des entiers positifs ou nuls, Zn lensemble des entiers positifs ou nuls et strictement plus petits que n, pour n N \ {0, 1}. Lensemble Zn muni de laddition et de la multiplication modulo n est un anneau not Z/nZ, qui e sera tr`s utilis en thorie des codes. On dit quun anneau est euclidien sil est e e e muni de la division euclidienne, cest-`-dire que pour tout couple dlments a ee a et b (a b) de cet ensemble, il existe q et r tels que a = bq + r et |r| < |b|. Les nombres q et r sont respectivement le quotient et le reste2 de la division euclidienne, et nots q = a div b et r = a mod b (pour a modulo b). Or e tout anneau euclidien est principal. Ceci implique lexistence dun plus grand commun diviseur (pgcd) pour tout couple dlments (a, b). Ce pgcd est le ee gnrateur de lidal Aa + Ab. e e e2 le reste r peut a priori tre ngatif, mais dans ce cas s = r + |b| vrie galement e e e e a = (q 1)b + s et s = |s| < |b| ; dans la suite, nous prenons donc toujours r positif.

1.3 Codage par blocs, alg`bre et arithmtique e e

45

Si p est un nombre premier, lanneau Z/pZ est un corps de caractristique e p. En eet, le thor`me classique de Bzout (voir page 48) nous apprend que e e e quels que soient deux entiers a et b, il existe des entiers x et y tels que ax + by = pgcd(a, b). Si p est premier et a est un lment non nul de Zp , cette identit applique ` ee e e a a et p donne ax + bp = 1, soit ax = 1 mod p, donc a est inversible et x est son inverse. On note Fp ce corps. Le corps des nombres rationnels Q et les corps Fp , sont appels corps premiers. e Alg`bre linaire e e Des rudiments dalg`bre linaire sont ncessaires ` la lecture dune grande partie e e a de ce livre. Sans prtention explicative, nous dnissions ici les concepts utiles e e et introduisons les notations principales. Un ensemble de vecteur x1 , . . . , xn est un ensemble indpendant si pour tous e scalaires 1 , . . . , n , n i xi = 0 implique 1 = = n = 0. i=1 La dimension dun espace vectoriel V , note dim(V ) est le cardinal du plus e grand ensemble de vecteurs indpendants de cet espace. e Par exemple, si V est un corps, V n est un espace de dimension n car les vecteurs (1, 0, . . . , 0), (0, 1, 0, . . . , 0), . . . , (0, . . . , 0, 1). sont indpendants. e Une application linaire est une application du