Codage et décodage… où les nombres s`amusent
Transcription
Codage et décodage… où les nombres s`amusent
Codage et décodage… où les nombres s’amusent Maxime Carpentier de Changy, Laure Friart et Bastien Noteris Athénée Royal d’Uccle I UCL-EPL Congrès Dédra-MATH-isons 19 avril 2012 Plan de la présentation • • • • • • Objectifs du travail Bref historique de la cryptographie L’arithmétique modulaire Le chiffrement de Hill La correction des erreurs Conclusions Objectifs du travail Etude de quelques uns des très nombreux aspects mathématiques liés au codage de l’information. Bref historique de la cryptographie • De: – kruptos (κρυπτoσ) qu’on peut traduire par secret – et graphein (γραϕην) par écriture • La cryptographie est l'étude des méthodes permettant de chiffrer et de coder des messages. Bref historique de la cryptographie • Vers 1900 avant J-C, emploi de hiéroglyphes modifiés non conformes au langage habituel. • Vers 487 avant J-C, emploie de la scytale par les Spartiates. • Vers 150 avant J-C, invention du carré Polybe. Bref historique de la cryptographie • Au 9ème siècle, Al-Kindi rédige une technique de décryptage basée sur l'analyse fréquentielle. • A partir de 1226, cryptage des archives de la ville de Venise. • En 1466, L.B. Alberti invente et publie le premier chiffre polyalphabétique. Conception d'un cadran de codage. Bref historique de la cryptographie • Vers 1500, invention du chiffre stéganographique par l'abbé Jean Trithème. Les Ave Maria. • En 1506, Giovanni Soro, secrétaire du chiffre de Venise. • Vers 1550, invention de la grille de Cardan. Bref historique de la cryptographie • En 1585, invention du carré de Vigenère (inventé par Trithème). Bref historique de la cryptographie • En 1623, Sir Francis Bacon invente l'alphabet bilitère. • Vers 1790, Thomas Jefferson invente le cylindre chiffrant. • En 1917, Gilbert S. Vernam imagine un code «indécryptable». Bref historique de la cryptographie • Beaucoup employée pendant les guerres. • En 1918, brevet par A. Scherbius de la machine à chiffrer Enigma. Bref historique de la cryptographie • En 1976, invention de la cryptographie à clé publique par W. Diffle et M. Hellman. • Par la suite: invention de méthodes de plus en plus complexes... La cryptographie aujourd'hui La cryptographie moderne est omniprésente: ordinateurs, cartes bancaires, transmissions et stockages de données... Arithmétique modulaire • Si ses origines remontent à l’Antiquité, les historiens associent généralement sa naissance à l’année 1801, date de la publication du livre Disquisitiones arithmeticae de Carl Friedrich Gauss. • L'idée de base de l'arithmétique modulaire est de travailler non sur les nombres eux-mêmes, mais sur les restes de leur division par un nombre donné. Le code de César Le code de Jules César consiste en une substitution mono-alphabétique, où la substitution est définie par un décalage de lettres. ●Par exemple, si on remplace A par D, on remplace B par E, C par F, D par G, etc... ● Le code César peut se formaliser avec l'arithmétique modulaire ou «arithmétique de l'horloge» qui est un outil mathématique très commun de la cryptographie. Cette technique trouve ses origines dans le travail du mathématicien Euclide. ● L’arithmétique de l’horloge Donnons comme exemple, l'«arithmétique de l'horloge» qui se réfère à l'«addition» des heures indiquées par la petite aiguille d'une horloge. Concrètement, si nous commençons à 9 heures et ajoutons 4 heures, alors plutôt que de terminer à 13 heures (comme dans l'addition normale), nous sommes à 1 heure. De la même manière, si nous commençons à minuit et nous attendons 7 heures trois fois de suite, nous nous retrouvons à 9 heures (au lieu de 21). Les modulo Fondamentalement, quand nous atteignons 12, nous recommençons à zéro ; nous travaillons modulo 12. Pour reprendre l'exemple précédent, on dit que 9 et 21 sont congrus modulo 12. Les nombres 9 ; 21 ; 33 ; 45 ; etc. sont considérés comme égaux lorsqu'on travaille modulo 12. Pour généraliser, nous pouvons facilement imaginer une horloge qui contient un nombre arbitraire d'heures, et faire des calculs avec un nouveau modulo. ●Si a et b sont congruents modulo n, on écrira : ● a ≡ b(n) ou a ≡ b [ n] ou a ≡ b(mod n) ce qui se lit dans tous les cas « a est congru à b modulo n ». ●Par exemple : 26 ≡ 12(7) qui se lit « 26 est congru à 12 modulo 7 ». Chiffrement Pour expliquer cette relation prenons l'alphabet français conventionnel de 26 caractères et l'alphabet décalé de 3 lettres et ajoutons leur une correspondance numérique. ● A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L MN O P Q R S T U V W X Y Z A B C 0 13 15 16 17 19 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 14 18 20 Il est possible de trouver une transformation qui permette d'associer, à chaque valeur numérique, la valeur augmentée de 3 et donne le résultat modulo 26. On définit ainsi une fonction ● C ( x) = x + 3(mod 26) Chiffrement Plus généralement: C ( x) = x + k (mod n) où n= longueur de l'alphabet et k=la clé Il suffit alors de remplacer la lettre par son équivalent numérique et de lui appliquer la transformation. Prenons par exemple le message « Bleu » et chiffrons le : ● Le B serait le 1, C(1) = 1+3 ≡ 4 (mod 26) qui correspond au E ●Le L serait le 11, C(11) = 11+3 ≡ 14 (mod 26) qui correspond au O ●Le E serait le 4, C(4) = 4+3 ≡ 7 (mod 26) qui correspond au H ●Le U serait le 20, C(20) = 20+3 ≡ 23 (mod 26) qui correspond au X ● Le message « BLEU » chiffré avec la clé 3 devient « EOHX ». ● Déchiffrement Le déchiffrement consistera à faire l'opération inverse de chiffrement càd : ● C −1 ( x) = ( x − k )(mod n) Dans le cas de notre message chiffré « EOHX » avec une clé de chiffrement de 3 ● C −1 ( x) = ( x − 3)(mod 26) Ce qui donne ● Pour E, x= 4, C-1(4)= 4-3 ≡1(mod 26) ce qui correspond au B -1 ●Pour O, x= 14 C (14)= 14-3 ≡ 11(mod 26) ce qui correspond au L -1 ●Pour H, x= 7 C (7)= 7-3 ≡ 4(mod 26) ce qui correspond au E -1 ●Pour X, x= 23 C (23)= 23-3 ≡ 20(mod 26) ce qui correspond au U ● Le chiffrement affine C'est une généralisation du chiffrement de César qui se définit comme suit : ● C( a ,b ) ( x) = ( ax + b)(mod n) a et b deux nombres entiers inférieurs au nombre n ●Remarque: Il faut que a et n soient premiers entre eux sinon il serait possible de chiffrer un même caractère de différentes manières. ●Les chiffres affines sont utilisés car ils offrent une plus grande sécurité puisque les clés d'un chiffrement affine sont doubles (a,b) ●Dans le cas d'un message écrit dans un alphabet de 26 lettres et chiffré selon un algorithme affine, a et b sont compris entre 0 et 25. Donc le système de chiffrement pour un alphabet de 26 lettres est 26x26=676 ●Ainsi le nombre de clés pour un alphabet de n lettres est n fois supérieur à celui d'un simple code César. Codage et décodage d’un chiffrement affine Nous allons étudier le déchiffrement au moyen d'un exemple simple au moyen d'un texte chiffré ● C(3,1) ( x) = (3 x + 1)(mod 26) Décodage d’un chiffrement affine L'opération mathématique de déchiffrement consiste à chercher l'inconnue x, la valeur y étant donné modulo n soit : ● ax + b = y (mod n) ax = ( y − b)(mod n) Nous cherchons donc une valeur a-1 qui satisfasse a-1a (mod n) = 1 de manière à ce que : ● a −1ax = a −1 ( y − b)(mod n) x = a −1 ( y − b)(mod n) Exemple Supposons le message « LBGW » codé avec un chiffre affine de la forme ● C(3,1) ( x) = 3 x + 1 Trouver la fonction inverse de C(x) modulo 26 ● C(3,1) ( x) = 3 x + 1 3x = y − 1 Pour isoler x, il faut multiplier les 2 membres de l'équation par l'inverse de 3. L'inverse de 3 modulo 26 est un entier n tel que 3.n≡1(mod26), soit n=9 9.3=27≡1 Donc ● x = 9( y − 1) Exemple •Nous pouvons maintenant déchiffrer le message –Pour le L, 9(11-1)=99-9≡12(mod 26) ce qui correspond au M –Pour le B, 9(1-1)=0≡0(mod 26) ce qui correspond au A –Pour le G, 9(6-1)=54-9≡19(mod 26) ce qui correspond au T –Pour le W, 9(22-1)=198-9≡7(mod 26) ce qui correspond au H •Le message déchiffré est MATH Le chiffrement de Hill Lester Hill, mathématicien cryptographe américain (1891-1961) publie en 1929 un nouveau type d'algorithme de chiffrement. Son idée n'est plus de coder lettre par lettre, mais de coder simultanément des groupes de m lettres! Bien sûr, plus m est grand, plus les analyses statistiques deviennent difficiles! Le chiffre de Hill est un chiffre polygraphique, c'est-à-dire qu'on ne (dé)chiffre pas les lettres les unes après les autres, mais par paquets. Nous étudierons la version bigraphique, c'est-à-dire que nous grouperons les lettres deux par deux. Codage du message • Chiffrer les lettres du message par le rang qu’elles représentent dans l’alphabet. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 10 11 13 2 3 4 5 6 7 8 9 12 14 15 16 17 18 19 20 21 22 23 24 25 26 • Les lettres du message clair Lk et Lk+1 seront chiffrées Ck et Ck+1 par cette formule: Ck a b Lk C = ⋅ L k +1 c d k +1 ( mod 26 ) Exemple de codage • Si l’on utilise comme clef de chiffrement la matrice 2 5 A= 7 9 • Pour chiffrer le message «Je fais un code» On prendra alors : L1 = j = 10 et L2 = e = 5 Elles seront donc cryptées ainsi : C1 2 5 10 45 19 = (mod 26) = = 11 C2 7 9 5 115 Ce qui correspond aux lettres « s » et « k » Exemple (suite) Lettre J E F A I S U N C O D E Rang 10 5 6 1 9 19 21 14 3 15 4 5 Rang codé 19 11 17 25 9 26 8 13 3 26 7 21 Lettre codée S K Q Y I Z H M C Z G U Le message chiffré sera donc: « SKQYIZ HMCZGU » Remarques importantes • Les composantes de la matrice de chiffrement doivent toujours être des nombres entiers. • Il faut que la matrice de chiffrement soit inversible. • Pour que la matrice A soit inversible dans Z26 il faut que det A = ad − bc soit non nul, c’est-à-dire que det A et 26 sont premiers entre eux. Décodage • Tout d’abord il faut que la matrice de chiffrement ait une matrice inverse dans Z26 . a b c d −1 ( mod 26 ) • Cette matrice existe si (ad-bc)-1 existe et si (ad-bc) est impair et n’est pas multiple de 13. Pour déchiffrer c’est le même principe, on prend les lettres deux par deux et on les multiplie par la matrice de déchiffrement : −1 Lk a b Ck ⋅ = L C c d k +1 k +1 ( mod 26 ) Exemple • Reprenons notre exemple : −1 2 5 9 −5 1 ⋅ = 2 ⋅ 9 − 7 ⋅ 5 −7 2 7 9 Il faut calculer l’inverse de -17 modulo 26. Il existe de nombreux algorithmes dont l’algorithme d’Euclide étendu (calcul du PGCD), pour effectuer ceci mais nous allons utiliser la méthode «force brute» qui est la manière la plus simple. Exemple (suite) • Soit k = -17. Trouvons k-1 tel que: k .k −1 (mod 26) = 1 Il faut alors multiplier k par les entiers m de l’ensemble : {1,3,5,7,9,11,15,17,19,21,23,25} -17.1 (mod 26) = 9 -17.3 (mod 26) = 1 Donc -17-1 (mod 26) = 3 • Grâce à cette méthode on peut construire la table des inverses modulo 26. … 1 3 5 7 9 11 15 17 19 21 23 25 … … 1 9 21 15 3 19 … 7 23 11 5 17 25 Exemple (suite) • On peut maintenant terminer de calculer la matrice de déchiffrement : 2 5 7 9 −1 9 −5 27 −15 1 11 mod 26 = 3 ⋅ mod 26 = mod 26 = ( ) ) ) ( ( − 7 2 − 21 6 5 6 et: L1 1 11 19 ⋅ = L2 5 6 11 10 ( mod 26 ) = 5 Exemple (suite) Lettre codée S K Q Y I Z H M C Z G U Rang codé 19 11 17 25 9 26 8 13 3 26 7 21 Rang 10 5 6 1 9 19 21 14 3 15 4 5 Lettre J E F A I S U N C O D E On obtient donc: « Je fais un code » Attaque du code • 1er exemple: Quand on cherche à déterminer la clé de chiffrement d’un adversaire, on peut avoir un certain degré d’information : - On peut avoir le message chiffré - On dispose en même temps du message chiffré et d’une partie du message clair. • Avoir une partie du message clair n’est pas si compliqué. En effet il existe des messages protocolaires comme dans l’armée où les messages comportent un même début et une même fin. C’est ce que fit Türing pour la machine Enigma. Exemple • On suppose que le texte codé est le suivant : COR ZZETMDW… , ce qui correspond au début de MON GENERAL… • Un espion dans les bases adverses nous a permis de savoir qu’ils utilisent le chiffrement de Hill, avec une clé de longueur 2. On a donc une matrice d’ordre 2 (2x2) à coefficients dans Z26. • La première paire CO s’obtient en appliquant la matrice A2x2 à partir de la paire MO, la seconde paire RZ s’obtient en appliquant la matrice A2x2 à partir de la paire NG. Exemple (suite) Message codé: COR ZZETMDW… Message clair: MON GENERAL… Les premières paires de lettres sont C = 2 O = 14 R = 17 Z = 25 M = 12 O =14 N = 13 G = 6 Cela se code matriciellement: 2 17 12 13 = A⋅ 14 25 14 6 Ce que nous écrivons sous la forme B = AC. Exemple (suite) • Si la matrice C est inversible dans Z26, on obtient: A = BC −1 • On calcule le déterminant de C qui vaut -110 qui n’est pas premier avec 26. Donc ce n’est pas inversible dans Z26. On recommence avec la deuxième et la troisième paires : R = 17 Z = 25 Z = 25 E = 4 N = 13 G = 6 E = 6 N = 13 Ce qui donne : 17 25 13 4 = A⋅ 25 4 6 13 Qu’on écrit D = AE. Le déterminant de E vaut 145 qui est premier avec 26, E est donc inversible dans Z26. Exemple (suite) • On obtient donc : 1 d −b E = ad − bc −c a −1 1 13 −4 E = −6 13 (mod 26) 145 −1 145. 7 (mod 26) = 1 13 4 6 13 −1 13 −4 91 −28 13 24 ( mod 26 ) = 7 ⋅ ( mod 26 ) = ( mod 26 ) = − 6 13 − 42 91 10 13 Exemple (suite) • Ce qui donne donc comme matrice de chiffrement A: 17 25 13 24 471 733 3 5 A= ⋅ (mod 26) = (mod 26) = 25 4 10 13 365 652 1 2 Ceci permet de vérifier les autres paires de lettres en inversant la matrice de chiffrement. Exemple (suite) • 2ème exemple: Le chiffre de Hill est sensible aux attaques de type texte clair connu. Nous allons décrypter le message ci-dessous, sachant qu’il contient le nom « GEORGE PAPANDREOU »: CMYPZ GTAYO EQBYQ JLAOW INELN NECNN UESZT YTFRU OWYXH KYADM NJRUK CUFZP YPNNM XWSQQ OJMGO JZQZQ FLVAY XGIPR OPUFJ WTSVA ATQU Remarquons premièrement que « GEORGE PAPANDREOU » contient des répétitions de bigrammes à des intervalles paires. 1. GEORGE PAPANDREOU 2. GEORGE PAPANDREOU Exemple (suite) • Il nous suffit alors de rechercher les couples de lettres susceptibles de représenter GE…GE, PAPA et EO..EO • On remarque que dans le cryptogramme le segment ZQZQ pourrait correspondre avec PAPA. CMYPZ GTAYO EQBYQ JLAOW INELN NECNN UESZT YTFRU OWYXH KYADM NJRUK CUFZP YPNNM XWSQQ OJMGO JZQZQ FLVAY XGIPR OPUFJ WTSVA ATQU Le premier Z correspond au 77ème rang dans le cryptogramme. • Essayons alors d’établir un tableau de correspondance. Cela semble coïncider, après avoir remplacé les lettres par leur rang dans l’alphabet (a=1 , b=2 , … , y=25 , z=0). Le couple (15;10) aurait été obtenu à partir du couple (7;5), (13;7) à partir de (15;18), (0;17) à partir de (16;1), etc Il faut dès lors trouver la matrice de déchiffrement. Exemple (suite) Lettres codées OJ MG OJ ZQ ZQ FL VA YX Couples chiffrés (15,10) (13,7) (15,10) (0,17) (0,17) (6,12) (22,1) (25,24) Couples clairs (7,5) (15,18) (7,5) (16,1) (16,1) (14,4) (18,5) (15,21) Lettres claires GE OR GE PA PA ND RE OU • Dans notre tableau, prenons les premiers et les quatrièmes couples chiffrés et formons une matrice (A). Prenons les premiers et les quatrièmes couples clairs et formons une matrice (B). On aurait pu prendre n’importe quel couple du tableau pourvu que la matrice formée soit inversible modulo 26. Exemple (suite) • On obtient l’équation matricielle : D.A=B Dans notre exemple : on a : 15 0 7 16 D = 10 17 5 1 • Pour trouver D, il faut calculer A-1, puis multiplier A-1 par B. (tant que A n’est pas inversible mod 26, il faut essayer d’autres matrices A et B): −1 15 0 1 17 0 A= (mod 26) = (mod 26) 255 −10 15 10 17 17 0 85 0 7 0 = 5⋅ (mod 26) = (mod 26) = − 10 15 − 50 75 2 23 Exemple (suite) • D’où 7 16 7 0 81 368 3 4 D= ⋅ = (mod 26) = 5 1 2 23 37 23 11 23 On peut alors obtenir facilement la matrice de déchiffrement et, de là, déchiffrer le message. • Le message clair est : IT IS BELIEVED BY MANY GREEKS THAT THE HEAD OF THE GROUP CALLED THE SHIELD IS THE SON OF GEORGE PAPANDREOU EX PREMIER OF GREECE. Comment rendre le chiffrement de Hill plus difficile à craquer? • Transposer les lettres dans l’alphabet avant de les chiffrer. • Modifier les nombres associés aux lettres. Exemple: A la place de dire A = 1 ; B = 2 ; … on pourrait dire A = 12 ; B = 5,… Cela revient à surchiffrer le chiffre de Hill avec l’alphabet désordonné. • Agrandir la taille de la matrice de chiffrement. Des 3x3; 4x4 ; 5x5 ; etc. La seule limitation est d’ordre pratique: plus les matrices sont grandes et plus le risque d’erreur est grand. Code correcteur ● ● ● Technique de codage basée sur la redondance. Détecte et corrige les erreurs de transmissions des informations. Domaine: communications classiques et supports pour le stockage. Transmission d'un message Message détérioré Bruit Émetteur Récepteur Canal Message Redondance Redondance: ajout de caractères judicieusement choisis au message initial. ● Code de Hamming ● ● Permet la détection et la correction automatique d'une erreur si elle ne porte que sur une lettre du message. Code parfait: rendement maximal. R. W. Hamming Mathématicien américain (19151998) et professeur d'université, il a travaillé dans les laboratoires Bell avec Claude Shannon. Problème: Arrêt des machines à cause des bugs quand les ingénieurs absents. Code binaire ● Système de numérotation de base 2 (0,1) ● Construction des nombres: ● En base 10: 2 1 651 = 6.10 + 5.10 + 1.10 ● 0 En base 2: (2) 2 = 1.21 + 0.20 = 10 (5) 2 = 1.22 + 0.21 + 1.20 = 101 Calculer en binaire ● On calcule en binaire sur le même modèle que le calcul écrit classique: 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 Code de Hamming (7,4) ● ● Message de 7 bits dont 4 bits de message et 3 bits de redondance. Permet la correction de toute erreur portant sur un unique bit. Combien de bits de redondance? Message transmis par p bits (où p=bits de redondance) ●Informations contenues dans le message: (4 + p) erreurs possibles ●Ajouter la situation d'absence d'erreurs 5+p p ●Or p bits permettent de véhiculer 2 informations différentes. 5+p =2p p=3 ● Code de Hamming (7,4) d1,d2,d3,d4 sont les 4 bits de message. p1,p2,p3 sont les 3 bits de redondance. ● Le bit p1 correspond à la parité du disque vert. Si d1+d4+d2 est pair, p1 = 0 sinon, p1=1 Code de Hamming (7,4) Toutes les situations sont résumées dans ce tableau ● oui= parité conservée ● non= parité modifiée Bit n° 1 2 3 4 5 6 7 Bit transmis p1 p2 d1 p3 d2 d3 d4 Disque rouge Oui Oui Oui Non Non Non Non Disque bleu Oui Non Non Oui Oui Non Non Disque vert Non Oui Non Oui Non Oui Non Construction du code ● L'encodage (transformer les 4 bits de message en 7 bits de code) consiste à multiplier le vecteur de 4 lettres binaires par une matrice 7X4 pour obtenir un vecteur composé de 7 lettres binaires. Construction du code ● ● Nous allons considérer les messages comme des matrices. Prenons les 4 matrices vecteurs de base ● m1= (1000) ● m2= (0100) ● m3= (0010) ● m4= (0001) Construction du code m1= (1000) ce qui signifie: d1=1; d2, d3 et d4=0 Si on place ces valeurs dans le schéma de gauche, on trouve p1=1, p2=1, p3=0 En replaçant ces valeurs dans le schéma de droite on obtient le code= 1110000. Construction du code ● En faisant de même pour toutes les matrices de base, on obtient: ● φ (1000)=1110000 ● φ (0100)=1001100 ● φ (0010)=0101010 ● φ (0001)=1101001 Construction du code ● La matrice génératrice est formée des 4 colonnes correspondant aux 4 transformations trouvées précédemment. 1 1 1 G = 0 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 Exemple ● Message à communiquer: m=(1011) ● Alors p1=0, p2=1 et p3=0 ● On obtient donc manuellement le code c=0110011 Exemple suite ● Le produit matriciel de la matrice génératrice G par la matrice colonne M fournit la matrice colonne C du vecteur c: 1 1 1 G.M = 0 0 0 0 ● 1 0 1 0 0 1 1 1 1 0 0 0 1 0 = 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 On retrouve bien le résultat précédent. Correction des erreurs ● ● Il n’y a pas d’erreur de transmission si la somme des éléments de chaque disque est nulle. ● Pour le disque rouge, p3+d2+d3+d4 ● Pour le disque bleu, p2+d1+d3+d4 ● Pour le disque vert, p1+d1+d2+d4 Cette somme permet de retrouver bit de redondance de chaque disque. Correction des erreurs ● ● Reprenons le tableau des bits de redondance des disques. Transformons les oui par 0 et non par 1: Bit n° 1 2 3 4 5 6 7 Bit transmis p1 p2 d1 p3 d2 d3 d4 Disque rouge 0 0 0 1 1 1 1 Disque bleu 0 1 1 0 0 1 1 Disque vert 1 0 1 0 1 0 1 Et nous obtenons la matrice de contrôle: 0 0 0 1 1 1 1 H = 0 1 1 0 0 1 1 1 0 1 0 1 0 1 Correction des erreurs Si le produit matriciel de la matrice de contrôle H par la matrice colonne C du code c est la matrice nulle alors le code c n'a pas subi d'altération. Il est intact. ●Effectuons le produit matriciel de la matrice de contrôle H par la matrice colonne C non erronée: ● 0 1 0 0 0 1 1 1 1 1 0 H .C = 0 1 1 0 0 1 1 0 = 0 1 0 1 0 1 0 1 0 0 1 1 Correction des erreurs Dans le cas contraire, une erreur s’est introduite dans le code. ●Une des grandes forces du code de Hamming est la détection mais surtout la correction du bit défectueux. ●Si une erreur s'est produite, le vecteur X ne peut pas passer le test de la matrice de contrôle. ●Le résultat fournit, en binaire, le numéro de la ligne fautive. ●Il suffit donc de modifier le bit erroné. ● Exemple ● ● Supposons que le message reçu soit X=0110111. Effectuons le produit matriciel 0 1 0 0 0 1 1 1 1 1 1 H . X = 0 1 1 0 0 1 1 0 = 0 1 0 1 0 1 0 1 1 1 1 1 En binaire, 101 signifie 5. Le 5 ème bit est donc erroné. Exemple fin Modifier ce bit et on retrouve le code correct. 0 1 1 X = 0 1 1 1 0 1 1 C = 0 0 1 1 Conclusions • Cryptographie: domaine très vaste faisant appel à des notions mathématiques très simples (arithmétique, …), plus fouillées (calcul matriciel, …) voir extrêmement complexes (théorie des espaces vectoriels, …) • Etude d’une petite contribution des mathématiques à la cryptographie. Merci de votre attention et… bon appétit…